可能重复:
我怎样才能修复投影机中跳跃的 TikZ 图片?
我正在使用 beamer 制作一系列幻灯片,并使用 tike 制作大部分图形。在一张特定的幻灯片上,我需要显示节点,然后再显示一些节点,然后显示它们之间的边。代码如下所示:
\begin{tikzpicture}[>=latex,text height=1.5ex,text depth=0.25ex]
\draw[help lines] (0,0) grid (10.5,7.5);
\tikzstyle{every node}=[draw,minimum size = .4cm,circle,draw=none,fill=red!30!white]
\tikzstyle{every path}=[solid,thick]
%% First species
\draw (3.7,2.2) node (a) {};
\draw (9.6,1.4) node (b) {};
\draw (6.6,6.6) node (c) {};
%% Second species
\draw <2-> (0.4,4.0) node [fill=blue!30!white] (d) {};
\draw <2-> (4.4,3.6) node [fill=blue!30!white] (e) {};
\draw <2-> (8.0,3.4) node [fill=blue!30!white] (f) {};
%% Third species
\draw <3-> (1.3,5.2) node [fill=green!30!white] (g) {};
\draw <3-> (4.5,6.4) node [fill=green!30!white] (h) {};
\draw <3-> (3.8,0.45) node [fill=green!30!white] (i) {};
%% Arrows
\path <4> [<->] (g) edge [bend right] (d);
\path <4> [<->] (g) edge [bend left] (e);
\path <4> [<->] (h) edge [bend left] (c);
\path <4> [<->] (e) edge [bend left] (a);
\path <4> [<->] (i) edge [bend left] (a);
\path <4> [<->] (i) edge [bend right] (f);
\path <4> [<->] (b) edge [bend right] (f);
\path <4> [<->] (e) edge [bend left] (f);
\path <4> [<->] (e) edge [bend right] (h);
\path <4> [<->] (f) edge [bend right] (c);
\end{tikzpicture}
我的问题是,当我删除帮助线时,图形在每次转换之间都会改变幻灯片上的位置,这确实不是我所期望的。我找到了一种快速而粗略的方法来解决draw=none
帮助线的问题,但如果这里有人遇到同样的问题,我想知道一种解决方法。
答案1
TikZ 尝试找到覆盖图片的最小矩形。Beamer 依次在每张幻灯片上运行 TikZ 图片以产生叠加效果。因此,当第一张图片中看不到节点时,tikz 会将图片的边界框缩小到前 3 个节点。这就是为什么会有这样的跳跃。
正如您所发现的,最简单的解决方法是不绘制线条或添加固定的边界框
\path[use as bounding box] (0,0) rectangle(10.5,7.5);
一开始,这样 tikz 就不会改变边界框。或者使用给出的解决方案我怎样才能修复投影机中跳跃的 TikZ 图片?