In a beamer presentation I can use \usefonttheme[onlymath]{serif}
to typeset the math in a serif font while the rest of the presentation is in a sans-serif font. But the \SI
command from siunitx
appears to typeset its argument as text, which means it follows the text font style, not the math one. Is there a way I can change this so that quantities with units appear with a serif font just like other math, whereas the text is still sans-serif?
\documentclass{beamer}
\usefonttheme[onlymath]{serif}
\usepackage{siunitx}
\begin{document}
\begin{frame}
Text appears in sans-serif font
$x,2y,3z$ appears in serif font
$\SI{1}{m}$ appears in sans-serif font, would like it to be serif
\end{frame}
\end{document}
I've tried things like \sisetup{math-rm=\mathrm, text-rm=\rmfamily}
or passing the detect-family
option to siunitx
, but no luck.
Of course I could just change the font family of the entire document to be serif, but I'd like to know whether I have another option.
Best Answer
siunitx
checks if the document font is sanserif using the\AtBeginDocument
hook, and adjusts the default if it is. That reflects the fact that in most cases if people set their document all sanserif the desired outcome is thatsiunitx
also uses sanserif.To reverse this, yo need to alter the settings after
siunitx
has done its test. That's easiest to do using\AtBeginDocument