diff options
Diffstat (limited to 'macros/latex/contrib/isotope')
-rw-r--r-- | macros/latex/contrib/isotope/README | 5 | ||||
-rw-r--r-- | macros/latex/contrib/isotope/isotope.dtx | 175 | ||||
-rw-r--r-- | macros/latex/contrib/isotope/isotope.ins | 60 |
3 files changed, 240 insertions, 0 deletions
diff --git a/macros/latex/contrib/isotope/README b/macros/latex/contrib/isotope/README new file mode 100644 index 0000000000..1a7d9396d6 --- /dev/null +++ b/macros/latex/contrib/isotope/README @@ -0,0 +1,5 @@ +Despite its powerful typographic capabilities it is surprisingly +difficult to typeset isotopes with LaTeX. Ad hoc methods as often give +poor results with wrong alignment of atomic and nuclear numbers. The +package isotope provides the \isotope macro for correct typesetting of +isotopes. diff --git a/macros/latex/contrib/isotope/isotope.dtx b/macros/latex/contrib/isotope/isotope.dtx new file mode 100644 index 0000000000..1aaddeeda2 --- /dev/null +++ b/macros/latex/contrib/isotope/isotope.dtx @@ -0,0 +1,175 @@ +% \iffalse meta-comment +% +% Copyright (C) 2003-2011 by Heiko Bauke <heiko.bauke@mpi-hd.mpg.de> +% ----------------------------------------------------------------------- +% +% 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 +%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%<package>\ProvidesPackage{isotope} +%<package> [2011/08/26 v0.3 for typesetting isotopes] +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{isotope} +\usepackage{textcomp} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{isotope.dtx} +\end{document} +%</driver> +% \fi +% +%\CheckSum{47} +% +% \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@mpi-hd.mpg.de}}} +% +% \maketitle +% +% \section{Introduction} +% +% Despite its powerful typographic capabilities it is surprisingly +% difficult to typeset isotopes with \LaTeX. Ad hoc methods as for +% example |$^{232}_{90}\mathrm{Th}$| give poor results as +% $^{232}_{90}\mathrm{Th}$. +% This is not satisfactory because of the wrong alignment of atomic +% and nuclear numbers. The package \textsf{isotope} provides the |\isotope| +% macro for correct typesetting of 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. Just provide the +% isotope's name and optionally its nucleon number and its atomic number. +% \begin{quote} +% |\isotope|\oarg{nucleon number}\oarg{atomic number}\marg{name} +% \end{quote} +% See \tablename~\ref{tab:example} for some examples. Note that the +% \verb#\alpha# has been enclosed by \verb#\mathnormal#. Not doing so +% may give unexpected results for some math fonds. +% +% \begin{table}[t] +% \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]{\mathnormal{\alpha}}$| & +% \raisebox{1.5ex}[-1.5ex]{$\isotope[A][Z]{X}\to\isotope[A-4][Z-2]{Y}+\isotope[4][2]{\mathnormal{\alpha}}$}\\ +% \hline +% \hline +% \end{tabular} +% \end{table} +% \DescribeMacro{\isotopestyle} +% The macro |\isotopestyle| determines the style which is used to typeset the +% name of the iostope. It may be redefined. For example, the redefinition +% \begin{quote} +% |\renewcommand{\isotopestyle}{\mathsf}|\\ +% |\isotope[228]{Ra}| +% \end{quote} +% gives {\renewcommand{\isotopestyle}{\mathsf}\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 nucleon and atomic numbers. +% \begin{macrocode} +\newcommand{\isotopestyle}{\mathrm} +% \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 the \verb#\isotope# macro. +% \begin{macrocode} +\newcommand{\isotope@atomicnumber}{} +\newcommand{\isotope@nucleonnumber}{} +\newcommand{\isotope}[1][]{% + \begingroup% + \renewcommand{\isotope@nucleonnumber}{#1}% + \isotope@two}% + \newcommand{\isotope@two}[2][]{% + \renewcommand{\isotope@atomicnumber}{#1}% + {\m@th% +% \end{macrocode} +% Determine which has a larger width nucleon number or atomic number. +% \begin{macrocode} + \settowidth\@tempdimb{\ensuremath{% + \scriptstyle\isotope@nucleonnumber}}% + \settowidth\@tempdimc{\ensuremath{% + \scriptstyle\isotope@atomicnumber}}% + \ifdim\@tempdimb<\@tempdimc\@tempdimb=\@tempdimc\fi% + \ensuremath{{}% + ^{\makebox[\@tempdimb][r]{\ensuremath{% + \scriptstyle\isotope@nucleonnumber}}}% + _{\makebox[\@tempdimb][r]{\ensuremath{% + \scriptstyle\isotope@atomicnumber}}}% + \isotopestyle{#2}}% + }% + \endgroup% +}% +% \end{macrocode} +% \end{macro} +% \changes{v0.3}{2011/08/26}{Changed \texttt{\textbackslash +% isotopestyle} from \texttt{\textbackslash rm} to +% \texttt{\textbackslash mathrm} to improve typographic quality when +% sans serif math fonts are used.} +% \PrintChanges +% \Finale +\endinput diff --git a/macros/latex/contrib/isotope/isotope.ins b/macros/latex/contrib/isotope/isotope.ins new file mode 100644 index 0000000000..a606944e54 --- /dev/null +++ b/macros/latex/contrib/isotope/isotope.ins @@ -0,0 +1,60 @@ +%% +%% Copyright (C) 2003-2011 by Heiko Bauke <heiko.bauke@mpi-hd.mpg.de> +%% +%% 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. +%% + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/isotope} + +\preamble + +This is a generated file. + +Copyright (C) 2003-2011 by Heiko Bauke <heiko.bauke@mpi-hd.mpg.de> + +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. + +\endpreamble + +\generate{\file{isotope.sty}{\from{isotope.dtx}{package}}} + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* isotope.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file isotop.dtx *} +\Msg{* through LaTeX and makeindex. *} +\Msg{* *} +\Msg{* latex isotope.dtx *} +\Msg{* makeindex -s gglo.ist -o isotope.ind isotope.idx *} +\Msg{* makeindex -s gglo.ist -o isotope.gls isotope.glo *} +\Msg{* latex isotope.dtx *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile |