修复目录中页码 > 99 的格式错误?

修复目录中页码 > 99 的格式错误?

这是一个后续问题目录中的页码 > 99 未正确对齐 (cleanthesis)。格式问题与 cleanthesis.sty 无关。

问题是,如果我使用 charter 字体,目录中大于 99 的页码格式将不正确。

\documentclass[draft=on]{scrbook}
\usepackage{blindtext}
\usepackage{charter}

\listfiles

\begin{document}
\tableofcontents
\section{Section 1}
\blindtext[100]
\section{Section 2}
\blindtext[500]
\section{Section 3}
\end{document}

答案1

\@pnumwidth更改(为排版页码保留的空间)的值:

\documentclass[draft=on]{scrbook}
\usepackage{blindtext}
\usepackage{charter}

\makeatletter
\renewcommand*\@pnumwidth{2em}
\makeatother

\begin{document}
\tableofcontents
\section{Section 1}
\blindtext[100]
\section{Section 2}
\blindtext[500]
\section{Section 3}
\end{document}

在此处输入图片描述

scrbook.cls默认情况下有:

\newcommand*\@pnumwidth{1.55em}

答案2

把这写在你的序言中:

\usepackage{tocloft}

\newlength\mylen

\renewcommand\cftchappresnum{\chaptername~}
\settowidth\mylen{\bfseries\cftchappresnum\cftchapaftersnum}
\addtolength\cftchapnumwidth{\mylen}

完整代码:

\documentclass[draft=on]{scrbook}
\usepackage{blindtext}
\usepackage{charter}

\usepackage{tocloft}

\newlength\mylen

\renewcommand\cftchappresnum{\chaptername~}
\settowidth\mylen{\bfseries\cftchappresnum\cftchapaftersnum}
\addtolength\cftchapnumwidth{\mylen}

\listfiles

\begin{document}
\tableofcontents
\section{Section 1}
\blindtext[100]
\section{Section 2}
\blindtext[500]
\section{Section 3}
\end{document}

在此处输入图片描述

相关内容