Настройка шрифта без засечек с помощью combofont: большой интеграл неправильный

Настройка шрифта без засечек с помощью combofont: большой интеграл неправильный

В настоящее время я играюсь и пытаюсь создать шрифт без засечек в lualatex с комбо-шрифтами. Для теста я использую в качестве базового математического шрифта TeX Gyre Pagella Math и пытаюсь вытащить глифы из других математических и текстовых шрифтов.

Это уже работает для чисел и букв, но теперь я застрял на интеграле. Я могу использовать интеграл textstyle из TeX Gyre Dejavu Math, но интеграл displaystyle неправильный. Есть у кого-нибудь идея, как это исправить?

(Это тестовый файл! Поэтому он не пытается быть красивым. Например, шрифт рукописного стиля использует другие начертания, чтобы можно было лучше увидеть, работает ли комбинация).

%needs lualatex!
\documentclass[parskip=full,fleqn]{scrartcl}

\usepackage[math-style=upright]{unicode-math}
\usepackage{combofont}

\setmainfont{Fira Sans}

\setupcombofont{FiraMath}
 {%
 file:texgyrepagella-math.otf:mode=base;script=math;language=DFLT; at #1pt,
 file:firasans-light.otf at #1pt,
 file:firasans-lightitalic.otf at #1pt,
 file:texgyredejavu-math.otf at #1pt
 }
 {%
 {},
 0x30-0x39,
 0x61-0x7A*0x03B1-0x03C9,
 0x222B
 }

\setupcombofont{FiraMathScript}
 {%
 file:texgyrepagella-math.otf:mode=base;script=math;language=DFLT;+ssty=0 at #1pt,
 file:firasans-regular.otf at #1pt,
 file:firasans-regularitalic.otf at #1pt,
 file:texgyredejavu-math.otf at #1pt
 }
 {%
 {},
 0x30-0x39,
 0x61-0x7A*0x03B1-0x03C9,
 0x222B
 }

\setupcombofont{FiraMathScriptScript}
 {%
 file:texgyrepagella-math.otf:mode=base;script=math;language=DFLT;+ssty=1 at #1pt,
 file:firasans-semibold.otf at #1pt,
 file:firasans-semibolditalic.otf at #1pt,
 file:texgyredejavu-math.otf at #1pt
 }
 {%
 {},
 0x30-0x39,
 0x61-0x7A*0x03B1-0x03C9,
 0x222B
 }

% Mathversion bold need Script and ScriptScript declarations too!
\setupcombofont{FiraMathBold}
 {%
 file:texgyrepagella-math.otf:mode=base;script=math;language=DFLT; at #1pt,
 file:firasans-regular.otf at #1pt,
 file:firasans-regularitalic.otf at #1pt,
 file:texgyredejavu-math.otf at #1pt
 }
 {%
 {},
 0x30-0x39,
 0x61-0x7A*0x03B1-0x03C9,
 0x222B
 }


\DeclareFontFamily{TU}{FiraMath}{}
\DeclareFontShape {TU}{FiraMath}{m}{n}
  {
    <-7> combo*FiraMathScriptScript
   <7-10>combo*FiraMathScript
   <10-> combo*FiraMath
  }{}

\DeclareFontShape {TU}{FiraMath}{bx}{n} {<->combo*FiraMathBold}{}

% better start with a real math font, so that
% unicode-math sets everything up
\setmathfont{TeX Gyre Pagella Math}%

% Perhaps some other symbol fonts will need setup too
\SetSymbolFont{operators}{normal}{TU}{FiraMath}{m}{n}
\SetSymbolFont{operators}{bold}{TU}{FiraMath}{bx}{n}


\begin{document}

\minisec{Test some symbols}

$\int f(x)^2$

\[\int f(x)^2 \]

\end{document}

введите описание изображения здесь

решение1

Если вы просто используете unicode-math с

% better start with a real math font, so that
% unicode-math sets everything up
\setmathfont{TeX Gyre Pagella Math}%

так что удалите все комбинированные шрифты и добавьте, \showoutputкак видите

.....\l_fontspec_font ∫
....\glue(\thinmuskip) 1.82497
....\l_fontspec_font f

для стиля текста \int f, но

.......\l_fontspec_font 

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