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.
\sisetup?siunitxdeliberately tests for 'all sanserif' using the\AtBeginDocumenthook, so to reverse that you need to either do\sisetupafter\begin{document}or use\AtBeginDocumentfrom the preamble. – Joseph Wright♦ Aug 10 '12 at 21:44\sisetupbefore\begin{document}. I could accept that if you'd like to post it as an answer. – David Zaslavsky Aug 10 '12 at 22:36