\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}
在某些情况下,如果您写 ,可能会获得更好的间距\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}
要抑制 fi 连字符,请写入f{}il
。