可以在 TikZ 的 foreach 中组合“...”和“x/y”吗?

可以在 TikZ 的 foreach 中组合“...”和“x/y”吗?

我将从一个简单的、最小的非工作示例开始:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \x/\y in {1/20,2/18,...,10/2}
  \node at (\x,0) {\y};
\end{tikzicture}
\end{document}

您可能从示例中了解到,重点是同时迭代两个变量,每次运行时这些变量的变化量相同,而不必明确写出所有x/y对。如果这样做有效,预期输出将是

在此处输入图片描述

但编译因Illegal unit of measure ...错误而停止。我知道手册没有提到这一点,所以我有点期待答案只是“不,不可能”。我是否忽略了一些显而易见的东西,或者这是 TikZ 无法做到的事情?

(顺便说一句,我还没有遇到过需要这种情况的情况,这只是我突然想到的。我可以用其他东西来做循环,例如,无论如何,Lua。)

答案1

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach[count=\i] \txt in {20,18,...,2}
  \node at (\i,0) {\txt};
\end{tikzpicture}
\end{document}

笔记:总是可以使用另一个变量来计算一个变量。或者你不能使用...pgffor所以你也可以使用:

\begin{tikzpicture}
\foreach[evaluate=\y using int(22-2*\x)] \x in {1,...,10}
  \node at (\x,0) {\y};
\end{tikzpicture}

相关内容