私は、放射性崩壊を起こした後の元素の陽子番号と原子番号を記入する生徒用の質問シートを作成しようとしています。
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}
これは与える
説明:配置を実現するためtabular
に、 の代わりにを使用しますenumerate
。カウンターはC
、カウンターを拡張して値をタイプセットする特別な列タイプ によって生成されます。テーブル内では、何も入力する必要はありません。反応矢印にも同様のトリックを使用します。これはカスタムA
列タイプによって提供されるため、空のテーブルセルを挿入するだけで済みます。
提示された問題はcollcell
、テーブルの各セルの内容にマクロを簡単に適用できる Martin Scharrer のパッケージを紹介する良い機会でもあります。ここでは、各セルにマクロを適用する列タイプを定義します。E
さらに、カスタム定義のマクロを各セルに入力する別の列タイプを作成します。mhchem
\ce
I
\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}