我在环境中使用了一种傻乎乎的字体,因此里面的文本看起来与周围的文本截然不同。但是,我很难让数学模式看起来很傻,但又清晰易读。
\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}