这个问题已经有人问过了(如何将某些页面更改为横向/纵向模式),但正如评论所说,给出的解决方案将页码放在其中一侧,并旋转 90°:
\usepackage{pdflscape}
...
\begin{landscape}
...
\end{landscape}
我认为如果您实际打印了这些内容,这可能是合乎逻辑的,因为这样您就可以将其与纵向页面堆叠在一起,这样您就可以在相同的物理位置上显示页码,但在显示器上查看时会非常混乱。有没有办法将页码放在页面底部?
答案1
困难的方法是使用:
\documentclass{article}
\usepackage{pdflscape}
\usepackage{everypage}
\usepackage{lipsum}
\newcommand{\Lpagenumber}{\ifdim\textwidth=\linewidth\else\bgroup
\dimendef\margin=0 %use \margin instead of \dimen0
\ifodd\value{page}\margin=\oddsidemargin
\else\margin=\evensidemargin
\fi
\raisebox{\dimexpr -\topmargin-\headheight-\headsep-0.5\linewidth}[0pt][0pt]{%
\rlap{\hspace{\dimexpr \margin+\textheight+\footskip}%
\llap{\rotatebox{90}{\thepage}}}}%
\egroup\fi}
\AddEverypageHook{\Lpagenumber}%
\begin{document}
\begin{landscape}
\pagestyle{empty}%
\lipsum[1]
\newpage
\noindent\rule{\linewidth}{\textheight}% fill text area
\end{landscape}
\pagestyle{plain}%
\lipsum[2]
\end{document}
再次,这也适用于多页。
注意,页面钩子在格式化页面之后、页码递增之前运行。此时“光标”位于左上角下方 1 英寸处和右侧 1 英寸处,并且不能移动。
答案2
最简单的方法是使用
\begin{landscape}
\thispagestyle{empty}
....
\vfill
\raisebox{-??}{\makebox[\linewidth]{\thepage}}
\end{landscape}
调整提升框的数量,使其“目测”地位于通常用于左边距的空间中。
请注意\thepage
,这里是“安全的”,因为它landscape
会强制分页,\clearpage
因此您不会遇到文档中无法得知页码引用的常见问题。
答案3
对于需要在底部显示“横向页码”的独立页面,我喜欢 David Carlisle 的方法,但无法使其发挥作用。(\raisebox
对我来说似乎没有效果,似乎移位被吸收了\vfill
。)以下是我为使该想法发挥作用而定义的:
\def\fillandplacepagenumber{%
\par\pagestyle{empty}%
\vbox to 0pt{\vss}\vfill
\vbox to 0pt{\baselineskip0pt
\hbox to\linewidth{\hss}%
\baselineskip\footskip
\hbox to\linewidth{%
\hfil\thepage\hfil}\vss}}
使用该定义,现在可以放置“横向页码”,如下所示:
% Preamble needs: \usepackage{pdflscape}
\begin{landscape}
Landscape content.
\fillandplacepagenumber
\end{landscape}
对于连续的几个横向页面,可以重复上面显示的块的单独副本,或者也可以执行以下操作:
% Preamble needs: \usepackage{pdflscape}
\begin{landscape}
Landscape content.
\fillandplacepagenumber
\newpage
More landscape content.
\fillandplacepagenumber
\end{landscape}
可能存在一种针对 David Carlisle 的方法的简单修复方法,因此它将是一个比这里显示的\raisebox
混乱更简单(且更像 LaTeX)的解决方案。\fillandplacepagenumber