Dimensione a fonte matemática com newtxsf

Sep 15 2020

Estou usando uarial como fonte de texto e desejo usar newtxsf como uma fonte matemática quase correspondente. Escalei o uarial para coincidir com a altura do latim moderno, conforme descrito neste post:https://tex.stackexchange.com/a/206677.

Ainda estou encontrando dois problemas:

  • Não sei como dimensionar newtxsf corretamente, uma vez que \ the \ ht0 permanece o mesmo quando eu mudo a opção de dimensionamento. Se não houver como exibir a altura diretamente, tentarei alguns valores e escolho o que mais se ajusta.
  • no modo matemático, "sin", "cos", ... não são definidos em uarial, mas em latim moderno. Existe uma maneira de dizer ao newtxsf para usar \ sffamily em vez de \ rmfamily? Tentei resolver isso usando a documentação newtxsf, mas falhou. Ou há outro pacote que corresponda ao uarial?

Meu código até agora

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

Respostas

5 egreg Sep 15 2020 at 21:40

Minha sugestão é tentar sem escala; neste caso, obtemos a altura de uma sem serifa A é 8,87999pt e a altura de um A matemático é 8,148pt.

Portanto, o fator de escala é 8,148 / 8,87999 = 0,91757 (arredondado para o quinto dígito decimal). Agora com

\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

Observe que, em unicode-math, a solução é Scale=MatchLowercase, ou às vezes Scale=MatchUppercase,. Você pode até definir como \defaultfontfeatures.

Ele também define a fonte principal tanto como a fonte do operador e da \mathrmfonte, mas você pode substituir esse, com \setoperatorfont, \setmathrm, etc.