如何使目录中未编号的部分对齐?

如何使目录中未编号的部分对齐?

我有以下代码来创建目录:

     \documentclass{article}

     \begin{document}

     \tableofcontents

     \section{section A}

     \addcontentsline{toc}{section}{section B}
     \section*{section B}

     \end{document}

B 节确实出现在目录中,但它与 A 节的文本不对齐,因为它前面没有数字。有没有办法让 B 节向前移动一点,以便对齐?

编辑:我宁愿找一个“真正”一致的人,而不是用空白来推动它向前发展……

答案1

你可以使用小包未编号totoc目前可以在 github 上找到。它只提供了一个适合您需求的选项;indentunnumbered。它还会照顾您的分数。所有这些功能都是由 KOMA 类默认提供的。切换可能是值得的 ;-)

\documentclass{article}
\usepackage[indentunnumbered]{unnumberedtotoc}%<-----
\begin{document}

\tableofcontents

\section{section A}

\addsec{section B}

\end{document}

答案2

您可以添加与通常添加的水平间距相同的水平间距:

在此处输入图片描述

笔记:

  • \addcontentsline立即\section*{}不早于\section{}

代码:

 \documentclass{article}

 \begin{document}

 \tableofcontents

 \section{section A}

 \section*{section B}
 \addcontentsline{toc}{section}{\protect\hphantom{\numberline{\thesection}}section B}

 \section{section C}
 
 \end{document}

答案3

您必须推动该条目,\@pnumwidth该条目是为在目录中排版章节编号而保留的宽度。

 \documentclass{article}
 \newlength{\mylen}
 \makeatletter
 \setlength{\mylen}{\@pnumwidth}
 \makeatother
 \begin{document}

 \tableofcontents

 \section{section A}


 \section*{section B}
 \addcontentsline{toc}{section}{\hspace*{\mylen}section B}

 \end{document}

在此处输入图片描述

相关内容