summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/isotope
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/isotope
Initial commit
Diffstat (limited to 'macros/latex/contrib/isotope')
-rw-r--r--macros/latex/contrib/isotope/README5
-rw-r--r--macros/latex/contrib/isotope/isotope.dtx175
-rw-r--r--macros/latex/contrib/isotope/isotope.ins60
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