PGF 命令是否\foreach
提供了一种简单的可能性来获取迭代元素的数量?
它有一个参数count
用于保存当前元素数量,因此一个解决方法是迭代列表一次。执行后,最后的计数就是 中的元素数量#1
。
\foreach \letter [count=\n] in {#1} {}
% \n now keeps the number of elements.
不用迭代整个列表一次就能实现这一点吗?
答案1
\documentclass{minimal}
\usepackage{tikz}
\newcounter{dummy}
\def\getNoOfElements#1#2{%
\setcounter{dummy}{0}%
\foreach\dummy in {#1}{\stepcounter{dummy}}%
\edef#2{\arabic{dummy}}
}
\begin{document}
\getNoOfElements{a,b,c,d,e,f}\No % save the value in \No
\No
\getNoOfElements{1,2,3,4}\No
\No
\end{document}
答案2
如果不至少迭代一次列表,就不可能知道列表中元素的数量。我认为您不需要以下技巧。
\def\procedure#1#2{%
%#1 comma separated elements
%#2 the number of elements in the list
\foreach \letter in {#1} {}%
% use the #2 here...
}