当我想打印其中一页已转换为横向格式的 PDF 时,我遇到了一些问题。
在 PDF 中,我将其中一页转换为横向格式,以便于阅读图像(请注意,图像在twoside
模式下朝外)。在 PDF 查看器上,我得到了以下结果,这与我的预期一致:
我不知道是不是我的打印机设置错误,但可以解决这个问题吗?我不知道 PDF 格式是如何工作的,但是否可以在 PDF 中指示横向打印页面的方向?
这是一个MWE(部分代码来自:如何使双面书籍的横向模式正确旋转?):
\documentclass{book}
\usepackage{mwe, pdflscape, lipsum}
\makeatletter % From : https://stackoverflow.com/questions/4982219/how-to-make-landscape-mode-rotate-properly-in-a-twoside-book
\global\let\orig@begin@landscape=\landscape%
\global\let\orig@end@landscape=\endlandscape%
\gdef\@true{1}
\gdef\@false{0}
\gdef\landscape{%
\global\let\within@landscape=\@true%
\orig@begin@landscape%
}%
\gdef\endlandscape{%
\orig@end@landscape%
\global\let\within@landscape=\@false%
}%
\@ifpackageloaded{pdflscape}{%
\gdef\pdf@landscape@rotate{\PLS@Rotate}%
}{
\gdef\pdf@landscape@rotate#1{}%
}
\let\latex@outputpage\@outputpage
\def\@outputpage{
\ifx\within@landscape\@true%
\if@twoside%
\ifodd\c@page%
\gdef\LS@rot{\setbox\@outputbox\vbox{%
\pdf@landscape@rotate{-90}%
\hbox{\rotatebox{90}{\hbox{\rotatebox{180}{\box\@outputbox}}}}}%
}%
\else%
\gdef\LS@rot{\setbox\@outputbox\vbox{%
\pdf@landscape@rotate{+90}%
\hbox{\rotatebox{90}{\hbox{\rotatebox{0}{\box\@outputbox}}}}}%
}%
\fi%
\else%
\gdef\LS@rot{\setbox\@outputbox\vbox{%
\pdf@landscape@rotate{+90}%
\hbox{\rotatebox{90}{\hbox{\rotatebox{0}{\box\@outputbox}}}}}%
}%
\fi%
\fi%
\latex@outputpage%
}
\makeatother
\begin{document}
\chapter{My chapter}
\section{My section}
\lipsum[1-12]
\begin{landscape}
\includegraphics{example-image}
\end{landscape}
\lipsum[1-5]
\end{document}
答案1
lscape 包的横向环境适用于较长的文本,因此它始终逆时针旋转。使用您的代码,您试图更改此设置,但这会创建一个上下颠倒的页面,因此打印机正在执行正确的操作。
如果您想要交替旋转,旋转包中的 sidewaysfigure 通常更好(但我同意评论,如果图像总是旋转到同一侧,阅读起来会更舒服,因为这样只需要朝一个方向转动书本)。然后,您可以使用新 pdfmanagement 中的命令在 pdf 查看器中设置旋转(这需要最新的 latex!)
\DocumentMetadata{} %load pdfmanagement
\documentclass{book}
\usepackage{lipsum}
\usepackage{rotating}
\usepackage{refcount}
\begin{document}
\chapter{My chapter}
\section{My section}
\lipsum[1-12]
\begin{sidewaysfigure}
\ExplSyntaxOn
\label{fig:1}
\int_if_odd:nTF {\getpagerefnumber{fig:1}}
{\pdfmanagement_add:nnn {ThisPage} {Rotate} {90}}
{\pdfmanagement_add:nnn {ThisPage} {Rotate} {-90}}
\ExplSyntaxOff
\includegraphics{example-image}
\end{sidewaysfigure}
\begin{sidewaysfigure}
\ExplSyntaxOn
\label{fig:2}
\int_if_odd:nTF {\getpagerefnumber{fig:2}}
{\pdfmanagement_add:nnn {ThisPage} {Rotate} {90}}
{\pdfmanagement_add:nnn {ThisPage} {Rotate} {-90}}
\ExplSyntaxOff
\includegraphics{example-image}
\end{sidewaysfigure}
\lipsum[1-5]
\end{document}