# Units that contain special characters in SIunitx

What is the proper way to typeset an entity of number plus unit if the unit contains characters such as '.' or '-' ?

Of course I could just type like 16\,Std. or 5\,Mol-\% but for consistency I put all entities of number+unit in \SI{}{}. For dots I found that putting it in brackets works \SI{16}{{Std.}}. But for hyphens it doesn't.

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[british,ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{siunitx}
\begin{document}
Fünf Gramm Uranhexafluorid (\SI{1.0}{eq.}) und \SI{100}{mg} Katalysator (\SI{5}{Mol-\%} wurden hinzugefügt. Das Gemisch wurde dann für \SI{16}{Std.} gerührt.
\end{document}

• I don't recommend this but I think you should use \DeclareSIUnit{\molproz}{Mol-\percent} and \SI{5}{\molproz} etc. Similar for Std. and eq. By the way, why are you using \SI{100}{mg} instead of \SI{100}{\milli\gram}? – user31729 May 6 '17 at 13:11
• Or \num{16} Std. if there should be unusual abbreviations of units... – user31729 May 6 '17 at 13:15

With the standard settings, the font used to print units is the math mode one; this means that - will be interpreted as a minus. As detailed in the documentation, one may use \text to ensure text mode is always used
\documentclass{article}