在一个 PGF 的 \foreach 中双重“评估”

在一个 PGF 的 \foreach 中双重“评估”

percusse 可能知道我是否可以执行以下操作\foreach

\begin{document}
\foreach [
  evaluate=\x as \z using \x*10,
  evaluate=\x as \p using \x mm*3
] \x in {1,...,5}{
  \endgraf
  \hskip\p pt\relax
  \textcolor{red!\z!blue}{\x}%
}
\end{document}

在旁边

\foreach应该在以下情况下通过智能消息帮助新手:

\foreach [
  remember=\x % as \lastx (initially A) % n00b forgot the rest.
] \x in {B,C,D,E,F,G,H}{%
  $\overrightarrow{\lastx\x}$,
}

答案1

关键字evaluate调用 PGF 数学引擎,它始终以 为单位保存其结果pt,但不包含pt字符串。因此,如果您使用

\hskip\p pt\relax

pt在 后添加\p),您将获得所需的结果:

\documentclass[10pt]{article}
\usepackage{tikz}
\begin{document}
\foreach [
  evaluate=\x as \z using \x*20,
  evaluate=\x as \p using \x mm*3
] \x in {1,...,5}{
  \endgraf
  \hskip\p pt\relax
  \textcolor{red!\z!blue}{\x}%
}
\end{document}

相关内容