[Tex/LaTex] Trying to use symbols withing the number in the siunitx package

siunitxspacing

I'm trying to use the following with siunitx:

\omega_x = \SI{100\pi}{rad.s^{-1}}

But it comes out wrong. There is a space placed between 10 and 0π, as if π
was actually a digit rather than a symbol. How do I get siunitx to treat it as a symbol?

I'd prefer an option to be used with the \usepackage declaration, to make the behaviour system-wide. An alternative package would also be helpful.

Image for clarification:

siunitx output, with superfluous space between the zeros

Also, I'd prefer a way that supported multiple symbols. I'm using the TeX Live 2012 distribution, last updated on September 25, if that helps.

Best Answer

Some things I'd suggest:

Code

\documentclass{article}
\usepackage{siunitx}
\DeclareSIUnit{\pii}{\ensuremath{\pi}}
\newcommand*{\customSI}[4][]{\num[#1]{#2}#3\,\si[#1]{#4}} % \, should be substituted for siunitx' inter-unit-product
\newcommand*{\customSIcustom}[4][]{\SI[parse-numbers=false,#1]{\num[parse-numbers=true,#1]{#2}#3}{#4}}

\begin{document}
\(\omega_x = \SI[parse-numbers=false]{\num[parse-numbers=true]{10000}\pi}{rad.s^{-1}}\)\\
\(\omega_x = \customSIcustom{10000}{\pi}{rad.s^{-1}}\)\\
\(\omega_x = \customSI{10000}{\pi}{rad.s^{-1}}\)\\
\(\omega_x = \SI{10000}{\pii.rad.s^{-1}}\)\\
\(\omega_x = \SI[number-unit-product={}]{10000}{\pii.rad.s^{-1}}\)
\end{document}

Output

updated

Related Question