# Annotating chemical reactions typeset using the chemmacros package's reactions environment

I'm using the reactions environment in the chemmacros package to typeset some chemical reactions. I would like to annotate each reaction with text. Here is my MWE:

\documentclass[oneside,11pt]{book}

\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage{mathtools}
\usepackage{chemmacros}
\usechemmodule{reactions}

\begin{document}

\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface}&{\footnotesize\text{surface adsorption}}\\
MnO2 + Na+ + e- &<=> (MnOONa)&{\footnotesize\text{intercalation/deintercalation}}
\end{reactions}

\end{document}


Why is there no space between "surface" and "adsorption," and how can I fix this?

This gets asked by users of chemmacros over and over but it's not chemmacros that's doing it. It is the macro \ch which is defined by the chemformula package. Said macro splits its contents at every space and then checks the remaining parts if they're formulas, or stoichiometric factors, or… have a look at chemformula's manual for details.

The solution here is to use ~ for a space:

\documentclass{article}

\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage{chemmacros}
\usechemmodule{reactions}

\begin{document}

\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface} && \footnotesize surface~adsorption \\
MnO2 + Na+ + e- &<=> (MnOONa) && \footnotesize intercalation/deintercalation
\end{reactions}

\end{document}


By the way: you are not forced to use chemformula with chemmacros. You can also use mhchem, for example:

\documentclass{article}

\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage{chemmacros}
\usechemmodule{reactions}
\chemsetup{formula=mhchem}

\begin{document}

\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface} && \text{\footnotesize surface adsorption} \\
MnO2 + Na+ + e- &<=> (MnOONa) && \text{\footnotesize intercalation/deintercalation}
\end{reactions}

\end{document}


Probably the package does not support text mode. I changed your code a bit but the setup is almost identical. I put a space \, to separate the two words, and it works.

\documentclass[oneside,11pt]{book}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}