\foreach
我在 TikZ 中使用循环\i in {2,3,..,5}
,我希望能够使用值\i-1
。但是,我尝试的每种方法都会出错Illegal unit of measure (pt inserted)
。以下是我在阅读此论坛和其他论坛中的一些答案后尝试的三个最小示例:
使用以下evaluate
选项:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) {N1};
\foreach \i [evaluate=\i as \j using \i-1] in {2,3,..,5}{
% whatever
}
\end{tikzpicture}
\end{document}
和\pgfmathtruncatemacro
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) {N1};
\foreach \i in {2,3,..,5}{
\pgfmathtruncatemacro{\j}{\i - 1}
% whatever
}
\end{tikzpicture}
\end{document}
和\pgfmathparse
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (N1) {N1};
\foreach \i in {2,3,..,5}{
\pgfmathparse{\i - 1}
% whatever
}
\end{tikzpicture}
\end{document}
我已经看到过很多类似的例子,应该都可以起作用,我遗漏了什么?
我的 PGF/TikZ 版本(据报告\pgfversion
)是 3.0.0。
PD:我知道foreach
支持同时迭代两个变量,所以我可以使用\foreach \i / \j in {2/1, 3/2, 4/3, 5/4}
,但是它的扩展性不太好。
答案1
表达式中需要使用三个句点2,3,...,5
,而不是两个。