Escale la fuente matemática con newtxsf

Sep 15 2020

Estoy usando uarial como fuente de texto y quiero usar newtxsf como una fuente matemática casi coincidente. Escale uarial para que coincida con la altura del latín moderno como se describe en esta publicación:https://tex.stackexchange.com/a/206677.

Todavía me encuentro con dos problemas:

  • No sé cómo escalar newtxsf correctamente, ya que \ the \ ht0 permanece igual cuando cambio la opción escalada. Si no hay forma de mostrar la altura directamente, probaría algunos valores y elegiría el que más se ajuste.
  • en modo matemático, "sin", "cos", ... no se establecen en uarial sino en latín moderno. ¿Hay alguna manera de decirle a newtxsf que use \ sffamily en lugar de \ rmfamily? Traté de resolver esto usando la documentación de newtxsf pero fallé. ¿O hay otro paquete que coincida con uarial?

Mi código hasta ahora

\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}

Documento compilado:

Respuestas

5 egreg Sep 15 2020 at 21:40

Mi sugerencia es intentarlo sin escalar; en este caso, obtenemos que la altura de una sans serif A es 8.87999pt y la altura de una matemática A es 8.148pt.

Por lo tanto, el factor de escala es 8.148 / 8.87999 = 0.91757 (redondeado al quinto dígito decimal). Ahora con

\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 Davislor Sep 16 2020 at 03:06

Tenga en cuenta que, en unicode-math, la solución es Scale=MatchLowercase, o, a veces, Scale=MatchUppercase. Incluso puede configurarlo como \defaultfontfeatures.

También establece la fuente principal ya que tanto la fuente operador y el \mathrmtipo de letra, pero se puede anular este, con \setoperatorfont, \setmathrm, etc.