The question Why use a package to typeset units? made me think about something else: In non-scientific context one may have to provide data for persons using ... imperial units (shiver). But there may be two versions of a report, or the desire to put a secondary unit in parentheses following the primary unit value. Is there any package that treats this? So I'd write something like


And the output could be chosen to be any of e.g.

5 m/s
5 m/s (11.18 mph)
11.18 mph (18 km/h)

depending on a definition in the preamble?

  • Sure it is possible, however, consider places were meter is compared with the imperial unit miles. You should do \SI{5}{\length/\time} to conform to some kind of consistency. Furthermore, doing \let\length\m or \let\length\miles is probably what you need? (there might be something that should be handled correctly in terms of siunitx). And then some wrapper on \SI
    – nickpapior
    Commented Apr 10, 2013 at 9:55
  • 1
    @zeroth I think unit conversion is needed here rather than only the symbols. Check 5 becoming 11.18 and 18.
    – percusse
    Commented Apr 10, 2013 at 9:56
  • Yes, I put in the wrapper on \SI to handle this. (my comment was merely noting that \m was not always meters which was troubling me).
    – nickpapior
    Commented Apr 10, 2013 at 9:58
  • @zeroth I think I understand what you mean: providing the SI-unit magnitude, and the \lets would have the wrapped \SI decide in which actual unit to display. It's a good idea, though that would not provide an intuitive way for the optional parentheses. Commented Apr 10, 2013 at 10:02
  • 1
    @TobiasKienzler something like that, but the wrapper can also decide the parenthesis notation? Here you probably need to define a "standard" unit and "parenthesised" unit. And then the wrapper could handle both cases, or make several wrapper functions for parenthesised and non-parenthesised versions.
    – nickpapior
    Commented Apr 10, 2013 at 10:05

1 Answer 1


You could define your own command:


\newcommand{\speed} [1] {%
  \SI{#1}{\metre\per\second} (\pgfmathparse{2.247*#1}\pgfmathresult~mph)%


The output can be optimized, but with pgf you can define any calculation (like unit conversions, which are basically multiplications with a constant factor).

I don't think there's a finished package yet that supports automatically unit conversions.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .