如何在 classicthesis 目录中对齐点和罗马数字?

如何在 classicthesis 目录中对齐点和罗马数字?

使用文档类时,目录的某个部分出现了问题classicthesis。在此部分中,我使用了罗马数字(I、II、III 等)。现在,一些点位于数字(XXVIII)下方,如下图所示。我该如何修复它?

在此处输入图片描述

这是我的 mwe(请不要问我为什么使用 xelatex 和...inputenc:这是我的 Mac 运行的方式。其他方式全部失败。)

\documentclass[12pt,a4paper,footinclude=true,twoside,headinclude=true]{scrbook}
\XeTeXinputencoding iso-8859-1
\usepackage{setspace} 
\usepackage{epigraph} 
\usepackage{scrpage2}
\usepackage{graphicx}  %% For \scalebox
\usepackage{lipsum}
\usepackage[parts,pdfspacing,dottedtoc]{classicthesis}
\usepackage{fontspec}
\usepackage[applemac]{inputenc}    
\usepackage[frenchb]{babel}
\setmainfont{Minion Pro}
\usepackage[numberedbib,nosectionbib]{apacite}
\usepackage{chngcntr}
...
\usepackage{lineno}
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{3}
\AtBeginDocument{\renewcommand{\thepart}{\Roman{part}}}

\usepackage{hyperref}

\frontmatter
\begin{document}

\pagestyle{scrheadings}

...
\newpage
\pagenumbering{Roman}
\appendix
\renewcommand{\thesection}{\Alph{section}} 
\setcounter{section}{}

\part*{Annexes}

\chapter{Entretiens}

\section{Premier entretien}
\begin{linenumbers}
...
\end{linenumbers}

\end{document}

答案1

由于 OP 示例无法编译,这个答案可能会或可能不会解决问题!

这是一个最简单的例子,我认为它说明了问题。

\documentclass{article}
\usepackage{lipsum}
\usepackage[nochapters,dottedtoc]{classicthesis}
\begin{document}
\tableofcontents
\pagenumbering{Roman}
\section{Section}
\lipsum[1]
\subsection{Subsection A}
\lipsum[2]
\newpage
\setcounter{page}{88}
\subsection{Subsection B}
\lipsum[3]
\end{document}

目录中的虚线“引线”与长页码重叠。

在此处输入图片描述

可以通过强制增加页码空间来解决此问题,如下所示。添加以下内容:

\makeatletter
\setlength{\@pnumwidth}{16mm}
\makeatother

就在该\begin{document}行之前,产生:

在此处输入图片描述

现在数字不会覆盖引线,但效果不太好。显然,您可以尝试使用略小于 16mm 的宽度,如果目录中的大多数页码都很窄,那么效果可能会更好,但可能不是。

此时,我很想完全避免使用罗马页码classicthesis,但作为最后的努力,您可以更改实际生成虚线的宏。这样做的问题是,在如此复杂的包中可能会产生意想不到的副作用。尽管如此,改变并不难,它会产生以下内容,这可能更符合它的需求。

在此处输入图片描述

以下是建议重新定义的完整示例cftsubsecfillnum

\documentclass{article}
\usepackage{lipsum}
\usepackage[nochapters,dottedtoc]{classicthesis}
\renewcommand\cftsubsecfillnum[1]{{\cftsubsecleader\ }\nobreak 
    \hbox{\cftsubsecpagefont #1}\cftsubsecafterpnum \par }
\begin{document}
\tableofcontents
\pagenumbering{Roman}
\section{Section}
\lipsum[1]
\subsection{Subsection A}
\lipsum[2]
\newpage
\setcounter{page}{88}
\subsection{Subsection B}
\lipsum[3]
\end{document}

相关内容