![使用数学模式的花哨字体,缺少符号时则返回 XITS](https://linux22.com/image/243590/%E4%BD%BF%E7%94%A8%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E7%9A%84%E8%8A%B1%E5%93%A8%E5%AD%97%E4%BD%93%EF%BC%8C%E7%BC%BA%E5%B0%91%E7%AC%A6%E5%8F%B7%E6%97%B6%E5%88%99%E8%BF%94%E5%9B%9E%20XITS.png)
我在环境中使用了一种傻乎乎的字体,因此里面的文本看起来与周围的文本截然不同。但是,我很难让数学模式看起来很傻,但又清晰易读。
\documentclass{minimal}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\begin{document}
Normal text. $abc$.
\begingroup
\fontspec{Handwriting - Dakota}%
\setmathfont{Handwriting - Dakota}%
Silly text $abc$ or even just $2 - 4 + \frac{2}{3} + x^2$
\endgroup
Normal text. $10-8=2$.
\end{document}
但是,$abc$
没有显示,可能是因为字体没有unicode-math
要求的特殊脚本。我只想使用相当普通的字符,不需要 unicode 输入。另一方面,mathspec
我认为该包只允许一种字体,所以我必须在整个文档中进行愚蠢的数学运算。
我认为有些字体甚至更稀疏。它们有连字符,但$10-8$
没有减号,大概是因为字体缺少这样的符号。
是否有某种方法可以使用愚蠢的字体来显示字母和数字(在这个环境中),但对于任何缺失的符号则恢复为“真实”字体?
答案1
使用range
选项;\mathit
作为变量、\mathup
数字(当然还有其他直立符号):
\documentclass{minimal}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\begin{document}
Normal text. $abc$.
\begingroup
\fontspec{Handwriting - Dakota}%
\setmathfont[range={\mathit,\mathup}]{Handwriting - Dakota}%
Silly text $abc$ or even just $2 - 4 + \frac{2}{3} + x^2$
\endgroup
Normal text. $10-8=2$.
\end{document}
您甚至可以通过添加例如从中挤出更多的符号:
\setmathfont[range={`\+,`\<,`\>,`\=,`\{,`\},`\|,`\(,`\)}]{Handwriting - Dakota}