I have some Tikz figures which I use in multiple other figures. Right now I put them in a scope and use xshift/yshift/scale to place them at the position I want them to be. I have one example. I need a figure in a LaTeX document which has a \linewidth of 336pt, thus I want to work on my picture with this width in mind. I start by creating a frame of the desired width and scale. Next I want some boxes in it with some content. One of the boxes contains a stickman which I use in other figures as well. My current solution looks like this:
Here is one example:
\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[node distance=0pt] % Stickman \begin{scope}[xshift=38pt, yshift=105pt, anchor=sout west, scale=0.45,local bounding box=person] \draw[thin, line cap=round] (0.05,1) -- (-0.05, 1.1); % hair1 \draw[thin, line cap=round] (-0.05,1) -- (-0.2, 1.12); % hair1 \draw[thick] (0,0) circle [radius=1]; % head \draw[thin] plot [smooth,tension=1.5] coordinates{(-0.7,0.45) (-0.5,0.52) (-0.4,0.52)}; % leyebrow \draw[fill=black] (-0.5,0.25) ellipse (0.1 and 0.15); \draw[thin] plot [smooth,tension=1.5] coordinates{(0.3,0.40) (0.1,0.50) (-0.1,0.50)}; % leyebrow \draw[fill=black] (0.1,0.20) ellipse (0.1 and 0.15); \draw[thick] plot [smooth,tension=1.5] coordinates{(-0.75,-0.4) (-0.2,-0.6) (0.3,-0.53)}; % mouth \draw[thick] (-0.15,-1) .. controls (-0.4,-2.5) .. (-0.5,-4); % torso \draw[thick] (-0.2,-1.3) -- (0.35, -2.55) -- (1.5, -2.2); % rarm \draw[thick,rotate around={110:(1.5, -2.2)}] (1.5, -2.4) ellipse (0.1 and 0.2); \draw[thick] (-0.2,-1.3) -- (-1.55, -2.55) -- (-1.75, -4.1); % rarm \draw[thick,rotate around={-5:(-1.75, -4.1)}] (-1.75, -4.3) ellipse (0.1 and 0.2); \draw[thick] (-0.5,-4) -- (0.7, -5.3) -- (1.4,-6.8); % rleg \draw[thick,rotate around={25:(1.4,-6.8)}] (1.65,-6.8) ellipse (0.25 and 0.1); \draw[thick] (-0.5,-4) -- (-0.95,-5.8) -- (-2.3,-7); % rleg \draw[thick,rotate around={-35:(-2.3,-7)}] (-2.05,-7) ellipse (0.25 and 0.1); \end{scope} \tikzstyle{box}=[draw, very thick, minimum height=120pt] % box style % Stickman Box \node[box, anchor=south west, minimum width=60pt] (FrameInput) at (5pt, 5pt) {}; \node[above=of FrameInput] (xy) {Input}; % Second box \node[box, minimum width=120pt, right=of FrameInput, xshift=15pt] (FrameNextStep) {}; \node[above=of FrameNextStep] (xy) {NextStep}; % Box Connections \path[->, very thick] (FrameInput) edge (FrameNextStep); % Picture Frame \draw[thick] (0,0) rectangle (336pt, 150pt); % frame \end{tikzpicture} \end{document} This results in the following image: 
I just wonder if there are better ways to solve this. e.g. by specifying my stickman should have a max width / height which equals to the FrameInput box without manually tuning the scale parameter of the scope. The same applies for the x/y shift, is there a better / more elegant way for positioning it?
