XeLaTeX:在 Cambria 数学中丢失了 \perp?

XeLaTeX:在 Cambria 数学中丢失了 \perp?

偶尔我注意到Cambria Math字体或unicode-math软件包中数学符号的定义可能存在错误\perp。附图显示\perp打印不正确\bot

在此处输入图片描述

该测试由以下代码生成。

\documentclass{article}
\usepackage{ifpdf,ifxetex}
\ifpdf
    \usepackage[utf8]{inputenc} % source file encoding
    \usepackage[T1]{fontenc} % cyrillic font encoding
\fi

\ifxetex
    \usepackage{fontspec}
        %\defaultfontfeatures{Mapping=tex-text}
        \setmainfont{Cambria}
    \usepackage[math-style=TeX]{unicode-math}
        \setmathfont{Cambria Math}
\fi
\begin{document}%
    \[
        p_{\perp}
        ,\qquad
        \vec{A} \perp \vec{B}
    \]
    \[
        p_{\bot}
        ,\qquad
        \vec{A} \bot \vec{B}
    \]
\end{document}

日志文件中报告了缺失的字符:

Missing character: There is no вџ‚ in font Cambria Math/ICU:script=math;languag
e=DFLT;+ssty=0;!
Missing character: There is no вџ‚ in font Cambria Math/ICU:script=math;languag
e=DFLT;!
 [1]

可以有条件地使用 和 编译同一个文件xelatexpdflatex只是为了检查标准字体是否使用相同的字形来打印 和\bot\perp所以,我猜这个错误可能存在于unicode-math包中。有人能检查一下这个猜测是否正确吗?

我也很感激任何关于如何重新定义\perp命令以使其在字体/包开发人员纠正问题之前工作一段时间的建议。

答案1

有问题的字符是 U+27C2,这在 Cambria Math 中不存在。在这种情况下,您应该使用\mathrel\bot(这\mathrel是获得正确间距所必需的)。

作为长期解决方案,我们应该在 中实现后备字符unicode-math。U+27C2 用于 Unicode 所指示的垂直关系;另一方面,MathML 建议为此目的使用 U+22A5。目前\perp硬连线为映射到 U+27C2,并\bot映射到 U+22A5。正确的解决方案是\perp如果 U+27C2 不可用,则映射到 U+22A5。我会将其添加到问题跟踪器中,但在接下来的几周内我没有时间处理它。

相关内容