我正在处理一个文档,该文档包含多个横向模式的页面。我确实意识到管理文档有不同的方法 - 例如,使用带有旋转包的横向表格 - 但我做想要使用 pdflscape 包的横向模式。在横向模式下,PDF 中的页面实际上会改变方向 - 这将使绝大多数读者更容易阅读,因为文本将以正确的读者(可能也是该文档的绝大多数读者,因为很少有人会将其打印出来)无法理解。我遇到的问题是页码被翻转了 - 页码出现在顶部打印时,页码位于文档的顶部,而不是底部。在文档本身中不容易看到这一点;但是,打印时,页码的方向不正确,因为它们位于页面的顶部,而不是底部。页码应该出现在横向页面的 2/4 侧,而不是 1/3 侧。有没有什么办法可以解决这个问题?我更愿意将页面设置为横向,以便在线阅读的人更容易阅读。
%% LyX 2.0.7 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage{pdflscape}
\usepackage{rotating}
\makeatother
\usepackage{babel}
\begin{document}
Test 1 2 3.
\pagebreak{}
\begin{landscape}%
\begin{tabular}{|c|c|}
\hline
1 & 2\tabularnewline
\hline
\hline
3 & 4\tabularnewline
\hline
\end{tabular}\end{landscape}
\pagebreak{}
\begin{sidewaystable}%
\begin{tabular}{|c|c|}
\hline
1 & 2\tabularnewline
\hline
\hline
3 & 4\tabularnewline
\hline
\end{tabular}\end{sidewaystable}
\end{document}
答案1
Tikzpagenodes 被 pdflandscape 搞糊涂了,所以我不得不用困难的方式来做这件事。
\documentclass{article}
\usepackage{pdflscape}
\usepackage{tikz}
\begin{document}
Test 1 2 3.
\pagebreak{}
\begin{landscape}%
\thispagestyle{empty}
\begin{tikzpicture}[overlay]
\node[above] at (.5\linewidth,-\textwidth-\footskip) {\thepage};
\end{tikzpicture}
\begin{tabular}{|c|c|}
\hline
1 & 2\\
\hline
\hline
3 & 4\\
\hline
\end{tabular}
\end{landscape}
\end{document}
以下是使用 everypage 的更通用的解决方案:
\documentclass[english]{article}
\usepackage{pdflscape}
\usepackage{graphicx}
\usepackage{everypage}
\usepackage{lipsum}
\newlength{\hfoot}
\newlength{\vfoot}
\AddEverypageHook{\ifdim\textwidth=\linewidth\relax
\else\setlength{\hfoot}{-\topmargin}%
\addtolength{\hfoot}{-\headheight}%
\addtolength{\hfoot}{-\headsep}%
\addtolength{\hfoot}{-.5\linewidth}%
\ifodd\value{page}\setlength{\vfoot}{\oddsidemargin}%
\else\setlength{\vfoot}{\evensidemargin}\fi%
\addtolength{\vfoot}{\textheight}%
\addtolength{\vfoot}{\footskip}%
\raisebox{\hfoot}[0pt][0pt]{\rlap{\hspace{\vfoot}\rotatebox[origin=cB]{90}{\thepage}}}\fi}
\begin{document}
\noindent Test 1 2 3.
\pagebreak{}
\begin{landscape}%
\pagestyle{empty}
\lipsum[1-8]
\end{landscape}
\pagestyle{plain}
\end{document}
据我所知,pdflscape 使用相同的边距,只是旋转了 90^\circ。上边距实际上是左边距,右边距实际上是上边距,依此类推。