Very similar to this question I would like to have a different, sans serif math font in (small) parts of my document. As suggested by this answer to said question, this can be acieved using \DeclareMathAlphabet and the Computer Modern fonts as follows.
\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}
However, in my document, I would like to use Roboto as the sans serif font. Doing so results in noticable differences between the document and the math font.
\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}
Note, for example, the different shapes of digit 1 or letter Q. Obviously, I would like to have the math and the document sans serif font as similar as possible. This will certainly not work (easily) for special symbols, but getting numbers, letters and ideally greek letters from the Roboto font would already be great.
Changing the first \SetSymbolFont, I can already get one step closer.
\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}
Now the numbers are from the correct font! Trying the same approach for the second \SetSymbolFont fails, however.
\SetSymbolFont{letters}{sans}{OML}{Roboto-LF}{l}{it}
results in
LaTeX Font Warning: Font shape `OML/Roboto-LF/l/it' undefined
(Font) using `OML/cmm/m/it' instead on input line 19.
and the missing font is evident from the output.
Is there any way I can also get letters (and greek letters) in the right font?
In case there are approaches both with pdflatex and xelatex/lualatex, I would be mainly interested in pdflatex, since I am also using the microtype package, which is well-known to be not fully compatible with xelatex/lualatex. If the latter can do the thing, but pdflatex cannot, I may still look into ditching microtype, though.




xelatex? From what I understand,unicode-mathcan be used with any font, but I may be mistaken in that. Could\DeclareMathVersionbe translated to that scenario? – ranguwud Nov 28 '19 at 10:09unicode-mathneeds a maths font(s) i.e. something with a MATH font table. I don't know if you could use it to take letters from a non-maths font.mathspec(I think the name is) might be an option. However, I don't know that that would make it any easier. You could presumably redeclare a bunch of maths stuff, but you could do that anyway. – cfr Nov 29 '19 at 00:52