尝试使用 FreeSerif 作为数学字体——我做错了什么?

尝试使用 FreeSerif 作为数学字体——我做错了什么?

一直在寻找理想的字体组合独角兽,我想我会尝试GNU 自由 UCS 轮廓字体(FreeSerif、FreeSans 和 FreeMono)。我似乎在第一个障碍面前就失败了:

\documentclass[final]{article}
\usepackage{fontspec}
\setmainfont{FreeSerif}
\usepackage{unicode-math}
\setmathfont{FreeSerif}
\begin{document}
\[x+y=\sqrt{z}\]
\end{document}

XeLaTeX 和 LuaLaTeX (.otf使用 TexLive 格式化字体,Windows 7) 都给我这个:

格式化输出

我错过了什么?

答案1

您不能将每种 OpenType 字体都用作 的数学字体unicode-math。至少MATH需要字体中的表格以及math脚本。虽然可以执行一些基本设置,但正如公式中的斜体字母所示,缺少一些数学排版的重要参数。

在你的情况下,最大的问题在于根号:正如 David Carlisle 所说,TeX 使用根号上的条的厚度来表示高度根号;但是 XeTeX 和 LuaTeX 知道如何使用 MATH 表中的不同参数,因此不会出现此问题。1

真正的数学字体还必须包含其他信息,以便正确调整公式中的数学字符的字距。请参阅文档以mathspec了解更多详细信息,并且可能比 FreeSerif 拥有更多的字形。

如果您的文本字体是 FreeSerif,那么数学字体的一个不错的选择可以是 XITS Math 或 TG Termes Math,两者都基于 Times。

1 不幸的是,由于当前版本的 LuaTeX 中存在一个错误,即使数学字体在表中具有正确的参数,也会出现大黑色斑点MATH

相关内容