我在 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}