使用 mathspec 设置字形间距

使用 mathspec 设置字形间距

我正在使用xelatex软件包mathspec来使用最近 Windows 机器上的 Calibri 字体。用于排版斜体字符的字体指标适用于文本,但不适用于数学;字形经常发生冲突。

使用mathspec,可以在数学模式下在字符前添加 以"增加其间距。下图中的字符是使用

$f(x)$, $"f(x)$, $f'(x)$, $"f'(x)$, $e^{jx}$,$"e^{"jx}$.

在此处输入图片描述

虽然这种方法在不经常使用时效果很好,但对于较长的文档来说,这种方法就很乏味了。有没有办法始终使用这种修正后的间距,而不用手动在字母表的每个字符前加上"

答案1

“真正的”数学字体(例如可与 一起使用的字体unicode-math)具有专门为数学字体定制的字形。

例如

\documentclass{article}
\usepackage{unicode-math}

\setmainfont{Latin Modern Roman}
\setmathfont{Latin Modern Math}

\begin{document}

\textit{f} $f(x)$

\end{document}

第二个“f”在拉丁现代数学中使用的字符是 U+1D453 MATHEMATICAL ITALIC SMALL F,其形状与斜体“f”(第一个)相同,但边距和其他度量参数不同。

如果你使用mathspec,说

\documentclass{article}
\usepackage{mathspec}

\setmainfont{Hoefler Text}
\setmathfont(Latin){Hoefler Text}

\begin{document}

\textit{f} $f(x)$ $"f(x)$

\end{document}

你得到

在此处输入图片描述

该软件包尽力获得不错的输出,但使用非专门为数学字体设计的字形与 TeX 数学模式的规则相冲突,尤其是当字母倾斜时。

因此,这个"f技巧是“必要之恶”。您会发现在某些情况下需要它,而在其他情况下则不需要:它依赖于从不同字体中获取的相邻字符对。使用unicode-math 相同的字体被使用,但这不是主要的方面;相关的事实是数学字母具有特殊的参数。

相关内容