unicode-math 的文档对范围的各种标签进行了说明:
在 unicode-math 中,这些范围用以下(希望是不言自明的)标签表示:
向上,它,bb,bbit,scr,cal,bfcal,frak,tt,sfup,sfit,bfup,bfit,bfscr,bffrak,bfsfup,bfsfit
这些不是对我来说是不言自明的。它们各自的含义是什么?
答案1
它们对应于数学\sym...
字母。 所以,
\setmathfont[range=up]{Neo Euler}
将字母表更改\symup
为 Neo Euler,range=it
更改\symit
,等等。
另一件不直观的事情是,这确实不是更改\mathrm
、\mathbf
或\mathit
,这些默认为您的主字体系列。您可以使用不同的命令更改它们\setmathrm
。您还可以传递unicode-math
选项以使它们成为\symup
、\symbfup
和 的别名\symit
。
默认情况下,\sym...
字母表用于独立的数学符号,例如\symbfup{j}
,字母表\math...
用于数学模式中的单词,例如。您会注意到和\mathrm{iff}
的字距调整之间存在很大差异!\mathrm{iff}
\symup{iff}
另一件不直观的事情是,\mathcal
和\mathscr
默认设置为相同的字母,但您可以覆盖其中一个以使其不同。
最后一件不直观的事情是,截至 2021 年,的range=
和version=
选项\setmathfont
不兼容,因此您可以使用range=
或拥有不同的数学版本,但不能同时使用两者。
因此,我常用的例子之一是欧拉恒等式,其中常数设置在 Neo Euler 中,其他一切都设置在 Palatino(的克隆版)中:
\documentclass[varwidth, preview]{standalone}
\usepackage{mathtools}
\usepackage[math-style=ISO]{unicode-math}
\setmainfont{TeX Gyre Pagella}
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont{Asana Math}
\setmathfont[range={up/{Latin,latin,Greek,greek},
bfup/{Latin,latin,Greek,greek}},
script-features={}, sscript-features={}
]{Neo Euler}
\newcommand\upe{\symup{e}}
\newcommand\upi{\symup{i}}
\begin{document}
\begin{align*}
\upe^{\upi x} &= \cos{x} + \upi \sin{x} \\
\upe^{\upi \uppi} + 1 &= 0
\end{align*}
\end{document}
在上面的例子中,\symup{i}
、\symup{e}
和\symup{\pi}
(或\uppi
)都改为 Neo Euler,但是运算符sin
和cos
保留在 中\mathrm
,和x
且数字来自主数学字体。
答案2
它们是直立斜体、黑板粗体、手写体、粗体书法等,它们对应于 Unicode 数学字母表,例如
答案3
您可以\sym
在这些标签前面添加前缀,以获取unicode-math
与其对应的数学字体切换命令。(例如,it
设置可用插入的字符的字体\symit
)
然后,文档的第 5.4 节“所有(其余)数学风格”包含一个表格(在撰写本文时,这是表 7),列出了每个开关对应的风格/形状/系列。