我最近在使用该软件包时遇到了一个小问题tikz-cd
。这是关于附在某些箭头上的标签的定位。聊天中的一位用户很友好地向我指出,可以使用 手动控制定位pos=<fraction>
。
在实施此修复后,我发现当我改变输入时,行为<fraction>
非常引人注目且违反直觉。我天真地以为分数以显而易见的方式与箭头长度的分数相对应。一些实验表明,对于直箭,情况确实如此。然而,对于弯曲的箭头,情况似乎并不那么简单。作为一个(最小工作)示例,请考虑以下内容:
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}
A \arrow[r,bend left=30,"\pi" pos=<fraction>]&B
\end{tikzcd}
\]
\end{document}
插入 .4 和 .6 会<fraction>
产生以下两个输出:
这当然与标签沿箭头长度放置 40% 和 60% 不符。我的(显而易见的)问题是:这些数字代表什么?如何使用它们来确定标签的放置位置(尤其是在显然不平凡的弯箭头情况下)?
答案1
软件包的维护者已回复消息关于这个问题---事实证明这是有意为之的行为。
原始答案
我认为这是一个错误,并建议您报告此问题。您可以使用以下示例:
% arara: lualatex
\documentclass{article}
\usepackage{tikz-cd}
\usepackage{lua-visual-debug}
\begin{document}
\begin{tikzcd}
A \arrow[bend left=60,"\mid" pos=.1,"\mid" pos=.2,"\mid" pos=.3,"\mid" pos=.4,"\mid" pos=.5,"\mid" pos=.6,"\mid" pos=.7,"\mid" pos=.8,"\mid" pos=.9]{r} & B\\
A \arrow[bend left=30,"\mid" pos=.1,"\mid" pos=.2,"\mid" pos=.3,"\mid" pos=.4,"\mid" pos=.5,"\mid" pos=.6,"\mid" pos=.7,"\mid" pos=.8,"\mid" pos=.9]{r} & B\\
A \arrow["\mid" pos=.1,"\mid" pos=.2,"\mid" pos=.3,"\mid" pos=.4,"\mid" pos=.5,"\mid" pos=.6,"\mid" pos=.7,"\mid" pos=.8,"\mid" pos=.9]{r} & B
\end{tikzcd}
\end{document}
我会报告给tikz-cd
因为这似乎不是 Ti 的问题钾Z 本身。只需看这段(抱歉,很丑陋)代码:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (1) {A};
\node (2) [right = of 1] {B};
\path[every node/.append style=above] (1) edge[bend left=60] node [pos=.1] {$\mid$} node [pos=.2] {$\mid$} node [pos=.3] {$\mid$} node [pos=.4] {$\mid$} node [pos=.5] {$\mid$} node [pos=.6] {$\mid$} node [pos=.7] {$\mid$} node [pos=.8] {$\mid$} node [pos=.9] {$\mid$} (2);
\end{tikzpicture}
\end{document}
答案2
似乎tikz-cd
将标签框放置到该点right of the insertion point
而不是将其置于该点的中心。
下面是一个允许与 进行比较的代码pstricks
(其psmatrix
环境是 的替代tikz-cd
)。我依次将标签框置于插入点的中心(默认)、左侧和右侧。
\documentclass{article}
\usepackage{tikz-cd}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}
\begin{document}
\[
\begin{tikzcd}
A \arrow[r,bend left=30,"\pi" pos=0.6]&B
\end{tikzcd}
\]
\psset{linewidth=0.6pt, arrows=->, arrowinset=0.15, nodesepA=4.5pt, nodesepB=4.5pt, arcangle=35, shortput=nab, tpos=0.6, labelsep=3pt}
\[ \begin{psmatrix}[colsep = 1.15cm]
[name=A] A & [name=B] B
\ncarc{A}{B}^{\scriptstyle\pi}
\end{psmatrix}
\]%
\[ \begin{psmatrix}[colsep = 1.15cm]
[name=A] A & [name=B] B
\ncarc{A}{B}^{\makebox[0pt][r]{\scriptstyle\pi $}}
\end{psmatrix}
\]%
\[ \begin{psmatrix}[colsep = 1.15cm]
[name=A] A & [name=B] B
\ncarc{A}{B}^{\makebox[0pt][l]{\scriptstyle\pi $}}
\end{psmatrix}
\]%
\end{document}