几何,fancyhdr:\fancyfoot[C]{\thepage} 并非真正居中

几何,fancyhdr:\fancyfoot[C]{\thepage} 并非真正居中

report班级切换到book班级并开始使用fancyhdr包来控制页眉/页脚后,我的页脚中的页码不再居中。

这是我的fancyhdr设置:

\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[C]{\thepage} % except the center
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
%activate the style:
\pagestyle{plain}

\usepackage{geometry}
\geometry{a4paper} %paper format
\geometry{left=27.5mm,right=27.5mm,bottom=27.5mm,top=27.5mm} %margins

这样,页码就会偏离中心。在偶数页上,它们位于中心的右侧,而在奇数页上,它们位于中心的左侧。我想要的是,在偶数页和奇数页的页脚中,页码完全居中(相对于页面而言)(就像我使用 classreport而不是fancyhdrs 时一样)。

答案1

geometry解决方案是先加载fancyhdr并应用设置,然后再配置fancyhdr,而不是相反。

一个工作示例:

\documentclass{book}
\usepackage[english]{babel}
\usepackage{geometry}
\geometry{a4paper} %paper format
\geometry{left=27.5mm,right=27.5mm,bottom=27.5mm,top=27.5mm} %margins
\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[C]{\thepage} % except the center
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
%activate the style:
\pagestyle{plain}
\begin{document}
\vspace*{\fill}
\centering\thepage
\end{document}

在此示例中,如果\usepackage{geometry}将设置\geometry移至 下方\pagestyle{plain},则会出现不希望出现的行为。当我看到这种依赖关系时,我想知道为什么手册geometry中甚至没有提到。fancyhdr

答案2

碰巧我重新定义了一个几何图形,因为文档需要它。所以我的 headrule、fancyfoot 和一切都不能很好地工作。

\fancypagestyle{custom-fancy}{%
    \newgeometry{
        top=25mm,
        left=30mm,
        right=30mm,
        bottom=25mm,
        includeheadfoot
    }
    \fancyhf{}
    \fancyhead[C]{Just a title}
    \fancyfoot[C]{\thepage}
    \renewcommand{\headrulewidth}{1pt}
    \renewcommand{\footrulewidth}{1pt}
}

在此处输入图片描述

正如你所看到的,它溢出了,我在文档中读到这是因为所有的 head 和 foot 命令都是由\headwidth

\headwidth 是一个长度参数,它定义页眉和页脚的总宽度。

但这很奇怪,因为包装文档说

在此处输入图片描述

所以我发现最实用的解决方案就是重新定义这个值,并加入\setlength{\headwidth}{\linewidth}我喜欢的风格。就这样。

\fancypagestyle{custom-fancy}{%
    \newgeometry{
        top=25mm,
        left=30mm,
        right=30mm,
        bottom=25mm,
        includeheadfoot
    }
    \fancyhf{}
    \setlength{\headwidth}{\linewidth}
    \fancyhead[C]{Just a title}
    \fancyfoot[C]{\thepage}
    \renewcommand{\headrulewidth}{1pt}
    \renewcommand{\footrulewidth}{1pt}
}

在此处输入图片描述

相关内容