调用lualatex
,我设法使所有纯文本都使用 Open Dyslexic 字体(安装了最新版本 0.910.12-rc2)显示,方法是按照此处描述的步骤. 读完本文后线,我有以下 MWE:
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math} %% Why is this package needed?
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{OpenDyslexic}
\setmathfont{OpenDyslexic} %% Unfortunately not enough
\begin{document}
Any dyslexia math fonts out there?
Given $\Delta = b^2 - 4 ac$, we have
\[ r_{\pm} = \frac{- b \pm \sqrt{\Delta}}{2a}.\]
\end{document}
但是,所有数学部分仍然使用通常的 TeX 数学字体显示。事实上,我有以下警告:
Package fontspec Warning: Font "OpenDyslexic" does not contain requested
(fontspec) Script "Math".
Package fontspec Warning: OpenType feature 'Style=MathScript' (ssty) not
(fontspec) available for font 'OpenDyslexic' with script
(fontspec) 'CustomDefault' and language 'Default'.
Package fontspec Warning: OpenType feature 'Style=MathScriptScript' (ssty) not
(fontspec) available for font 'OpenDyslexic' with script
(fontspec)
在直接支持数学或至少数学变体之前,我如何在数学模式中使用现有的字母?
答案1
您想用 仅覆盖数学字体的字母range=
。OpenDyslexic 没有数学符号或 OpenType 数学表,因此您必须先加载数学字体,然后使用 OpenDyslexic 仅覆盖字母和数字。您可以尝试类似这样的方法。(警告:我没有字体,因此未经测试。)
\documentclass{article}
\tracinglostchars=3 % Report an error if a font does not have a symbol.
\usepackage{fontspec}
\usepackage{unicode-math}
\defaultfontfeatures{ Ligatures=TeX,
Scale=MatchUppercase }
\setmainfont{OpenDyslexic}[Scale=1.0]
\setmathfont{Fira Math} % Or maybe try KPMath-Sans?
\setmathfont{OpenDyslexic Italic}[range=it/{Latin,latin}]
\setmathfont{OpenDyslexic}[range=up/{Latin,latin,num}]
\begin{document}
Any dyslexia math fonts out there?
Given $\Delta = b^2 - 4 ac$, we have
\[ r_{\pm} = \frac{- b \pm \sqrt{\Delta}}{2a}.\]
\end{document}
如果 OpenDylexic 包含希腊字母,您可以删除限制/{Latin,latin,num}
。如果您还想使用它的基本符号,如加号和乘号,您可以尝试更改range=up/{Latin,latin,num}
为 range={"01-"FF,up/{Latin,latin,num}}
如果你不想在数学模式下出现倾斜的字母,请unicode-math
使用选项加载
\usepackage[math-style=upright]{unicode-math}
附言
上述示例将仅加载来自 OpenDyslexic 的字母和数字。要加载其他符号,请将它们添加到选项中range=
。例如,这演示了使用 OpenDyslexic 版本的数学运算符的几种方法:
\setmathfont{OpenDyslexic}[range={up/{Latin,latin,num},"2B,"2D,\cdot,`×}]
任何没有类似覆盖的符号都是从 Fira Math 加载的。但是,有些符号 Fira Math 没有,例如,我相信,⬜ (U+2B1C, \lgwhtsquare
)。你可以从其他字体加载这些符号,例如:
\setmathfont{TeX Gyre DejaVu Math}[range=\lgwhtsquare]