这是一个后续问题目录中的页码 > 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}