我正在使用 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}