Use fonte matemática personalizada apenas em partes de um documento

Use fonte matemática personalizada apenas em partes de um documento

Muito parecido comessepergunta Eu gostaria de ter uma fonte matemática sem serifa diferente em (pequenas) partes do meu documento. Como sugerido poresseresposta a essa pergunta, isso pode ser conseguido usando \DeclareMathAlphabetas fontes Computer Modern da seguinte maneira.

\documentclass{article}

\DeclareMathVersion{sans}
\SetSymbolFont{operators}{sans}{OT1}{cmbr}{m}{n}
\SetSymbolFont{letters}{sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols}{sans}{OMS}{cmbrs}{m}{n}
\SetMathAlphabet{\mathit}{sans}{OT1}{cmbr}{m}{sl}
\SetMathAlphabet{\mathbf}{sans}{OT1}{cmbr}{bx}{n}
\SetMathAlphabet{\mathtt}{sans}{OT1}{cmtl}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}

\begin{document}

1234 CQ $1234 CQ$

\sffamily\mathversion{sans}
1234 CQ $1234 CQ$

\end{document}

Exemplo moderno de computador


No entanto, em meu documento, gostaria de usar Roboto como fonte sem serifa. Fazer isso resulta em diferenças perceptíveis entre o documento e a fonte matemática.

\documentclass{article}

\usepackage[light,medium]{roboto}

\DeclareMathVersion{sans}
\SetSymbolFont{operators}{sans}{OT1}{cmbr}{m}{n}
\SetSymbolFont{letters}{sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols}{sans}{OMS}{cmbrs}{m}{n}
\SetMathAlphabet{\mathit}{sans}{OT1}{cmbr}{m}{sl}
\SetMathAlphabet{\mathbf}{sans}{OT1}{cmbr}{bx}{n}
\SetMathAlphabet{\mathtt}{sans}{OT1}{cmtl}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}

\begin{document}

1234 CQ $1234 CQ$

\sffamily\mathversion{sans}
1234 CQ $1234 CQ$

\end{document}

Exemplo de robô 1

Observe, por exemplo, as diferentes formas do dígito 1 ou da letra Q. Obviamente, eu gostaria de ter a matemática e a fonte sem serifa do documento o mais semelhante possível. Isso certamente não funcionará (facilmente) para símbolos especiais, mas obter números, letras e, de preferência, letras gregas da fonte Roboto já seria ótimo.


Mudando o primeiro \SetSymbolFont, já posso chegar um passo mais perto.

\documentclass{article}

\usepackage[light,medium]{roboto}

\DeclareMathVersion{sans}
\SetSymbolFont{operators}{sans}{OT1}{Roboto-LF}{l}{n}
\SetSymbolFont{letters}{sans}{OML}{cmbrm}{m}{it}
\SetSymbolFont{symbols}{sans}{OMS}{cmbrs}{m}{n}
\SetMathAlphabet{\mathit}{sans}{OT1}{cmbr}{m}{sl}
\SetMathAlphabet{\mathbf}{sans}{OT1}{cmbr}{bx}{n}
\SetMathAlphabet{\mathtt}{sans}{OT1}{cmtl}{m}{n}
\SetSymbolFont{largesymbols}{sans}{OMX}{iwona}{m}{n}

\begin{document}

1234 CQ $1234 CQ$

\sffamily\mathversion{sans}
1234 CQ $1234 CQ$

\end{document}

Exemplo de robô 2

Agora onúmerossão da fonte correta! Tentar a mesma abordagem para o segundo \SetSymbolFontfalha, entretanto.

\SetSymbolFont{letters}{sans}{OML}{Roboto-LF}{l}{it}

resulta em

LaTeX Font Warning: Font shape `OML/Roboto-LF/l/it' undefined
(Font)              using `OML/cmm/m/it' instead on input line 19.

e a fonte ausente é evidente na saída.

Exemplo de robô 3

Existe alguma maneira de obter letras (e letras gregas) na fonte correta?


Caso existam abordagens com pdflatexe xelatex/ lualatex, eu estaria interessado principalmente em pdflatex, já que também estou usando o microtypepacote, que é conhecido por não ser totalmente compatível com xelatex/ lualatex. Se este último puder fazer a coisa, mas pdflatexnão puder, ainda posso pensar em abandonar microtype.

informação relacionada