我正在尝试制作一个包含围绕一组图像绘制的云的图形。我目前拥有的代码是:
\node [draw, cloud, cloud puffs=20, aspect=2, inner sep=0cm] (pathways)
{\begin{tikzpicture}
\node at (0,0) [inner sep = 0pt] (pathway) {\includegraphics[width=5cm]{png/WP716_74442.png}};
\node at (2,1) [inner sep = 0pt] (pathway2) {\includegraphics[width=4cm]{png/WP716_74442.png}};
\node at (1,2) [inner sep = 0pt] (pathway3) {\includegraphics[width=5cm]{png/WP716_74442.png}};
\node at (4,2) [inner sep = 0pt] (pathway4) {\includegraphics[width=5cm]{png/WP706_74443.png}};
\node [above left = of pathway2] (pathway5) {\includegraphics[width=4cm]{png/WP1591_73381.png}};
\end{tikzpicture}
};
这会产生以下结果:
对我来说,留白太多了。我更喜欢云的线条刚好接触到其中的人物。根据在这里回答,我应该使用 inner sep=0cm。但是图形周围的空白仍然存在。
我需要的是围绕一组图形绘制的 png 格式云。我需要做什么才能得到更小的云(空白更少)。
答案1
键inner sep
可以有负值。因此,您可以使用它来调整形状相对于图像的大小。但是,正如 percusse 在评论中指出的那样,负值inner sep
可能会导致严重的重叠和边界框计算错误,如果绘图中有其他内容,则可能会出现这种情况。还要注意嵌套tikzpicture
s 通常容易导致问题(参见1 2 3 4 5),但在本例中它可以正常工作。
更好的方法是使用fit
库,正如我在此处展示的那样,这样可以避免嵌套的tikzpicture
s。这样做的好处还在于不需要对 进行太大的调整inner sep
。例如,在此代码中,我能够使用inner sep=0pt
,我认为它足够接近。正如许多烹饪书中所说,“根据口味调味”。
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes,fit} % added fit library
\begin{document}
\begin{tikzpicture}
% draw the named nodes
\node (a) at (0,0) [inner sep = 0pt] {\includegraphics[width=5cm]{example-image-a}};
\node (b) at (4,1) [inner sep = 0pt] {\includegraphics[width=5cm]{example-image-b}};
% draw the cloud node, fitted to named nodes (a) and (b)
\node [draw, inner sep=0pt, cloud, cloud puffs=20, aspect=2,fit=(a) (b)] {};
\end{tikzpicture}
\end{document}