我正在处理一份包含几页文本和一系列整页图表的文档。由于图表比正常文本宽度大,我使用软件包geometry
的\newgeometry
命令更改了它们所在页面的边距。到目前为止一切顺利。
当我尝试使用软件包为文档添加精美的页眉和页脚时,问题就出现了fancyhdr
。我的精美页面样式(与 LaTeX 的默认页面样式不同)不会进行调整\newgeometry
:页眉会移动以适应新的左边距,但不会改变其宽度以达到右边距。
以下示例应该可以说明我的意思。第一页具有花哨的页面样式,但没有\newgeometry
。第二页调用\newgeometry
,花哨的页面样式没有调整。第三页具有相同的页面样式\newgeometry
,但使用非花哨的页面样式;请注意,在这种情况下,页眉确实一直延伸到右边距。
\documentclass{article}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\lhead{Fancy page style} \chead{} \rhead{}
\lfoot{} \cfoot{} \rfoot{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
\begin{document}
\lipsum[1-5]
\clearpage
\newgeometry{left=1.5cm, right=1.5cm}
\lipsum[1-5]
\clearpage
\thispagestyle{headings}
\lipsum[1-5]
\end{document}
我尝试了所有能想到的方法,包括在声明后定义我的花式页面样式\newgeometry
,但行为仍然相同。有什么方法可以将花式页眉放在边距已更改的页面上吗?
答案1
解决方法是使用\fancyhfoffset
after \newgeometry
,这样宽度就会重新计算,例如
\newgeometry{left=1.5cm, right=1.5cm}
\fancyhfoffset[E,O]{0pt}
在我添加\fancyhfoffset[E,O]{0pt}
您的代码后,页眉和页脚都会调整到新的边距。