![有没有办法旋转 XeLaTeX 中的所有页面?](https://linux22.com/image/236473/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E6%97%8B%E8%BD%AC%20XeLaTeX%20%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E9%A1%B5%E9%9D%A2%EF%BC%9F.png)
我知道有一个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%。