在 Xe(La)TeX 下的字体中添加单个 unicode 字符(欧元符号)

在 Xe(La)TeX 下的字体中添加单个 unicode 字符(欧元符号)

也许这个问题已经被问过了,但我找不到答案。

我刚刚切换到 XeTeX,因为我需要在项目中使用 .ttf 字体。除了字体中缺少欧元 (€) 符号外,其他一切都正常。我如何告诉 XeTeX 仅对该字符使用不同的字体?

有人指出ucharclasses,但我不明白如何设置它来做我需要的事情(此外,我不确定它是否是我正在寻找的,因为它处理的是文本块,而不是单个字符)

以下是我当前的设置:

\usepackage[math-style=ISO, bold-style=ISO]{unicode-math}
\setmainfont{Simoncini Garamond}
\setsansfont{TeX Gyre Heros}
\setmathfont{Garamond-Math.otf}[StylisticSet={7,9}]

答案1

最简单的解决方案是找到具有良好 € 字形的字体,比如“最佳字体”。

现在添加

\usepackage{newunicodechar}

到你的软件包列表,并在你的字体设置之后,神奇的公式

\newfontfamily{\eurofont}{Best Font}[Scale=MatchUppercase]

\newunicodechar{€}{{\eurofont €}}

在文档中输入即可。你可能需要使用间接方法:

\newfontfamily{\eurofont}{Best Font}[Scale=MatchUppercase]

\DeclareRobustCommand{\EUR}{{\eurofont €}}
\newunicodechar{€}{\EUR}

以便也能够\EUR为字形打字。

相关内容