目标
我创建了一个twoside
包含一些sidewaysfigure
页面的文档(使用包rotating
)。我希望这些页面在 PDF 查看器中旋转显示,而不会影响打印。它应该是一个可用于阅读和打印的 PDF 文件。
研究
- 具有不同目标的问题:如何将某些页面更改为横向/纵向模式
lscape
不太适合twoside
- 具有类似目标但没有打印方面的问题:查看时旋转单个 PDF 页面
- 奇数页:
\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 90}
- 偶数页:
\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 270}
- 奇数页:
当前方法
我创建了一个 MWE,其中第 3 页(奇数)上有一张图像,第 6 页(偶数)上有第二张图像。
平均能量损失
\documentclass[a4paper, 11pt, twoside]{scrbook}
\usepackage{lipsum}
\usepackage{rotating}
\newenvironment{mysidewayspage}{%
\clearpage%
\Ifthispageodd{%
\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 270}%
}{%
\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 90}%
}
}{%
\clearpage%
\global\pdfpageattr\expandafter{\the\pdfpageattr/Rotate 0}%
}
\begin{document}
\lipsum[1-8]
\begin{mysidewayspage}
\begin{sidewaysfigure}[htb]
\centering
\includegraphics[height=.6\textwidth, keepaspectratio]{example-image}
\caption{Example Image}
\end{sidewaysfigure}
\end{mysidewayspage}
\lipsum[5-15]
\begin{mysidewayspage}
\begin{sidewaysfigure}[htb]
\centering
\includegraphics[height=.6\textwidth, keepaspectratio]{example-image}
\caption{Example Image}
\end{sidewaysfigure}
\end{mysidewayspage}
\lipsum[16-20]
\end{document}
结果
结果在查看器(Adobe Reader)中正确显示。
打印问题
打印此页时(或查看 2 on 1 的预览),旋转后的奇数页 3 将正确排列:
但是旋转后的偶数页 6 是颠倒的:
问题
有没有一种解决方案,可以在 PDF 视图中仅以横向模式显示旋转的页面而不影响打印,以便一个 PDF 文件可以用于两种情况?
可能存在一些依赖于查看器的行为,但适用于默认查看器的解决方案会很好(尤其是 Adobe Reader)。
答案1
您正在堆积/旋转指令,并且您的某些页面现在甚至包含三个值/Rotate 90/Rotate 0/Rotate 270
。
设置旋转的正确方法是使用 PDF 管理(该命令设置标签,因此应该在侧面环境中)。
\DocumentMetadata{} %load PDF management
\documentclass[a4paper, 11pt, twoside]{scrbook}
\usepackage{lipsum}
\usepackage{rotating}
\ExplSyntaxOn
\newcommand\myrotate{%
\Ifthispageodd{%
\pdfmanagement_add:nnn{ThisPage}{Rotate}{90}
}{%
\pdfmanagement_add:nnn{ThisPage}{Rotate}{270}
}
}
\ExplSyntaxOff
\begin{document}
\lipsum[1-8]
\begin{sidewaysfigure}[htb]
\centering\myrotate
\includegraphics[height=.6\textwidth, keepaspectratio]{example-image}
\caption{Example Image}
\end{sidewaysfigure}
\lipsum[5-15]
\begin{sidewaysfigure}[htb]
\centering\myrotate
\includegraphics[height=.6\textwidth, keepaspectratio]{example-image}
\caption{Example Image}
\end{sidewaysfigure}
\lipsum[16-20]
\end{document}
但我无法告诉您您的打印机驱动程序是否能更好地处理这个问题。