我使用 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 更加强大。