libertine を使用した newtxmath: 下付き文字の 'g' が異なる

libertine を使用した newtxmath: 下付き文字の 'g' が異なる

次の例では、単純な下付き文字で異なる「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' が表示されます。)

編集: この問題はバージョン 1.612 (2019-12-01) で修正されました。

ここに画像の説明を入力してください

答え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}

ここに画像の説明を入力してください

「variant 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}

ここに画像の説明を入力してください

関連情報