# Angular frequency in siunitx

When using siunitx, is there an intuitive way to type angular frequencies with the prefix 2\pi \times? The provided example

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\SI{2\pi x 100}{\mega\hertz}
\end{document}


yields

So is there a neat way to supress the first unit?

• You can use the [parse-numbers=false] to leave the number intact but if you have 2pi factor I think you are looking for rad/s no? Commented Apr 11, 2013 at 8:04
• @percusse No, then the  x  is not parsed as a \times command. The 2\pi is just a helpful way to avoid confusion whether the angular or the bare frequency is used, if you want to avoid to specify this in each instance used.
– jjdb
Commented Apr 11, 2013 at 17:06
• But you are making things difficult for siunitx since you both want parsing but also don't want the great functionality when you write 3m x 5m. So \times is needed there if you don't want the parsing. Also I wouldn't call it a helpful way. We are constantly correcting this behavior in the papers. Units are not ambiguous. 100 Mrad/s is precisely what you wrote. 100 MHz is the bare number. Note that I didn't write any 2pi factor in any of them. Commented Apr 11, 2013 at 17:36
• @percusse you are totally right that the correct SI unit is \radian\per\second, and I think I would certainly use it to write an angular frequency describing a real rotation. But consider a harmonic oscillator, or LC circuit if you want, the rad/s unit is confusing. Actually, I can not remember having seen it anywhere in usage in physics, at least not within my community.
– jjdb
Commented Apr 11, 2013 at 19:52
• I have to agree, in physics, writing omega = 2pi x f is the common way of writing these two things, because it includes both, frequency and angular freqency, at once and because this way there's no chance to confuse them. Commented Apr 13, 2013 at 9:34

This:

${2\pi \times \SI{100}{\mega\hertz}}$


Or this:

\newcommand*{\angfreq} [2] {2\pi \times \SI{#1}{#2\hertz}}
\angfreq{5}{\mega} % gives "2pi x 5 Mhz"
\angfreq{8}{\kilo} % gives "2pi x 8 khz"


With both ways you avoid situations where product-units=single as a global option would give wrong results on other values and you avoid repeating this option on every single angular frequency when not using it as a global option.

• Ok, this solves the problem for the \mega\hertz. But then I need to define another one for \kilo\hertz, \giga\hertz etc.
– jjdb
Commented Apr 11, 2013 at 17:08
• I changed the code a bit. Just pass two arguments to \angfreq, the first is the number, the second is the frequency. Commented Apr 11, 2013 at 17:11
• I think this is quite the workaround I've wanted. Still I feel strange having a common framework for all other units, and needing a special command for angular frequencies
– jjdb
Commented Apr 12, 2013 at 21:44
• But 2pi x is no unit, so I think it's just natural that you need something special for this. The "unit way" for angular frequencies would be rad/s (talking sloppy: rad basically means x 2pi). Commented Apr 13, 2013 at 9:16
• @SvendTveskæg Good idea, I changed it this way. Commented Apr 14, 2013 at 13:09

Isn't the following all you need or am I missing something?

\documentclass{article}

\usepackage{siunitx}

\begin{document}

\SI[product-units = single]{2\pi x 100}{\MHz}

\end{document}


• But he's also using other values and units, which could be wrong this way, if the option is set globally. And always typing [product-units=single] on every single angular frequency locally can also be rather annoying if you have many of them. Commented Apr 13, 2013 at 9:31
• I see; good point. Commented Apr 13, 2013 at 9:36
• But I can use the option also for each \SI where I need it, or choose globally one option for the case used the most, and switch for the others. That's perfect, thanks.
– jjdb
Commented Apr 14, 2013 at 9:23

The solution for me is the following: I can choose the default behaviour when calling the package, and control then for each call of \SI the output where it deviates from the default.

\documentclass{article}
\usepackage[product-units=repeat]{siunitx}
\begin{document}
\SI[product-units=single]{2\pi x 100}{\mega\hertz}

\SI{2 x 2}{\meter}
\end{document}


gives the desired output:

EDIT

The usage as such is preferred to plain writing as we have access to all the features of the siunitx package, such as preventing line breaks etc.

\documentclass[twocolumn]{article}
\usepackage{siunitx}
\begin{document}
This is text which should induce a line break
\SI[product-units=single]{2\pi x 100}{\mega\hertz}

This is text which should induce a line break
$2 \times \SI{100}{\mega\hertz}$
\end{document}


• I don't really see why this is better than $2\pi \times \SI{100}{\mega\hertz}$ or a new command, which both would even be shorter and more clear and without the need of repeated command options. Commented Apr 14, 2013 at 9:35
• I've added an example where I compared the solutions for line breaking.
– jjdb
Commented Apr 14, 2013 at 9:46
• Curly brackets in math avoid line breaking: ${2\pi \times \SI{1}{\hertz}}$ will never linebreak. Commented Apr 14, 2013 at 9:46
• Ok, I didn't know that one. But than, you have to add it manually for every use. I thought it is one of the purposes of the package to write all quantities with \num and \SI just to have better control of the behaviour.
– jjdb
Commented Apr 14, 2013 at 9:49
• You only have to add it when it actually breaks, which will happen very rarely (proof-reading is a must with LaTeX in all cases). Or add it to the self-defined command, then it will always be there. Speaking semantically as a physicist myself, I don't think that 2pi belongs to the physical quantity. It's only a mathematical factor, it's neither the unit nor the value. Taking something "times 2pi" is a mathematical operation. Commented Apr 14, 2013 at 9:53