私はテキスト フォントとして 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