1) 或者像 1.1) 或 1.1.1)
我想让目录列表的数字后面有一个括号。我该怎么做?我的项目刚刚开始,但现在想弄清楚。
\documentclass[a4paper,12]{report}
\usepackage[english,ngerman]{babel}
\begin{document}
\tableofcontents
\input{tex/Einleitung}\newpage\cleardoublepage
\end{document}
答案1
首先:如果你可以切换到 KOMA-Script 课程,那么使用@Schweinebacke 的回答。
使用标准类,您可以使用包tocloft
和重新定义等\cftpartaftersnum
。\cftchapaftersnum
\documentclass{report}
\usepackage{tocloft}
\usepackage{expl3}
\ExplSyntaxOn
\makeatletter
\clist_map_inline:nn {chap,sec,subsec,subsubsec,para,subpara}
{\cs_set_nopar:cpn {cft #1 aftersnum} ##1 {)}}
\ExplSyntaxOff
\usepackage{mwe}
\begin{document}
\tableofcontents
\blinddocument
\end{document}
请注意,这不适用于目录中的部分条目。如果\part
使用,则\@part
必须修补:
\usepackage{xpatch}
\makeatletter
\xpatchcmd\@part
{\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}}
{\addcontentsline{toc}{part}{\thepart)\hspace{1em}#1}}
{}{\PatchFailed}
\makeatother
但也可以tocbasic
与标准类一起使用:
\documentclass{report}
\usepackage{tocbasic}
\usepackage{expl3}
\ExplSyntaxOn
\clist_map_inline:nn {chapter,section,subsection,subsubsection,paragraph,subparagraph}
{\DeclareTOCStyleEntry[entrynumberformat=\numberwithbracket]{tocline}{#1}}
\cs_set_nopar:Npn \numberwithbracket #1 {#1)\hfill}
\ExplSyntaxOff
\usepackage{mwe}
\begin{document}
\tableofcontents
\blinddocument
\end{document}
结果类似。
如果有部件,您可以使用与\@part
上面相同的补丁,或者您可以使用
\documentclass{report}
\usepackage{xpatch}
\makeatletter
\xpatchcmd\@part
{\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}}
{\addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}}
{}{\PatchFailed}
\makeatother
\usepackage{tocbasic}
\DeclareTOCStyleEntry[numwidth=1.5em,dynnumwidth]{tocline}{part}
\usepackage{expl3}
\ExplSyntaxOn
\clist_map_inline:nn {part,chapter,section,subsection,subsubsection,paragraph,subparagraph}
{\DeclareTOCStyleEntry[entrynumberformat=\numberwithbracket]{tocline}{#1}}
\cs_set_nopar:Npn \numberwithbracket #1 {#1)\hfill}
\ExplSyntaxOff
\usepackage{mwe}
\begin{document}
\tableofcontents
\part{Part}
\blinddocument
\end{document}