Forgive me for my perhaps naive questions, I am beginning to discover Tikz potentials. To ease certain operations as moving objects or transforming them, I want to know if there is a mechanism in Tikz that I can group certain operations and give a name to this grouping and use that name in doing operations on the whole collection of objects that are grouped. My first guess was perhaps scope will do this. But could not see how I can refer collectively to the scoped operations and/or objects. The best analogy, for give me to mention it, is the grouping operation in Power Point. Thanks for your help. Artimess
-
Since you have some responses below that seem to answer your question, please consider marking one of them as ‘Accepted’ by clicking on the tickmark below their vote count (see How do you accept an answer?). This shows which answer helped you most, and it assigns reputation points to the author of the answer (and to you!). It's part of this site's idea to identify good questions and answers through upvotes and acceptance of answers.– BobyandbobNov 13, 2017 at 23:23
3 Answers
You can apply transformations to a scope
, like for example:
\begin{tikzpicture}
\begin{scope}[rotate=45]
\draw (-1,-1) rectangle (1,1);
\draw (0,0) circle (1);
\end{scope}
\end{tikzpicture}
Whatever parameters and operations you specify in the [...]
at the beginning of the scope
environment is applied to every command inside the scope
.
-
1I do not think that it answers OP's question. The scope is not named - no possibility to reuse it later. Jun 2, 2014 at 7:49
TikZ 3.0
introduced a new concept called pic
. It's possible to include complex drawing commands inside a pic
and later use it as a whole. A little example with Caramdir's code:
\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}
Some more examples with .pic
:
tikzpicture envionments can be nested. They behave like scope environments and support optional arguments for parameters. For instance, \begin{tikzpicture}[scale=0.5, transform shape] ... \end{tikzpicture}
could be used inside a parent tikzpicture environment.
-
I know that this works, but is it meant to work? I ask because in another question (which escapes me now), an answer was to nest tikz pictures but when I experimented then I found that the inner and outer pictures didn't properly know about each other (in particular, node names and co-ordinates couldn't be guaranteed to work). Aug 16, 2010 at 19:30
-
I used it but don't remember problems. But I wished also tikz matrices could be nested.– Stefan Kottwitz ♦Aug 16, 2010 at 20:06