使用 newtxsf 縮放數學字體

使用 newtxsf 縮放數學字體

我使用 uarial 作為文字字體,並希望使用 newtxsf 作為幾乎匹配的數學字體。我縮放了 uarial 以匹配拉丁現代的高度,如這篇文章中所述:https://tex.stackexchange.com/a/206677

我仍然遇到兩個問題:

  • 我不知道如何正確縮放 newtxsf ,因為當我更改縮放選項時 \the\ht0 保持不變。如果無法直接顯示高度,我會嘗試一些值並選擇最適合的值。
  • 在數學模式下,「sin」、「cos」...不是以 uarial 格式設置,而是以拉丁現代格式設定。有沒有辦法告訴 newtxsf 使用 \sffamily 而不是 \rmfamily?我嘗試使用 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.87999pt,數學 A 的高度為 8.148pt。

因此,比例因子為 8.148/8.87999=0.91757(四捨五入至小數點後第五位)。現在與

\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等覆蓋它。

相關內容