如何删除目录的标题

如何删除目录的标题

我希望\tableofcontents仅以“真实列表”的形式生成元素列表,这意味着我可以在同一页面上的列表之前和之后键入文本,并且可以将列表移动到另一页。

我不希望该命令产生标题Table of Contents

我该怎么做,或者我应该在序言中添加什么?

先感谢您!

编辑我使用book文档类:

\documentclass{book}
\begin{document}
\tableofcontents
\chapter{Chapter 1}
\chapter{Chapter 2}
\end{document}

答案1

文档类的代码book定义\tableofcontents如下:

\newcommand\tableofcontents{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
    }

第一个位,\if@twocolumn ... \fi如果您使用twocolumn文档类选项,则切换到单列模式。如果您希望内容成为运行文本的一部分,您可能不希望这样做,因此我们可以排除这种情况。这还允许我们删除末尾的,如果是这种情况,则\if@restonecol\twocolumn\fi切换回。\twocolumn

接下来我们有\chapter*{...}。这会将章节标题添加到目录中。您明确要求删除它,因此……\@mkboth中的\chapter*负责页面标题TABLE OF CONTENTS。如果您没有目录章节,您可能也不想要它,因此我们可以排除它。

现在我们只剩下\@starttoc{toc}。这个命令基本上就是\@input{\jobname.toc},所以这就是我们要找的 :)

将其放入文档中:

\documentclass{book}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\makeatletter
\@starttoc{toc}
\makeatother
\lipsum[2]
\chapter{Chapter 1}
\chapter{Chapter 2}
\end{document}

第一页显示

在此处输入图片描述


如果你检查该.toc文件,你会发现它包含

\contentsline {chapter}{\numberline {1}Chapter 1}{3}
\contentsline {chapter}{\numberline {2}Chapter 2}{5}

将其直接写入.tex文件也可以。


此外,如果您仔细查看,您会发现该\contentsline{chapter}命令在写入内容行之前执行了。如果您想使前后间距均匀,可以使用相同的空格:\l@chapterbook.cls\vskip 1.0em \@plus\p@\@starttoc

\documentclass{book}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\makeatletter
\@starttoc{toc}
\vskip 1.0em \@plus\p@
\makeatother
\lipsum[2]
\chapter{Chapter 1}
\chapter{Chapter 2}
\end{document}

答案2

我可能不应该重新提起这个老话题,但以下内容也有效:

{\renewcommand{\chapter}[2]{}\tableofcontents}

如同这个答案对于另一个问题,您可以重新定义\chapter仅用于目录的内容(对于任何其他类型的标题也是如此)。

相关内容