Komascript:从目录中删除(子)部分

Komascript:从目录中删除(子)部分

我正在处理一个文档,我想将不同目录深度的几个(子)部分排除在目录中列出。

例子:

Chapter 1
Section 1.1
Subsection 1.1.1 << remove
Subsection 1.1.2 << remove

Section 1.2
Section 1.3 << remove
Section 1.4

tocdepth我无法通过排除这些部分。因此我的想法是修改\chapter*、、 ... 命令\section*\subsection*这些命令会像往常一样生成标题(包括格式和编号),但不会在目录中列出条目。

有没有什么办法可以让它工作?

答案1

您可以使用分段命令的扩展可选参数。KOMA-Script 将自动省略空的 ToC 条目。要打开扩展可选参数的解析,您必须使用以下选项之一:

  • headings=optiontotocandhead:对目录和页眉使用未扩展的可选参数
  • headings=optiontotoc:仅对目录使用未扩展的可选参数,但对运行头使用强制参数
  • headings=optiontohead:对运行头使用未扩展的可选参数,但对目录使用必需参数

因此您可以使用:

\documentclass[
  headings=optiontotocandhead% switch on extended optional argument parsing
                             % for sectioning commands
]{scrbook}

\setcounter{tocdepth}{\subsectiontocdepth}% generally show part, chapter,
                                          % section and subsection in the ToC

\usepackage{lipsum}

\begin{document}
\tableofcontents
\chapter{Chapter 1}
\lipsum[1]
\section{Section 1.1}
\lipsum[2]
\subsection[tocentry={}]{Subsection 1.1.1}% no ToC entry
\lipsum[3]
\subsection[tocentry={}]{Subsection 1.1.2}% no ToC entry
\lipsum[4]
\section{Section 1.2}
\lipsum[5]
\section[tocentry={}]{Section 1.3}% no ToC entry
\lipsum[6]
\section{Section 1.4}
\lipsum[7]
\subsection{Subsection 1.5}
\lipsum[8]
\end{document}

或者

\documentclass[
  headings=optiontotoc% switch on extended optional argument parsing
                      % for sectioning commands and restrict it to the ToC
]{scrbook}

\setcounter{tocdepth}{\subsectiontocdepth}% generally show part, chapter,
                                          % section and subsection in the ToC

\usepackage{lipsum}

\begin{document}
\tableofcontents
\chapter{Chapter 1}
\lipsum[1]
\section{Section 1.1}
\lipsum[2]
\subsection[]{Subsection 1.1.1}% no ToC entry
\lipsum[3]
\subsection[]{Subsection 1.1.2}% no ToC entry
\lipsum[4]
\section{Section 1.2}
\lipsum[5]
\section[]{Section 1.3}% no ToC entry
\lipsum[6]
\section{Section 1.4}
\lipsum[7]
\subsection{Subsection 1.5}
\lipsum[8]
\end{document}

要得到

生成的 ToC

答案2

不要这样做。


有没有什么办法可以让它工作?

不。正如答案中所述瑞士军刀您可以获得一个不连续编号的目录。

但它不会起作用,因为你的读者只会认为你的目录有问题。

再次这个想法完全没有考虑读者的期望。不要这么做。读者不可能回来问你。

相关内容