foreach 循环中的颜色名称

foreach 循环中的颜色名称

编辑:我无法删除这个问题,尽管它是基于一个愚蠢的错误。请不要浪费时间阅读/回答。


我正在尝试绘制一排交替颜色的方框,并使用 来\foreach完成。我的问题是是否可以在循环中使用颜色名称作为变量foreach

梅威瑟:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

  \foreach \x/\y {1/blue, 2/red, 3/blue, 4/red}
    \fill[color=\y] (\x,0) --++ (1,0) --++ (0,1) --++ (-1,0) --cycle;

\end{tikzpicture}
\end{document}

当我运行这个时我收到错误! Package pgfkeys Error: I do not know the key '/pgf/foreach/color', to which you passed '\y ', and I am going to ignore it. Perhaps you misspelled it.

在我见过的其他问题中(示例 1示例 2示例 3),人们一直在询问用数字定义颜色(red!50!black例如),所以我认为这个问题不同。

那么,我是不是做错了什么,还是我根本无法完成我想做的事情。如果是后者,我会用不同的方法,但我想知道这种可能性。

答案1

\foreach \x/\y in {..}。 你忘了in

顺便说一下,它会更短一些rectangle

在此处输入图片描述

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

  \foreach \x/\y in {1/blue, 2/red, 3/blue, 4/red}
    \fill[color=\y] (\x,0) rectangle +(1,1);

\end{tikzpicture}
\end{document}

答案2

稍微不同的方法:

  • 你不需要color=在填充命令中

  • 也许一个循环同时计算另一个变量更简单


\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\foreach \y [count=\x] in {blue, red, blue, red} {
  \fill[\y] (\x,0) --++ (1,0) --++ (0,1) --++ (-1,0) --cycle;
}

\end{tikzpicture}
\end{document}

相关内容