![newtxmath с libertine: разное «g» в нижнем индексе](https://rvso.com/image/405381/newtxmath%20%D1%81%20libertine%3A%20%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D0%B5%20%C2%ABg%C2%BB%20%D0%B2%20%D0%BD%D0%B8%D0%B6%D0%BD%D0%B5%D0%BC%20%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B5.png)
В следующем примере я вижу другую букву «g» в простом нижнем индексе:
\documentclass{article}
\usepackage{mathtools,amssymb}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\begin{document}
\[g \ \mu_g \ A_{\mu_g}\]
\end{document}
Есть ли быстрый способ исправить это? (ПРАВКА: Используя MiKTex 2.9.7250, компиляция того же кода с overleaf дает мне «правильную» «g» в нижнем индексе.)
EDIT: Это было исправлено в версии 1.612 (01.12.2019).
решение1
Судя по всему, в nxlmi
шрифте при размерах 10 и 5 используется неправильный глиф, а при размере 7 — правильный.
Пока проблема не устранена на уровне шрифта, вы можете ее немного исправить, указав LaTeX взять «g» из другого шрифта.
\documentclass{article}
\usepackage{mathtools,amssymb}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\DeclareSymbolFont{libertineg}{\encodingdefault}{\familydefault}{m}{it}
\SetSymbolFont{libertineg}{bold}{\encodingdefault}{\familydefault}{b}{it}
\DeclareMathSymbol{g}{\mathalpha}{libertineg}{`g}
\begin{document}
\[g \ \mu_g \ A_{\mu_g}\ \textit{g}\]
\end{document}
Если вам нужен «вариант g», то все немного сложнее: нам нужно уменьшить масштаб стиля текста «g» только в рукописном стиле.
\documentclass{article}
\usepackage{mathtools,amssymb}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\usepackage{xfp,graphicx}
\newcommand{\fixg}{{%
\mathchoice
{\normalg}% displaystyle
{\normalg}% textstyle
{\scaledg}% scriptstyle
{\normalg}% scriptscriptstyle
}}
\makeatletter
\newcommand{\scaledg}{%
\scalebox{\fpeval{\sf@size/\f@size}}{$\m@th\normalg$}%
}
\begingroup\lccode`~=`g \lowercase{\endgroup\let~\fixg}
\edef\normalg{\mathchar\the\mathcode`g }
\AtBeginDocument{\mathcode`g="8000 }
\begin{document}
\[g \ \mu_g \ A_{\mu_g}\]
\end{document}