帮助 fancyhdr 自定义页面大小

帮助 fancyhdr 自定义页面大小

我正在使用 fancyhdr 编写页眉和页脚报告。我的报告大部分是 A4 页面,但有些页面可能需要容纳更大的表格和图像,因此我在文档中途手动更改了 pdf 页面尺寸。但是,每次我更改页面尺寸时,fancyhdr 都会将页眉行应用为与 A4 页面相同的长度,而带有页码的页脚行则完全消失。

这只是从我的主要报告中复制的一部分代码,带有填充文本,但它应该可以说明我遇到的问题:

\documentclass{article}
\usepackage[a4paper,width=160mm,top=25mm,bottom=25mm]{geometry}
\usepackage{fancyhdr}

\pagestyle{fancy}

\begin{document}

\fancyhf{}
\renewcommand{\sectionmark}[1]{\markright{#1}} % 
\renewcommand{\headrulewidth}{0.5pt} % Thickness
\renewcommand{\subsectionmark}[1]{}
\renewcommand{\footrulewidth}{0.5pt} % Thickness
\fancyhead[L]{test 1}
\fancyhead[R]{\rightmark}
\fancyfoot[L]{test 3}
\fancyfoot[C]{}
\fancyfoot[R]{\thepage}

\pdfpagewidth=8.25in \pdfpageheight=11.75in
\section{test 1}
Page 1

\newpage
\pdfpagewidth=15in \pdfpageheight=10in
\section{Test 2}
Page 2

\newpage
\pdfpagewidth=8.25in \pdfpageheight=11.75in
\section{Test 3}
Page 3

\end{document}

因此,从上面的代码来看,第 1 页和第 3 页的页眉和页脚工作正常,但第 2 页更大,尺寸不同。如何让 fancyhdr 页眉和页脚自动调整到页面尺寸?我希望宽度自动调整,但页眉和页脚与边距的高度在所有页面上保持不变。

我是否应该以不同的方式更改纸张尺寸,而不是使用 \pdfpaperwidth 或 \pdfpaperheight,或者可能使用不同的包?我理想情况下希望坚持使用 fancyhdr,但任何帮助都非常感谢。

答案1

事实上,如果你设置\pdfpagewidth\pdfpageheight,然后使用\newgeometry适当的参数调用,它将选择新的页面大小。这没有记录,所以它可能被认为是棘手的。

fancyhdr使用新的\textwidth,只需使用\fancyhfoffset{0pt},它会根据当时的当前情况对每一页进行fancyhdr重新计算。\headwidth\textwidth

\documentclass{article}
\usepackage[a4paper,width=160mm,top=25mm,bottom=25mm]{geometry}
\usepackage{fancyhdr}

\pagestyle{fancy}
\usepackage{lipsum}

\begin{document}

\fancyhf{}
\renewcommand{\sectionmark}[1]{\markright{#1}} % 
\renewcommand{\headrulewidth}{0.5pt} % Thickness
\renewcommand{\subsectionmark}[1]{}
\renewcommand{\footrulewidth}{0.5pt} % Thickness
\fancyhead[L]{test 1}
\fancyhead[R]{\rightmark}
\fancyfoot[L]{test 3}
\fancyfoot[C]{}
\fancyfoot[R]{\thepage}
\fancyhfoffset{0pt}

\section{test 1}
Page 1

\lipsum[1]
\newpage

\pdfpagewidth=15in \pdfpageheight=10in
\newgeometry{textwidth=13in, textheight=8in,top=25mm,left=25mm}
\section{Test 2}
Page 2

\lipsum[2]
\newpage
\pdfpagewidth=8.25in \pdfpageheight=11.75in
\newgeometry{margin=25mm}
\section{Test 3}
Page 3

\lipsum[3]
\end{document}

在此处输入图片描述

相关内容