我只需要在目录中显示学生姓名,例如通过使用 \addcontentsline{toc}{section}{name}。但是,有章节、小节和段落,因此会列出章节。但是没有章节。有没有办法删除目录中除通过 \addcontentsline{.}{.}{.} 添加的内容之外的所有内容?
由于没有章节,我尝试了以下方法来删除章节及其以下部分,然后将 \addcontentsline 的内容挂到章节环境中:
\setcounter{tocdepth}{0}
\tableofcontents
并在文中使用:
\addcontentsline{toc}{chapter}{name}
下面是结果(但没有效果):
答案1
目前尚不清楚您打算如何使用\addcontentsline
,但您可以做这样的事情。
\documentclass{article}
\usepackage{etoc}
\etocsetlevel{student}{6}
\newcommand\studentlist {%
\begingroup
\etocsetlevel {student}{-1}%
\etocsetnexttocdepth {student}%
\etocsetlevel {part}{0}% make parts invisible
\etocsetstyle {student}
{}
{\noindent\textbf{\etocname}\nobreak\hrulefill page \etocpage\par}
{}
{}%
\etocsettocstyle{\section*{\Large\bfseries List of students}}{}%
\tableofcontents
\endgroup
}
\begin{document}
\tableofcontents
\studentlist
\part {One}
\section {foo}
\addcontentsline {toc}{student}{John Doe}
\addcontentsline {toc}{student}{Andrew Doe}
\addcontentsline {toc}{student}{Emily Doe}
\section {bar}
\addcontentsline {toc}{student}{Hillary Doe}
\addcontentsline {toc}{student}{Chelsea Doe}
\addcontentsline {toc}{student}{Marie Doe}
\end{document}
更多信息请参阅埃托克手动的Arbitrary “Lists Of...”, \etoctoccontentsline