在目录中,尽管有足够的可用空间,但长页码仍占据了右边距

在目录中,尽管有足够的可用空间,但长页码仍占据了右边距

我的目录中列出的一些页码是长罗马数字。出于某种原因,这些长页码被推到了右边距。

这是目录的屏幕截图。请注意,“xviii”页码被推到了右边距,形成了黑色的“警告标记”。

摘要的页码违反右边距

我该如何解决这个问题?下面是一些重现此问题的简单代码:

\documentclass[12pt,draft,letterpaper]{report}
\usepackage{tocloft}

\begin{document}

\pagenumbering{roman}

% PROBLEM: In the table of contents here, the abstract's page number is pushed
%          into the right margin.
\tableofcontents
\newpage .

\section*{Acknowledgements}\addcontentsline{toc}{section}{Acknowledgements}

Here are the acknowledgements.

% a bunch of blank pages, to place the abstract on page xviii
\newpage . \newpage . \newpage . \newpage . \newpage .
\newpage . \newpage . \newpage . \newpage . \newpage .
\newpage . \newpage . \newpage . \newpage . \newpage .

\chapter*{Abstract}\addcontentsline{toc}{section}{Abstract}

This is the abstract.

\end{document}

答案1

tocloft提供\cftsetpnumwidth{<len>}将的值设置\@pnumwidth<len>,因此您只需执行

\cftsetpnumwidth{3em}% 3em width for page numbers

加载tocloft(见2.3 条目排版,第 8 页tocloft文档):

在此处输入图片描述

答案2

增加预留空间以排版页码;添加到您的序言中

\makeatletter
\renewcommand\@pnumwidth{1cm}
\makeatother

而不是1cm使用合适的长度。

您的示例代码:

\documentclass[12pt,draft,letterpaper]{report}

\makeatletter
\renewcommand\@pnumwidth{1cm}
\makeatother

\begin{document}

\pagenumbering{roman}

\tableofcontents

\newpage

\section*{Acknowledgements}\addcontentsline{toc}{section}{Acknowledgements}

\newpage

\setcounter{page}{18}

\chapter*{Abstract}
\addcontentsline{toc}{section}{Abstract}

This is the abstract.

\end{document}

现在生产

在此处输入图片描述

相关内容