我的目录有一个奇怪的格式问题。不知为何,章节后面的点没有像节和小节的点那么长。
我在下面添加了一个 MWE
\documentclass[a4paper,12pt]{report}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[a4paper,top=2.5cm,bottom=3cm,left=3cm,right=3cm]{geometry}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{-1em}
\renewcommand{\cftchapdotsep}{\cftdotsep}
\setlength{\cftchapnumwidth}{6em}
\renewcommand{\cftchappresnum}{Chapter }
\begin{document}
\tableofcontents
\chapter{Example 1}
\section{Example 2}
\subsection{Example 3}
\end{document}
我在下图中标出了缺失点的位置
答案1
我说过此评论接近,并且只接近点。只要框的宽度相等,TeX 会自动使框引线对齐。参见texdoc texbytopic
,第 9.2.2 节“方框引线”。此处tocloft
使用方框引线
\leaders\hbox{$\m@th\mkern #1 mu\hbox{\cftdot}\mkern #1 mu$}\hfill
其中章节的用\cftdot
粗体显示,因此使框更宽并且与章节的框不对齐。
下面的示例尝试使 leader 使用的框具有相同的宽度。
\documentclass[a4paper,12pt]{report}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[a4paper,top=2.5cm,bottom=3cm,left=3cm,right=3cm]{geometry}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{-1em}
\renewcommand{\cftchapdotsep}{\cftdotsep}
\setlength{\cftchapnumwidth}{6em}
\renewcommand{\cftchappresnum}{Chapter }
% make dots in toc aligned
\usepackage{xpatch}
\makeatletter
\xpatchcmd\cftdotfill
{\hbox{\cftdot}}
{\hbox to 3pt{\hss\cftdot}}
{}{\fail}
\makeatother
\cftsetpnumwidth{1em} % initially 1.55em
\begin{document}
\tableofcontents
\chapter{Example 1}
\section{Example 2}
\subsection{Example 3}
\end{document}
答案2
正如您所说,粗点比普通点略宽。您需要更改(减少)粗点之间的间距,以使它们与普通点匹配。以下操作可实现此目的,但可能需要针对您的特定情况进行一些调整。
% tocdotsprob.tex SE 615007
\documentclass[a4paper,12pt]{report}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[a4paper,top=2.5cm,bottom=3cm,left=3cm,right=3cm]{geometry}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{-1em}
\renewcommand{\cftchapdotsep}{\cftdotsep}
%\renewcommand{\cftchapdotsep}{4.4} % the default is 4.5
\renewcommand{\cftchapdotsep}{4.3} %%%% adjust this to suit
\setlength{\cftchapnumwidth}{6em}
\renewcommand{\cftchappresnum}{Chapter }
\begin{document}
\tableofcontents
\chapter{Example 1}
\section{Example 2}
\subsection{Example 3}
\end{document}