如何在目录中设置数字和标题之间的相等间距?

如何在目录中设置数字和标题之间的相等间距?

我想创建一种具有目录的样式,使数字和标题之间的间距相等。

我尝试使用它titlesec,但是出现了一些问题并且我有使用默认样式的额外目录条目。

\documentclass{article}

\usepackage[explicit]{titlesec}

\titleformat{name=\section}[block]
{\normalfont\normalsize\bfseries}{\thesection~~#1}{1em}{}[
\addcontentsline{toc}{section}{\thesection~#1}]

\begin{document}
    
\tableofcontents 

\section{Fisrt}
\setcounter{section}{98999}
\section{section}


\end{document}

如何才能以最佳方式在目录中设置数字和标题之间的相等间距?

在此处输入图片描述

答案1

使用该tocloft包调整目录和朋友。我希望这能满足您的需求。

% tocnumprob.tex  SE 575762

\documentclass{article}
\usepackage{comment}

\begin{comment}
\usepackage[explicit]{titlesec}

\titleformat{name=\section}[block]
{\normalfont\normalsize\bfseries}{\thesection~~#1}{1em}{}[
\addcontentsline{toc}{section}{\thesection~#1}]
\end{comment}

\usepackage{tocloft}
\setlength{\cftsecnumwidth}{3.5em}  % change this to suit

\begin{document}
    
\tableofcontents 

\section{Fisrt}
\setcounter{section}{98999}
\section{section}

\end{document}

在此处输入图片描述

编辑

我不清楚你想要什么,而且我仍然不确定。上面的代码将所有节号放入一个固定宽度的框中,这是正常的 LeTeX 样式。下面的代码只是打印节号,后面跟着一个长度的空格。也许这就是你想要的。

% tocnumprob.tex rev 2 SE 575762 

\documentclass{article}
\usepackage{comment}

\begin{comment}
\usepackage[explicit]{titlesec}

\titleformat{name=\section}[block]
{\normalfont\normalsize\bfseries}{\thesection~~#1}{1em}{}[
\addcontentsline{toc}{section}{\thesection~#1}]
\end{comment}

\usepackage{tocloft}
%\setlength{\cftsecnumwidth}{3.5em}  % change this to suit more space for section numbers
\makeatletter
\renewcommand{\numberline}[1]{%    % don't put section numbers in a box
  {\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}
\makeatother
\renewcommand{\cftsecaftersnum}{\hspace{1em}} % change this to suit space after section number
\begin{document}
    
\tableofcontents 

\section{Fisrt}
\setcounter{section}{98999}
\section{section}

\end{document}

在此处输入图片描述

答案2

由于您加载了 titlesec,您也可以使用titletoc及其\titlecontents\contentslabel命令来执行此操作:您只需为长节号保存必要的空间,然后使用以下rightlabels选项加载包:

\documentclass{article}
\usepackage[explicit]{titlesec}
\usepackage[rightlabels]{titletoc} %
\usepackage{calc}
\usepackage{lipsum}
\newlength{\toclabelwd}
\settowidth{\toclabelwd}{99999}
\titleformat{name=\section}[block]
{\normalfont\normalsize\bfseries}{\thesection}{1em}{#1}%
\titlecontents{section}
     [\toclabelwd] % i
     {\medskip}
     {\contentslabel[\thecontentslabel]{\toclabelwd}\enspace}
     {}
     {\hfill\contentspage}%]

\begin{document}

\tableofcontents
\clearpage
\section{A First Section}
\lipsum[1-6]
\setcounter{section}{98999}
\section{Another Section}
\lipsum[7-12]

\end{document}

在此处输入图片描述

相关内容