我如何通过循环获得以下内容?
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[fill=green!20!black] (0,0) rectangle (1,1);
\draw[fill=green!40!black] (0,1) rectangle (1,2);
\draw[fill=green!60!black] (0,2) rectangle (1,3);
\draw[fill=green!80!black] (0,3) rectangle (1,4);
\end{tikzpicture}
\end{document}
我以为会是这样
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i in {1,2,3,4}
\draw[fill=green!{\i*20}!black] (0,{\i-1}) rectangle (1,\i);
\end{tikzpicture}
\end{document}
但这不起作用。我该如何修复它?
答案1
不会!<factor>!
通过 PGF 数学解析器发送(与坐标不同),因此您无法在其中放置表达式。幸运的是,您可以使用循环evaluate
上的键foreach
来实现相同的目的:
\documentclass{standalone}
%\url{https://tex.stackexchange.com/q/700197/86}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach[evaluate=\i as \tint using \i*20] \i in {1,2,3,4}
\draw[fill=green!\tint!black] (0,{\i-1}) rectangle (1,\i);
\end{tikzpicture}
\end{document}
得出的结果为: