中间箭头表示 dynkin 图

中间箭头表示 dynkin 图

我想要我的 Dynkin 图有类似这样的东西:

在此处输入图片描述

我无法创建的是中间的箭头。到目前为止,我设法获得了这个:

\documentclass{report}
\usepackage{amsmath,amssymb,tikz-cd}
\begin{document}
\begin{tikzcd}
\underset{1}{\bullet}
\arrow[shorten <= -6pt, shorten >= -6pt, no head, r]
& \underset{2}{\bullet}
\arrow[shorten <= -6pt, shorten >= -6pt, no head, r]
& \underset{3}{\bullet}
&[-22pt] \dots
&[-25pt] \underset{n-1}{\bullet}
\arrow[shorten <= -12pt, shorten >= -7pt, shift right=0.5, no head, r]
\arrow[shorten <= -12pt, shorten >= -7pt, shift left=0.6, no head, r]
& \underset{n}{\bullet}
\end{tikzcd}
\end{document}

这给了我这个: 在此处输入图片描述 如何才能获得连接最后两个节点的两个箭头中间的(仅一个)箭头?

编辑:我真的很感谢@Qrrbrbirlbel,他/她花了很多时间解决我的问题,但最后我使用了 dynkin 图表包,所以我接受了另一个答案。

答案1

有一个很棒的基于 tizkz 的 Dynkin 图表包:dynkin-diagrams。这些图表可高度定制,手册写得非常好。您可以非常直接地获得您想要的图表。

\documentclass{report}
\usepackage{amsmath,amssymb}
\usepackage{dynkin-diagrams}
\begin{document}
\begin{dynkinDiagram}[edge length=1cm,root radius=3pt,
    labels={1,2,n-1,n}]B{**.**}
\end{dynkinDiagram}
\end{document}

在此处输入图片描述

答案2

中间的箭头是通过arrow图片放置的,或者你也可以使用decorations.markings图书馆

我们可以设置tikzcd在每个单元格上放置一个项目符号。我们将通过quotes库使用标签将数字放置在项目符号下方。\mathstrut设置中的设置使得所有这些节点具有相同的高度/深度,这将更好地对齐它们。

dots键可用于放置点而不是普通线。

关键dbl是使用nfold库和相同的1.2ex样式every bullet来绘制两条平行线。

使用mid arrow图片arrow将箭头尖端置于箭头的中间。使用<反转方向。

通过和普通箭头的组合绘制三条平行线dbl。(这可以改进,但这是最容易做到的。)

如果需要更多这样的功能,尤其是对于弯曲的路径,我们将需要另一种解决方案(nfold = 3),但我们可能要确保中间的线不会画在点上,以防您想对项目符号和箭头使用不同的颜色。

使用between origins列和行分隔符有助于将点对齐到正确的网格中,而不会被标签弄乱。

代码

\documentclass[varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{cd, nfold, quotes}
\tikzset{
  pics/arrow/.style={/tikz/sloped, /tikz/allow upside down,
    code=\pgfarrowdraw{#1}}, pics/arrow/.default=>}
\tikzcdset{
  dynkin/.style={
    every matrix/.append style={
      row sep={2em,between origins}, column sep={2.5em,between origins}},
    arrows={dash, thick},
    dots/.style={
      path only,
      /tikz/every to/.append style={
        edge node={node[%
          commutative diagrams/every label, font=, auto=false, sloped]{$\cdots$}}}},
    dbl/.style={
      start anchor=center, end anchor=center,
      double distance between line centers=+1.2ex, nfold=2},
    mid arrow/.default=,
    mid arrow/.style={
      /tikz/every to/.append style={edge node={
        pic[{sloped, allow upside down,</.style={xscale=-1},##1}]
          {arrow={Straight Barb[angle'=120]}}}}},
    cells={nodes={circle, inner sep=+0pt, minimum size=+1.2ex, draw, fill, thick}},
    /tikz/label position=below,
    /tikz/every label/.style={
      commutative diagrams/every label, shape=rectangle,
       execute at begin node=\mathstrut, path only}}}
\tikzcdset{label dynkin/.style 2 args={execute at end picture={
  \node[xshift=-.6666em,left,text depth=+0pt]at(\tikzcdmatrixname-#1.west){$#2$};}}}
\begin{document}
\begin{tikzcd}[dynkin, label dynkin={1-1}{A_n, n>0}]
|["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r, dots] & |["n-1"]| \ar[r] & |["n"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={1-1}{B_n, n>1}]
|["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r, dots]
 & |["n-1"]| \ar[r, dbl, mid arrow] & |["n"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={1-1}{C_n, n>2}]
|["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r, dots]
 & |["n-1"]| \ar[r, dbl, mid arrow=<] & |["n"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={2-1}{D_n, n>3}, row sep=tiny]
 & & & & & |["n'" right]| \\
 |["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r, dots]
 & |["n-1"]| \ar[r] & |["n"]| \ar[ur] \ar[dr] \\
 & & & & & |["n^*" right]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={2-1}{E_6}]
 & & |["3'" above]| \\
 |["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r] \ar[u]
 & |["4"]| \ar[r] & |["5"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={2-1}{E_7}]
 & & |["3'" above]| \\
 |["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r] \ar[u]
 & |["4"]| \ar[r] & |["5"]| \ar[r] & |["6"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={2-1}{E_8}]
 & & |["3'" above]| \\
 |["1"]| \ar[r] & |["2"]| \ar[r] & |["3"]| \ar[r] \ar[u]
 & |["4"]| \ar[r] & |["5"]| \ar[r] & |["6"]| \ar[r] & |["7"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={1-1}{F_4}]
 |["1"]| \ar[r] & |["2"]| \ar[r, dbl, mid arrow] & |["3"]| \ar[r] & |["4"]|
\end{tikzcd}

\begin{tikzcd}[dynkin, label dynkin={1-1}{G_2}]
 |["1"]| \ar[r] \ar[r, dbl, mid arrow] & |["2"]|
\end{tikzcd}
\end{document}

输出

在此处输入图片描述

相关内容