
\iupac
Bei der Verwendung von inside \title
mit der achemso
Klasse wird ein Fehler angezeigt :
\documentclass{achemso}
\usepackage{chemmacros}
\title{Study of \iupac{1,2-di|methyl|benzene}}
\begin{document}
\maketitle
\end{document}
Dies ist der Fehler:
ABD: EveryShipout initializing macros
! Undefined control sequence.
\l__chemmacros_tmpa_tl ->1,2-
di|methyl|benzene
l.7 \begin{document}
Alles sieht gut aus mit article
oder mit dem gleichen \iupac
Befehl im Text und nicht im Titel.
Antwort1
Dies wurde in chemmacros
v5.11 (07.03.2020) behoben.
Es gibt ein kleines Timingproblem mit achemso
/ chemmacros
. Zuerst achemso
wird neu definiert , um am Ende \begin{document}
hinzuzufügen . Dann wird geladen , was dann an angehängt wird (ist also jetzt gleichwertig mit ).\maketitle
chemmacros
etoolbox
\@afterendpreamblehook
\document
\begin{document}
\begin{document}\maketitle\@afterendpreamblehook
Das Problem ist, dass \iupac
mehrere Charaktere aktiviert werden, und das sollte man besser nicht in der Präambel tun, also chemmacros
verzögert man dieses Aktivieren mit \AfterEndPreamble
, sodass die Dinge ihre Definition erst in bekommen \@afterendpreamblehook
, damit Sie sehen können, worauf das hinausläuft. Zu dem Zeitpunkt, an dem der Titel in verwendet wird, \maketitle
ist es ein bisschen zu früh, um zu verwenden \iupac
, obwohl es das wahrscheinlich nicht sein sollte.
Bei einem (wahrscheinlich zu) schnellen Blick auf den Code scheint mir dies in der Definition von chemmacros
zu tun , damit bei Bedarf alle Definitionen vorhanden sind.\bool_set_true:N \l__chemmacros_in_document_bool
\chemmacros_iupac:nn
Es gibt ein paar Möglichkeiten, dies zu umgehen, aber die einfachste scheint zu sein, die Reihenfolge zu ändern, in der Dinge hinzugefügt werden \begin{document}
, so dass die Präambel vorher „endet“ \maketitle
(was wahrscheinlich eine gute Idee ist). Dazu laden Sie einfach etoolbox
vorher \documentclass{achemso}
:
\RequirePackage{etoolbox}
\documentclass{achemso}
\usepackage{chemmacros}
\title{Study of \iupac{1,2-di|methyl|benzene}}
\begin{document}
\maketitle
\end{document}