如何用 \foreach 解开两个点

如何用 \foreach 解开两个点

有人可以解释一下为什么这个解包规则不起作用?

    \foreach \x / \y in {(2.0,3.0) / (2.0,5.0), (2.0,3.0) / (2.0,5.0), (2.0,3.0) / (2.0,5.0)}
    {
        \draw \x -- \y;   
    }

答案1

坐标的特殊处理仅适用于项目中第一个字符为 的情况(。在这种情况下,直到第一个字符之前的所有内容都)将作为一个值的一部分读取。因此, 之前的坐标/是可以的,但 之后的坐标/需要用花括号括起来。(请参阅手册第 902 页。)

此外,解析器似乎不喜欢某些空格,您需要类似下面的内容。

\documentclass[border=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \foreach \x / \y in {(2.0,3.0)/{(2.0,5.0)}, (2.0,3.0)/{(2.0,5.0)}, (2.0,3.0)/{(2.0,5.0)}}
  {
    \draw \x -- \y;
  }
\end{tikzpicture}
\end{document}

相关内容