TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I upgraded to v2.1 of siunitx since the version in ubuntu's package manager (1.3?) is pretty old. Things seem to have broken. I might have got something wrong with the installation, or I might be missing a dependency or something. I can't read log files well enough to work out what the issue might be.

I installed it by copying the .dtx file to my local texmf tree under texmf/tex/latex/siunitx/ and then running tex siunitx.sty from that directory.

When I try and use the package, I get this error:

! Undefined control sequence.
\siunitx_cs_if_macro:NT #1->\exp_last_unbraced:No 
                                                  \siunitx_cs_if_tl_aux:w {\...
l.6 \begin{document}

Runaway argument?
{\token_to_meaning:N \bar macro\q_stop }{\prg_return_true: }{\prg_return_false: \ETC.
! Paragraph ended before \siunitx_cs_if_tl_aux:w was complete.
<to be read again> 

Here is \listfiles

 *File List*
 article.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
 siunitx.sty    2010/11/24 v2.1f A comprehensive (SI) units package
   expl3.sty    2009/08/12 v1458 L3 Experimental code bundle wrapper
 l3names.sty    2009/08/08 v1452 L3 Experimental Naming Scheme for TeX Primitives
l3basics.sty    2009/08/08 v1453 L3 Experimental basic definitions
 l3expan.sty    2009/08/16 v1464 L3 Experimental Argument Expansion module
    l3tl.sty    2009/09/03 v1505 L3 Experimental Token Lists
   l3num.sty    2009/08/08 v1451 L3 Experimental token numbers
l3intexpr.sty    2009/03/20 v1086 L3 Integer Expressions
 l3quark.sty    2009/05/31 v1365 L3 Experimental Quark Commands
   l3seq.sty    2009/06/17 v1415 L3 Experimental sequences and stacks
  l3toks.sty    2009/06/14 v1412 L3 Experimental Token Registers
   l3int.sty    2009/05/28 v1362 L3 Experimental Integer module
   l3prg.sty    2009/09/20 v1545 L3 Experimental control structures
 l3clist.sty    2009/08/05 v1441 L3 Experimental comma separated lists
 l3token.sty    2009/09/22 v1550 L3 Experimental token investigation and manipulation
    l3io.sty    2009/05/31 v1369 L3 Experimental i/o module
  l3prop.sty    2009/09/16 v1536 L3 Experimental Property Lists
   l3msg.sty    2009/09/01 v1502 L3 Experimental LaTeX Messages module
  l3skip.sty    2009/05/28 v1362 L3 Experimental skip registers
   l3box.sty    2009/06/01 v1375 L3 Experimental Box module
l3keyval.sty    2009/07/13 v1424 L3 Experimental keyval processing
  l3keys.sty    2009/09/17 v1542 L3 Experimental key-value support
l3precom.sty    2009/08/08 v1453 L3 Experimental precompilation module
  l3calc.sty    2009/05/28 v1362 L3 Experimental calc module
  l3xref.sty    2009/05/28 v1362 L3 Experimental cross referencing
  l3file.sty    2009/05/28 v1352 L3 Experimental file loading
 amstext.sty    2000/06/29 v2.01
  amsgen.sty    1999/11/30 v2.0
   array.sty    2008/09/09 v2.4c Tabular extension package (FMi)
l3keys2e.sty    2009/08/24 v1494 Parsing LaTeX3 keyvals as LaTeX2e package options
  xparse.sty    2009/08/31 v1497 Generic document command parser
translator.sty    2007/03/11 ver 1.00
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)

And a MWE:

share|improve this question
Updating the l3-related packages might help. \exp_last_unbraced:No is defined in the current version of l3expan.sty. – Hendrik Vogt Dec 21 '10 at 17:28
@Hendrik. I guess your comment and my answer overlapped! I'll add some testing code to siunitx this evening, so there will be more guidance rather than cryptic errors. – Joseph Wright Dec 21 '10 at 17:31
@Joseph: I should look up if you're on the site before looking at anything siunitx-related :-) – Hendrik Vogt Dec 21 '10 at 17:41
@Hendrik. Usually with relatively easy questions I'd wait a bit, but I like to feel I'm allowed to treat siunitx as a special case :-) – Joseph Wright Dec 21 '10 at 17:43
@Joseph: Well, obviously :-) – Hendrik Vogt Dec 21 '10 at 17:49
up vote 3 down vote accepted

This is due to the version of the support packages you have installed. siunitx requires up to date versions of expl3 and xpackages. Please update these as well, and all should be fine. (Thinks: this is becoming something of an FAQ. I should add some version testing to siunitx and give an error message if any of the support is too old.)

share|improve this answer
Was tex siunitx.sty in the relevant part of my texmf tree the right way to install siunitx? I sort of guessed... Installing expl3 and xpackages looks difficult: where do I put all the files before I tex the .ins files? – Seamus Dec 21 '10 at 19:33
I strongly encourage you to download the pre-extracted files from CTAN. Look for siunitx.tds.zip, expl3.tds.zip and xpackages.tds.zip. These can simply be unzipped inside localtexmf, and will put the appropriate files in the appropriate places. – Joseph Wright Dec 21 '10 at 19:35
Sorry for the obvious questions, I've been confused by this before: So I put the zip file in ~/texmf/ and then unzip it there, and everything goes where it should, right? – Seamus Dec 21 '10 at 22:29
@Seamus yes that's exactly what you do! Those TDSs take a lot of the pain out of installing new packages yourself... – Seamus Dec 21 '10 at 22:56
i've got an "answer" about the l3 versions issue in my working version of the uk tex faq. however, with places like tex/sx, it's clear that almost no-one bothers with the faq. should i just give up? -- it seems that the time i spend on it is mostly wasted. – wasteofspace Dec 17 '12 at 10:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.