昨天我尝试删除文档标题中的 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 提供的补丁。