![如何使 Tikz 交换图箭头具有相同的垂直长度](https://linux22.com/image/465256/%E5%A6%82%E4%BD%95%E4%BD%BF%20Tikz%20%E4%BA%A4%E6%8D%A2%E5%9B%BE%E7%AE%AD%E5%A4%B4%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E7%9A%84%E5%9E%82%E7%9B%B4%E9%95%BF%E5%BA%A6.png)
使用时我注意到了一些东西tikz-cd
。它不是很大,但我想知道它是否可以调节。
我正在使用当前的最小示例:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=large, row sep=large]
& \arrow[dl, swap, "R"] D \arrow[d, dashed, "F"] \arrow[dr, "T"] & \\
B & \arrow[r, swap, "P"] B \times C \arrow[l, "Q"] & C
\end{tikzcd}
\end{document}
其结果为:
![](https://i.stack.imgur.com/Qjhjx.png)
我注意到中间的垂直箭头与两个对角线外箭头的高度不同。我想知道如何使每个箭头尖端的底部齐平。这可以轻松调整吗?我正在慢慢研究文档,但还没能弄清楚如何做到这一点。
答案1
- 箭头默认指向节点中心之间,因此它们可能会接触不同位置的单元格边界。
- 对于箭头,您可以指定
end anchor
。通过为箭头选择适当的锚点,您可以实现您想要的效果。
\documentclass[margin=3mm]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[sep=large,
cells={nodes={draw=gray, inner sep=2pt}} % to see cells borders, delete in real document
]
& \dlar["R" ', end anchor=north east] D \dar[dashed, "F"] \drar["T", end anchor=north west] & \\
B & \rar["P" '] B \times C \lar["Q"] & C
\end{tikzcd}
\end{document}
- 与箭头的起始点相同,定义
start anchor
。使用两者,交换图为:
\documentclass[margin=3mm]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[sep=large,
cells={nodes={draw=gray, inner sep=2pt}} % to see cells borders, delete in real document
]
& \dlar["R" ', start anchor= south west,
end anchor=north east] D \dar[dashed, "F"] \drar["T", start anchor= south east,
end anchor=north west] & \\
B & \rar["P" '] B \times C \lar["Q"] & C
\end{tikzcd}
\end{document}
笔记:
- 在实际文档中删除绘制井边框的图表选项。
- 我想知道增加这种复杂性是否真的值得。
- 在节点中足够长的文本处,箭头将在顶部单元格边框处结束,而无需定义
end anchor