El comando chemmacros \iupac se rompe en el \title de achemso

El comando chemmacros \iupac se rompe en el \title de achemso

Recibo un error al usar \iupacinside \titlecon la achemsoclase:

\documentclass{achemso}
\usepackage{chemmacros}

\title{Study of \iupac{1,2-di|methyl|benzene}}

\begin{document}
\maketitle
\end{document}

Este es el error:

ABD: EveryShipout initializing macros
! Undefined control sequence.
\l__chemmacros_tmpa_tl ->1,2-
                             di|methyl|benzene
l.7 \begin{document}

Todo se ve bien con article, o con el mismo \iupaccomando en el cuerpo y no en el título.

Respuesta1

Esto se solucionó en chemmacrosv5.11 (07/03/2020).


Hay un ligero problema de sincronización con achemso/ chemmacros. Primero achemsoredefine \begin{document}para agregar \maketitleal final. Luego chemmacroscarga etoolbox, que luego se agrega \@afterendpreamblehooka \document(por lo que ahora \begin{document}es equivalente a \begin{document}\maketitle\@afterendpreamblehook).

El problema es que \iupacactiva varios caracteres, y es mejor no hacerlo en el preámbulo, por lo que chemmacrosretrasa esta activación con \AfterEndPreamble, de modo que las cosas solo obtienen su definición en \@afterendpreamblehook, para que pueda ver hacia dónde va esto. En el momento en que se usa el título, en \maketitle, es demasiado pronto para usarlo \iupac, aunque probablemente no debería ser así.

Con una (probablemente demasiado) vista rápida del código, me parece que chemmacrosdebería funcionar \bool_set_true:N \l__chemmacros_in_document_boolen la definición \chemmacros_iupac:nnpara que todas las definiciones estén ahí cuando sea necesario.

Hay algunas formas de solucionar este problema, pero la más fácil parece cambiar el orden en el que se agregan las cosas \begin{document}, de modo que el preámbulo "termine" antes \maketitle(lo cual probablemente sea una buena idea). Para hacer eso, simplemente cargue etoolboxantes \documentclass{achemso}:

\RequirePackage{etoolbox}
\documentclass{achemso}
\usepackage{chemmacros}

\title{Study of \iupac{1,2-di|methyl|benzene}}

\begin{document}
\maketitle
\end{document}

información relacionada