有没有办法旋转 XeLaTeX 中的所有页面?

有没有办法旋转 XeLaTeX 中的所有页面?

我知道有一个landscape命令可以设置水平页面,但这不是我想要的。我的目的是用 排版垂直 CJK XeLaTeX。一般方法是使用\rotatebox{-90}获取框中的垂直段落。它适用于一页中的单个段落;缺点是它不能处理更复杂的情况,例如多页。我想知道是否有办法旋转所有页面?

答案1

\documentclass[nofonts]{ctexart}
\newfontlanguage{Chinese}{CHN}
\setCJKmainfont[Script=CJK,Language=Chinese,Vertical=RotatedGlyphs]{SimSun}

% rotate the page
\usepackage{everypage}
\AddEverypageHook{\special{pdf: put @thispage <</Rotate 90>>}}

\begin{document}
帝高陽之苗裔兮,朕皇考曰伯庸。
\end{document}

顺便说一句,你最好在CTeX 论坛。对我来说,在这里回答你的问题很奇怪。

答案2

pgfpages捆绑包中的软件包可以实现这pgf一点。不幸的是,漏洞在 2.10 版本中。有一个简单修复但是,你可以像这样修补:

792a793,801
> % MPL 2011-04-20 08:04:45
> % patch to fix bug in rotation.  See
> % http://old.nabble.com/pgfpages-and-rotation-tt26508856.html#a26508856
> %        \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname\relax%
> %           \pgfscope%
> %        \else%
> %          \pgflowlevel{\pgftransformrotate{\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname}}%
> %        \fi%
>         \pgfscope%
794d802
<           \pgfscope%

(唯一实质性的变化是将\pgfscope宏从内部移动\ifx...\fi到其之前。)

这是一个示例,可以了解其工作原理:

\documentclass{article}
\usepackage{lipsum} % just for dummy text
\usepackage{pgfpages}

\pgfpagesdeclarelayout{down}{}{%
  \pgfpagesphysicalpageoptions
  {%
    logical pages=1,%
    physical height=8.5in,
    physical width=11in
  }
  \pgfpageslogicalpageoptions{1}
  {%
    rotation=-90,
    center=\pgfpoint{0.5\pgfphysicalwidth}{0.5\pgfphysicalheight}%
  }%
}
\pgfpagesuselayout{down}

\begin{document}
\lipsum
\end{document}

一切都很顺利,直到我尝试使用 xelatex 进行编译,我发现物理页面大小没有改变。但我们已经完成了 90%。

相关内容