我正在編寫一個文檔,其中使用的字體與 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
正如大衛卡萊爾在評論中指出的那樣,這個錯誤很簡單。前後新增了空格,因為新指令的定義如下:
\newcommand{\num}[1]{
{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.
}
當它應該是:
\newcommand{\num}[1]{{\addfontfeatures{RawFeature={+tnum, +lnum}}#1}.}
我第一次編寫命令的方式在前後添加了空格。後一種方式不會增加任何不需要的間距。再次感謝卡萊爾先生的解答!