我在用着KOMA 脚本使用pdflatex
(可能最终会切换到lualatex
)来排版我的论文,并希望使用 EBGaramond 作为字体。为此,我正在加载ebgaramond-maths
包,然后加载ebgaramond
包。后者提供了各种字体样式,包括不同的数字。我非常喜欢正文中的默认旧式数字,但我认为它们不太适合标题。所以我想更改数字样式仅在标题和目录中。 这ebgaramond
README
为我们提供以下选择样式的方法:
要使用,请将其添加
\usepackage{ebgaramond}
到文档的序言中。选项包括:
oldstyle
、osf
旧式数字lining
,nf
,lf
衬线数字[…] 命令
\oldstylenums{...}
和\liningnums{...}
分别被定义为允许本地使用旧式数字或衬线数字。
全局改变样式不是一个选择,所以我们只能使用\liningnums{}
。如何正确使用它与 KOMA-Script?
我尝试过各种方法,但均未成功:
- 第一个直觉是使用
\addtokomafont
\addtokomafont{disposition}{\rmfamily\liningnums{}}
(\rmfamily
因为我想要衬线样式的标题)。这适用于\chapter
s 但不适用于\section
MWE 中的 s,但它在我的实际文档中不起作用,并且抛出
! Paragraph ended before \text@command was complete.
我不知道这是怎么回事,但它也是KOMA-Script 文档 (第 3.6 节) 不鼓励这样做:
有时,虽然不建议这样做,但元素的字体设置会用于与字体实际上无关的设置。[…] 但是,您不应将这些命令视为在元素的字体设置中插入任意命令的合法性。这样做会很快导致错误(请参阅第 21.5 节,第 476 页)。
- 根据这个相关答案,应该改变
\chapterlinesformat
等等
\renewcommand\chapterlinesformat[3]{\liningnums{#2#3}}
\renewcommand\sectionlinesformat[3]{\liningnums{#2#3}}
% ...
但这也不起作用。当我只设置\chapterlinesformat
它时,它适用于\chapter
s,但会弄乱字体样式。在目录中,\chapter
字体设置为无衬线 Computer Modern,而\section
和则\subsection
保留衬线 Garamond。然而在主文档中,情况恰恰相反:\chapter
具有正确的衬线数字,并正确排版为 Garamond,但现在\section
和\subsection
是无衬线 Computer Modern。如果我敢添加该sectionlinesformat
行,我会收到错误
! You can't use `\glueexpr' in horizontal mode.
我如何正确地告诉 KOMA-Script 用于liningnums{}
正文和目录中的标题?请不要使用黑客手段,我想要一个干净的 KOMA-Scriptonic 解决方案。
最小(不)工作示例:
\documentclass{scrreprt}
%\addtokomafont{disposition}{\rmfamily\liningnums}
\renewcommand\chapterlinesformat[3]{\liningnums{#2#3}}
%\renewcommand\sectionlinesformat[3]{\liningnums{#2#3}}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ebgaramond-maths}
\begin{document}
\tableofcontents
\chapter{Chapter}
\section{Section}
\subsection{Subsection}
\end{document}
答案1
您可以将字体系列切换为衬线字体:
\documentclass{scrreprt}
\addtokomafont{disposition}{\fontfamily{EBGaramond-LF}\selectfont}
\AfterTOCHead{\renewcommand\rmdefault{EBGaramond-LF}\normalfont} %for the toc
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{ebgaramond-maths}
\begin{document}
\tableofcontents
\setcounter{chapter}{88}
\chapter{Chapter 89}
0123456789
\section{Section 89}
\subsection{Subsection}
\end{document}