調整新指令新增的間距

調整新指令新增的間距

我正在編寫一個文檔,其中使用的字體與 LaTeX 預設字體不同。我正在使用 EB Garamond,其特點之一是老式小寫數字。我對此功能很滿意,並且我希望文件中的幾乎所有數字都採用這種格式。

然而,並非所有數字。我透過這樣的開頭對一些段落進行編號:§ [數字]。[文](例如§ 1.---[文字].).我希望數字是“大寫”,EB Garamond 確實允許通過字體功能tnumlnum.

由於我會經常使用上述編號符號,因此我認為定義一個新命令是最有效的;一個新命令,它將上述字體功能應用於數字。我將該指令命名為\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

正如大衛卡萊爾在評論中指出的那樣,這個錯誤很簡單。前後新增了空格,因為新指令的定義如下:

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

當它應該是:

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

我第一次編寫命令的方式在前後添加了空格。後一種方式不會增加任何不需要的間距。再次感謝卡萊爾先生的解答!

相關內容