标题确实解释了一切,我想使用我已经定义的现有 .pic 来剪辑图片,因为我计划多次使用这个剪辑形状。
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\makeatletter
\tikzset{%
clipshape/.pic={\clip (-1,-1) rectangle (1, 1);} %just a rectangle here, but typically a more complex shape.
}%
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{scope}
\pic {clipshape};
\fill (0,0) circle (1.1);
\end{scope}
\end{tikzpicture}
\end{document}
显然,这样做的最终结果将是一个侧面被部分切断的黑色圆圈。MWE 确实编译了,但没有出现剪辑。我使用图片的方式正确吗?还是我必须做一些更复杂的事情?
答案1
这里有两个例子:一个使用path picture
,另一个使用标准clip
。
\documentclass[border=7pt]{standalone}
\usepackage{tikz}
\tikzset{
clipshape 1/.pic={\path[path picture={#1}] (-1,-1) rectangle (1, 1);},
clipshape 2/.pic={\clip (-1,-1) rectangle (1, 1);#1}
}
\begin{document}
\begin{tikzpicture}
\pic at (0,0) {clipshape 1={\fill[green] (0,0) circle (1.1);}};
\pic at (3,0) {clipshape 2={\fill[red] (0,0) circle (1.1);}};
\end{tikzpicture}
\end{document}