字体不一致是由于classicthesis的实现造成的

字体不一致是由于classicthesis的实现造成的

期望结果:

\documentclass{scrbook}

\usepackage{classicthesis}
%\usepackage{arsclassica}

\begin{document}

    \tableofcontents

    \setcounter{chapter}{10}
    \chapter{Some chapter}
    \section{Some section}

\end{document}

期望结果


在以下示例中,目录中的章节编号与章节标题太接近(由于microtype的跟踪):

\documentclass{scrbook}

\usepackage{classicthesis}
%\usepackage{arsclassica}

\microtypesetup{tracking=true}

\begin{document}

    \tableofcontents

    \setcounter{chapter}{10}
    \chapter{Some chapter}
    \section{Some section}

\end{document}

微型追踪


同样适用于章节和部分 ToC 条目,类似示例不包含跟踪:

\documentclass{scrbook}

\usepackage{classicthesis}
%\usepackage{arsclassica}

\begin{document}

    \tableofcontents

    \setcounter{chapter}{100}
    \chapter{Some chapter}
    \section{Some section}

\end{document}

章节号太长


此外,当classicthesis更改为时arsclassica,会观察到另一个奇怪的行为——第一个 ToC 字符的字体不一致:

\documentclass{scrbook}

%\usepackage{classicthesis}
\usepackage{arsclassica}

\begin{document}

    \tableofcontents

    \setcounter{chapter}{10}
    \chapter{Some chapter}
    \section{Some section}

\end{document}

字体不连贯


如何在不放弃microtype跟踪的情况下获得目录中章节/部分/...字段(框?)的足够宽度,同时还可能消除字体不一致的问题arsclassica

答案1

请注意,的作者 André Miedeclassicthesis文档

第 6 页:作为一项新功能,Lorenzo Pantieriarsclassica也可用。由于 Lorenzo 的软件包已停用,经他的许可,classicthesis-arsclassica.sty现在已成为此处的一部分classicthesis并将在此处维护。

所以你现在可以写

\usepackage[style=arsclassica]{classicthesis}

访问arsclassica样式。

字体不一致是由于classicthesis的实现造成的

目录是通过tocloft包定制的。特别是,章节编号受以下行的影响:classicthesis.sty

% from `classicthesis'
\renewcommand{\cftchappresnum}{\spacedlowsmallcaps}%

其中\spacedlowsmallcaps定义为

% from `classicthesis'
% engine-dependent letterspacing
% if engine = pdfLaTeX, then
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textls[80]{\ct@caps\MakeTextLowercase{#1}}}
% if engine = XeLaTeX, then
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{{\addfontfeatures{LetterSpace=14.0}\ct@caps\MakeTextLowercase{#1}}}% WordSpace=1.8

tocloft这与重新定义的交互确实很差\numberline

% from `tocloft'
\let\@cftbsnum \cftchappresnum
...
\renewcommand{\numberline}[1]{% 
  \hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}

现在应该清楚的是在宏扩展期间,只有最左边的字符 #1被抓取 \spacedlowsmallcaps。因此当样式\ct@altfont变成时,只有第一个数字变成无衬线。\sffamilyarsclassica

一个快速的解决方法是\numberline通过将其 #1放入一对中 来重新定义{}

\documentclass{scrbook}

\usepackage[style=arsclassica]{classicthesis}

% redefine \numberline again
\makeatletter
\renewcommand{\numberline}[1]{% 
  \hb@xt@\@tempdima{\@cftbsnum{#1}\@cftasnum\hfil}\@cftasnumb}
\makeatother

\begin{document}

    \tableofcontents

    \setcounter{chapter}{14}% changed for illustration
    \chapter{Some chapter}
    \section{Some section}

\end{document}

字体一致

这肯定是一个错误,我将报告此问题André Miede 的网站

目录中章节号后的额外空间

已编辑\microtypesetup{tracking=true}不建议书写!该classicthesis包有自己的引擎相关方法来处理字母间距。这是由 \spacedallcaps和 实现的\spacedlowsmallcaps实现的。简而言之,包裹已使用追踪

追踪是为了增加小写字母之间的间距。因此,章节号后面的空间很窄是可以预料的。同样,快速阅读完classicthesis 文档, 我们发现:

第 7 页: manychapters: 如果您的文档需要超过九个章节,您可能对目录中章节号和章节标题之间的间距不满意……

然而,简单地写作

\usepackage[manychapters]{classicthesis}

并不令人满意。因此我们可以借鉴和修改classicthesis.sty

\documentclass{scrbook}

\usepackage{classicthesis}

\settowidth{\newchnumberwidth}{00} % <--- tweak here if more space required
\addtolength{\cftchapnumwidth}{\newchnumberwidth}%
\addtolength{\cftsecnumwidth}{\newchnumberwidth}
\addtolength{\cftsecindent}{\newchnumberwidth}
\addtolength{\cftsubsecnumwidth}{\newchnumberwidth}
\addtolength{\cftsubsecindent}{2\newchnumberwidth}
\addtolength{\cftsubsubsecnumwidth}{\newchnumberwidth}

\begin{document}

    \tableofcontents

    \setcounter{chapter}{100}
    \chapter{Some chapter}
    \section{Some section}

\end{document}

更多的空间

答案2

也许以下内容有帮助:

\documentclass{scrbook}

%\usepackage{classicthesis}

\usepackage{arsclassica}
\renewcommand{\cftchappresnum}{\scshape\MakeTextLowercase}

\microtypesetup{tracking=true}

\settowidth{\newchnumberwidth}{\cftchappresnum 99}
\addtolength{\cftchapnumwidth}{\newchnumberwidth}%
\addtolength{\cftsecnumwidth}{\newchnumberwidth}
\addtolength{\cftsecindent}{\newchnumberwidth}
\addtolength{\cftsubsecnumwidth}{\newchnumberwidth}
\addtolength{\cftsubsecindent}{2\newchnumberwidth}
\addtolength{\cftsubsubsecnumwidth}{\newchnumberwidth}

\begin{document}
\tableofcontents
\setcounter{chapter}{100}
\chapter{Some chapter}
\section{Some section}
\end{document}

在此处输入图片描述

相关内容