调整通过新命令添加的间距

调整通过新命令添加的间距

我正在编写一个文档,其中使用的字体与 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}

图像中添加了红线来突出显示我要消除的奇怪间距:

MWE 的产品。

答案1

正如 David Carlisle 在评论中指出的那样,这个错误很简单。因为新命令的定义如下,所以在前后添加了空格:

\newcommand{\num}[1]{
    {\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}

但事实应该是:

\newcommand{\num}[1]{{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.}

我第一种写命令的方式在前后添加了空格。后一种方式没有添加任何不必要的空格。再次感谢卡莱尔先生的回答!

相关内容