[Tex/LaTex] Typesetting of (formal) addition compounds according to IUPAC using chemmacros

chemformulachemistrychemmacros

I have a problem with the output of addition compounds according to IUPAC.
Compounds like CuSO4·5H2O should not have a space between the dot and the formulae [1, p. 56]:

IR-4.2.4 Formulae of (formal) addition compounds

In the formulae of addition compounds and compounds which can formally be regarded as such, including clathrates and multiple salts, a special format is used.
The proportions of constituents are indicated by arabic numerals preceding the formulae of the constituents, and the formulae of the constituents are separated by a centre dot.

examples

How can I do this in a reaction equation?

\documentclass[12pt]{article}
\usepackage[german]{babel}
\usepackage{chemmacros}

\begin{document}

\ch{CuSO4 -> [][5 H2O] CuSO4*5H2O} 
    
\end{document}

does not work for equations.
For a simple formula it is possible to remove the space by using:

\ch{CuSO4}$\cdot$\ch{5H2O} 

Is there any possibility to get the whole thing like IUPAC recommends it?

Reference

  1. IUPAC. Nomenclature of Inorganic Chemistry, IUPAC Recommendations 2005 (the “Red Book”), 1st ed.; Connelly, N. G., Damhus, T., Hartshorn, R. M., Hutton, A. T., Eds.; RSC Publishing: Cambridge, UK, 2005. ISBN 978-0-85404-438-2.

Best Answer

First of all: leave more spaces in the input. The detailed syntax for \ch is described in the chemformula manual. Especially stoichiometric factors and formulas need to be surrounded by spaces (that holds for the optional arguments of the arrows as well) even if they're part of a larger formula like in hydrates. This is shown in section 6.1 of the chemformula manual:

enter image description here

The correct syntax for your example is like this:

\documentclass[12pt]{article}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}

\begin{document}

\ch{CuSO4 ->[ 5 H2O ] CuSO4 * 5 H2O}

\end{document}

enter image description here

If you now want to adjust the space surrounding the dot you can set the option adduct-space to a value that suits you. The IUPAC Red Book indeed both has no spaces surrounding the dot and no spaces between compounds and stoichiometric factors which means both adduct-space and stoich-space need to be set to 0pt for getting the same output:

\documentclass[12pt]{article}
\usepackage[ngerman]{babel}
\usepackage{chemmacros}
\chemsetup{
  formula = chemformula ,
  chemformula/adduct-space = 0pt ,
  chemformula/stoich-space = 0pt
}

\begin{document}

\ch{CuSO4 ->[ 5 H2O ] CuSO4 * 5 H2O} 

\end{document}

enter image description here

I am not convinced, though, that the Red Book is making a typographical recommendation here, since the chapter only describes the naming of addition compounds. The Green Book on the other hand has a lot of typographic advice. Although it doesn't explicitly mention it it does use spaces to separate compounds from stoichiometric factors which implies to me that the spaces actually do follow the IUPAC recommendation.


Please also note that you should leave no space between arrows and their arguments. The typeset result of your input clearly shows this:

\ch{CuSO4 -> [][5 H20] CuSO4*5H2O}

enter image description here

Related Question