\usetikzlibrary{external} 编译加速与通过 TikZ 的中心页面对齐不兼容?

\usetikzlibrary{external} 编译加速与通过 TikZ 的中心页面对齐不兼容?

对于更大的投影仪演示,我有一堆(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}

相关内容