我有一些多行标题,我想将第二行与第一行对齐。此外,我使用以下代码使标题编号和标题之间的间距保持一致。
\makeatletter
\renewcommand{\numberline}[1]{%
\settowidth\@tempdimb{#1\hspace{0.8em}}%
\ifdim\@tempdima<\@tempdimb%
\@tempdima=\@tempdimb%
\fi%
\hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}
\makeatother
我知道我可以改变 的值cftsecnumwidth
来控制第二行的缩进。但问题是我需要对标题编号长度不同的条目使用不同的缩进。
受评论提醒,我尝试使用\section[<short title>]{<title>}
withparbox
来对齐<short title>
目录中的。但是,因为我使用 参数[t]
将标题编号与标题框的第一行对齐,所以页码也会与第一行对齐,而不是与不使用 时的第二行对齐parbox
。
这是原始的完整代码。
\documentclass[11pt]{article}
\usepackage{tocloft}
\makeatletter
\renewcommand{\numberline}[1]{%
\settowidth\@tempdimb{#1\hspace{0.8em}}%
\ifdim\@tempdima<\@tempdimb%
\@tempdima=\@tempdimb%
\fi%
\hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}
\makeatother
\begin{document}
\tableofcontents
\newpage
\renewcommand\thesection{\S\arabic{section}}
\section{Hello World Hello World Hello World Hello World Hello World Hello World}
\setcounter{section}{10}
\section{Hello World Hello World Hello World Hello World Hello World Hello World}
\renewcommand\thesection{Appendix \Alph{section}}
\section{Hello World Hello World Hello World Hello World Hello World Hello World}
\end{document}
这是原始结果。
被这个问题困扰了好几天,如果大家能给我一些建议的话我将非常感激。