目录中的数字和项目符号

目录中的数字和项目符号

我想在文章类文档的目录中结合章节编号和项目符号,以避免出现太多的长章节编号(例如 1.2.1.1.1)。

所以,我想要这样的东西:

1. First section
   1.1 First subsection
   1.2 Second subsection
           1.2.1 First subsubsection
             · First paragraph
             · Second paragraph
               - First subparagraph
   1.3 Third subsection
2. Second section

我怎样才能修改目录以用项目符号代替数字?

答案1

目录中的\paragraph和条目由宏设置:和。通常类包含它们的定义。类的示例:\subparagraph\l@paragraph\l@subparagrapharticle

\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}}

支持的论点\@dottedtocline是:

  • 部分级别(例如, 为 4 \paragraph)。
  • 缩进左边距。
  • 用于宏编号的空间\numberline
  • 章节标题(继承自\contentsline)。如果给出了数字,则它从\numberline{...}同一参数中的章节标题之前开始。
  • ...

以下示例重新定义了宏\l@paragraph\l@subparagraph

  • 长度参数\@dottedtocline已更新,以仅遵守使用符号的较小编号。
  • \numberline由于格式原因,该符号被添加为“数字” 。
  • 如果存在,则原始数字会被吞噬。
\documentclass{article}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{5}

\makeatletter
\renewcommand*{\l@paragraph}[1]{%
  \@dottedtocline{4}{7.0em}{1em}{%
    \numberline{\textbullet}%
    % \numberline{$\cdot$}%
    \gobble@numberline
    #1%
  }%
}
\renewcommand*{\l@subparagraph}[1]{%
  \@dottedtocline{5}{8em}{1em}{%
    \numberline{\textendash}%
    \gobble@numberline
    #1%
  }%
}
\newcommand*{\gobble@numberline}{%
  \@ifnextchar\numberline{\@gobbletwo}{}%
}
\makeatother

\newcommand*{\lipsum}{%
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit.%
}

\begin{document}
  \tableofcontents

  \newpage
  \section{First section}
  \subsection{First subsection}
  \subsection{Second subsection}
  \subsubsection{First subsubsection}
  \paragraph{First paragraph}
  \paragraph{Second paragraph. \lipsum}
  \subparagraph{First subparagraph}
  \subparagraph{Second subparagraph. \lipsum}
  \subsection{Third subsection}
  \section{Second section}
\end{document}

结果

相关内容