使用 mathit 并添加 unicode-math 时出现间距问题

使用 mathit 并添加 unicode-math 时出现间距问题

Asana Math我喜欢在使用lualatex编译为pdf时使用。

但要使用Asana Math我必须加载unicode-math才能使用\setmathfont命令来加载字体。

我注意到添加unicode-math后空格就丢失了\mathit

当我注释掉它后unicode-math\setmathfont空间又回来了。

为什么使用unicode-math会使后面的空格\mathit消失? 我使用这些包时是否有问题? 有没有解决方法,以便我可以使用 Asna math,但仍然保留后面的空格mathit

平均能量损失

\documentclass[12pt]{article}
\usepackage{unicode-math} %needed to use \setmathfont
\usepackage{amsmath}
\setmathfont{Asana Math}[Scale=MatchLowercase]

\begin{document}

\begin{equation}
\mathit{\_C1} {\rm e}^{3 x} \sin \left(2 x \right)+\mathit{\_C2} {\rm e}^{3 x} \cos \left(2 x \right)
\end{equation}

\end{document}

将上述代码替换为

\documentclass[12pt]{article}
\usepackage{amsmath}    
\begin{document}

\begin{equation}
\mathit{\_C1} {\rm e}^{3 x} \sin \left(2 x \right)+\mathit{\_C2} {\rm e}^{3 x} \cos \left(2 x \right)
\end{equation}

\end{document}

空间比较大。

这张图片显示了差异

在此处输入图片描述

更新

这是包含以下答案建议的测试用例。

\documentclass[12pt]{article}

\usepackage[mathit=sym]{unicode-math}
\usepackage{amsmath}
\setmathfont{Asana Math}[Scale=MatchLowercase]    
\begin{document}    

\begin{equation}
\mathit{\_C1} {\rm e}^{3 x} \sin \left(2 x \right)
\end{equation}    
\end{document}

\documentclass[12pt]{article}    
\usepackage{unicode-math}
\usepackage{amsmath}
\setmathfont{Asana Math}[Scale=MatchLowercase]    
\begin{document}

\begin{equation}
\symit{\_C1} {\rm e}^{3 x} \sin \left(2 x \right)
\end{equation}    
\end{document}

在此处输入图片描述

使用 TL 2020。

ps. 上面公式里的代码是外部软件自动生成的,不是我自己写的。

答案1

当您加载 时unicode-math,它会将\mathit\mathrm等设置\mathbf为主文本字体。这意味着,当您加载 时\mathit,您会得到斜体校正。

如果您想插入一些额外的空间,您可以添加\,或将术语包装在中\mathop

您还可以尝试更改\mathit\symit,或unicode-math使用包选项加载mathit=sym,这两种方法都会从数学字体中加载斜体数学字母。但是,这些字母不包括下划线或数字。

您说的这种格式是机器生成的,非常糟糕。一方面,\rm已经过时了,您可能希望使用\symup\mathrm。另一方面,Asana Math 基于 Palatino,因此您可能希望将文本字体设置为 Palatino(或 Pagella)以匹配它,而不是使用默认的 Latin Modern。如果您要直立排版常量,则您可能正在使用 ISO 样式,并且可能还希望加载math-style=ISO\mathit我根本不推荐在这里使用 。如果这些术语是程序变量,则它们可能是\mathtt\mathsf

相关内容