答案1
第一个键用于在目录中\addtocontents
更改。(这将需要更多的工作来处理等。)\@pnumwidth
\listoffigures
第二种是使用 \AddToHook{shipout/after}` 自动在第 99 页进行更改。
\documentclass{book}
\makeatletter
\sbox0{\normalsize\normalfont 22}%
\edef\@pnumwidth{\the\wd0}
\sbox0{\normalsize\normalfont 222}%
\edef\@pnumplus{\the\wd0}
\AddToHook{shipout/after}{\ifnum\value{page}=99\relax
\addtocontents{toc}{\string\let\string\@pnumwidth\string\@pnumplus}%
\fi}
\makeatother
\begin{document}
\tableofcontents
\newpage
\setcounter{page}{99}
\chapter{Not Zero}
\section{Yadda Yadda}
\newpage
\section{OMG It worked!}
\end{document}
答案2
这不是一个常规答案,但评论太长了。
在普通类别(book
等)中,虚线末端和页码之间有一个空格,与页码的长度无关。页码也设置在固定宽度框的右侧。这意味着虚线末端和页码之间会有一个空格。页码越长,这个空格就越小。
正常结果将如第二张图所示,而不是第一张图所示。
为什么您认为虚线应该一直延伸到页码?
也许您可以使用该tocloft
包\renewcommand{\cftpnumalign{l}
让所有页码左对齐,这样虚线末尾和页码之间就会有一个固定的间距。
\documentclass...
如果您能提供一份我们可以编译的 MWE(从到\end{document}
),显示您所做的事情以及问题是什么,那将会非常有帮助。