在 tikz-cd 中弯曲箭头

在 tikz-cd 中弯曲箭头

按照 LaRiFaRi 的建议回答这个问题,我从 切换XY-Pictikz-cd。下面的文件包含我在XY-Pic和 中的图表tikz-cd。请帮助我使我的图表变得tikz-cd漂亮!

我想:

  1. 将有问题的箭头从$\ell-1$改进为1;

  2. 使箭尖更锋利,如XY-Pic

  3. 使实线接触(或至少几乎接触)小圆圈。

请注意,我的图是(仿射)Dynkin 图,因此它应该看起来像 Dynkin 图,请参阅这些照片

编辑:我从 LaRiFaRi 的回答中取出了更正后的箭头,并按照他的建议在库中找到了合适的箭头尖。现在这个图比 的图好看多了XY-Pic。但我仍然需要实线来靠近小圆圈。下面是更正后的图表。

 \documentclass[a4paper,12pt]{amsart}
\usepackage[all]{xy}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta}

\def\ccc{{  \lower0.3ex\hbox{{\text{\Large$\circ$}}}}}
\newcommand{\bc}[1]{{\overset{#1}{\ccc}}}
\newcommand{\bcu}[1]{{\underset{#1}{\ccc}}}

\begin{document}
\[   \xymatrix@1@R=-5pt@C=10pt{
& \bc{0} \ar@{-}[rd]\ar@/^0.75pc/@{-->}[rrrr] &&  &&\bc{\ell-1}\ar@{-}[ld]
    \ar@{-->} `l[lld]  `[lldd]  [lllldd] \\
&&\bc{2}\ar@{-}[r] & \cdots  \ar@{-}[r] & \bc{\ell-2} \\
&\bc{1}\ar@{-}[ru] \ar@/_0.7pc/@{-->}[rrrr] & &  & &\bc{\ell}\ar@{-}[lu]
    \ar@{--2>} `d[l] `l[lllll] `[uu]  [lllluu] \\
}   \]
\bigskip

\[  \begin{tikzcd}[every arrow/.append style={dash},row sep=-5pt, column sep=10pt]
\bc{0} \arrow{dr} \arrow[thin,-{Stealth[open]}, dashed,bend left=20]{rrr} 
 & &[.8cm] & \bc{\ell-1}
 \arrow[thin,-{Stealth[open]}, dashed, rounded corners, 
        to path={ -- ([xshift=-1.795cm]\tikztostart.west) |- 
        (\tikztotarget)}]{llldd}
\\
& \bc{2} \arrow{r}[description]{\ldots} & \bc{\ell-2} \arrow{ur}\arrow{dr} &
\\
\bc{1}\arrow[thin,-{Stealth[open]}, dashed,bend right=20]{rrr}\arrow{ur} &
       & & \bc{\ell}
       \arrow[thin,-{Stealth[open]}, dashed, rounded corners, 
            to path={ -- ([yshift=-2ex]\tikztostart.south) -|
            ([xshift=-1.5ex]\tikztotarget.west) -- (\tikztotarget)}]{uulll}
\end{tikzcd}  \]
\end{document}   

在此处输入图片描述

答案1

您可以试用该dynkin-diagrams软件包。此示例包含在文档中。请注意,默认情况下,此 D 系列图的仿射根用白色圆圈标记,而其他根则用实心圆圈标记;如果您不喜欢,可以轻松更改此设置。

在此处输入图片描述

\documentclass{amsart}
\usepackage{dynkin-diagrams}
\tikzset{big arrow/.style={
    -Stealth,line cap=round,line width=1mm,
    shorten <=1mm,shorten >=1mm}}
\newcommand\catholic[2]{\draw[big arrow,green!25!white] 
(root #1) to (root #2);}
\newcommand\protestant[2]{
\begin{scope}[transparency group, opacity=.25]
\draw[big arrow,orange] (root #1) to (root #2);
\end{scope}}
\begin{document}
\begin{dynkinDiagram}[edge length=1.2cm,
indefinite edge/.style={thick,loosely dotted},
labels*={0,1,2,3,\ell-3,\ell-2,\ell-1,\ell}]{D}[1]{}
\catholic{0}{6}\catholic{1}{7}
\protestant{7}{0}\protestant{6}{1}
\end{dynkinDiagram}
\end{document}

答案2

也许是这个?

% arara: pdflatex

\documentclass[a4paper,12pt]{amsart}
\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}[row sep=-5pt, column sep=10pt,cells={nodes={draw, circle,font=\tiny, inner sep=2pt, minimum size=24pt}}]
     1 \arrow[dash]{dr} \arrow[dashed,bend left=25]{rrr} & &[.8cm] & 
     \ell-1 \arrow[dashed, rounded corners, to path={ -- ([xshift=-1.795cm]\tikztostart.west) |- (\tikztotarget)}]{llldd}
    \\
    & 2 \arrow[dash]{r}[description]{\ldots} & \ell-2 \arrow[dash]{ur}\arrow[dash]{dr} & 
    \\
    1 \arrow[dash]{ur} & & & 
    \ell \arrow[dashed,bend left=25]{lll} \arrow[dashed, rounded corners, to path={ -- ([yshift=-2ex]\tikztostart.south) -| ([xshift=-1.5ex]\tikztotarget.west) -- (\tikztotarget)}]{uulll}
\end{tikzcd}  
\]
\end{document}

在此处输入图片描述

我没有改变箭头,因为原来的箭头xy太丑了。如果你想换成其他样式,只需查看手册即可。xy箭头不包括在内。

相关内容