pgfpages 中断 tikzeexternalize

pgfpages 中断 tikzeexternalize

我使用 tikz externalize 来加速创建用于讲座的大型 beamer 演示文稿。这种方法效果很好,但如果我使用 pgfpages 将 2 张幻灯片收集到一张 a4 纸上作为讲义,则外部化图形会损坏,因为 pgfpages 设置也应用于它们。请参见此示例:(您需要一个graphics子文件夹)

文件内容:

\usepackage{tikz}
\usetikzlibrary{external}

\tikzexternalize[only named=true,
  mode=list and make,
  up to date check=md5,
  prefix={graphics/}
]

\begin{document}
\begin{frame}
  \tikzsetnextfilename{foo}
  \begin{tikzpicture}
    \draw node (){X};
  \end{tikzpicture}
\end{frame}
\end{document}

投影仪幻灯片文件:

\documentclass[]{beamer}
\input{data}

讲义文件:

\documentclass[handout]{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
\input{data}

要重现,首先创建幻灯片并检查图形子文件夹中创建的 pdf,然后删除它并创建讲义版本,然后生成的图形是 a4 格式,因此在包含错误缩放比例时。

我不确定是否有办法解决这个问题,或者这是否应该被视为一个错误。

答案1

现在我的解决方法是首先创建幻灯片版本,然后创建具有正确缩放比例的所有外部文件,然后创建讲义而不构建图形,因为它们已经存在。

但是,为了更新一张图形并创建讲义,我总是必须制作两个文档才能获得正确的图形。

使用如下 makefile:

hand.pdf: hand.tex data.tex beam.pdf
    latexmk -pdf hand.tex
beam.pdf: beam.tex data.tex
    ${PDFLATEX} --shell-escape beam.tex
    ${MAKE} -f beam.makefile
    latexmk -pdf beam.tex

因此,我将讲义的依赖项设置为包含幻灯片。但我认为外部化机制应该对 pgfpages 更加强大。

相关内容