我有以下代码来创建目录:
\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}