如何删除 TikZ 中云内的白色空间?

如何删除 TikZ 中云内的白色空间?

我正在尝试制作一个包含围绕一组图像绘制的云的图形。我目前拥有的代码是:

\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}
};

这会产生以下结果:

TikZ 云

对我来说,留白太多了。我更喜欢云的线条刚好接触到其中的人物。根据在这里回答,我应该使用 inner sep=0cm。但是图形周围的空白仍然存在。

我需要的是围绕一组图形绘制的 png 格式云。我需要做什么才能得到更小的云(空白更少)。

答案1

inner sep可以有负值。因此,您可以使用它来调整形状相对于图像的大小。但是,正如 percusse 在评论中指出的那样,负值inner sep可能会导致严重的重叠和边界框计算错误,如果绘图中有其他内容,则可能会出现这种情况。还要注意嵌套tikzpictures 通常容易导致问题(参见1 2 3 4 5),但在本例中它可以正常工作。

更好的方法是使用fit库,正如我在此处展示的那样,这样可以避免嵌套的tikzpictures。这样做的好处还在于不需要对 进行太大的调整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}

在此处输入图片描述

相关内容