我有以下代码
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10,
ticks=none}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{backgrounds,
calc,
patterns}
\begin{document}
\begin{tikzpicture}[scale=4, transform shape]
\tikzset{
myc/.pic={
\draw[line width=2mm] (0, 0) -| (2, 1) -| (1, 2) -| (2, 3) -| cycle;
}
}
\path (0,0) pic[fill=green] {myc} (1,3) pic[fill=blue] {myc} (2,6) pic[fill=blue] {myc};
\end{tikzpicture}
\end{document}
代码在以 开头的行中定义了图块的轮廓tikzset{
我想把这个图块放在不同的地方,并且用不同的颜色填充图块。上面的代码是实现这个目的的尝试之一,但是没有成功。
我得到的输出如下:
我最近才了解到这个tikzset
命令(感谢 TeXstackexchange),但对它并不了解。有人能帮我一下吗?如果可以的话,请提供参考。
答案1
只需使用pic actions
。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[scale=4, transform shape]
\tikzset{
myc/.pic={
\draw[line width=2mm,pic actions] (0, 0) -| (2, 1) -| (1, 2) -| (2, 3) -| cycle;
}
}
\path (0,0) pic[fill=green] {myc} (1,3) pic[fill=blue] {myc} (2,6) pic[fill=blue] {myc};
\end{tikzpicture}
\end{document}
答案2
你pic
可以有争论。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10,
ticks=none}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{backgrounds,
calc,
patterns}
\begin{document}
\begin{tikzpicture}[scale=4, transform shape]
\tikzset{
myc/.pic={
\draw[line width=2mm,fill=#1] (0, 0) -| (2, 1) -| (1, 2) -| (2, 3) -| cycle;
}
}
\path (0,0) pic {myc=red} (1,3) pic {myc=green} (2,6) pic {myc=blue};
\end{tikzpicture}
\end{document}