Choice options

As I work through recoding siunitx for version 2, I’m re-thinking all of the options. As I’ve said already (and others have said too) the current structure is too complex. A particular problem is the options which currently take a choice of values, or a literal item. I’m thinking that it would be better to either (a) have a fixed list of choices or (b) use the input as given. For example, the current:

\sisetup{decimalsymbol = comma}

could become either:

\sisetup{numbers/output/decimal marker = comma}


\sisetup{numbers/output/decimal marker = {,}}

For options which give literal output (like the above), I think the later method is better (it matches up with the input options, for example). On the other hand, some options (particularly those involving spaces) seem better done using keywords:

\sisetup{numbers/output/digit separator = thick space} % thin space, comma, ...

I’d be keen to see what others think.

2 thoughts on “Choice options

  1. Generally I would tend to go with the ‘literal input’ method, because it involves less learning on the part of the user — if they already know the commands for thinspace, or whatever, then they don’t need to remember if they need to write “thinspace” or “thin space” or “thinsp”.

    I guess the reverse argument is that writing ={,} isn’t very meaningful, and it’s better to write as semantically as possible.

    Perhaps a compromise solution might be to only accept literal input but then also provide commands like thinspace, thickspace, etc., where they’re not already defined. And then give a nice list of sensible possible options in the documentation.

Leave a Reply