![tikz-cd 箭头未按预期水平对齐](https://linux22.com/image/472188/tikz-cd%20%E7%AE%AD%E5%A4%B4%E6%9C%AA%E6%8C%89%E9%A2%84%E6%9C%9F%E6%B0%B4%E5%B9%B3%E5%AF%B9%E9%BD%90.png)
我有以下代码
\begin{tikzcd}[row sep=tiny]
& (\nu d,\, e)(\bar{b} \langle e \rangle \,|\,\bar{d}) \not\downarrow_c \\
(\nu d,\, e)\bar{b} \langle d \rangle \,|\, \bar{b} \langle e \rangle \,|\, b(x).\bar{x} \arrow[ur] \arrow[dr] & \\
& (\nu d,\, e)(\bar{b} \langle d \rangle \,|\,\bar{e}) \not\downarrow_c \\
\end{tikzcd}
出于某种原因,两个箭头在水平方向上有不同的起点。我尝试将第二行设为节点并添加cells={nodes={anchor=east}}
,但问题仍然存在。有什么办法可以解决这个问题吗?这也是一个很奇怪的问题,因为如果我从第二行删除几个字符,它似乎会出现预期的行为。
编辑:修复了 Marijn 指出的不一致之处
答案1
您可以使用与默认中心不同的锚点。
我还删除了所有\,
命令并使用\mid
;为了改善的糟糕输出\not\downarrow
,我使用了\centernot
。
注意:左边的项中有一个不平衡的括号。请修复它。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usepackage{centernot}
\begin{document}
\[
\begin{tikzcd}[row sep=tiny]
& (\nu d, e)(\bar{b} \langle e \rangle \mid \bar{d}) \mathrel{\centernot\downarrow}_c \\
(\nu d, e)(\bar{b} \langle d \rangle \mid \bar{b} \langle e \rangle \mid b(x).\bar{x}
\arrow[ur,start anchor=north east,end anchor=base west]
\arrow[dr,start anchor=south east,end anchor=real west] &
\\
& (\nu d, e)(\bar{b} \langle d \rangle \mid \bar{e}) \mathrel{\centernot\downarrow}_c \\
\end{tikzcd}
\]
\end{document}