% \iffalse meta-comment % % Copyright (C) 2003 by Heiko Bauke % ----------------------------------------------------------------------- % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 % of this license or (at your option) any later version. % The latest version of this license is in: % % http://www.latex-project.org/lppl.txt % % and version 1.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % \fi % % \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{isotope} % [2004/01/04 v0.2 for type setting isotopes] % %<*driver> \documentclass{ltxdoc} \usepackage{isotope} \usepackage{textcomp} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{isotope.dtx} \end{document} % % \fi % % \CheckSum{51} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \changes{v0.1}{2003/12/31}{Initial version.} % % \GetFileInfo{isotope.sty} % % \DoNotIndex{\newcommand,\newenvironment} % % % \title{The \textsf{isotope} package\thanks{This document % corresponds to \textsf{isotope}~\fileversion, dated \filedate.}} % \author{Heiko Bauke\thanks{E-mail: \texttt{heiko.bauke@physik.uni-magdeburg.de}}} % % \maketitle % % \section{Introduction} % % It's quite difficult to type set isotopes with \LaTeX. The ad hoc method % using e.g. |$^{232}_{90}\mathrm{Th}$| results in $^{232}_{90}\mathrm{Th}$. % This is not satisfactory because of the wrong alignment of atomic % and nuclear number. The package \textsf{isotope} provides the |\isotope| % macro for correct type setting isotopes. % % \section{Usage} % % The package \textsf{isotope} has to be included into the preamble of your % \LaTeX\ file by: % \begin{quote} % |\usepackage{isotope}| % \end{quote} % \DescribeMacro{\isotope} % The usage of the |\isotope| macro is straight forward: % \begin{quote} % |\isotope|\oarg{nuclear number}\oarg{atomic number}\marg{name} % \end{quote} % See \tablename~\ref{tab:example} for some examples. % \begin{table}[tb] % \centering % \caption{Examples for \texttt{\textbackslash isotope} macro usage.} % \label{tab:example} % \begin{tabular}{@{}ll@{}} % \hline % \hline % command & result \\ % \hline % |\isotope{Ra}| & \isotope{Ra} \\ % |\isotope[228]{Ra}| & \isotope[228]{Ra} \\ % |\isotope[228][88]{Ra}| & \isotope[228][88]{Ra} \\ % |$\isotope[A][Z]{X}\to| & \\ % |\isotope[A-4][Z-2]{Y}+\isotope[4][2]{\alpha}$| & % \raisebox{1.5ex}[-1.5ex]{$\isotope[A][Z]{X}\to\isotope[A-4][Z-2]{Y}+\isotope[4][2]{\alpha}$}\\ % \hline % \hline % \end{tabular} % \end{table} % \DescribeMacro{\isotopestyle} % The macro |\isotopestyle| determines the style which is used to type set the % name of the iostope. It may be redefined, e.g. % \begin{quote} % |\renewcommand{\isotopestyle}{\sf}|\\ % |\isotope[228]{Ra}| % \end{quote} % gives {\renewcommand{\isotopestyle}{\sf}\isotope[228]{Ra}}. % % \StopEventually{\PrintChanges\PrintIndex} % % \section{Implementation} % % \begin{macro}{\isotopestyle} % \changes{v0.2}{2004/01/04}{\texttt{\textbackslash isotopestyle} determines % also the style of nuclear and atomic number.} % |\isotopestyle| determines the style which is used to typeset the % name of an iostope and its nuclear and atomic number. % \begin{macrocode} \newcommand{\isotopestyle}{\rm} % \end{macrocode} % \end{macro} % \begin{macro}{\isotope} % \changes{v0.2}{2004/01/04}{Vertical spacing between nuclear and atomic % number has been improved. The implementation is based no a suggestion % of Walter Schmidt in \texttt{de.comp.text.tex}.} % Now it follows the implementation of \verb#\isotope# macro. % \begin{macrocode} \newcommand{\isotope@atomicnumber}{} \newcommand{\isotope@nuclearnumber}{} \newcommand{\isotope}[1][]{% \begingroup% \renewcommand{\isotope@nuclearnumber}{#1}% \isotope@two}% \newcommand{\isotope@two}[2][]{% \renewcommand{\isotope@atomicnumber}{#1}% {\m@th% % \end{macrocode} % Determine which has a larger width nuclear number or atomic number. % \begin{macrocode} \settowidth\@tempdimb{\ensuremath{% \isotopestyle\scriptstyle\isotope@nuclearnumber}}% \settowidth\@tempdimc{\ensuremath{% \isotopestyle\scriptstyle\isotope@atomicnumber}}% \ifdim\@tempdimb<\@tempdimc\@tempdimb=\@tempdimc\fi% \ensuremath{{}% ^{\makebox[\@tempdimb][r]{\ensuremath{% \isotopestyle\scriptstyle\isotope@nuclearnumber}}}% _{\makebox[\@tempdimb][r]{\ensuremath{% \isotopestyle\scriptstyle\isotope@atomicnumber}}}% \isotopestyle#2}% }% \endgroup% }% % \end{macrocode} % \end{macro} % \PrintChanges % \Finale \endinput