我正在编写一个文档,其中使用的字体与 LaTeX 默认字体不同。我使用的是 EB Garamond,其功能之一是旧式小写数字。我对此功能很满意,我希望文档中出现的几乎所有数字都采用这种格式。
但是,并非所有的数字都是如此。我通过以下方式对一些段落进行编号:§ [数字]。 - -[文本] (例如§1.---[文本]。我更希望那里的数字是“大写的”,EB Garamond 确实允许通过字体功能来实现这tnum
一点lnum
。
由于我将经常使用上述编号符号,因此我认为定义一个新命令是最有效的;一个将上述字体功能应用于数字的新命令。我将命令命名为\num
:
\newcommand{\num}[1]{
{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}
在创建新命令方面,我完全是个新手;不过,这个命令成功了,尽管并不完全符合我的要求。新命令\num
有效地将数字改为大写(参见附图中的第二行文本),它在数字的左右两侧引入了空白(使用添加的红线将间距与其他行进行比较)。
也许这不是最好的主意,但我考虑在两边添加\(
和\)
;它按照我的意愿删除了间距,但它将数字的字体改回默认字体(见附图中的第三行)。
我的问题:我应该在新命令的定义中或文档中的任何地方添加或更改什么,以删除数字周围的奇怪间距和保留数字的字体,EB Garamond?
妇女权利委员会:
\documentclass[10pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\newcommand{\num}[1]{
{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}
\begin{document}
§ 5.---To the left is a lowercase, oldstyle Garamond 5.
§ \num{5}---To the left is an "uppercase" Garamond 5. NB the spacing with the command.
§ \(\num{5}\)---As before, but the attempt to remove the spacing changed the font of the 5.
The above are some visual examples. Oldstyle lowercase numerals: 1234567890.
\end{document}
图像中添加了红线来突出显示我要消除的奇怪间距:
答案1
正如 David Carlisle 在评论中指出的那样,这个错误很简单。因为新命令的定义如下,所以在前后添加了空格:
\newcommand{\num}[1]{
{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}
但事实应该是:
\newcommand{\num}[1]{{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.}
我第一种写命令的方式在前后添加了空格。后一种方式没有添加任何不必要的空格。再次感谢卡莱尔先生的回答!