xelatex 和 pgfpages 兼容性

xelatex 和 pgfpages 兼容性

我刚刚将讲座从 pdflatex 换成了 xelatex,以便利用该unicode-math软件包,这样我就可以更改所有数学的颜色。昨晚编译“讲义”版本时,我发现它没有像我预期的那样工作。我使用pgfpages软件包将讲义制作为 4 页文档(每个框架周围都有一个漂亮的框)以节省纸张。但生成的文档中的页面大小是一张幻灯片的大小,而不是一张完整的 a4 纸。谷歌搜索让我找到了一个快速修复拖船

\newlength\hackpaperwidth \hackpaperwidth210mm
\newlength\hackpaperheight \hackpaperheight297mm
\RequirePackage{everyshi}
\EveryShipout{%
 \special{papersize=\the\hackpaperwidth,\the\hackpaperheight}}

附有评论(来自作者):

这可能不是最干净的做事方式,所以如果有人有更好的想法和/或可以准确找到错误,欢迎发表评论。

没有后续评论,但日期是 2008 年 11 月。2009 年 6 月,xetex 邮件列表中出现了一个类似的问题,回复如下:

这是 pgfpages 中报告的一个问题(可能尚未修复)。使用它来告诉 pgfpages 如何在 XeLaTeX 中设置页面大小:

\renewcommand\pgfsetupphysicalpagesizes{%
    \pdfpagewidth\pgfphysicalwidth\pdfpageheight\pgfphysicalheight%
}

(这些是 Google 上搜索 的两个最热门搜索结果(链接自该列表)xelatex pgfpages

我的真实的问题是:这个问题会得到解决吗?但这不是一个好的 tex.SE 问题。因此,我尝试将其变成一个好问题:

上述第二种方法似乎更好。这是解决这个问题的最佳方法吗?

PS 第一个链接帖子中的 MWE 仍然适用:

\documentclass{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}[a4paper]
\begin{document}
\frame{\frametitle{A} foo}
\frame{\frametitle{B} bar}
\end{document}

答案1

使用选项 dvipdfm:

\documentclass[dvipdfm]{beamer}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}[a4paper]
\begin{document}
\frame{\frametitle{A} foo}
\frame{\frametitle{B} bar}
\end{document}

答案2

对于“这个问题能被解决吗?”这个问题的答案是是的。因为到目前为止,你的 MWE 对我来说工作正常。我不知道这个错误什么时候被修复了。

此外,该\renewcommand\pgfsetupphysicalpagesizes解决方法现在会产生意想不到的行为。物理页面被剪裁为正常幻灯片的尺寸,这意味着大部分讲义内容是不可见的。如果我将它应用于您的 MWE,我会得到一个形状像普通幻灯片(不是 A4)的页面,其中一个框架的右侧和底部边缘被切掉。

MWE 输出

我发现这个问题是因为我 2011 年编写的一个个人课程文件停止了工作,而这两行代码就是罪魁祸首。

相关内容