使用 Lualatex 制作粗体小写字母

使用 Lualatex 制作粗体小写字母

参考这个帖子:如何使用 fontspec 以及 LuaLaTeX 中的小号粗体大写字母?,我有一个带有真正小写字母的字体,但也有同样的问题。请编译以下简单代码:

\documentclass{article}
\usepackage{fontspec}
\usepackage[italian]{babel}
\babelfont[italian]{rm}{EB Garamond}
 %   \setmainfont{EB Garamond}

\begin{document}

Quel \textbf{ramo del \textsc{lago} di Como}, che volge a \textbf{\textsc{mezzogiorno}}

\end{document}

因此,解决方案不是

您需要选择具有粗体小写字母的字体系列

因为它有... 有粗体小写字母真的很难吗?添加 是有效的\setmainfont{EB Garamond},但我认为制作 xelatex 和 lualatex 水果沙拉不是一个好主意... 谢谢

答案1

\setmainfont 是不是 仅适用于 xelatex 的命令。它是来自 fontspec 的适用于两个引擎的命令。

babel 有自己的命令来设置字体(也可以在两个引擎中使用)。在你的情况下,可选参数 [italian] 会禁用小写字母,原因有两个:

首先,使用可选参数 babel 不会直接加载字体,而只会为语言做准备。其次,因为 babel 没有像 fontspec 那样设置默认粗体系列,我认为它b应该这样做,所以我会报告它。由于系列是 bx,它会触发替换,因此您会丢失小写字母(这也许不应该发生......)。我建议删除语言,这没有多大意义,因为字体无论如何都不知道它,并且现在添加一系列声明(这需要当前的 latex)。

\documentclass{article}
\usepackage{fontspec}
\DeclareFontSeriesDefault[rm]{bf}{b}
\usepackage[italian]{babel}
\babelfont{rm}{EB Garamond}

\begin{document}

Quel \textbf{ramo del \textsc{lago} di Como}, che volge a \textbf{\textsc{mezzogiorno}}

\end{document}

相关内容