我知道\setcounter{secnumdepth}{1}
可以设置编号深度,但我只需要对节和小节进行编号,而不是对章节进行编号。有没有一行代码可以做到这一点?我见过一些类似问题的答案,但对于这样一个简单的任务来说,它们似乎过于复杂了。
答案1
我们的同伴用户 jfbu 提供的非常精美和复杂的软件包etoc
提供了实现这一目标的方法。
通过使用\etocsetlevel{level name}{level value}
它可以改变结构级别(例如章节)到某个较低的水平(比如,超越分段),然后将tocdepth
计数器限制为上述某个值。
\etocsetlevel{chapter}{6}
并\setcounter{tocdepth}{4}
会完成这项工作。
这只会影响目录中的表示,而不会影响文档的主要部分。
可能需要调整目录内的间距,这可以通过包\cft....
中的各种命令来实现tocloft
(这里未使用)
secnumdepth
请注意和计数器之间的区别tocdepth
:
tocdepth
决定目录中显示哪些级别(-1 至 6)从part
到subparagraph
(针对标准 LaTeX 类)secnumdepth
决定主文档中哪些级别获得章节编号。
\documentclass{book}
\usepackage{etoc}
\setcounter{secnumdepth}{4}% Show down to subsubsection
\begin{document}
\setcounter{tocdepth}{4} %for main TOC, only show chapter/section
\etocsetlevel{part}{6} % push away the chapters
\etocsetlevel{chapter}{6} % push away the chapters, beyond toc depth (4 )
\tableofcontents
\chapter{this is chapter heading}
\section{this is section heading}
\subsection{this is subsection heading}
\subsubsection{this is subsubsection heading}
\subsubsection{this is another subsubsection heading}
\chapter{another chapter}
\section{this is yet another section}
\end{document}
编辑
如果只想删除章节编号(但不能删除 1.1 节等),一个技巧是修补该\@chapter
命令:
\documentclass{book}
\usepackage{tocloft}
\setcounter{secnumdepth}{4}% Show down to subsubsection
\setlength{\cftchapindent}{-20pt}% Just some value...
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@chapter}{\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}}{%
\addcontentsline{toc}{chapter}{\protect\numberline{}#1}}{\typeout{Success}}{\typeout{Failed!}}
\makeatother
\begin{document}
\tableofcontents
%\renewcommand{\thechapter}{\arabic{chapter}}
\chapter{First chapter}
\section{First section}
\subsection{First subsection}
\subsubsection{Even more in the basement}
\chapter{Another chapter}
\section{this is yet another section}
\end{document}
答案2
也许您可以使用 KOMA-Script 类:
\documentclass[emulatestandardclasses]{scrbook}
\renewcommand\addchaptertocentry[2]{\addtocentrydefault{chapter}{}{#2}}
\usepackage{blindtext}% dummy text
\begin{document}
\tableofcontents
\Blinddocument
\Blinddocument
\end{document}
答案3
解决方案如下titletoc
:
\documentclass[11pt, a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{microtype}
\usepackage{titletoc}%
\titlecontents{chapter}[0em]{\lsstyle\smallskip\bfseries}%\vspace{1cm}%
{}%
{\itshape\bfseries}%numberless%
{\hfill\contentspage}[\medskip]%
%
\titlecontents{section}[4.25em]{\smallskip}%
{\contentslabel[\thecontentslabel]{2em}}%numbered
{\hspace*{-1em}}%numberless
{\hfill\contentspage}[\smallskip]%
%
\titlecontents{subsection}[7em]{}%
{\contentslabel[\thecontentslabel]{2.75em}}%numbered
{\hspace*{-1em}}%numberless
{\hfill\contentspage}[\smallskip]
\begin{document}
\tableofcontents
\chapter*{INTRODUCTION}
\addcontentsline{toc}{chapter}{INTRODUCTION}
\chapter{A NICE FIRST CHAPTER}
\section{An Introductory Section}
\newpage
\section{Another Section}
\subsection{A Boring Subsection }
\end{document}