tikz-cd 箭头之间的箭头不对称(一个方向太短)

tikz-cd 箭头之间的箭头不对称(一个方向太短)

我想画一个箭头(A)在两个箭头之间(C)在 tikz-cd 中,这样A直接接触两者C,如下图所示。

正确的箭头

下面的代码看起来像是对该图的合理尝试,但它是不对称的:中间箭头没有触及下面的箭头。

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1}, from=1-1, to=1-3, bend right]
    \arrow[from=0, to=1]
\end{tikzcd}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1}, from=1-1, to=1-3, bend right]
    \arrow[from=1, to=0]
\end{tikzcd}

\end{document}

结果如下:

错误的箭头

(为了进行比较,下面这个例子中的中间箭头指向相反的方向。这表明问题在于下面的箭头,而不是目标箭头。)

为什么会发生这种情况?我该如何解决?

请注意,我确实不是想要简单地将shorten中间箭头的长度设为负数:解决方案必须适用于任何一对箭头,我不想猜测要将中间箭头缩短多少。(此外,在某些情况下,我想对称地缩短中间箭头,如果一个方向必须进行额外的调整,这会很尴尬。)

答案1

这是由于下方箭头上方的标签文本为空造成的。""{name=1}""{name=1, below}排版替换箭头下方的标签文本,即可解决您的问题。

tikzcd请参阅手册第 2.3 节中的最后两个示例箭头的绝对位置

完整示例:

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1, below}, from=1-1, to=1-3, bend right]
    \arrow[from=0, to=1]
\end{tikzcd}

\begin{tikzcd}
    \bullet && \bullet
    \arrow[""{name=0}, from=1-1, to=1-3, bend left]
    \arrow[""{name=1, below}, from=1-1, to=1-3, bend right]
    \arrow[from=1, to=0]
\end{tikzcd}

\end{document}

在此处输入图片描述

相关内容