对于更大的投影仪演示,我有一堆(TikZ)动画(见这里提供一些背景信息)。为了加快编译速度,我想从\usetikzlibrary{external}
我的序言中获得一些帮助。
现在的问题是,我还有相当大尺寸的电影(来自旋转样本,演示在微断层扫描上),我通过它加载\animategraphics[every=\everyframe]{25}{frame}{000}{500}
(我定义了一个变量\everyframe
,有助于加快这些电影的编译速度以供预览)。这些电影通过将它们封装在一个居中节点中对齐在帧的中心,如下所示
\begin{frame}{Visualization}
\begin{tikzpicture}[remember picture,overlay]%
\node at (current page.center){%
\animategraphics[autoplay,palindrome,width=\paperwidth,every=\everyframe]{25}{./movies/scan/visualization/lung}{000}{473}%
};%
\end{tikzpicture}%
\end{frame}
现在在我看来,使用TikZ\usetikzlibrary{external}
并将电影对齐到页面current page.center
是相互排斥的。如果我将动画外部化,那么电影就不会在页面中心对齐。如果我不将动画外部化,编译文档通常需要很长时间。
有没有一种鱼与熊掌兼得的方法,例如外部化动画并将电影对齐到页面中心?
我看过这个问题和答案这里它处理所需的编译次数,但我思考我无法将动画放在单独的 PDF 文件中,因为它们是 PNG 帧,需要加载\animagegraphics
。这也使得提供良好的 MWE 变得困难
顺便说一句 1:我知道这些都只是表面文章,在站在学生面前之前最后运行一次就可以解决所有问题。尽管如此,我还是希望能够以最短的编译时间对我的演讲进行良好的预览。
BTW2:可以找到演示文稿的当前状态它的 GitHub 存储库如下。
答案1
浏览 TikZ 手册部分“外部图形”时,我发现了这一点:
/tikz/external/export={boolean}
(无默认值,最初为真)一个布尔值,可用于禁用当前 TeX 范围内所有图片的导出机制。
因此,为了免除某些tikzpicure
环境的外部化,例如用于将动画位图置于页面中心的环境,您只需要:
\begin{frame}{Visualization}
{%
\tikzset{external/export=false}%
\begin{tikzpicture}[remember picture,overlay]%
\node at (current page.center){%
\animategraphics[autoplay,palindrome,width=\paperwidth,every=\everyframe]{25}{./movies/scan/visualization/lung}{000}{473}%
};%
\end{tikzpicture}%
}
\end{frame}
顺便提一句,将 frame 选项[c]
和centering
环境结合起来,可以实现类似的效果,即垂直和水平居中内容,但花费的精力更少:
\begin{frame}[c]{Visualization}
\begin{centering}
\animategraphics[autoplay,palindrome,width=\paperwidth,every=\everyframe]{25}{./movies/scan/visualization/lung}{000}{473}%
\par%
\end{centering}
\end{frame}