删除标题中的全大写 ToC、LoF 等

删除标题中的全大写 ToC、LoF 等

昨天我尝试删除文档标题中的 ToC、LoF 等全部大写字母,但我认为遇到了问题/错误。我的 MWE:

\documentclass[12pt, oneside, a4paper]{book}
\usepackage[nottoc]{tocbibind}
\usepackage{titlesec}
\titleformat{\chapter}{\huge\bfseries}{\thechapter}{20pt}{\huge}
\usepackage[paper = a4paper, margin = 1in, headheight = 14.5pt, includehead]{geometry}
\usepackage{fancyhdr}
\fancypagestyle{plain}
{
 \fancyhf{}
 \fancyhead[L]{\itshape \leftmark}
 \fancyfoot[R]{\thepage}
 \renewcommand{\headrulewidth}{0.5pt}
 \renewcommand{\footrulewidth}{0pt}
}

\begin{document}
 \frontmatter
  \renewcommand{\tocetcmark}[1]{\markboth{#1}{}}
  \tableofcontents
  \listoffigures
  \listoftables
 \mainmatter
  \chapter{Introduction}
\end{document}

如您所见,我使用它tocbibind来将我的 LoF 和 LoT 包含在 ToC 中。我的问题是,如果我使用\renewcommand{\tocetcmark}[1]{\markboth{#1}{}}它,它只会在我的标题中显示我的 LoF 和 LoT 标准化。但文档tocbibind说此命令适用于 ToC、LoF、...。为什么我的 ToC 仍然全大写?这是某种错误还是我忽略了什么?

在我之前的一个问题中(为 \mainmatter 自定义 \chaptermark)Heiko Oberdiek 已经提前给我提供了 ToC 问题的解决方案:

\usepackage{etoolbox}
\patchcmd{\tableofcontents}{\MakeUppercase\contentsname}{\contentsname}{}{}
\patchcmd{\tableofcontents}{\MakeUppercase\contentsname}{\contentsname}{}{}

效果确实不错,但为什么第一种方法不能正常工作?或者有没有更聪明的方法可以一次性删除所有大写字母?

答案1

该包tocbibind仅覆盖listof<...>您指定的默认定义。您传递了选项nototoc,因此没有重新定义默认的\tableofcontents。因此您必须使用 Heiko 提供的补丁。

相关内容