Ausrichtung innerhalb der Enumerate-Umgebung und mhchem

Ausrichtung innerhalb der Enumerate-Umgebung und mhchem

Ich versuche, einen Fragebogen für Schüler zu erstellen, in den sie die Protonen- und Ordnungszahlen von Elementen nach ihrem radioaktiven Zerfall eintragen.

Es ist mir gelungen, mithilfe der mhchem-Umgebung und tikz das folgende Arbeitsblatt zu erstellen:

Bildbeschreibung hier eingeben

mit dem folgenden Code:

\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{tikz}
\usepackage[version=4]{mhchem}

\newcommand\isotope{
\begin{tikzpicture}[scale=0.5, baseline=-4pt]
\draw (0,0.1) rectangle (1.5,1.1)
(0,-0.1) rectangle (1.5,-1.1)
(1.7,-1.1) rectangle (3.8,1.1);
\end{tikzpicture}}

\begin{document}

\begin{enumerate}
\begin{huge}
\item $\!\begin{aligned}[t] 
 \ce{^213_90Th -> ^4_2\alpha{} + & \isotope} \\
 \end{aligned}$
\item $\begin{aligned}[t] 
 \ce{^194_86Rn -> ^4_2\alpha{} + & \isotope} \\
 \end{aligned}$
\item $\begin{aligned}[t] 
 \ce{^217_91Pa -> ^4_2\alpha{} + &  \isotope} \\
 \end{aligned}$
\item $\begin{aligned}[t] 
 \ce{^221_90Th -> ^4_2\alpha{} + & \isotope} 
 \end{aligned}$
  \end{huge}
\end{enumerate}


\end{document}

Beachten Sie jedoch, dass die Kästchen nicht aufeinander ausgerichtet sind, was mich verrückt macht.

Ich habe erfolglos versucht, die align*-Umgebung mit der Enumerate-Umgebung zu verwenden.

Mein letzter Versuch erfolgte mit der Umgebung align[t], aber wie Sie sehen, hat dies das Problem nicht behoben.

Irgendwelche Ideen, wie ich das beheben kann?

Antwort1

Aktualisierte Antwort, ohne automatische Isotope:

\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{tikz}
\usepackage[version=4]{mhchem}

\newcommand\isotope{
\medskip\par
\begin{tikzpicture}[scale=0.5, baseline=-4pt]
\draw (0,0.1) rectangle (1.5,1.1)
(0,-0.1) rectangle (1.5,-1.1)
(1.7,-1.1) rectangle (3.8,1.1);
\end{tikzpicture}}


\usepackage{array}
\newcounter{rows}
\newcolumntype{C}{>{\stepcounter{rows}}l<{\arabic{rows}.}}
\newcolumntype{A}{c<{\ce{->}}}

\setlength{\tabcolsep}{4pt}

\begin{document}

\begin{tabular}{ClAll}
  & \ce{^213_90Th} &  &  \ce{^4_2\alpha{}}  &  + \isotope \\
  & \ce{^194_86Rn} &  &  \ce{^4_2\alpha{}}  &  + \isotope \\
\end{tabular}

\end{document}

Das gibt

Bildbeschreibung hier eingeben

Erklärung: Wir verwenden a tabularstatt an , enumerateum eine Ausrichtung zu erreichen. Der Zähler wird von einem speziellen Spaltentyp erzeugt C, der einen Zähler erweitert und den Wert setzt; innerhalb der Tabelle müssen Sie nichts ausfüllen. Einen ähnlichen Trick verwenden wir für den Reaktionspfeil; dieser wird von einem benutzerdefinierten ASpaltentyp bereitgestellt, sodass Sie nur eine leere Tabellenzelle einfügen müssen.

Das gestellte Problem ist auch eine gute Gelegenheit, Martin Scharrers collcellPaket vorzustellen, das eine einfache Möglichkeit bietet, ein Makro auf den Inhalt jeder Tabellenzelle anzuwenden. Hier definieren wir einen ESpaltentyp, der mhchemein \ceMakro auf jede Zelle anwendet. Darüber hinaus erstellen wir einen weiteren ISpaltentyp, der jede Zelle mit dem benutzerdefinierten \isotopeMakro füllt:

\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{tikz}
\usepackage[version=4]{mhchem}
\usepackage{collcell}

\newcommand\isotope{
\medskip\par
\begin{tikzpicture}[scale=0.5, baseline=-4pt]
\draw (0,0.1) rectangle (1.5,1.1)
(0,-0.1) rectangle (1.5,-1.1)
(1.7,-1.1) rectangle (3.8,1.1);
\end{tikzpicture}}


\usepackage{array}
\newcounter{rows}
\newcolumntype{C}{>{\stepcounter{rows}}l<{\arabic{rows}.}}
\newcolumntype{A}{c<{\ce{->}}}
\newcolumntype{I}{l<{+ \isotope}}
\newcolumntype{E}{>{\collectcell\ce}l<{\endcollectcell}}


\setlength{\tabcolsep}{4pt}

\begin{document}

\begin{tabular}{CEAEI}
  & ^213_90Th &  &  ^4_2\alpha  &  \\
  & ^194_86Rn &  &  ^4_2\alpha  &  \\
\end{tabular}

\end{document}

Die Ausgabe ist genau die gleiche wie oben gezeigt.

Antwort2

Ich schlage eine Lösung mit dem listliketabPaket anstelle einer echten Liste vor. Die „Elemente“ können miteinander referenziert werden.

Ich habe außerdem einen \myisotopeBefehl definiert, der kein erfordert tikz, sondern einfach auf basiert hhline:

\documentclass{article}
\usepackage[margin=0.5in]{geometry}
\usepackage{tikz}
\usepackage[version=4]{mhchem}
\usepackage{array, hhline, enumitem, listliketab}

\newcommand\isotope{%
\begin{tikzpicture}[scale=0.5, baseline=-4pt]
\draw (0,0.1) rectangle (1.5,1.1)
(0,-0.1) rectangle (1.5,-1.1)
(1.7,-1.1) rectangle (3.8,1.1);
\end{tikzpicture}}
\newcommand\myisotope{\renewcommand{\arraystretch}{0.6}\setlength\extrarowheight{12pt}\begin{tabular}{|p{10pt}||p{18pt}|}\hhline{-||-}& \\\hhline{:=:|~|} & \\\hhline{|-||-|}\end{tabular}}%&

\begin{document}

\storestyleof{enumerate}
\begin{listliketab}
\newcounter{tabenum}\setcounter{tabenum}{0}
\newcommand{\tabitem}{\refstepcounter{tabenum}\thetabenum.}
\begin{tabular}{Lr@{}l}
\tabitem\label{th} & \ce{^213_90Th -> ^4_2\alpha{} +} & \myisotope\\[20pt]
\tabitem & \ce{^194_86Rn -> ^4_2\alpha{} +} & \myisotope\\[20pt]
\tabitem & \ce{^217_91Pa -> ^4_2\alpha{} +} & \myisotope \\[20pt]
\tabitem & \ce{^221_90Th -> ^4_2\alpha{} +} & \myisotope
\end{tabular}
\end{listliketab}

Reaction \ref{th}

\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen