在 TikZ/PGF 中,我需要两行点,以便稍后将它们连接起来。– 我用链式结构将这些点制成一个\foreach
循环。但我无法让命名在循环中发挥作用。
下面的代码可以工作,但NAMEHERE
应该是\chainName
。如果我\chainName
在那里插入,我会得到致命错误Argument of \tikz@lib@chain@strip has an extra }.
\begin{tikzpicture}[
every node/.style={draw, fill, circle, inner sep=.5}
]
\node (start-mybase) at (0,0) {};
\node (end-mybase) at (3,0) {};
\foreach \chainName in {start, end} {
\begin{scope}[start chain=NAMEHERE going above]
\chainin (\chainName-mybase);
\foreach \x in {2,...,5} {
\node [on chain] {};
}
\end{scope}
}
% \draw (start-1) -- (end-3);
\end{tikzpicture}
我如何命名 for-each 循环中的链?
答案1
您需要将宏名称括在花括号中:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{chains}
\begin{document}
\begin{tikzpicture}[
every node/.style={draw, fill, circle, inner sep=.5}
]
\node (start-mybase) at (0,0) {};
\node (end-mybase) at (3,0) {};
\foreach \chainName in {start, end} {
\begin{scope}[start chain={\chainName} going above]
\chainin (\chainName-mybase);
\foreach \x in {2,...,5} {
\node [on chain] {};
}
\end{scope}
}
\draw (start-1) -- (end-3);
\end{tikzpicture}
\end{document}