如何更改 XeTeX/fontspec 中的数学斜体字体?

如何更改 XeTeX/fontspec 中的数学斜体字体?

我有一份文档,其主要字体是 Gotham Book。因此,在我的序言中,我有:

\usepackage{fontspec}
\setmainfont{Gotham Book}

正如 fontspec 手册所述,这会将 math roman 字体也设置为 Gotham Book。但 math斜体字体依然保留了 Computer Modern 系列。

我知道这\setmathrm会改变数学罗马字体,并且有表兄弟\setmathtt\setmathsf\setboldmathrm。但没有\setmathit

我错过了什么?

答案1

如果您不想以其他方式更改数学符号,最好的解决方案是使用以下mathspec包:

\documentclass{article}
\usepackage{mathspec}
\setallmainfonts(Digits,Latin){Georgia}
\begin{document}
Hello $a+\mathrm{b}=c$
\end{document}

这里,Georgia 将用于正文和\mathrm,而 Georgia Italic 将用于斜体数学字形。

unicode-math包(我写的)也可以做到这一点,但对于您的目的来说,这有点过头了,而且还有一个缺点,那就是您还需要加载 Unicode 数学字体。以下是一个例子:

\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Georgia}
\setmathfont{xits-math.otf}
\setmathfont[range=\mathit]{Georgia Italic}
\begin{document}
Hello $a+b=c$
\end{document}

请注意,mathspec 暂时还不能在 LuaTeX 上运行,所以如果您需要 LuaLaTeX 解决方案,那么您unicode-math现在就需要使用它。

答案2

感谢 Will 和 Leo 指出mathspec包。所以现在我使用:

\usepackage{mathspec} %loads fontspec as well
\setmainfont{Gotham Book}
\setmathrm{Gotham Book}
\setmathfont(Digits,Latin){Gotham Book}

此代码片段可能需要优化,但是可以起作用。

答案3

字面答案

截至 2019 年,fontspec应该找到粗体和斜体字体,并加载\mathrm\mathbf\mathit\setmathrm

如果需要对 进行额外设置\mathit,则设置的ItalicFontItalicFeatures选项,就像设置 的和选项一样。\setmathrm\mathitBoldfontBoldFeatures\mathbf

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{fontspec}
\usepackage[paperwidth=10cm]{geometry}

\setmainfont{TeX Gyre Schola}
\setmathrm{TeX Gyre Schola}[
  ItalicFeatures = {Color = green}]

\begin{document}
Text \textit{italic} \(\mathrm{math}\) \(\mathit{italic}\)
\end{document}

TeX Gyre Schola 示例

你可能还想表达什么

实际上,有人询问如何设置\mathit字母表可能指的是用于的字母表$x$

要进行设置,您需要加载unicode-math包,设置与您的主字体匹配的数学字体,然后根据需要添加一行,例如

\setmathfont[range=it]{Gotham Book Italic}

您可以对、和其他数学字母执行同样upbfup操作bfit

在 中unicode-math,您通常会使用\symit\symup等表示用作变量的单个字母,并使用\mathit\mathrm\mathup等表示完整的单词。但是,您可以给出一个包选项来解释\mathit为,\symit并使迁移的代码正确编译。

相关内容