\pdfpageheight 在 XeTeX 中不起作用?

\pdfpageheight 在 XeTeX 中不起作用?

XeTeX 参考手册说这个引擎理解\pdfpageheight\pdfpagewidth。然而,它似乎忽略了在文档中间更改纸张大小的请求。考虑这个例子(来自https://www.tug.org/members/TUGboat/tb32-3/tb102veytsman-ebooks.pdf

\documentclass{article}
\usepackage{everyshi,lipsum}
\pagestyle{empty}
\textheight500cm
\pdfpageheight500cm
\EveryShipout{\pdfpageheight=\pagetotal
\advance\pdfpageheight by 2in
\advance\pdfpageheight by 2\topmargin
\advance\pdfpageheight by \footskip
\advance\pdfpageheight by \textheight
\advance\pdfpageheight by -\pagegoal}
\begin{document}

\lipsum[3-5]
\pagebreak

This line has a footnote\footnote{\lipsum[6-8]}.
\lipsum[1]

And this line too\footnote{\lipsum[12]}.
\pagebreak

\end{document}
  1. pdflatex按预期生成两个具有不同页面高度的页面。

  2. lualatex也很好用

  3. xelatexXeTeX, Version 3.1415926-2.3-0.9997.5 (TeX Live 2011)xdvipdfmx-0.7.8)产生两页相同高度(字母)的页面,即不是我想要的。

我的问题:

  1. 这是中的错误xetex吗?可能是中的xdvipdfmx,或者也许我做错了什么?

  2. 有没有什么解决方法——例如,使用 PostScript \specials 而不是\pdfpageheight

答案1

多么复杂的例子;-)。

默认情况下,两个长度在 xetex 中的值均为 0pt。如果您仅更改一个,xetex 将忽略它并恢复为默认值。因此,您还应该设置,\pdfpagewidth然后它才会起作用:

\documentclass{article}
\showthe\pdfpagewidth
\showthe\pdfpageheight
\begin{document}
\pdfpageheight10cm
\pdfpagewidth5cm
abc
\newpage
\pdfpageheight5cm
\pdfpagewidth15cm
cde
\end{document}

相关内容