Luatex 和没有 unicode-math 的 unicode 数学

Luatex 和没有 unicode-math 的 unicode 数学

我在 lualatex 中使用 fontspec 来获取 OTF 主字体,但我想使用一种好的旧数学字体(例如默认的 TeX 字体)。尝试了不同的软件包后,我没能让它与 utf-8 输入兼容:

\documentclass{minimal}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\begin{document}
Test for $\alpha$ and $α$.
\end{document}

这只能正确渲染第一个数学符号。我到底错过了什么?

答案1

您必须声明 alpha。例如,fontmath.ltx命令中的\alpha设置方式如下:

\DeclareMathSymbol{\alpha}{\mathord}{letters}{"0B}

您需要对 alpha 进行相同的声明(它们^^^^03b1是 alpha 的唯一 ascii 替代品,您可以替换它们):

\documentclass{minimal}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\DeclareMathSymbol{^^^^03b1}{\mathord}{letters}{"0B}
\begin{document}
Test for $\alpha$ and $^^^^03b1$.
\end{document}

答案2

使用拉丁现代数学字体:

\documentclass{minimal}
\usepackage{unicode-math,fontspec}
\setmainfont{TeX Gyre Pagella}
\setmathfont{lmmath-regular.otf}
\begin{document}
Test for $\alpha$ and $α$.
\end{document}

相关内容