Масштабировать математический шрифт с помощью newtxsf

Масштабировать математический шрифт с помощью newtxsf

Я использую uarial как текстовый шрифт и хочу использовать newtxsf как почти соответствующий математический шрифт. Я масштабировал uarial, чтобы он соответствовал высоте latin modern, как описано в этом посте:https://tex.stackexchange.com/a/206677.

Но все же я сталкиваюсь с двумя проблемами:

  • Я не знаю, как правильно масштабировать newtxsf, так как \the\ht0 остается прежним, когда я меняю параметр масштабирования. Если нет возможности напрямую отобразить высоту, я бы попробовал несколько значений и выбрал то, которое подходит больше всего.
  • в математическом режиме "sin", "cos", ... устанавливаются не в uarial, а в Latin Modern. Есть ли способ указать 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,87999 пунктов, а высоту математического шрифта A — 8,148 пунктов.

Поэтому коэффициент масштабирования равен 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и т. д.

Связанный контент