使用 unicode 在数学模式下通过 unicode-math 输入符号

使用 unicode 在数学模式下通过 unicode-math 输入符号

我想STIX Two Math在数学模式下输入一个带有竖线 (ƛ) 的 lambda,并带有字体。我在 unicode 表中检查过它有一个代码U+019B,并且我确定STIX Two Math包含这个字符。我试过了

\documentclass{article}
\usepackage{amsmath,unicode-math}
\setmathfont{STIX Two Math}
\begin{document}
    $ \symbol{"019B} $, $ ƛ $
\end{document}

两者都没有输出任何内容。我的问题是如何在数学模式下输入它?

答案1

默认情况下unicode-math不分配数学定义或ƛ,但您可以自己赋予它数学代码:

您必须决定它应该具有哪个类、系列和代码点。由于我们的字体是 Unicode 编码的,因此代码点是0x019B。由于 的ƛ行为类似于希腊字母,我们可以将其视为与其他希腊字母相似,并在“运算符”系列中为其分配第 7 类(变量普通):

\Umathcode `ƛ 7 0 "019B

这引出了文件

\documentclass{article}
\usepackage{amsmath,unicode-math}
\setmathfont{STIX Two Math}
\Umathcode `ƛ 7 \symoperators "019B
\begin{document}
    $ \symbol{"019B} $, $ ƛ $
\end{document}

可以正常工作:

两个禁止的 lambda 表达式,用逗号分隔

答案2

\text您可以在或中将其作为文本模式命令输入\textnormal。默认情况下,Unicode 字符未针对数学模式定义,但您可以使用 自行将其设置为活动字符newunicodechar

\documentclass{article}
\tracinglostchars=2
\usepackage{amsmath,unicode-math}
\usepackage{newunicodechar}

\newfontface\symbolfont{STIX Two Math}
\setmathfont{STIX Two Math}

\newcommand\textlambdabar{{\symbolfont\symbol{"019B}}}
\newunicodechar{^^^^019b}{%
  \ifmmode\mathalpha{\textnormal{\textlambdabar}}%
  \else\textlambdabar%
  \fi}

\begin{document}
    $^^^^019b$, $ ƛ $
\end{document}

相关内容