使用 newtxsf 缩放数学字体

使用 newtxsf 缩放数学字体

我使用 uarial 作为文本字体,并希望使用 newtxsf 作为近似匹配的数学字体。我缩放了 uarial 以匹配 latin modern 的高度,如本文所述: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等覆盖此功能。

相关内容