0

Being aware of the excellent package dynkin-diagrams by Benjamin McKay, I still need something else, since there are several customizations that have been kindly provided in an answer to my previous question How to draw a border around a subset of nodes here by the former TeX.SE user marmot which I need to use.

So what I would like is to draw in TikZ arrows of shape =>=, and I mean literally of this exact shape (except that the = segments might need some stretching), and the same for triple arrows.

Although the pgf manual has lots of details about arrow tips, I could not find instructions for this particular kind. Could you help me?

2 Answers2

2

It's a tikz picture component, rather than an arrow.

The > is a Classical TikZ arrowhead, the = likely is a thin, double edge between two nodes.

I don't (currently have time to) understand the (heavily parameterized) dynkin package code -- so not an answer -- but here is a very simplistic off-the-cuff thematic re-interpretation (not necessarily accurate) of such a construct:

pseudo-arrow

MWE

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{
    arrows.meta,
    positioning,
    }
\begin{document}
\begin{tikzpicture}[inner sep=2pt,outer sep=0pt]
\node [circle,fill=black,radius=2pt,draw,label=A] (A) at (0,0) {};
\node [circle,fill=black,radius=2pt,draw,label=B] (B) at (1,0) {};
\node [label=C] (C) at (1.5,0) {};
\node [circle,fill=black,radius=2pt,draw,label=D] (D) at (2,0) {};
\draw[thin] (A) -- (B);
\draw[thin,double] (C.west) -- (D);
\draw[-{Classical TikZ Rightarrow[red,length=1mm,]},thin,double,] (B) -- (C.east);
\end{tikzpicture}
\end{document}

You could emulate a =>= arrow using invisible nodes, for example like so:

\begin{tikzpicture}[inner sep=2pt,outer sep=0pt]
\node [label=B] (B) at (1,0) {};
\node [label=C] (C) at (1.5,0) {};
\node [label=D] (D) at (2,0) {};
\draw[thin,double] (C.west) -- (D);
\draw[-{Classical TikZ Rightarrow[red,length=1mm,]},thin,double,] (B) -- (C.east);
\end{tikzpicture}

arrow only

Cicada
  • 10,129
1

Update:

With the 6 April 2021 release of the dynkin-diagrams package, you get: enter image description here

just by adding [Bourbaki-arrow] as an option to the package:

\documentclass{amsart}
\usepackage[Bourbaki-arrow]{dynkin-diagrams}
\begin{document}
\dynkin F4

\dynkin G2 \end{document}

Old answer: Just for Dynkin diagrams. I am not sure if you want straight lines or arcs (like the default for the Dynkin diagrams package), so here is the package standard arrow, along with two options:

Dynkin diagrams with arrows in three styles

\documentclass{standalone}
\usepackage{dynkin-diagrams}

\pgfdeclarearrow{ name = jibladze, parameters = { \the\pgfarrowlength }, setup code = {}, drawing code = { \pgfsetdash{}{0pt} % do not dash \pgfsetroundjoin % fix join \pgfsetroundcap % fix cap \pgfsetlinewidth{5\pgflinewidth} \pgfsetstrokecolor{white} \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}} \pgfpathlineto{\pgfpoint{0}{0}} \pgfpathlineto{\pgfpoint{-.75\pgfarrowlength}{-\pgfarrowlength}} \pgfusepathqstroke \pgfsetlinewidth{.2\pgflinewidth} \pgfsetstrokecolor{black} \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}} \pgfpathlineto{\pgfpoint{0}{0}} \pgfpathlineto{\pgfpoint{-.75\pgfarrowlength}{-\pgfarrowlength}} \pgfusepathqstroke }, defaults = { length = 2pt } }

\pgfdeclarearrow{ name = mamuka, parameters = { \the\pgfarrowlength }, setup code = {}, drawing code = { \pgfsetdash{}{0pt} % do not dash \pgfsetroundjoin % fix join \pgfsetroundcap % fix cap \pgfsetlinewidth{5\pgflinewidth} \pgfsetstrokecolor{white} \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}} \pgfpatharc{180}{270}{\pgfarrowlength} \pgfpatharc{90}{180}{\pgfarrowlength} \pgfusepathqstroke \pgfsetlinewidth{.2\pgflinewidth} \pgfsetstrokecolor{black} \pgfpathmoveto{\pgfpoint{-.75\pgfarrowlength}{\pgfarrowlength}} \pgfpatharc{180}{270}{\pgfarrowlength} \pgfpatharc{90}{180}{\pgfarrowlength} \pgfusepathqstroke }, defaults = { length = 2pt } }

\begin{document} \begin{tabular}{c} \dynkin G2\ \dynkin[arrow shape/.style={-{jibladze}}]G2\ \dynkin[arrow shape/.style={-{mamuka}}]G2\ \dynkin F4\ \dynkin[arrow shape/.style={-{jibladze}}]F4\ \dynkin[arrow shape/.style={-{mamuka}}]F4 \end{tabular} \end{document}

  • To make jibladze the default for the entire file, you can just write \tikzset{/Dynkin diagram/arrow shape/.style={-{jibladze}}} near the top of the file. – Benjamin McKay Apr 02 '21 at 09:38
  • Thank you so much, Ben! The one with straight lines is absolutely perfect for me. The reason I prefer it is simply that I remember from somewhere the mnemonics: a thing like A=>=B tells that the root A is longer than the root B, so you can read > as the symbol for "greater". – მამუკა ჯიბლაძე Apr 02 '21 at 10:40