我正在使用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
相同的字体被使用,但这不是主要的方面;相关的事实是数学字母具有特殊的参数。