因此,我正在使用该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
首先要知道的一些事情
\pagestyle{<style>}
是 LaTeX 原生命令,将当前样式设置为<style>
。\thispagestyle{<style>}
是 LaTeX 原生命令,将当前页面的样式设置为<style>
。- 诸如
article
、book
或 等类report
利用、 或。\thispagestyle{plain}
\maketitle
\chapter
- 诸如
- 来自的命令
fancyhdr
包,例如\fancyhf{}
,对当前样式采取行动。 \fancypagestyle{<style>}{<fancyhdr commands>}
创造一个封闭的环境- 它首先复制
fancy
样式<style>
,并在必要时创建它; - 然后将其设置
<style>
为当前样式; - 最后它修改
<style>
执行<fancyhdr commands>
。 - 请注意,当前文档样式没有改变。
- BUG:不要发布
\fancypagestyle{fancy}{<fancyhdr commands>}
,LaTeX 编译器将在第一次\pagestyle{fancy}
调用时挂起,因为它将进入无限递归循环。我刚刚就此事通知了作者。
- 它首先复制
为什么你的代码不符合你的预期?
一旦调用\pagestyle{fancy}
,就将当前页面样式设置为fancy
,后续命令将仅修改此样式。您正在使用的类 ,report
将反复发出\thispagestyle{plain}
以抵消您之前的更改。
怎样做你想做的事?
选项 1(推荐)
只需编辑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
编辑不会互相影响。如果您打算使用不同的样式,建议这样做。fancy
plain
\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"
}