Unicode-math 文档 v. 0.8o 在 §3.1 中说:
应使用数学字体打印粗体变量名,而应使用文本字体打印粗体运算符名称。
现在,如何在多排序逻辑中排版多字母变量和多字母排序(换句话说,类型)?它们应该用哪种字体设置,例如,在以下示例中:
“对于变量标识符 var : Int 和函数标识符 fun : Int → Bool,术语 fun(var) 具有 Bool 排序。”
?
让我们继续:
具有这种行为方式的五个新符号字体命令是:、、、
\symup
和。这些命令切换到单字母数学符号(通常在同一个 OpenType 字体中)。旧命令切换到设置为在数学中正确表现的文本字体,应该用于多字母标识符。\symit
\symbf
\symsf
\symit
\math..
好的,但是\mathsfup
应该做什么呢?请注意\mathsfup
∉ { \symup
, \symit
, \symbf
,\symsf
和\symit
} 和\mathsfup
不是传统命令。表 1 表示\mathsfup
与 相同,\symsfup
但我缺少的是\symsfup
或使用的字体\mathsfup
。
此外,我甚至找不到以下的正确定义\symsfup
:
$ grep -air "symsfup" /usr/share/*tex*
$
它在哪里?
答案1
没有\symsfup
或其他类似命令的明确定义:它们被隐式定义为设置的一部分。
考虑以下测试文件:
\documentclass{article}
\usepackage{unicode-math}
\pagestyle{empty}
\begin{document}
$\symsf{A}$ $\mathsf{A}$
$\symsfup{A}$ $\mathsfup{A}$
$\symbfsf{A}$ $\mathbfsf{A}$
$\symbfsfup{A}$ $\mathbfsfup{A}$
\showoutput
\end{document}
从日志文件中分离出相关部分,我们可以看到
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3126
....\mathoff
....\mathon
....\TU/lmss/m/n/10 glyph#27
....\mathoff
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3126
....\mathoff
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3126
....\mathoff
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3250
....\mathoff
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3250
....\mathoff
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3250
....\mathoff
....\mathon
....\TU/latinmodern-math.otf(1)/m/n/10 glyph#3250
....\mathoff
\symsf
如您所见,只有和之间存在差异\mathsf
,如文档中所写。
如果你需要区分\symbfsf
和\mathbfsf
,你可以用以下方式定义后者
\setmathfontface⟨\mathbfsf⟩{<your text sans font>}[⟨the required features⟩]
这样,中的多字母字符串\mathbfsf
就会被视为文本,而不是并列的符号。