2

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[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\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}

mwe

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

3

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}

enter image description here

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}

enter image description here

1

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}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage{mathtools}
\usepackage{chemmacros}
\usechemmodule{reactions}

\begin{document}

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

\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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