告诉 unicode-math 如何翻译 unicode 符号(手写体与书法)

告诉 unicode-math 如何翻译 unicode 符号(手写体与书法)

我在文档中使用 LuaLaTeX 和 unicode-math。我直接在 unicode 中输入大多数简单符号(总和、乘积、希腊字母、量化等)(使用 emacs 的 agda 模式)。当我输入 unicode 字符“SCRIPT CAPITAL L”(U+2112)时,我在 pdf 中得到的是。我如何告诉 unicode-math 包,当它遇到 unicode 字符 U+2112 时,\mathscr L我希望用 来代替?\mathcal L

理想情况下,我只想将一个选项传递给包,以便所有“SCRIPT ...”都使用\mathcal ...而不是\mathscr ...

编辑。为了澄清起见,这里有一个 MWE:

\documentclass{minimal}

\usepackage{fontspec}%
\usepackage{unicode-math}

\setmathfont{Libertinus Math Regular}
\setmathfont{Latin Modern Math}[range={\mathscr}]
\setmathfont{TeX Gyre Pagella Math}[range={\mathcal}]

\begin{document}
Unicode input: $ℒ$

Mathcal input: $\mathcal L$

Mathscr input: $\mathscr L$
\end{document}

pdf 输出 3 个不同的 L,这让我相信 unicode 输入实际上在该示例中使用了\mathscr。当包在源中遇到 U+2212 时,Libertinus Math Regular如何告诉包我希望它使用哪个\mathcalTeX Gyre Pagella Math

答案1

在此处输入图片描述

range有点喜怒无常,手写体和书法属于同一 Unicode 范围,这让它更有趣,但是


\documentclass{minimal}

\usepackage{fontspec}%
\usepackage{unicode-math}

\setmathfont{Libertinus Math Regular}
\setmathfont{TeX Gyre Pagella Math}[range=cal]
\setmathfont{Latin Modern Math}[range=scr]

\AtBeginDocument{
\Umathcode"2112= "0 4 "2112
}

\begin{document}
Unicode input: $ℒ$

Mathcal input: $\mathcal L$

Mathscr input: $\mathscr L$

$ℒ$ $\mathcal L $ $\mathscr L$
\end{document}

相关内容