newtxsf で数学フォントを拡大縮小する

newtxsf で数学フォントを拡大縮小する

私はテキスト フォントとして uarial を使用しており、ほぼ一致する数学フォントとして newtxsf を使用したいと考えています。この投稿で説明されているように、latin modern の高さに一致するように uarial をスケーリングしました。https://tex.stackexchange.com/a/206677

それでも、2つの問題に直面しています:

  • スケール オプションを変更しても \the\ht0 は同じままなので、newtxsf を正しくスケールする方法がわかりません。高さを直接表示する方法がない場合、いくつかの値を試して、最も適したものを選択します。
  • 数式モードでは、「sin」、「cos」などは uarial ではなく latin modern で設定されます。newtxsf に \rmfamily ではなく \sffamily を使用するように指示する方法はありますか? newtxsf のドキュメントを使用してこの問題を解決しようとしましたが、失敗しました。または、uarial に一致する別のパッケージがありますか?

これまでの私のコード

\documentclass[fontsize=12pt, paper=a4, parskip=half]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[scale=0.93]{tgheros}
\usepackage[scaled=1]{newtxsf}
 
\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
    \textbf{Displaying height of fonts}\par
    \sbox0{\sffamily A}heros: \the\ht0 \\
    \sbox0{\rmfamily A}latin modern: \the\ht0\\
    \sbox0{\ttfamily A}newtxsf: \the\ht0\par
    \textbf{Math mode}  $ Q = P\tan(\varphi)$
\end{document}

コンパイルされた文書: コンパイルされた文書

答え1

私の提案は、スケーリングなしで試してみることです。この場合、サンセリフの A の高さは 8.87999 ポイント、数学の A の高さは 8.148 ポイントになります。

したがって、スケーリング係数は8.148/8.87999=0.91757(小数点第5位に丸め)です。

\documentclass[fontsize=12pt, paper=a4]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage[scale=.91757]{tgheros}
\usepackage[scaled=1]{newtxsf}

\renewcommand*{\familydefault}{\sfdefault}
\renewcommand*{\rmdefault}{\sfdefault}

% this to get the operators in the sans serif font
\DeclareSymbolFont{operators}{\encodingdefault}{\sfdefault}{m}{n}

\begin{document}

    \textbf{Displaying height of fonts}

    \sbox0{\sffamily A}heros: \the\ht0

    \sbox0{$A$}newtxsf: \the\ht0

    \textbf{Math mode}  $ Q = P\tan(\varphi)$

\end{document}

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

答え2

unicode-mathでは、解はScale=MatchLowercase、または となる場合があることに注意してくださいScale=MatchUppercase。 と設定することもできます\defaultfontfeatures

また、メインフォントを演算子フォントとフォントの両方として設定しますが、、など\mathrmでこれを上書きできます。\setoperatorfont\setmathrm

関連情報