使用 fancyhdr 的页码样式

使用 fancyhdr 的页码样式

我在设置论文格式时遇到了一些问题,可能需要 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

相关内容