lualatex fontspec заменяет некоторые доступные глифы в математическом шрифте на глифы из шрифта основного текста

lualatex fontspec заменяет некоторые доступные глифы в математическом шрифте на глифы из шрифта основного текста

Я использую lualatex с fontspec для набора математических уравнений одним шрифтом, а текста — другим. Во время моих тестов я обнаружил, что математика в моем набранном документе выглядит не так хорошо, как некоторые образцы, которые я видел в сети. При дальнейшем исследовании я обнаружил, что даже если шрифт, выбранный для математики (использующий \setmathfont), имеет требуемые глифы (например, строчную букву «d»), lualatex составляет математику, заменяя некоторые из этих глифов на римский шрифт, загруженный во время \setmathfont!

Посмотрите на строчную букву 'd' на следующих двух изображениях. Первое было скомпилировано со шрифтом "TeX Gyre Pagella Math" для математики и шрифтом по умолчанию (Latin Modern) для основного текста. Второе было скомпилировано со шрифтом "TeX Gyre Pagella Math" для математики и со шрифтом "TeX Gyre Pagella" для основного текста.Кстати, я начал тестирование с Cambria Math, и там та же проблема. Так что это определенно не проблема шрифта.

Во-первых (без TeX Gyre Pagella для основного текста, строчная буква «d» из латинского современного алфавита, остальные глифы — нет) Без TeX Gyre Pagella для основного текста

Во-вторых (в TeX Gyre Pagella для основного текста строчная буква «d» вероятно из TeX Gyre Pagella, а не из TeX Gyre Pagella Math; поскольку это одно и то же уравнение, выглядит нормально)

С TeX Gyre Pagella для основного текста

\setmathfontПолный код (прежде чем приступать к повторной генерации в обоих случаях, прочтите ПРИМЕЧАНИЕ ):

% >> lualatex testmathfont.tex
\documentclass[notitlepage,letterpaper]{article}

%\usepackage{lua-visual-debug}
\usepackage[absolute]{textpos}
\usepackage[letterpaper,left=2in,right=2in,top=1in,bottom=0in]{geometry}
\usepackage[expansion=alltext,shrink=20,stretch=20]{microtype}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{unicode-math}

% NOTE:: Compile 1: keep following line commented, Compile 2: uncomment following line
%\setmainfont{TeX Gyre Pagella}
\setmathfont{TeX Gyre Pagella Math}

\usepackage{blindtext}

\begin{document}

\blindtext[1]\vspace*{\baselineskip}

$\displaystyle\int_a^b x^2\;\mathrm{d}x= \tfrac{1}{3} x^3 \Big|_a^b$\vspace*{\baselineskip}

\blindtext[1]\vspace*{\baselineskip}

$a_0+\cfrac{1}{a_1+\cfrac{1}{a_2+\cfrac{1}{a_3+\cdots}}}$\vspace*{\baselineskip}


\end{document}

Связанный контент