![如何用 \foreach 解开两个点](https://linux22.com/image/350225/%E5%A6%82%E4%BD%95%E7%94%A8%20%5Cforeach%20%E8%A7%A3%E5%BC%80%E4%B8%A4%E4%B8%AA%E7%82%B9.png)
有人可以解释一下为什么这个解包规则不起作用?
\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}