页眉和页脚的固定边距

页眉和页脚的固定边距

我正在为一个项目创建模板。在其中,我创建了一个命令来创建摘要页面,但我需要将几何图形更改为比文档的其余部分更宽。我使用了geometry带有命令\newgeometry和的包\restoregeometry。这部分效果很好。

现在,我正在寻找一种方法来跨页面创建相同的页眉和页脚(这包括所有不同几何图形的相同边距)。为此,我尝试计算左右边距以使用\fancyhfoffset以下命令添加边距值:

\newcommand{\leftMargin}{%
    \dimexpr% 
      1in + %
    \ifoddpage%
      \oddsidemargin%
    \else%
      \evensidemargin%
    \fi%
  \relax%
}

\newcommand{\rightMargin}{%
  \dimexpr%
    \paperwidth - \textwidth - \leftMargin%
  \relax%
}

\fancypagestyle{main}{%
  % Reset
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \renewcommand{\footrulewidth}{0pt}%
  % Compute header and footer margins
  \fancyhfoffset[L]{\leftMargin - 2cm}%
  \fancyhfoffset[R]{\rightMargin - 2cm}%
  % Header
  \fancyhead[R]{\myTitle}%
  % Footer
  \fancyfoot[R]{\myLogo}%
  \fancyfoot[L]{\thepage}%
}

但是这个解决方案不起作用:边距与以前的几何图形的边距相同...如果我对样式使用相同的解决方案plain\fancypagestyle{plain}),当样式更改时(例如,章节开始后的下一页),边距会被重置,现在它们会跟随文本宽度。我认为不可能在声明fancyhfoffset内部使用fancypagestyle,但我不知道如何做。

在此先感谢您的帮助 !

答案1

几何使用奇数页边距作为输入,然后计算偶数页边距。 \fancyhfoffset是相对于当前边距的,显然会随着而变化\newgeometry

\documentclass[twoside]{article}
\usepackage[showframe]{geometry}
\usepackage{fancyhdr}

\usepackage{lipsum}% MWE onlu

\edef\leftMargin{% odd page
    \dimexpr
      1in + \oddsidemargin
    \relax
}
\edef\rightMargin{%
  \dimexpr%
    \paperwidth - \textwidth - \leftMargin% or \evensidemargin - 1in
  \relax%
}

\fancyhf{}%
\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0pt}%
% Header
\fancyhead[R]{myTitle}%
% Footer
\fancyfoot[R]{myLogo}%
\fancyfoot[L]{\thepage}%
\pagestyle{fancy}

\fancypagestyle{main}{%
  % Reset
  \fancyhf{}%
  \renewcommand{\headrulewidth}{0pt}%
  \renewcommand{\footrulewidth}{0pt}%
  % Compute header and footer margins
  \fancyhfoffset[L]{-1cm}%
  \fancyhfoffset[R]{-1cm}%
  % Header
  \fancyhead[R]{myTitle}%
  % Footer
  \fancyfoot[R]{myLogo}%
  \fancyfoot[L]{\thepage}%
}

\begin{document}
\lipsum[1-8]

\newgeometry{left={\dimexpr \leftMargin-1cm},right={\dimexpr \rightMargin-1cm}}
\pagestyle{main}

\lipsum[1-12]

\clearpage% print header/footer for last page
\restoregeometry
\end{document}

相关内容