我有以下图片:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows,calc,matrix,quotes}
\begin{tikzpicture}
\matrix (a) [matrix of nodes,
every node/.style={anchor=west},
node distance=5mm,inner sep=0.5mm,draw]
{
|(ping)| ping\\
foo bar\\
|(todo)| todo\\
};
\draw[thick,red,->] (ping.west) -- (todo.east);
\end{tikzpicture}
我能否以某种方式避免使用冗长的“|(ping)| ping”语法?我想直接写 ping、(ping) 或 ["ping"],或类似的东西。
我知道 (a-1-1) 语法,但对于人类来说,它的可读性更差。
答案1
如果你的问题是是否可以避免重复,即ping
只输入一次,答案是肯定的。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows,calc,matrix,quotes}
\begin{document}
\begin{tikzpicture}[s/.style={alias=#1,execute at begin node=#1}]
\matrix (a) [matrix of nodes,
every node/.style={anchor=west},
node distance=5mm,inner sep=0.5mm,draw]
{
|[s=ping]| \\
foo bar\\
|[s=todo]|\\
};
\draw[thick,red,->] (ping.west) -- (todo.east);
\end{tikzpicture}
\end{document}
这是否比不命名节点并使用更优雅\draw[thick,red,->] (a-1-1.west) -- (a-3-1.east);
是另一个问题。