我在使用 pgfmath 函数选项在\foreach
循环内定义新变量时遇到问题:evaluate
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \j [evaluate=\j as \jn using mod(\j,4)] in {5,6} {
\node[] at (\j,0) {$\jn$};
}
\end{tikzpicture}
\end{document}
这给了我错误:
! Package pgfkeys Error: I do not know the key '/pgf/foreach/4)'
如果我mod
用例如int
或exp
(仅接受一个参数)替换,它可以正常工作..例如可以exp(\j)
正常工作..
答案1
我认为您需要做的就是{}
在表达式周围添加一个额外的内容,因为逗号可能会使解析器感到困惑。
\foreach \j [evaluate=\j as \jn using {mod(\j,4)}] in {5,6}
不过,我建议采用略有不同的方法,即使用pagemathtruncatemacro
(或者\pgfmathsetmacro
如果您需要实数值):
代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \j in {5,6} {
\pgfmathtruncatemacro{\jn}{mod(\j,4)}%
\node[] at (\j,0) {$\jn$};
}
\end{tikzpicture}
\end{document}