带有文本间距的数学斜体字体?

带有文本间距的数学斜体字体?
\documentclass{article}


\begin{document}
Both:

$\triangle fil$ with vertices $f$, $i$, $l$

and


$\triangle \mathit{fil}$ with vertices $f$, $i$, $l$

do not give a correct result.


\end{document}

在第一种情况下,三角形的间距很糟糕,在第二种情况下,字体不同。

是否可以使用数学斜体字体的字形以数学模式书写,但字距调整就像它们形成普通单词一样?

答案1

不,tex 不会添加额外的字距,较宽的侧边距位于字体本身中,因此根据设计,数学斜体字体不能用于多字母单词。

也就是说,在 TeX 中你无法合理地做到这一点,当然可以(理论上)制作一个虚拟(或真实)字体,从数学字体中获取字形并调整度量以提供更合理的文本斜体。在 luatex 中,可以使用其 Lua 对字体数据的访问即时完成此操作,但到那时,这更多的是一个字体设计问题,而不是 tex 问题。

对于一次性的情况,您可以手动添加额外的字距

在此处输入图片描述

\documentclass{article}


\begin{document}
Both:

$\triangle fil$ with vertices $f$, $i$, $l$

and


$\triangle \mathit{fil}$ with vertices $f$, $i$, $l$

do not give a correct result.

$\triangle f\mkern-2.7mu i\mkern-.8mu l$ with vertices $f\!$, $i$, $l$


\end{document}

答案2

您的选择包括:

加载字体规范

这重新定义\mathit为在数学模式下表示斜体字。从技术上讲,这与 OML 编码的数学字母不是完全相同的字体,但默认情况下字形看起来相同。

具体来说,您将获得字体ItalicFont\setmathrm,默认情况下与相同\setmainfont。只要您设置匹配的文本和数学字体,这应该可以工作。如果您想指定斜体数学符号,请使用\mathnormal,或加载unicode-math并使用\symit

\documentclass{article}
\usepackage{fontspec}

\begin{document}
\(\triangle \mathit{fil}\) with vertices \(f\), \(i\), \(l\)
\end{document}

拉丁现代 + cm 样本

在某些情况下,如果您写 ,可能会获得更好的间距\mathop{\mathit{fil}},这会将其排版为类似对数的运算符。但如果您想要,则不行,例如\mathit{fil} \cdot x

我也离开了F\mathit你写的代码基本上没有改变,因为目的似乎是比较和字形的形状\mathnormal,但由于从数学模式转换,那里的间距也是错误的F改为文本模式逗号。您可能想在实际文档中更改它。

切换到文本模式

您可以在数学模式下使用\text\textnormal\textit。在这里,我使用来防止或\textnormal等格式渗透。如果您想要这样做(假设您定义粗体标题并希望数学符号匹配),您可以改用。\bfseries\sffamily\textit

\documentclass{article}
\usepackage{lmodern} % Also works with fontspec.

\begin{document}
\(\triangle \textnormal{\itshape fil}\) with vertices \(f\), \(i\), \(l\)
\end{document}

lmodern 样本

要抑制 fi 连字符,请写入f{}il

相关内容