虚线前导符未达到目录中的页码

虚线前导符未达到目录中的页码

我正在写论文。研究生院的要求是目录中指向页码的点应延伸到页码。我可以通过定义 pnumwidth = 0 来实现这一点,但问题是所有页码都是左对齐的。我怎样才能保持右对齐,同时仍让点以页码结尾(所有条目的数字和点之间没有间隙)

答案1

编辑:我想到了一个自动解决方案。只需将其添加到序言中:

\usepackage{tocloft}
\usepackage{everypage}
\usepackage{calc}

\AddEverypageHook{\addtocontents{toc}{
\protect\cftsetpnumwidth{\widthof{\thepage}-.2em}
}}

这将每页开头的 pnumwidth 重新定义为实际页码的宽度。它仍然有点太宽,在前导符和页码之间留有空格,因此添加了-.2em。我不知道为什么会这样,也许有人可以改进代码。我在正在进行的项目中对其进行了测试,看起来不错:

在此处输入图片描述

==================

我自己现在也在为此苦苦挣扎。我想到的办法是先将页码框的宽度设置为小。然后编译文档并找到第 10 页和第 100 页并在那里进行更改。使用 可以稍微轻松一些tocloft。这不是一个最佳解决方案,但它有效。

我正在使用该calc包来获取数字。

\documentclass{book}

\usepackage{tocloft}
\usepackage{calc}


\cftsetpnumwidth{\widthof{0}}
\begin{document}

\tableofcontents

\chapter{Some chapter}
\section{Some section}

\newpage
\setcounter{page}{10}
\addtocontents{toc}{\protect\cftsetpnumwidth{\widthof{00}}}
\chapter{Other chapter}
\section{Other section}

\newpage
\setcounter{page}{100}
\addtocontents{toc}{\protect\cftsetpnumwidth{\widthof{000}}}
\chapter{Other chapter}
\section{Other section}

\end{document}

相关内容