请原谅我可能幼稚的问题,我刚刚开始发现 Tikz 的潜力。为了简化某些操作,例如移动或转换对象,我想知道 Tikz 中是否有一种机制,可以对某些操作进行分组,并为该分组命名,并在对分组的整个对象集合进行操作时使用该名称。我的第一个猜测可能是范围会这样做。但看不出如何集体引用范围操作和/或对象。最好的类比,让我提一下,是 Power Point 中的分组操作。谢谢你的帮助。Artimess
答案1
你可以对 应用转换scope
,例如:
\begin{tikzpicture}
\begin{scope}[rotate=45]
\draw (-1,-1) rectangle (1,1);
\draw (0,0) circle (1);
\end{scope}
\end{tikzpicture}
[...]
您在环境开始时指定的任何参数和操作scope
都会应用于内部的每个命令scope
。
答案2
TikZ 3.0
引入了一个名为 的新概念pic
。可以将复杂的绘图命令包含在 中,pic
然后将其作为一个整体使用。Caramdir 的代码是一个小例子:
\documentclass[tikz,border=2mm]{standalone}
\tikzset{
mycomplexfigure/.pic = {
\draw (-1,-1) rectangle (1,1);
\draw (0,0) circle (1);
}
}
\begin{document}
\begin{tikzpicture}
\path (1,3) pic{mycomplexfigure};
\path[red,rotate=45,transform shape] (2,1) pic{mycomplexfigure};
\end{tikzpicture}
\end{document}
更多示例.pic
:
答案3
tikzpicture 环境可以嵌套。它们的行为类似于作用域环境,并支持参数的可选参数。例如,\begin{tikzpicture}[scale=0.5, transform shape] ... \end{tikzpicture}
可以在父 tikzpicture 环境中使用。