TikZ 计数器和逻辑比较

TikZ 计数器和逻辑比较

TikZ 是否有类似于forc 语言中的循环和逻辑比较的计数器?例如,

\foreach \x in {0mm,11.200000mm,...,33.600000mm}
{
  counter++; <== is this possible in tikz
  if(counter == 0) <== is this possible in tikz
    output something
}  

答案1

pgf 2.1(或 pgffor 的最新版本)中有一个新的可能性,也许对您来说很有趣,您可以使用一个新选项count。我创建了两个计数器 \xi 和 \yi,每次循环都会自动获得 \xi=\xi+1 等。

\documentclass{scrartcl}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[x=0.75cm,y=0.75cm] 
\foreach \x [count=\xi] in {0,...,6}
{\foreach \y [count=\yi] in {0,...,6}
{\ifnum\xi=\yi 
\node [draw, minimum size=0.666cm] at (\xi,-\yi) {$\infty$}; 
\else
\node [draw, minimum size=0.666cm] at (\xi,-\yi) {$\x\y$};
\fi }}
\end{tikzpicture}
\end{document}

答案2

您可以使用常规 LaTeX 计数器。您可以使用 定义自己的计数器\newcounter{name},使用 设置它\setcounter{name}{value}或使用 添加它\addtocounter{name}{value}

您可以使用\ifnum 0=\value{name} <true> \else <false> \fi或借助ifthen包来测试计数器值。

请注意,for 的内容\foreach是在组内执行的,并且应保留到下一次迭代或循环结束后的赋值必须是全局的。幸运的是,上面的 set 和 add 宏无论如何都是全局赋值。

相关内容