From e6cd0f91db8da2a477425aeeac70568b3702c6c0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 8 Jan 2016 00:03:11 +0000 Subject: nucleardata (7jan16) git-svn-id: svn://tug.org/texlive/trunk@39306 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/nucleardata/README. | 17 ++++++ .../doc/latex/nucleardata/nuccommandtest.pdf | Bin 0 -> 91168 bytes .../doc/latex/nucleardata/nuccommandtest.tex | 65 +++++++++++++++++++++ .../doc/latex/nucleardata/nucleardata.pdf | Bin 285048 -> 285082 bytes .../source/latex/nucleardata/nucleardata.dtx | 23 ++++---- .../source/latex/nucleardata/nucleardata.ins | 12 ++-- .../tex/latex/nucleardata/nucleardata.pytxcode | 9 ++- .../tex/latex/nucleardata/nucleardata.sty | 19 +++--- 8 files changed, 117 insertions(+), 28 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/nucleardata/README. create mode 100644 Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.pdf create mode 100644 Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.tex diff --git a/Master/texmf-dist/doc/latex/nucleardata/README. b/Master/texmf-dist/doc/latex/nucleardata/README. new file mode 100644 index 00000000000..db1647ccd4b --- /dev/null +++ b/Master/texmf-dist/doc/latex/nucleardata/README. @@ -0,0 +1,17 @@ +---------------------------------------------------------------- + +nucleardata --- Getting info about nuclides into LaTeX documents + +E-mail: bnettles@uu.edu + +Released under the LaTeX Project Public License v1.3c or later + +See http://www.latex-project.org/lppl.txt + +---------------------------------------------------------------- + +This package provides data and commands for including nuclear and atomic mass and energy data in LaTeX documents. It uses the PythonTeX package and requires pythontex.exe to be called with the tex file as the argument. + +It reads data from two different csv files: elementlist.csv and massdata.csv which are normally stored in the same folder as the nucleardata.sty file (dist/tex/latex/nucleardata). + +The massdata.csv file was created from ENSDF data files and the file mass.mas03round from ``The Ame2003 atomic mass evaluation (II)'' by G.Audi, A.H.Wapstra and C.Thibault, _Nuclear Physics_ A729 p. 337-676, December 22, 2003. diff --git a/Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.pdf b/Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.pdf new file mode 100644 index 00000000000..2c9c2fa1712 Binary files /dev/null and b/Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.pdf differ diff --git a/Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.tex b/Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.tex new file mode 100644 index 00000000000..34605c8ef4f --- /dev/null +++ b/Master/texmf-dist/doc/latex/nucleardata/nuccommandtest.tex @@ -0,0 +1,65 @@ +\documentclass{article} +\usepackage{geometry} +\geometry{margin=0.75in} +\usepackage{nucleardata} +\usepackage{booktabs} +\usepackage{nopageno} +\begin{document} +\centering +Example and Test File for \texttt{nucleardata} Package + +$^{~184}$Au Halflife Data + + \begin{tabular}{cc} + \toprule + Unit & Value \\ + \midrule + ns & \nuchalflife[ns]{Au}{184}\\ + \midrule + us & \nuchalflife[us]{Au}{184}\\ + \midrule + ms & \nuchalflife[ms]{Au}{184}\\ + \midrule + s & \nuchalflife[s]{Au}{184}\\ + \midrule + min & \nuchalflife[min]{Au}{184}\\ + \midrule + hr & \nuchalflife[hr]{Au}{184}\\ + \midrule + d & \nuchalflife[d]{Au}{184}\\ + \midrule + y & \nuchalflife[y]{Au}{184}\\ + \midrule + My & \nuchalflife[My]{Au}{184}\\ +% ev & \nuchalflife[ev]{Au}{184}\\ +% kev & \nuchalflife[kev]{Au}{184}\\ +% Mev & \nuchalflife[mev]{Au}{184}\\ + \bottomrule\\ + \end{tabular} + + Other commands applied to $^{~40}$Ca + + \begin{tabular}{cc} +\toprule symbol & \nucsymbol{20} \\ +\midrule Z & \nucz{calcium}\\ +\midrule name & \nucname{20}\\ +\midrule Name & \nucName{20}\\ +\midrule Spin/parity & \nucspin{20}{41}\\ +\midrule mass excess & \nucexcess{20}{41}\\ +\midrule atomic mass (u) & \nucamassu{20}{41}\\ +\midrule atomic mass (u) & \nucamassu[2]{20}{41}\\ +\midrule atomic mass (keV) & \nucamasskev{20}{41}\\ +\midrule atomic mass (keV) & \nucamasskev[2]{20}{41}\\ +\midrule atomic mass (MeV) & \nucamassmev{20}{41}\\ +\midrule atomic mass (MeV) & \nucamassmev[5]{20}{41}\\ +\midrule nuclear mass (u) & \nuclearmassu{20}{41}\\ +\midrule nuclear mass (keV) & \nuclearmasskev[1]{20}{41}\\ +\midrule nuclear mass (MeV) & \nuclearmassmev{20}{41}\\ +\midrule BE/A & \nucbea{20}{41} MeV\\ +\midrule Q$_{\alpha}$ & \nucQalpha{20}{41} MeV\\ +\midrule Q$_{\beta^-}$ & \nucQbeta{20}{41} MeV\\ +\midrule Q$_{\beta^+}$ & \nucQposi{20}{41} MeV\\ +\midrule Q$_{\epsilon}$ & \nucQec{20}{41} MeV\\ +\bottomrule + \end{tabular} +\end{document} \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/nucleardata/nucleardata.pdf b/Master/texmf-dist/doc/latex/nucleardata/nucleardata.pdf index 5c01c6c0a7e..d953efb53a2 100644 Binary files a/Master/texmf-dist/doc/latex/nucleardata/nucleardata.pdf and b/Master/texmf-dist/doc/latex/nucleardata/nucleardata.pdf differ diff --git a/Master/texmf-dist/source/latex/nucleardata/nucleardata.dtx b/Master/texmf-dist/source/latex/nucleardata/nucleardata.dtx index ff41d194079..ac26399822d 100644 --- a/Master/texmf-dist/source/latex/nucleardata/nucleardata.dtx +++ b/Master/texmf-dist/source/latex/nucleardata/nucleardata.dtx @@ -48,7 +48,7 @@ See http://www.latex-project.org/lppl.txt ---------------------------------------------------------------- \endpreamble \postamble -Copyright (C) 2015 by Bill Nettles +Copyright (C) 2015-2016 by Bill Nettles This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either @@ -65,7 +65,9 @@ and the derived files nucleardata.ins, nucleardata.pdf, nucleardata.sty, elementlist.csv, - massdata.csv + massdata.csv, + nuccommandtest.tex, + nuccommandtext.pdf \endpostamble \usedir{./} \generate{ @@ -95,7 +97,7 @@ and the derived files nucleardata.ins, % %<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{nucleardata}[2015/11/18 v1.01 LaTeX package for providing basic nuclear properties to documents efficiently] +\ProvidesPackage{nucleardata}[2015/01/06 v1.01b LaTeX package for providing basic nuclear properties to documents efficiently] \RequirePackage{pythontex} \RequirePackage{siunitx} % @@ -132,7 +134,9 @@ and the derived files nucleardata.ins, % %\maketitle % -%\changes{v1.01}{2015/11/18}{getIsotopes returns an integer list; getHalfLifeValue returns an unformatted float} +%\changes{v1.00}{2015/11/15}{Initial Public Release} +%\changes{v1.01}{2015/11/18}{getIsotopes() returns an integer list; getHalfLifeValue returns a float} +%\changes{v1.01b}{2016/01/06}{getIsotopes() bug fix; calls to timeenergy(), time_dict, units_dict bug fixes} % % The |nucleardata| package provides a method for quickly accessing information about atomic nuclides (isotopes of elements) by referring to the chemical symbol and mass number (A) or to the atomic number (Z) and mass number (A). This information can be inserted and typeset without the user having to search an outside source. The information available in the current version includes chemical symbol or name given Z, Z given the chemical symbol or name, atomic mass, nuclear mass, Q-values for radioactive decay, half-life of ground states, binding energy, mass excess, and list of known isotopes of an element. \par %~ @@ -348,7 +352,7 @@ class Nucdata(object): "Gy":1e-9} def timeenergy(self,ene): - return hbarev*0.69315/ene/time_dict.get("s") + return hbarev*0.69315/ene/self.time_dict.get("s") def getNuclide(self,EL,A): res=[v for v in nucleardata if v.get('SYM').strip().upper()== EL.upper() and v.get('A') == A] @@ -432,7 +436,7 @@ class Nucdata(object): unit = value[1].strip() if newunit: # user wants to change the unit if unit in ['ev','kev','mev']: - number=timeenergy(number) + number=self.timeenergy(number) if unit=='kev': number=number/1.e3 elif unit=='mev': @@ -465,7 +469,7 @@ class Nucdata(object): unit = value[1].strip() if newunit: # user wants to change the unit if unit in ['ev','kev','mev']: - number=timeenergy(number) + number=self.timeenergy(number) if unit=='kev': number=number/1.e3 elif unit=='mev': @@ -583,8 +587,7 @@ class Nucdata(object): isotopes=[] for v in res: isotopes.append(int(v.get('A'))) - isostring=str(isotopes)[1:-1] - return isostring + return isotopes def getZ(self,name): res=[v for v in elementdata if v.get('SYM').strip().upper()== name.upper() or v.get('NAME').strip().upper()== name.upper()] @@ -796,7 +799,7 @@ nuc=Nucdata() %\begin{macro}{\nucisotopes} % \begin{macrocode} -\newcommand{\nucisotopes}[1]{\py{nuc.getIsotopes('#1')}} +\newcommand{\nucisotopes}[1]{\py{str(nuc.getIsotopes('#1'))[1:-1]}} % \end{macrocode} %\end{macro} diff --git a/Master/texmf-dist/source/latex/nucleardata/nucleardata.ins b/Master/texmf-dist/source/latex/nucleardata/nucleardata.ins index d70b7146d0d..8fd793b7b11 100644 --- a/Master/texmf-dist/source/latex/nucleardata/nucleardata.ins +++ b/Master/texmf-dist/source/latex/nucleardata/nucleardata.ins @@ -33,7 +33,7 @@ See http://www.latex-project.org/lppl.txt ---------------------------------------------------------------- \endpreamble \postamble -Copyright (C) 2015 by Bill Nettles +Copyright (C) 2015-2016 by Bill Nettles This work may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either @@ -50,14 +50,16 @@ and the derived files nucleardata.ins, nucleardata.pdf, nucleardata.sty, elementlist.csv, - massdata.csv + massdata.csv, + nuccommandtest.tex, + nuccommandtext.pdf \endpostamble \usedir{./} \generate{ \file{\jobname.sty}{\from{\jobname.dtx}{package}} } \endbatchfile -%% Copyright (C) 2015 by Bill Nettles +%% Copyright (C) 2015-2016 by Bill Nettles %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License (LPPL), either @@ -74,6 +76,8 @@ and the derived files nucleardata.ins, %% nucleardata.pdf, %% nucleardata.sty, %% elementlist.csv, -%% massdata.csv +%% massdata.csv, +%% nuccommandtest.tex, +%% nuccommandtext.pdf %% %% End of file `nucleardata.ins'. diff --git a/Master/texmf-dist/tex/latex/nucleardata/nucleardata.pytxcode b/Master/texmf-dist/tex/latex/nucleardata/nucleardata.pytxcode index 8febc57a607..29f15e528d7 100644 --- a/Master/texmf-dist/tex/latex/nucleardata/nucleardata.pytxcode +++ b/Master/texmf-dist/tex/latex/nucleardata/nucleardata.pytxcode @@ -58,7 +58,7 @@ class Nucdata(object): "Gy":1e-9} def timeenergy(self,ene): - return hbarev*0.69315/ene/time_dict.get("s") + return hbarev*0.69315/ene/self.time_dict.get("s") def getNuclide(self,EL,A): res=[v for v in nucleardata if v.get('SYM').strip().upper()== EL.upper() and v.get('A') == A] @@ -142,7 +142,7 @@ class Nucdata(object): unit = value[1].strip() if newunit: # user wants to change the unit if unit in ['ev','kev','mev']: - number=timeenergy(number) + number=self.timeenergy(number) if unit=='kev': number=number/1.e3 elif unit=='mev': @@ -175,7 +175,7 @@ class Nucdata(object): unit = value[1].strip() if newunit: # user wants to change the unit if unit in ['ev','kev','mev']: - number=timeenergy(number) + number=self.timeenergy(number) if unit=='kev': number=number/1.e3 elif unit=='mev': @@ -293,8 +293,7 @@ class Nucdata(object): isotopes=[] for v in res: isotopes.append(int(v.get('A'))) - isostring=str(isotopes)[1:-1] - return isostring + return isotopes def getZ(self,name): res=[v for v in elementdata if v.get('SYM').strip().upper()== name.upper() or v.get('NAME').strip().upper()== name.upper()] diff --git a/Master/texmf-dist/tex/latex/nucleardata/nucleardata.sty b/Master/texmf-dist/tex/latex/nucleardata/nucleardata.sty index af4fab435e7..28b811e8755 100644 --- a/Master/texmf-dist/tex/latex/nucleardata/nucleardata.sty +++ b/Master/texmf-dist/tex/latex/nucleardata/nucleardata.sty @@ -17,7 +17,7 @@ %% %% ---------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{nucleardata}[2015/11/18 v1.01 LaTeX package for providing basic nuclear properties to documents efficiently] +\ProvidesPackage{nucleardata}[2015/01/06 v1.01b LaTeX package for providing basic nuclear properties to documents efficiently] \RequirePackage{pythontex} \RequirePackage{siunitx} @@ -81,7 +81,7 @@ class Nucdata(object): "Gy":1e-9} def timeenergy(self,ene): - return hbarev*0.69315/ene/time_dict.get("s") + return hbarev*0.69315/ene/self.time_dict.get("s") def getNuclide(self,EL,A): res=[v for v in nucleardata if v.get('SYM').strip().upper()== EL.upper() and v.get('A') == A] @@ -165,7 +165,7 @@ class Nucdata(object): unit = value[1].strip() if newunit: # user wants to change the unit if unit in ['ev','kev','mev']: - number=timeenergy(number) + number=self.timeenergy(number) if unit=='kev': number=number/1.e3 elif unit=='mev': @@ -198,7 +198,7 @@ class Nucdata(object): unit = value[1].strip() if newunit: # user wants to change the unit if unit in ['ev','kev','mev']: - number=timeenergy(number) + number=self.timeenergy(number) if unit=='kev': number=number/1.e3 elif unit=='mev': @@ -316,8 +316,7 @@ class Nucdata(object): isotopes=[] for v in res: isotopes.append(int(v.get('A'))) - isostring=str(isotopes)[1:-1] - return isostring + return isotopes def getZ(self,name): res=[v for v in elementdata if v.get('SYM').strip().upper()== name.upper() or v.get('NAME').strip().upper()== name.upper()] @@ -430,7 +429,7 @@ nuc=Nucdata() \newcommand{\nucbea}[3][3]{\py{round(nuc.getBea('#2',#3)/1000.,#1)}} -\newcommand{\nucisotopes}[1]{\py{nuc.getIsotopes('#1')}} +\newcommand{\nucisotopes}[1]{\py{str(nuc.getIsotopes('#1'))[1:-1]}} \newcommand{\nucreactionqu}[9][3]{\py{round(nuc.getReaction_u('#2',#3,'#4',#5,'#6',#7,'#8',#9),#1)}} @@ -438,7 +437,7 @@ nuc=Nucdata() \newcommand{\nucreactionqkev}[9][3]{\py{round(nuc.getReaction_kev('#2',#3,'#4',#5,'#6',#7,'#8',#9),#1)}} \endinput -%% Copyright (C) 2015 by Bill Nettles +%% Copyright (C) 2015-2016 by Bill Nettles %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License (LPPL), either @@ -455,6 +454,8 @@ nuc=Nucdata() %% nucleardata.pdf, %% nucleardata.sty, %% elementlist.csv, -%% massdata.csv +%% massdata.csv, +%% nuccommandtest.tex, +%% nuccommandtext.pdf %% %% End of file `nucleardata.sty'. -- cgit v1.2.3