Fancyhdr、章节标记和目录

Fancyhdr、章节标记和目录

我正在使用 fancyhdr 编辑文档的标题。我有以下代码:

\documentclass[a4paper,12pt,oneside,titlepage]{book}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\rhead{\small\bfseries\leftmark\quad\thepage}
\renewcommand{\headrulewidth}{0.4pt}

\fancypagestyle{plain}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}}

\renewcommand{\chaptermark}[1]{
\markboth{\thechapter.\ #1}{}}

\begin{document}

\tableofcontents
\markboth{\contentsname}{\contentsname}

\listoftables
\markboth{\listtablename}{\listtablename}

\listoffigures
\markboth{\listfigurename}{\listfigurename}

\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}
\chapter{Test}

\end{document}

正确显示章节号、章节名称(小写)、页码和下面的一行,位于每页的右上角,但每章的第一页除外。我只对目录有疑问:第二页显示“索引 ii”,而第三页(正确)显示“索引 iii”。为什么会出现这种不一致的情况?

答案1

我仍然无法重现您所述的问题。我现在正在推断您可能尝试执行的操作:我假设您正在使用手动\markboth命令来获取目录,例如类似于以下内容的命令:

\tableofcontents
\markboth{Index}{}

然后该\markboth命令仅对目录的最后一页生效,正如人们所预料的那样。

因此,现在不确定我是否回答了您的问题,但推测:如果您不希望标题大写,则可以使用以下代码:

{
  \renewcommand{\MakeUppercase}[1]{#1}
  \tableofcontents
}

LaTeX\MakeUppercase在定义目录等标记时使用(您可以在book.cls源代码中检查),因此\renewcommand现在使它无效。括号确保\MakeUppercase在文档的其余部分继续正常运行。

此外,使用book文档类时,我会Contents进入标题,而不是Index您描述的那样。如果您想更改它,可以使用

\renewcommand\contentsname{Index}

但我认为Index通常更适合用于查找索引在书的最后,列出关键词和这些术语出现的页码。

相关内容