如何在 \mathrm 中得到连字符

如何在 \mathrm 中得到连字符

我认为这是一个简单的问题,但如果我写$\omega{\mathrm{anti-Stokes}}$,连字符看起来非常像减号。如果我天真地尝试$\omega{\mathrm{anti\hyp{}Stokes}}$(我认为\hyp{}需要\usepackage{hyphenat}),我会得到相同的结果 - 我其实并不感到惊讶,大概它设置了相同的字符。

完整的 MWE:

\documentclass{standalone}
\begin{document}
$\omega_{\mathrm{anti-Stokes}}$
anti-Stokes
\end{document}

输出

减号看起来像一个很细的破折号,而不是连字符。

答案1

这是为了总结评论中的答案,避免留下未解答的问题。

正如在以下回答中更详细地讨论的那样数学模式下生成文本的各种方法之间的差异,在数学模式下,有几种方法可以生成直立字母。 Heiko Oberdiek 的回答对于好奇或困惑的人来说尤其值得一读。

这里相关的是,\mathrm用于在数学模式下设置直立字符,因此使用数学罗马字体、间距和编码。另一方面,\textrm使用文本罗马字体和当前文本模式字体的字体参数,即-在使用时将被编码为连字符而不是减号\textrm。由于\textrm从周围文本继承其参数,因此它不能保证直立形状:例如在theorem环境中它将继承斜体形状。 \textnormal使用\normalfont,只有大小会发生变化

\textrm\textnormal,在没有数学包不按下标缩放,因此数学在这种情况下必须直接加载,或者通过其他包加载,例如数学工具修复了一些错误数学

相关内容