我想创建一种具有目录的样式,使数字和标题之间的间距相等。
我尝试使用它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}