在已经设置 fancyhdr 设置后,在序言中更改它们

在已经设置 fancyhdr 设置后,在序言中更改它们

我有一个“标准”序言(下面代码中我表示我真的不想改变的部分),我想重新使用它。但是,我想调整右边距特定文档。更改 没有任何问题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}

在此处输入图片描述

相关内容