我正在使用带有 tocloft 的 documentclass scrbook (KOMA),并且想删除目录中所有章节、节和小节的编号,但不删除内容中的编号,也不删除我将拥有的其他列表(例如图表列表、术语列表、提及的作者列表等)中的编号。
已经有一个类似的问题被提出这里,但现在我想针对这个特定案例找到解决方案。这里有一个解决方案,它通过 lockstep 禁用所有列表中的所有编号。但如上所述,我需要一个可以为每个类别的列表(数字列表、xxxx 列表等)指定它的解决方案。
\documentclass{scrbook}
\usepackage{tocloft}
\usepackage{lipsum}
\makeatletter
% Without number and indentation
\renewcommand*{\numberline}[1]{}
\makeatother
\begin{document}
\tableofcontents
答案1
在重新定义\numberline
不执行任何操作(或更准确地说,吞噬其参数)之前,请创建一个名为的副本\oldnumberline
。然后使用etoolbox
包来修补内部 LaTeX 宏\@caption
(用于像figure
和 这样的浮点数table
)以\oldnumberline
代替\numberline
。
\documentclass{scrbook}
\usepackage{tocloft}
\usepackage{etoolbox}
\usepackage{lipsum}
\makeatletter
\let\oldnumberline\numberline
\patchcmd{\@caption}{\numberline}{\oldnumberline}{}{}
\renewcommand*{\numberline}[1]{}
\makeatother
\begin{document}
\tableofcontents
\listoffigures
\chapter{foo}
\section{foobar}
\subsection{foobargnu}
\lipsum
\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}
\end{document}
答案2
不要tocloft
与 KOMA-Script 类一起使用。您可以使用选项
toc=indenttextentries
并重新定义\addtocentrydefault
以获取 TOC 中的所有条目编号。
\renewcommand\addtocentrydefault[3]{%
\addcontentsline{toc}{#1}{\nonumberline#3}}
你可以使用
\RedeclareSectionCommand[style=section,indent=0pt]{chapter}
以避免在列表开始之前自动分页。
代码:
\documentclass[toc=indenttextentries]{scrbook}
\usepackage{lipsum}
\renewcommand\addtocentrydefault[3]{%
\addcontentsline{toc}{#1}{\nonumberline#3}}
\begin{document}
\begingroup
\RedeclareSectionCommand[style=section,indent=0pt]{chapter}
\thispagestyle{plain}
\tableofcontents
\listoffigures
\endgroup
\chapter{foo}
\section{foobar}
\subsection{foobargnu}
\lipsum
\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}
\end{document}
更新
从...开始KOMA-Script 版本 3.20您可以使用它\RedeclareSectionCommand
来删除目录中的条目编号。
\documentclass{scrbook}[2016/05/10]
\usepackage{lipsum}
\newcommand\remove[1]{}
\RedeclareSectionCommands[
tocnumwidth=0pt,
tocentrynumberformat=\remove
]{part,chapter,section,subsection,subsubsection}
\begin{document}
\tableofcontents
\listoffigures
\chapter{foo}
\section{foobar}
\subsection{foobargnu}
\lipsum
\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}
\end{document}