我在设置论文格式时遇到了一些问题,可能需要 fancyhdr 包方面的帮助。问题是,我根据自己的风格结合了两个模板,每个模板中肯定有一些继承的设置(并且每个模板都不同),但我无法找到它们。页面如下所示:
如您所见,左侧页面的页码以行下的页脚形式显示,而右侧页面的页码以页眉形式显示,且没有行。我希望在页眉中显示章节名称,在页脚中显示页码。这是我的序言的一部分:
\documentclass[a4paper,12pt,twoside,openright, english]{book}
% INSTAL THE PACKAGES I WILL MOST LIKELY NEED
\usepackage{siunitx}
\usepackage{cleveref}
\usepackage{latexsym, syntonly, textcomp, amsmath, caption, float}
\usepackage{graphicx}%[pdftex]
\usepackage{subcaption}
%\usepackage{subfig}
\usepackage{wrapfig}
\usepackage{epstopdf}%[outdir=./Figures/]{epspdfconversion}
\usepackage{blindtext, setspace, rotating}
\usepackage{natbib, longtable}
\usepackage[toc,page]{appendix}
\usepackage{babel}
\usepackage{bm}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{threeparttable} %for footnote in tables
\usepackage[hyphens]{url} %break line within long url
\usepackage{lipsum}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{sidecap}
\usepackage[top=2.3cm, inner=3.2cm, bottom=2.4cm, outer=2.3cm]{geometry}
\usepackage[bookmarks]{hyperref}
\usepackage[strings]{underscore}
% LOWER CASE CHAPTER AND SECTION HEADINGS
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}}
\fancyhf{} % delete current header and footer
\fancyhead[LO,RE]{\bfseries\thepage}
%\fancyhead[LO]{\bfseries\rightmark}
%\fancyhead[RE]{\bfseries\leftmark}
\fancyhead[LE]{\emph\textit{\nouppercase{\rightmark}}}
\fancyhead[RO]{\emph\textit{\nouppercase{\leftmark}}}
\fancyhead[RE]{}
\fancyhead[LO]{}
\fancyfoot[LE]{\thepage}
\fancyfoot[RO]{\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
\addtolength{\headheight}{3pt} % space for the rule
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers on plain pages
\renewcommand{\headrulewidth}{0.5pt} % and the line
}
\onehalfspacing
\tableofcontents
\clearpage
\listoffigures
\addcontentsline{toc}{chapter}{\listfigurename}
\listoftables
\addcontentsline{toc}{chapter}{\listtablename}
\clearpage
我错过了什么?我以为我已经设置好了所有设置。
答案1
至少缺少一个\pagestyle{fancy}
。正常页面仍然使用 pagestyle headings
。注意\pagestyle{fancy}
在重新定义\chaptermark
和之前必须至少使用一次\sectionmark
,因为第一次调用\pagestyle{fancy}
也会重新定义这个命令。
我不确定所需的页面布局。也许
代码(不含所有不相关的内容):
\documentclass[a4paper,12pt,twoside,openright,english]{book}
\usepackage{babel}
\usepackage{blindtext}% only for dummy text
\addtolength{\headheight}{3pt}
\usepackage{fancyhdr}
\pagestyle{fancy}% <- must be used before the redefinition of \chaptermark and \sectionmark
% change the marks set by \chapter and \section
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
% change fancy style
\fancyhf{}
\fancyhead[LE]{\nouppercase{\rightmark}}
\fancyhead[RO]{\nouppercase{\leftmark}}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
% change plain style (eg. used on chapter pages)
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\headrulewidth}{0pt} % comment this line, if there should be a headsepline on plain pages too
}
\usepackage{blindtext}
\usepackage[nottoc]{tocbibind}% LoF and LoT should get a ToC entry
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\blinddocument
\end{document}
如果普通页面上也需要标题行,请删除\headrulewidth
页面样式定义内的更改fancyplain
。
补充说明:您的代码中的\addcontentsline{toc}{chapter}{\listfigurename}
和\addcontentsline{toc}{chapter}{\listtablename}
位置不对。它们会将 LoF 和 LoT 最后几页的页码添加到目录中。您可以改用 package tocbibind
。