枚举环境和 mhchem 内的对齐

枚举环境和 mhchem 内的对齐

我正在尝试为学生创建一张问卷,让他们填写元素经历放射性衰变后的质子和原子序数。

我已成功使用 mhchem 环境和 tikz 生成以下工作表:

在此处输入图片描述

使用以下代码:

\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}

但是,请注意这些盒子彼此并不对齐,这让我抓狂。

我曾尝试将 align* 环境与 enumerate 环境一起使用,但没有成功。

我最近的尝试是使用 aligned[t] 环境,但正如您所看到的,这并没有解决问题。

有什么想法可以修复此问题吗?

答案1

更新后的答案,没有自动同位素:

\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}

这给出

在此处输入图片描述

说明:我们使用 atabular而不是 anenumerate来实现对齐。计数器由特殊的列类型生成C,它增强了计数器并排版值;在表格中,您无需填写任何内容。我们对反应箭头使用了类似的技巧;它由自定义A列类型提供,因此您所要做的就是插入一个空的表格单元格。

提出的问题也是展示 Martin Scharrercollcell软件包的好机会,该软件包提供了一种将宏应用于每个表格单元格内容的简单方法。在这里,我们定义一个将宏E应用于每个单元格的列类型。此外,我们创建另一个使用自定义宏填充每个单元格的列类型:mhchem\ceI\isotope

\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}

输出与上面显示的完全相同。

答案2

我建议用一揽子listliketab计划来代替实际清单。这些“项目”可以相互参考。

我还定义了一个\myisotope命令,它不需要tikz,而只是依赖于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} 

在此处输入图片描述

相关内容