枚舉環境和 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*環境與枚舉環境一起使用,但無濟於事。

我最近的嘗試是使用對齊的[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包的好機會,它提供了一種將巨集應用於每個表格單元格內容的簡單方法。在這裡,我們定義了一個將s宏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} 

在此輸入影像描述

相關內容