首先要知道的一些事情

首先要知道的一些事情

因此,我正在使用该fancyhdr包并编译我的代码,它没有给我任何错误,但它不起作用,它不显示任何页眉或页脚,并且一直在页面底部中央显示数字……我不明白哪里出了问题。下面是我的代码:

\documentclass[10pt,twoside]{report}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyfoot[RO,LE]{\thepage}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm]{geometry}
\graphicspath{{Images/}}

\begin{document}
\chapter*{Acknowledgements}
\thispagestyle{empty}

\pagenumbering{arabic}

\tableofcontents
\addcontentsline{toc}{chapter}{\listfigurename}\addcontentsline{toc}chapter}{\listtablename}

\pagenumbering{roman}
\setcounter{page}{1}

\listoffigures
\listoftables

\clearpage
\pagenumbering{arabic}
\setcounter{page}{1}


\chapter{Introduction}
\input{chapter/introduction.tex}
\chapter{Bibliography work}
\input{chapter/bib_work.tex}
\chapter{Material and methods}
\input{chapter/mat_and_meth}
\chapter{Results}
\input{chapter/results}
\chapter{Discussion}
\input{chapter/discussion}
\chapter{Conclusion}
\input{chapter/conclusion}
\pagebreak
\nocite{benkaddour_salinite_2011}
\nocite{fetouani_assessing_2008}
\nocite{kihumba_modelling_2016}
\nocite{mattern_bayesian_2012}
\bibliographystyle{plain}
\bibliography{mybib}
\chapter*{Appendix}
\end{document}

答案1

使用这个顺序:

\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
[...]

然后fancyhdr会看到正确的页边距设置。第一章页面 LaTeX自动使用plain没有页眉且页码居中在底部的页面样式。重新定义此页面样式。请参阅文档fancyhdr以获取示例。

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyfoot[RO,LE]{\thepage}
\fancypagestyle{plain}{%  the preset of fancyhdr 
    \fancyhf{} % clear all header and footer fields
    \fancyfoot[C]{\textbf{\thepage}} % except the center
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}}

\usepackage{blindtext}
\begin{document}

\blinddocument

\end{document}

答案2

首先要知道的一些事情

  1. \pagestyle{<style>}是 LaTeX 原生命令,将当前样式设置为<style>
    1. LaTeX 有四种预定义样式:plain、、和emptyheadingsmyheadings
    2. 如果类/包未设置,则初始样式为plain
  2. \thispagestyle{<style>}是 LaTeX 原生命令,将当前页面的样式设置为<style>
    • 诸如articlebook或 等类report利用、 或。\thispagestyle{plain}\maketitle\chapter
  3. 来自的命令fancyhdr包,例如\fancyhf{},对当前样式采取行动。
  4. \fancypagestyle{<style>}{<fancyhdr commands>}创造一个封闭的环境
    1. 它首先复制fancy样式<style>,并在必要时创建它;
    2. 然后将其设置<style>为当前样式;
    3. 最后它修改<style>执行<fancyhdr commands>
    4. 请注意,当前文档样式没有改变。
    5. BUG:不要发布\fancypagestyle{fancy}{<fancyhdr commands>},LaTeX 编译器将在第一次\pagestyle{fancy}调用时挂起,因为它将进入无限递归循环。我刚刚就此事通知了作者。

为什么你的代码不符合你的预期?

一旦调用\pagestyle{fancy},就将当前页面样式设置为fancy,后续命令将仅修改此样式。您正在使用的类 ,report将反复发出\thispagestyle{plain}以抵消您之前的更改。

怎样做你想做的事?

只需编辑plain样式即可。如果您只打算使用一种样式,建议使用此方法。

\pagestyle{plain} % this line is not necessary if previously no style has been set
\fancyhf{}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyfoot[RO,LE]{\thepage}

选项 2

编辑fancy并复制到。对或 的plain编辑不会互相影响。如果您打算使用不同的样式,建议这样做。fancyplain

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyfoot[RO,LE]{\thepage}
\fancypagestyle{plain}{% copies "fancy" over "plain"
  \fancyfoot[C]{\thepage}% you can add edits that won't affect "fancy" but only "plain"
}

相关内容