答案1
这是使用包/库的建议tikz-cd
。
通用锚点text right
允许我们在最后一列的右侧添加标签,而不会弄乱单元格之间的线的位置(这些线始终指向节点的中心)。
我没有进行\C
全局定义,而只是在install C shortcut
图片内部进行定义,以免覆盖任何其他\C
宏。
命令\drar
等\urar
是\ar[dr]
或代表的快捷\arrow[dr]
方式d
d拥有并r
代表r右。意思是,\drar
向单元格右下方绘制一个箭头。
如果这些线路确实需要在最北端和最南端着陆,C
那么m
还需要做更多的工作。
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{cd}
\makeatletter
\pgfdeclaregenericanchor{text right}{%
\pgf@sh@reanchor{#1}{base}%
\multiply\pgf@x by 2
}
\makeatother
\tikzcdset{install C shortcut/.code=\newcommand*\C[1]{C_{\%_{##1}}}}
\begin{document}
\begin{tikzcd}[
install C shortcut, sep=tiny, arrows={-, gray},
cells={font=\strut, inner xsep=.2ex, inner ysep=.1ex},
/tikz/mlabel/.style={label={[anchor=text]text right:{}=|\C{#1}-C_\%|}}
]
\C{1} \drar & & |[ mlabel = 2 ]| m_{r_1} \dlar \\
& C_{\%} \\
\C{2} \urar & & |[ mlabel = 1 ]| m_{r_2} \ular
\end{tikzcd}
\end{document}