Я использую 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
и т. д.