surd 与 unicode-math 的放置不正确

surd 与 unicode-math 的放置不正确

当我加载unicode-math包时,的位置$\surd$位于文本基线下方,如下所示:

在此处输入图片描述

(我已经包含了$\exists$显示它不会影响每个数学模式符号。)当然,我希望它看起来像这样,这是我在没有加载的情况下看到的unicode-math

在此处输入图片描述

我怎样才能解决这个问题?

梅威瑟:

\documentclass{article}
\usepackage{unicode-math}
\begin{document}
    $\surd$blah
\end{document}

答案1

在传统的 TeX 符号字体中,平方根符号悬挂在基线处,其(非常小的)高度用作连线的厚度。由于数学列表转换为水平列表的方式,符号随后会适当升高。

拉丁现代数学的开发者只是从计算机现代中采用了具有相同特征的符号。

在我所知道的所有其他 OpenType 数学字体中,“surd”符号位于基线上。

如果您计划尝试不同的数学字体,您可以编写代码来选择是否保持无理数的定义或提高它。

\documentclass{article}
\usepackage{unicode-math}

%\setmathfont{Libertinus Math}

\makeatletter
\AtBeginDocument{%
  \sbox\z@{$\surd$}%
  \ifdim\ht\z@<1ex
    \RenewDocumentCommand{\surd}{}{\mathpalette\surd@\relax}%
  \fi
}
\newcommand{\surd@}[2]{%
  \raisebox{\depth}{$\m@th#1\Umathchar"0 "2 "221A$}%
}
\makeatother

\begin{document}

$\surd$blah

$\scriptstyle\surd b$

\end{document}

通过 Libertinus Math 的评论,您可以获得

在此处输入图片描述

使用 Libertinus Math,您可以获得

在此处输入图片描述

答案2

问题出在数学字体上。拉丁现代数学以一种相当不寻常的方式放置这个符号(这与传统 TeX 字体放置可扩展字符的方式有关,但没有理由在 OpenType 字体中这样做)。

您可以选择不同的字体、修补拉丁现代数学或使用\sqrt来获得\surd类似的符号:

\documentclass{article}
\usepackage{unicode-math}
\AtBeginDocument {%
  \renewcommand \surd {\sqrt{\vphantom{a}}}%
}
\begin{document}
$\surd$blah
\end{document}

在此处输入图片描述

答案3

您可以定义\surd类似\mathop,如果您将它放到那里,{..}那么它的行为就像\mathord(可用于水平间距)。

\def\surd{{\mathop√}}
%% test:
$\surd b$lah

相关内容