使用 unicode-math 的多种数学字体

使用 unicode-math 的多种数学字体

我想用 排版一份使用两种不同数学字体的文档unicode-math。在文档中我找不到有关在文档中间切换字体的任何信息。只是写

\setmathfont{xits-math.otf} $a$
\setmathfont{lmmath-regular.otf} $a$

确实有效,但我想知道在文档中多次切换字体时这是否是正确的方法。

答案1

unicode-math从 v0.6 开始,支持 LaTeX 数学版本,这是在文档中间切换数学字体比每次重新加载字体更有效的方法:

\documentclass{article}
\usepackage{unicode-math}
\setmathfont[version=xits]{xits-math.otf}
\setmathfont[version=lm]{lmmath-regular.otf}
\begin{document}
\mathversion{xits} $a$
\mathversion{lm} $a$
\end{document}

答案2

您在问题中提到的方法在某种意义上是有效的,它对数学模式中使用的字体进行了全局重置。字体规格unicode 数学软件包提供了如何将数学字体的范围限制在数学字体应用程序的各种子集的示例。unicode-math 手册第 4.1 节(第 6f 页)首先指出“可能只有少数情况下,单个 Unicode 数学字体就足够了。...因此,有必要将特定 Unicode 范围的字形委托给单独的字体”。然后,它给出了选择数学字体的示例

  • 特定字形,例如\int\sum\prod
  • 具有相同数学类型的符号集合,例如\mathopen
  • 完成数学样式,例如\mathbb
  • 以逗号分隔的 Unicode 槽位和范围列表

手册第 3.1 节fontspec指出“默认情况下,fontspec 会调整 LaTeX 的默认数学设置,以便在罗马字体发生变化时保持正确的 Computer Modern 符号。但是,如果加载了另一个数学字体包(例如 mathpazo 或 unicode-math 包),它将尝试避免这样做。如果您发现 fontspec 错误地更改了数学字体(而它应该保持原样),请应用包[no-math]选项手动隐藏其数学字体。”[通过添加反引号突出显示]

相关内容