如何使用unicode字符作为二元运算符?

如何使用unicode字符作为二元运算符?

我正在尝试使用 unicode 字符 ⦡ (U+29A1) 作为二元运算符。我几乎用下面的方法让它工作了:

\usepackage{fontspec}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{unicode-math}
\setmathfont{Symbola}

\newcommand{\ang}{\mathbin{⦡}}

Example: $x\ang y$ works great.

Problem: $\mathbb{R}^n$ looks weird.

如上所述,问题在于指数的副作用。有什么建议吗?

编辑

问题几乎已得到解决,但我还是注意到 n 的这个奇怪的位置:

新设置:

在此处输入图片描述

默认 amssymb:

在此处输入图片描述

无可否认,现在我变得痴迷起来。

答案1

仅为该一个符号设置数学字体,而不是所有数学符号。由于 Symbola 没有 OpenType 数学表,因此数学布局会在许多方面出现问题。以下方法应该有效:

\setmathfont{Latin Modern Math} % Or your math font of choice
\setmathfont{Symbola}[range=\sphericalangleup,
                      Scale=MatchUppercase]

\newcommand{\ang}{\mathbin{\sphericalangleup}}

unicode-math包将 U+29A1 声明为\sphericalangleup,但为其留有\mathord空格。默认数学字体没有它,但一些数学字体有它:XITS Math、STIX Two Math、Fira Math 和 New Computer Modern Math。该albatross命令可以为您提供完整列表。通常,如果您想坚持使用 Computer Modern 的克隆,New Computer Modern 是您的最佳选择。所以,

% Load amsmath, fontspec, unicode-math, etc. first if they need
% special options.

\usepackage{newcomputermodern} % Add [regular] for the original weight

\newcommand{\ang}{\mathbin{\sphericalangleup}}

相关内容