2

Just until yesterday, I could declare \usepackage[alsoload=synchem]{siunitx} in the preamble. So I could write something like \SI{20.00}{\milli\Molar} and things would typeset well.

Today, I updated TexLive to 3.141592653-2.6-1.40.23 (TeX Live 2021) and now things don't work. I get the error ! Package keyvalue Error: Unknown option 'alsoload' for package siunitx.

I tried getting the latest manual on siunitx and could see no example using the \Molar macro.

I know I can manually declare the required unit, but has \Molar been removed from the package?

I use pdflatex on Linux Mint 20.2 with TeXMaker as the frontend.

My MWE:

\documentclass[a4paper, 12pt]{article}
\usepackage[alsoload=synchem]{siunitx}

\begin{document}
Prepare a \SI{20.0}{\Molar}.
\end{document}
7
  • 1
    @Mico That is a v1 option though, the unit too, is defined in siunitx-version-1.cfg. Loading v2 will buy some time, but I guess this counts as deprecated.
    – gusbrs
    Commented Oct 9, 2021 at 22:18
  • 1
    From the oldest v2 I could grab on the GitHub repo: Users upgrading from version 1 of \pkg{siunitx} will notice that the various \enquote{specialist} units available in version 1 are no longer provided as loadable options.\footnote{They are included in the loaded configuration file \opt{version-1}, but this is intended purely to ease transition to version 2.} These are not included in version 2 as the criteria for inclusion of such units are far from clear, and it is difficult to justify providing clearly non-SI units in the package.
    – gusbrs
    Commented Oct 9, 2021 at 22:27
  • 1
    ... That given, my suggestion would be to indeed to keep the upgrade, if you can, and define the unit.
    – gusbrs
    Commented Oct 9, 2021 at 22:27
  • 1
    @Mico I think what happens is that v2 was still setup so that these units from v1 could be loaded. So, you are right, the upgrade to v3 barred that which was meant backward compatibility handling from over 10 years ago. That option is simply no-op in v2 and has been issuing a "v1 option warning" at compilation for some time, I guess.
    – gusbrs
    Commented Oct 9, 2021 at 22:30
  • 1
    @gusbrs - Let's hope the OP will see fit to update their code to version-3 syntax rules by changing \usepackage[alsoload=synchem]{siunitx}[=v2] to \usepackage{siunitx} followed by \DeclareSIUnit{\Molar}{\textsc{m}} (or whatever is the most appropriate thing to do). While the OP's at it, changing \SI{20.0}{\Molar} to \qty{20.0}{\Molar} would also be a good idea...
    – Mico
    Commented Oct 9, 2021 at 22:35

1 Answer 1

2

The alsoload option is from from version 1 of siunitx, the \Molar unit too. When version 2 was released, ca. 2010, as far as I can tell from the change log, some backward compatibility code was provided for version 1. The comment about it on the oldest version 2 historical file in siunitx repo about this is:

Users upgrading from version 1 of siunitx will notice that the various "specialist" units available in version 1 are no longer provided as loadable options.\footnote{They are included in the loaded configuration file version-1, but this is intended purely to ease transition to version 2.} These are not included in version 2 as the criteria for inclusion of such units are far from clear, and it is difficult to justify providing clearly non-SI units in the package.

The option alsoload was no-op in version 2, but it issued a compilation warning: Package siunitx Warning: Version 1 option 'alsoload' detected.

So that option and unit are clearly deprecated, and have been for a long time. The recent upgrade to version 3 has dropped support for it. You may buy some time and load version 2, as suggested by @Mico, with:

\usepackage[alsoload=synchem]{siunitx}[=v2]

But, considering the situation, unless you are unable to upgrade for some reason, my recommendation would be that keep the recent upgrade, which comes with many improvements, and is the current version, and define the unit(s) you need.

The definition for that particular unit, made in siunitx-version-1.cfg is:

\DeclareSIUnit\Molar{\textsc{m}}

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