我正在写一篇相当长的文献综述,提交给ACM 计算调查我们正在将目录放在上面,以方便我们的内部审阅者。目录包括标签中的文本\paragraph
。我不想这样,但我无法摆脱它。
以下是一个示例文档:
\documentclass[prodmode,acmcsur]{acmsmall} % Aptara syntax
\begin{document}
\tableofcontents
\section{A Section}
\subsection{A Subsection}
\subsubsection{A SubSubSection}
\paragraph{First Paragraph} Some text.
\paragraph{Second Paragraph} Some text.
\paragraph{Third Paragraph} Some text.
\subsubsection{Another SubSubSection}
\end{document}
它看起来是这样的:
我尝试使用 删除段落文本,\setcounter{tocdepth}{3}
但无济于事。(它删除了子小节,但没有删除paragraph
。)我也试过了\setcounter{secnumdepth}{3}
。没有成功。
解决方案是什么?
答案1
定义\l@paragraph
(和\l@subparagraph
)不执行任何操作(类未定义\l@paragraph
也不\l@subparagraph
是一个错误):
\documentclass[prodmode,acmcsur]{acmsmall} % Aptara syntax
\makeatletter
\newcommand\l@paragraph[2]{}
\newcommand\l@subparagraph[2]{}
\makeatother
\begin{document}
\tableofcontents
\section{A Section}
\subsection{A Subsection}
\subsubsection{A SubSubSection}
\paragraph{First Paragraph} Some text.
\paragraph{Second Paragraph} Some text.
\paragraph{Third Paragraph} Some text.
\subsubsection{Another SubSubSection}
\end{document}
由于acmsmall
类设置tocdepth
为3
(子小节级别),段落和上段落标题不会进入目录,因此实际上可以为\l@paragraph
和提供一个合理的定义\l@subparagraph
,以防有人决定通过更改将这些条目包含在目录中tocdepth
;在这种情况下,人们不得不说
\makeatletter
\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\makeatother