请考虑以下示例:
\documentclass[tikz, border=1cm]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
{C_{n+1}'} & {C_{n+1}} & {C_{n+1}''} \\
{C_n'} & {C_n} & {C_n''} \\
{C_{n-1}'} & {C_{n-1}} & {C_{n-1}''}
\arrow[from=1-1, to=1-2]
\arrow[from=1-2, to=1-3]
\arrow[from=2-1, to=2-2]
\arrow[from=2-2, to=2-3]
\arrow[from=3-1, to=3-2]
\arrow[from=3-2, to=3-3]
\arrow[from=1-2, to=2-2, phantom, ""{coordinate, name=Z1}]
\arrow[from=1-3, to=2-1, "\delta"', rounded corners,
to path={ -- ([xshift=2ex]\tikztostart.east)
|- (Z1) [near end]\tikztonodes
-| ([xshift=-2ex]\tikztotarget.west)
-- (\tikztotarget)}]
\arrow[from=2-2, to=3-2, phantom, ""{coordinate, name=Z2}]
\arrow[from=2-3, to=3-1, "\delta"', rounded corners,
to path={ -- ([xshift=2ex]\tikztostart.east)
|- (Z2) [near end]\tikztonodes
-| ([xshift=-2ex]\tikztotarget.west)
-- (\tikztotarget)}]
\end{tikzcd}
\end{document}
结果如下:
我有两个问题:
- 如何让两条蛇形箭头水平对齐?
- 如何将标签放置
\delta
在箭头的右侧?
提前感谢您的建议!
1-1
(另外,当我第一次2-1
从颤动,因为这样可以将所有元素写成表格,然后再写箭头,这大大提高了代码的可读性。但是,的文档中似乎没有提到这tikz-cd
一点,还是我遗漏了什么?)
答案1
由于节点内容的宽度不同,请使用节点的中心进行对齐。您需要增加来进行xshift
补偿。要放置\delta
,请使用\pos=.25
并'
从描述中删除。
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
{C_{n+1}'} & {C_{n+1}} & {C_{n+1}''} \\
{C_n'} & {C_n} & {C_n''} \\
{C_{n-1}'} & {C_{n-1}} & {C_{n-1}''}
\arrow[from=1-1, to=1-2]
\arrow[from=1-2, to=1-3]
\arrow[from=2-1, to=2-2]
\arrow[from=2-2, to=2-3]
\arrow[from=3-1, to=3-2]
\arrow[from=3-2, to=3-3]
\arrow[from=1-2, to=2-2, phantom, ""{coordinate, name=Z1}]
\arrow[from=1-3, to=2-1, "\delta", rounded corners,
to path={ -- ([xshift=6ex]\tikztostart.center)
|- (Z1) [pos=.25]\tikztonodes
-| ([xshift=-6ex]\tikztotarget.center)
-- (\tikztotarget)}]
\arrow[from=2-2, to=3-2, phantom, ""{coordinate, name=Z2}]
\arrow[from=2-3, to=3-1, "\delta", rounded corners,
to path={ -- ([xshift=6ex]\tikztostart.center)
|- (Z2) [pos=.25]\tikztonodes
-| ([xshift=-6ex]\tikztotarget.center)
-- (\tikztotarget)}]
\end{tikzcd}
\end{document}
答案2
回答这两个问题。
- 每个单元格都需要相同的宽度:
\begin{tikzcd}[
every cell/.style={
minimum width=.85cm
% or: text width=.85cm
}
]
% your code
\end{tikzcd}
- 您必须替换
near end
为:
near start, right=.35cm