在横向模式下保持标题“在顶部”

在横向模式下保持标题“在顶部”

使用pdflscape和时fancyhdr,标题也会旋转。虽然在大多数情况下这是正常现象(尤其是当文档必须打印时),但我正在处理一份报告,它将绝不被打印出来,所以这种默认行为更令人讨厌。

以下是处理纵向和横向页面的文档的 MWE:

\documentclass[a4paper, 10pt]{article}
\usepackage{graphicx}
\usepackage{pdflscape}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage[left=2cm, right=2cm, bottom=2cm, top=2cm]{geometry}
\setlength{\headheight}{32pt}

\lhead{\includegraphics[scale=.5]{tt}\\Foo}
\rhead{\includegraphics[scale=.5]{tt}\\\thepage}
\cfoot{}

\fancypagestyle{customlandscape}{%
\fancyhf{}
\newgeometry{left=1cm, right=1cm, bottom=1cm, top=1cm}
% ??
}

\pagestyle{fancy}
\begin{document}

\lipsum[1-10]
\newpage

\pagestyle{customlandscape}
\begin{landscape}
    Here is the landscaped content, the header of this page should look like the rest...
\end{landscape}


\newpage
\pagestyle{plain}
\lipsum[1-10]
\end{document}

注意:您必须提供 2 张图片tt才能进行编译,对此我们深表歉意。因此,如果我们仔细观察,肖像页的标题如下所示:

肖像页

我怎样才能使我的横向页面看起来像这样?: 横向页面

目前,通过编译我的 MWE,您会注意到标题位于横向页面的右侧。

PS:这个 MWE 还有另一个问题,切换回纵向后,似乎我无法恢复默认的页面样式(带有标题中的图像)。

答案1

如果没有 lscap 包,你可以将页面格式更改为横向

\newpage

\paperwidth=\pdfpageheight
\paperheight=\pdfpagewidth
\pdfpageheight=\paperheight
\pdfpagewidth=\paperwidth

这里的问题是调整头宽长度

\documentclass[a4paper,10pt]{article}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage[left=2cm, right=2cm, bottom=2cm, top=2cm]{geometry}
\setlength{\headheight}{32pt}

\lhead{tt\\Foo}
\rhead{vv\\\thepage}
\cfoot{}

\pagestyle{fancy}
\begin{document}

\lipsum[1-10]

\newlength{\mtL}
\setlength{\mtL}{.8\paperheight}% the next hsize
\addtolength\mtL{-\headwidth}
\newpage
\addtolength\headwidth{\mtL}

%landsape
\pdfpageheight=\paperwidth
\pdfpagewidth=\paperheight
\paperwidth=\pdfpagewidth
\paperheight=\pdfpageheight

%text width and height
\begingroup 
\vsize=.8\pdfpageheight % do what you like
\hsize=.8\pdfpagewidth  % do what you like
\textwidth=\hsize
\textheight=\vsize
% you can specify the margins

\lipsum[1]

\endgroup
\newpage

\paperwidth=\pdfpageheight
\paperheight=\pdfpagewidth
\pdfpageheight=\paperheight
\pdfpagewidth=\paperwidth


\pagestyle{plain}
\lipsum[1-10]
\end{document}

编辑以获得更多页面样式{fancy}

\documentclass[a4paper,10pt]{article}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage[left=2cm, right=2cm, bottom=2cm, top=2cm]{geometry}
\setlength{\headheight}{32pt}

\lhead{tt\\Foo}
\rhead{vv\\\thepage}
\cfoot{}

\pagestyle{fancy}
\begin{document}

\lipsum[1-10]

\newlength{\mtL}
\setlength{\mtL}{.8\paperheight}% the next hsize
\addtolength\mtL{-\headwidth}
\newpage
\addtolength\headwidth{\mtL}

%landscape
\pdfpageheight=\paperwidth
\pdfpagewidth=\paperheight
\paperwidth=\pdfpagewidth
\paperheight=\pdfpageheight

%text width and height
\begingroup 
\vsize=.8\pdfpageheight % do what you like
\hsize=.8\pdfpagewidth  % do what you like
\textwidth=\hsize
\textheight=\vsize
% you can specify the margins

\lipsum[1-10]

\endgroup
\newpage
\addtolength\headwidth{-1\mtL}
\paperwidth=\pdfpageheight
\paperheight=\pdfpagewidth
\pdfpageheight=\paperheight
\pdfpagewidth=\paperwidth


\lipsum[1-20]

\pagestyle{plain}
\lipsum[1-10]
\end{document}

答案2

该代码运行得很好,但如果从纵向变为横向,页脚会在第一个横向页面上丢失,但会再次出现在后续页面上。

相关内容