![在已经设置 fancyhdr 设置后,在序言中更改它们](https://linux22.com/image/255971/%E5%9C%A8%E5%B7%B2%E7%BB%8F%E8%AE%BE%E7%BD%AE%20fancyhdr%20%E8%AE%BE%E7%BD%AE%E5%90%8E%EF%BC%8C%E5%9C%A8%E5%BA%8F%E8%A8%80%E4%B8%AD%E6%9B%B4%E6%94%B9%E5%AE%83%E4%BB%AC.png)
我有一个“标准”序言(下面代码中我表示我真的不想改变的部分),我想重新使用它。但是,我想调整右边距一特定文档。更改 没有任何问题geometry
,修改放置在页眉中的文本也没有问题——一切都很好。但是,如何更改页眉文本的放置位置?
我希望“README”文本与文本边距右对齐 - 类似于不调整右边距 - 通过注释掉以下行:\geometry{right=1.0in}
当我尝试调整右边距时,我得到的右侧页眉和页脚页码仍然位于旧的边距位置:
笔记:
- 这并不是需要
newgeometry
在文档中进行中间调整的情况。整个文档都需要稍微调整设置。 - 这个问题页眉/页脚宽度问题 似乎暗示
fancyhdr
必须在几何设置后加载,但情况似乎并非如此,因为下面的 MWE 显示了geometry
加载fancyhdr
包后的设置。 - 一个显而易见的解决方案是将序言复制到新文件中并进行更改,或者在
\def
前面添加一个\begin{document}
并仅设置一次右边距,但如果可能的话,我宁愿避免这些类型的解决方案。
代码:
\documentclass{article}
\usepackage[showframe]{geometry}%
\usepackage{fancyhdr}
\usepackage{lipsum}
% ------------- Do not want to change this from here [------
\makeatletter%
\geometry{right=0.25in}%
\geometry{paperheight=3.5in}%
\geometry{paperwidth=8.5in}%
\geometry{showframe=true}%
%
\geometry{headsep=0.25in}
\geometry{headheight=14pt}
\let\ps@plain\ps@fancy%
%
\pagestyle{fancy}% <--- Removing this gives the desired output.
\fancyhead[R]{Don't READ}%
\fancyfoot[R]{Page \thepage}%
\makeatother%
% ------------- Do not want to change this to here ------]
% ------------- Only want to change below here
\makeatletter%
\geometry{right=1.0in}%
\let\ps@plain\ps@fancy%
%
\pagestyle{fancy}%
\fancyhead[R]{README}%
\fancyfoot[R]{Page \thepage}%
\makeatother%
\begin{document}
\lipsum[1]
\end{document}
答案1
您可以使用\fancyheadoffset
:
\documentclass{article}
\usepackage[showframe]{geometry}%
\usepackage{fancyhdr}
\usepackage{lipsum}
% ------------- Do not want to change this from here [------
\makeatletter%
\geometry{right=0.25in}%
\geometry{paperheight=3.5in}%
\geometry{paperwidth=8.5in}%
\geometry{showframe=true}%
%
\geometry{headsep=0.25in}
\geometry{headheight=14pt}
\let\ps@plain\ps@fancy%
%
\pagestyle{fancy}% <--- Removing this gives the desired output.
\fancyhead[R]{Don't READ}%
\fancyfoot[R]{Page \thepage}%
\makeatother%
% ------------- Do not want to change this to here ------]
% ------------- Only want to change below here
\makeatletter%
\geometry{right=1.0in}%
\let\ps@plain\ps@fancy%
%
\pagestyle{fancy}%
\fancyheadoffset{0cm}
\fancyhead[R]{README}%
\fancyfoot[R]{Page \thepage}%
\makeatother%
\begin{document}
\lipsum[1]
\end{document}