当我(尝试)重新定义 \spacedlowsmallcaps 时,classicthesis.sty 中出现 \chaptermark 未定义错误

当我(尝试)重新定义 \spacedlowsmallcaps 时,classicthesis.sty 中出现 \chaptermark 未定义错误

我的 MWE 无法编译,错误是:! LaTeX Error: \chaptermark undefined. 我已经调试到我知道错误是classicthesis和我的\SC命令之间的交互以某种方式交互的程度\spacedlowsmallcaps- 这就是我试图重新定义\spacedlowsmallcaps控制序列的原因。

基本上,我正试图从 手中夺取对小型股的控制权classicthesis

\documentclass[10pt,letterpaper]{scrartcl}
\usepackage{fontspec}
\setmainfont{Alegreya}

\newfontfamily{\SCaps}{Alegreya SC}
\DeclareTextFontCommand{\SC}{\SCaps}

\usepackage{classicthesis}
\renewcommand{\spacedlowsmallcaps}[1]{\DeclareRobustCommand{\SC{#1}}}

\begin{document}

Hello World

\spacedlowsmallcaps{Hello World}

\end{document}

答案1

当然,你会得到一个错误:如果你想使用scrartcl你必须调用

\usepackage[nochapters]{classicthesis}

但是你的重新定义\spacedlowsmallcaps毫无意义:

\renewcommand{\spacedlowsmallcaps}[1]{\SC{#1}}

可能就是你想要的。


但没必要耍花招。

\documentclass[10pt,letterpaper]{scrartcl}

\usepackage{fontspec}

\usepackage[nochapters]{classicthesis}

\setmainfont{Alegreya}[
  SmallCapsFont=* SC,
]

\begin{document}

Hello World

\spacedlowsmallcaps{Hello World}

\end{document}

在此处输入图片描述

如果您在使用 XeLaTeX 时不想依赖soul字母间距,请在之前添加此代码\begin{document}

\DeclareRobustCommand{\spacedlowsmallcaps}[1]{{%
  \normalfont\scshape
  \addfontfeatures{LetterSpace=10}%
  \MakeLowercase{#1}%
}}

相关内容