目录编号的对齐存在问题:当我们使用
\renewcommand{\thesection}{\Roman{section}}
数字侵占了标题。注释掉该命令后,数字全部对齐 [从左侧第一个数字开始],但标题不会从同一位置开始。
我想要的是使用\Roman{section}
,但将数字移到 V(或阿拉伯语中的 9)后面,以便标题的首字母全部对齐!
举例来说:
%\RequirePackage{fix-cm}
\documentclass[a4paper, 11pt, twoside]{article}
\renewcommand{\thesection}{\Roman{section}}
\begin{document}
\tableofcontents
\normalfont
%\cleardoublepage
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\section{QWERTY}
\end{document}
答案1
长度决定了分段标题的宽度。默认情况下,它设置为\@tempdima
(取自\l@section
1.5em
article.cls
):
\newcommand*\l@section[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty\@secpenalty
\addvspace{1.0em \@plus\p@}%
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\endgroup
\fi}
这怎么可能呢?好吧,目录中部分编号的实际显示是通过设置的\numberline
,如下所示(来自latex.ltx
):
\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}
因此,\numberline{<stuff>}
将其内容设置在宽度为 的框中\@tempdima
,并左对齐(作为结尾 的结果\hfil
)。
\@tempdima
您可以通过以下补丁更改长度:etoolbox
(在你的序言中):
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\l@section}{1.5em}{6em}{}{}% <cmd><search><replace><success><failure>
\makeatother
可以通过以下方式获得类似的(更简单的)结果tocloft
:
\usepackage{tocloft}% http://ctan.org/pkg/tocloft
\setlength\cftsecnumwidth{6em}