![fancyhdr 忽略 newgeometry](https://linux22.com/image/365881/fancyhdr%20%E5%BF%BD%E7%95%A5%20newgeometry.png)
似乎fancyhdr
忽略了的设置\newgeoemtry
。也就是说,加载geometry
包时所做的设置:
\usepackage[
left=1.0em,
right=1.0em,
top=1.0cm,
bottom=1.0cm,
paperheight=11.0in,
paperwidth=8.5in
]{geometry}
\pagestyle{fancy}
\fancyhead{}% clear headers
\fancyfoot{}% clear footers
\renewcommand{\headrulewidth}{0pt}% eliminate horizontal line
\fancyfoot[RO, LE]{Page \thepage}
工作正常,页码位于右侧,如所要求:
但是,如果\fancyfoot
设置了,并且然后几何形状被修改:
\usepackage[
paperheight=11.0in,
paperwidth=8.5in
]{geometry}
\pagestyle{fancy}
\fancyhead{}% clear headers
\fancyfoot{}% clear footers
\renewcommand{\headrulewidth}{0pt}% eliminate horizontal line
\fancyfoot[RO, LE]{Page \thepage}
\newgeometry{
left=1.0em,
right=1.0em,
top=1.0cm,
bottom=1.0cm,
}
\pagestyle{fancy}
\fancyhead{}% clear headers
\fancyfoot{}% clear footers
\fancyfoot[RO, LE]{Page \thepage}
页脚没有按照要求位于右侧。
笔记:
- 之所以采用两步流程,是因为
\usepacakge
和fancy
设置来自我使用的通用 .sty 文件。然后,对于一个特定情况,我想要一个不同的几何图形,因此最干净的解决方案是使用\newgometry
修改设置。 - 当然,一个解决方案是在加载包之前设置一个标志,然后随时调整设置
\usepackage
。我宁愿不这样做,因为这样会将特定设置与需要设置的地方分开。
代码:
\documentclass{book}
%% -------------------------------------------- Standard packages
\usepackage{xcolor}
\usepackage{fancyhdr}
%\usepackage{showframe}
\usepackage{lipsum}
\usepackage[
%% Setting these here work, however I would prefer to do this later via \newgoemetry
% left=1.0em,
% right=1.0em,
% top=1.0cm,
% bottom=1.0cm,
paperheight=11.0in,
paperwidth=8.5in
]{geometry}
\pagestyle{fancy}
\fancyhead{}% clear headers
\fancyfoot{}% clear footers
\renewcommand{\headrulewidth}{0pt}% eliminate horizontal line
\fancyfoot[RO, LE]{Page \thepage}
%% -------------------------------------------- Cusomizations
\newgeometry{
left=1.0em,
right=1.0em,
top=1.0cm,
bottom=1.0cm,
}
\pagestyle{fancy}
\fancyhead{}% clear headers
\fancyfoot{}% clear footers
\fancyfoot[RO, LE]{Page \thepage}
\begin{document}
\lipsum[1-12]
\end{document}
答案1
如果您正在使用其中一个命令\fancyhfoffset
,\fancyheadoffset
或者\fancyfootoffset
将\headwidth
根据当前参数重新计算,即使您使用0pt
偏移量的默认值。
\documentclass{book}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage[
paperheight=11.0in,
paperwidth=8.5in
]{geometry}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[RO, LE]{Page \thepage}
\newgeometry{
left=1.0em,
right=1.0em,
top=1.0cm,
bottom=1.0cm,
}
\fancyfootoffset{0pt}% <- recalculate \headwidth
\begin{document}
\lipsum[1-12]
\end{document}
结果: