如标题。
我一直在创建一些个人 OpenType 数学字体(通过将现有字体(如 Minion)与现有数学字体相结合);在此过程中,我发现一件奇怪的事情是,似乎几乎每种 OpenType 数学字体都定义了 Latin-1 Supplement、Latin Extended A 和 Latin Extended B 字符集。例如,参见 Fira Math 的样本表(Fira Math 甚至定义了西里尔字母,但由于以下原因,我也不太明白)
然而,据我所知(至少对于 LuaLaTeX 而言),unicode-math 不会将任何这些字形映射到数学模式下的字符。数学模式下的重音字符似乎总是通过将原始字符与 U+00300 及以后定义的标记相结合而创建的(Fira Math 样本中的“组合变音符号”部分)。
此外,就我个人而言,我总是将字体设置为从常规文档字体中提取常规直立字形(用于 mathrm 等) - 我始终相信这些字体经过正确配置,可以实现良好的排版。*
(* 如果有人发现这一点令人困惑,我承认我不完全确定 mathrm 的来源是哪里 - 来自 fontspec 的常规字体还是 unicode-math 指定的数学字体?)
换句话说,如果我使用 Latin Modern Math 作为我的数学字体,我会要求 LaTeX 从 Latin Modern 中提取所有直立字形。(这种用例对于 Latin Modern 可能没有多大意义,但对于我自己的自定义字体 - 而且我不是专业印刷工 - 我显然选择从原始文件中提取直立字体,因为它们是由专业印刷工创建的。我不明白为什么有人会费心将相同的字形不加更改地复制到数学字体中)。如果它们从未使用过或只是常规非数学字体的重复,我不明白为什么需要定义它们(为什么不简单地获取原始字体?)
更奇怪的是 unicode 分数字符集(根据其样本表,Fira Math 也对其进行了定义),我认为它们从未在数学模式中使用过,更不用说在数学排版中很常见了。根据我的经验,TeX 分数似乎总是受到青睐和使用。
总而言之,我不太明白为什么这些字符集在 OpenType Math 字体中定义,至少对于 LaTeX 来说是这样。它们对我来说似乎是多余的,因为它们要么未使用,要么似乎只是从常规非数学字体中复制而来(没有调整):
- 拉丁语-1补充
- 拉丁语扩展A
- 拉丁语扩展B
- unicode 分数(在 Latin-1 补充集和 Ux2150 及更高版本中 - Fira 样本中的“数字形式”部分)
- (西里尔)
- (基础拉丁文的直立字母)
我所能想到的关于它们定义的原因只有几种:
- 这样 OpenType Math 字体也可以作为常规文档字体使用。这似乎是一个非常奇怪的用例(并且似乎也不起作用 - 因为您需要从常规非数学字体中获取具有未修改间距的斜体字形才能正确排版斜体)
- 它们是为非 LaTeX 用例(例如 Microsoft Word)定义的。我不确定 Word 是否使用这些字符集,但这似乎是一个可能的解释。
- XeLaTeX 或 mathspec 使用。不知道这是否属实,但在我看来它们并没有在 LuaLaTeX + unicode-math 中使用。
我是否正确地认为这些字形实际上从未在 LuaLaTeX、unicode-math 上下文中使用过(和/或可以通过要求 LaTeX 从常规非数学字体中获取字形来补充)?
答案1
他们这样做是因为这很容易。大多数 OpenType 数学字体都是现有字体的扩展,这些字体已经涵盖了这些范围,或者有匹配的文本字体。即使没有,这些块中的几乎每个字形都结合了字体已经需要的重音和字母。
基本的直立拉丁字母用于\symup
(虽然您说得对,似乎没有数学字体利用这一点来表示直立数学字母,而\symup
不是数学模式下的单词,\mathrm
- 您必须为此加载第二种字体)并且一些数学论文确实使用西里尔字母作为数学符号,所以这些在数学模式下并不是完全没用的。