저는 학생들이 방사성 붕괴를 겪은 후 원소의 양성자와 원자 번호를 작성하는 질문지를 만들려고 합니다.
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* 환경을 열거 환경과 함께 사용하려고 했지만 아무 소용이 없었습니다.
나의 최근 시도는 alignment[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
an 대신 a를 사용합니다 . 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
또한 require가 아닌 다음 명령 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}