# mhchem reaction arrows seem to break when using a command in the \ce environment

I've tried making the command

\newcommand{\aq}{_{(aq)}}


to make the subscript to show that an ion is aqueous, but when used in the \ce command it breaks the reaction arrows

\ce{2Cu(OH2)^{2+}_{6} + 4I^{-}\aq  <=> 2CuI v +I2 v +12H2O}

-
BTW: IUPAC recommends to typeset “the states of aggregation of chemical species [...] appended to the formula in parentheses and [...] printed in Roman (upright) type without a full stop (period).” This means: not as a subscript. –  cgnieder May 2 '12 at 19:13

This is fixed if you use {} immediately following \aq:

\ce{2Cu(OH2)^{2+}_{6} + 4I^{-}\aq{} <=> 2CuI v +I2 v +12H2O}


-

mhchem's arrows need to be preceded with a space. Since a command “eats” spaces after it there is no space before the arrow here: \ce{\cs <=>}. So that's why you need to add an empty group {} (\ce{\cs{} <=>}) or enclose the command with braces (\ce{{\cs} <=>}):

\documentclass{article}
\usepackage[version=3]{mhchem}

\setlength\parindent{0pt}
\begin{document}

without space: \ce{A<=>} \\
with space: \ce{A <=>}

\def\B{B}\bigskip
without space: \ce{\B <=>} \\
with space: \ce{\B{} <=>} \\
with space: \ce{{\B} <=>}

\end{document}


-