我想将相同的阴影应用于多个矩形。以下是我使用的代码的 MWE(针对 3 个矩形的示例):
\documentclass{article}
\usepackage[letterpaper,textwidth=8.5in,textheight=11in]{geometry}
\usepackage{lscape}
\usepackage{tikz}
\usetikzlibrary{fadings}
\begin{document}
\pagestyle{empty}
\begin{landscape}
\begin{figure}
\centering
\begin{tikzpicture}[scale=1]
\coordinate(A) at (1.5,4);
\foreach \x in {0,1,2}
\shadedraw [thick, left color=white, right color=black] (A) ++(6*\x,0) rectangle +(1,-0.35);
\end{tikzpicture}
\end{figure}
\end{landscape}
\end{document}
尽管如此,我通过这段代码得到了以下结果:
只有第一个矩形是阴影...我该如何解决这个问题?
答案1
这确实相当深奥,但该操作(A) ++(x,y)
实际上是将算作(A)
路径的一部分,而您看到的是整个褪色条带被打孔并通过 3 个孔查看。因为即使您没有在中间绘制任何东西,它们实际上也会(A)
考虑褪色。
您可以通过([xshift=6*\x cm]A)
或使用 calc 库语法($(A)+(6*\x,0)$)
等来修复它。只要您不修改路径 pen,就可以了。
答案2
只是玩玩...
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{fadings}
\begin{document}
\begin{tikzpicture}
\coordinate(A) at (1.5,4);
\foreach \x in {0,1,2}
\shadedraw [thick, left color=white, right color=black] (A) ++(6*\x,0) rectangle +(1,-0.35);
\coordinate(b0) at (-4.5,2);
\path [draw, thick, left color=white, right color=black] foreach \x [count=\i] in {0,1,2} {(b\x |- b0) ++(6,0) coordinate (b\i) rectangle ++(1,-0.35)};
\coordinate(C) at (1.5,0);
\foreach \x [count=\i] in {0,1,2}
\shadedraw [thick, left color=white, right color=black] ([xshift=6*\x cm]C) rectangle +(1,-0.35);
\coordinate(D) at (1.5,-2);
\foreach \x in {0,1,2}
\path (D) ++(6*\x,0) node [minimum height=3.5mm, minimum width=10mm, inner sep=0pt, anchor=north west, thick, draw, left color=white, right color=black] {};
\end{tikzpicture}
\end{document}