summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/elements
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/elements
Initial commit
Diffstat (limited to 'macros/latex/contrib/elements')
-rw-r--r--macros/latex/contrib/elements/README35
-rw-r--r--macros/latex/contrib/elements/elements.sty714
-rw-r--r--macros/latex/contrib/elements/elements_en.pdfbin0 -> 402697 bytes
-rw-r--r--macros/latex/contrib/elements/elements_en.tex317
-rw-r--r--macros/latex/contrib/elements/elements_names_english.def138
-rw-r--r--macros/latex/contrib/elements/elements_names_french.def138
-rw-r--r--macros/latex/contrib/elements/elements_names_german.def138
-rw-r--r--macros/latex/contrib/elements/elements_names_spanish.def138
8 files changed, 1618 insertions, 0 deletions
diff --git a/macros/latex/contrib/elements/README b/macros/latex/contrib/elements/README
new file mode 100644
index 0000000000..f677830ae0
--- /dev/null
+++ b/macros/latex/contrib/elements/README
@@ -0,0 +1,35 @@
+--------------------------------------------------------------------------
+the ELEMENTS package v0.2c
+
+ retrieve different properties of chemical elements
+
+2018/01/31
+--------------------------------------------------------------------------
+Clemens Niederberger
+Web: https://github.com/cgnieder/elements/
+E-Mail: contact@mychemistry.eu
+--------------------------------------------------------------------------
+Copyright 2015--2018 Clemens Niederberger
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+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.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Clemens Niederberger.
+--------------------------------------------------------------------------
+The elements package consists of the files
+ - elements.sty
+ - elements_en.tex, elements_en.pdf
+ - elements_names_english.def, elements_names_german.def,
+ elements_names_french.def, elements_names_spanish.def
+ - README
+--------------------------------------------------------------------------
+If you have any ideas, questions, suggestions or bugs to report, please
+feel free to contact me.
+--------------------------------------------------------------------------
diff --git a/macros/latex/contrib/elements/elements.sty b/macros/latex/contrib/elements/elements.sty
new file mode 100644
index 0000000000..6d3accee5f
--- /dev/null
+++ b/macros/latex/contrib/elements/elements.sty
@@ -0,0 +1,714 @@
+% --------------------------------------------------------------------------
+% the ELEMENTS package
+%
+% retrieve different properties of chemical elements
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/elements/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2015--2018 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+\newcommand*\@elements@date{2018/01/31}
+\newcommand*\@elements@version{v0.2c}
+\newcommand*\@elements@description{properties of chemical elements}
+
+\ProvidesPackage{elements}[%
+ \@elements@date\space
+ \@elements@version\space
+ \@elements@description
+]
+
+\usepackage{etoolbox}
+
+% an idea by Herbert Voß (http://tex.stackexchange.com/a/7183/5049):
+% make the test character an (hopefully extremely) unlikely % with
+% catcode!=14; let's make & a temporary comment char
+% save both catcodes just in case someone changed the defaults:
+\edef\@elements@tmpa{
+ \catcode`\noexpand\%=\the\catcode`\%
+ \catcode`\noexpand\&=\the\catcode`\&
+}
+\catcode`\%=3
+\catcode`\&=14
+& the test:
+\newcommand*\@elements@ifisnum[1]{&
+ \if%\ifnum9<1#1%\else_\fi&
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\@elements@tmpa
+
+% chack for following !:
+\newrobustcmd*\@elements@ifbang[1]{\@ifnextchar!{\@firstoftwo{#1}}}
+
+% --------------------------------------------------------------------------
+% atomic numbers and element symbols and names
+\newrobustcmd*\@elements@define@atom@symbol[2]{%
+ \csdef{@elements@atom@symbol@num@\romannumeral#1}{#2}%
+ \lowercase{\csdef{@elements@atom@number@#2}}{#1}%
+}
+\newrobustcmd*\@elements@define@atom@name[3]{%
+ \csdef{@elements@atom@name@\romannumeral#1}{#2}%
+ \lowercase{\csdef{@elements@atom@name@num@#3}}{#1}%
+}
+\newrobustcmd*\@elements@define@atom@isotopes[2]{%
+ \csdef{@elements@atom@isotopes@\romannumeral#1}{#2}%
+}
+
+% #1: optional name (umlauts...)
+% #2: atomic number
+% #3: element name
+\newrobustcmd*\DeclareAtomName[3][]{%
+ \ifblank{#1}
+ {\@elements@define@atom@name{#2}{#3}{#3}}
+ {\@elements@define@atom@name{#2}{#3}{#1}}%
+}
+% \@onlypreamble\DeclareAtomName
+\newrobustcmd*\setatomname[3][]{%
+ \ifblank{#1}
+ {\@elements@define@atom@name{#2}{#3}{#3}}
+ {\@elements@define@atom@name{#2}{#3}{#1}}%
+}
+
+% #1: atomic number
+% #2: element symbol
+\newrobustcmd*\DeclareAtomSymbol[2]{%
+ \@elements@define@atom@symbol{#1}{#2}%
+}
+\@onlypreamble\DeclareAtomSymbol
+\newrobustcmd*\setatomsymbol[2]{%
+ \@elements@define@atom@symbol{#1}{#2}%
+}
+
+% #1: atomic number
+% #2: clist of isotopes, the most common one preceded with !
+\newrobustcmd*\DeclareAtomIsotopes[2]{%
+ \@elements@define@atom@isotopes{#1}{#2}%
+}
+\@onlypreamble\DeclareAtomIsotopes
+\newrobustcmd*\setatomisotopes[2]{%
+ \@elements@define@atom@isotopes{#1}{#2}%
+}
+
+\newrobustcmd*\@elements@get@atom@symbol[1]{%
+ \csuse{@elements@atom@symbol@num@\romannumeral#1}%
+}
+\newrobustcmd*\@elements@get@atom@number[1]{%
+ \lowercase{\csuse{@elements@atom@number@#1}}%
+}
+\newcommand*\@elements@get@atom@name[1]{%
+ \csuse{@elements@atom@name@\romannumeral#1}%
+}
+
+\newrobustcmd*\@elements@element@symbol[1]{%
+ \lowercase{\ifcsdef{@elements@atom@name@num@#1}}
+ {\lowercase{\@elements@get@atom@symbol{\csuse{@elements@atom@name@num@#1}}}}
+ {\@elements@get@atom@symbol{#1}}%
+}
+
+\newrobustcmd*\@elements@atomic@number[1]{%
+ \lowercase{\ifcsdef{@elements@atom@number@#1}}
+ {\@elements@get@atom@number{#1}}
+ {\lowercase{\csuse{@elements@atom@name@num@#1}}}%
+}
+
+\newrobustcmd*\@elements@element@name[1]{%
+ \@elements@ifisnum{#1}
+ {\@elements@get@atom@name{#1}}
+ {\lowercase{\@elements@get@atom@name{\csuse{@elements@atom@number@#1}}}}%
+}
+
+\newrobustcmd*\elementsymbol[1]{\@elements@element@symbol{#1}}
+\newrobustcmd*\atomicnumber[1]{\@elements@atomic@number{#1}}
+\newrobustcmd*\elementname[1]{\@elements@element@name{#1}}
+\AtBeginDocument{\ifdef\Z{}{\let\Z\atomicnumber}}
+
+% #1: macro
+% #2: atomic number|element symbol|element name
+\newrobustcmd*\saveatomicnumber[2]{%
+ \@elements@ifisnum{#2}
+ {\edef#1{#2}}
+ {%
+ \lowercase{%
+ \ifcsdef{@elements@atom@name@num@#2}
+ {\edef#1{\csuse{@elements@atom@name@num@#2}}}
+ {\edef#1{\csuse{@elements@atom@number@#2}}}%
+ }%
+ }%
+}
+% #1: macro
+% #2: atomic number|element symbol|element name
+\newrobustcmd*\saveelementsymbol[2]{%
+ \saveatomicnumber#1{#2}%
+ \edef#1{\csuse{@elements@atom@symbol@num@\romannumeral#1}}%
+}
+% #1: macro
+% #2: atomic number|element symbol|element name
+\newrobustcmd*\saveelementname[2]{%
+ \saveatomicnumber#1{#2}%
+ \edef#1{\csuse{@elements@atom@name@\romannumeral#1}}%
+}
+% #1: macro
+% #2: atomic number|element symbol|element name
+\newrobustcmd*\saveelementisotopes[2]{%
+ \saveatomicnumber#1{#2}%
+ \edef#1{\csuse{@elements@atom@isotopes@\romannumeral#1}}%
+}
+
+\newbool{@elements@found@isotope}
+% #1: macro
+% #2: atomic number|element symbol|element name
+\newrobustcmd*\savemainelementisotope[2]{%
+ \boolfalse{@elements@found@isotope}%
+ \saveelementisotopes#1{#2}%
+ \expandafter\forcsvlist
+ \expandafter{\expandafter\@elements@extractmainisotope
+ \expandafter#1\expandafter}%
+ \expandafter{#1}%
+}
+
+\newrobustcmd*\@elements@extractmainisotope[2]{%
+ \@elements@extractmainisotope@aux{#1}#2\q@stop
+}
+\newrobustcmd*\@elements@extractmainisotope@aux[2]{%
+ \@elements@ifbang
+ {\@elements@saveisotope{#1}}
+ {\@elements@donothing{#1}}%
+ #2%
+}
+\protected\def\@elements@saveisotope#1#2\q@stop{%
+ \def#1{#2}\booltrue{@elements@found@isotope}%
+}
+\protected\def\@elements@donothing#1#2\q@stop{%
+ \ifbool{@elements@found@isotope}{}{\let#1\@empty}%
+}
+
+\newrobustcmd*\mainelementisotope[1]{%
+ \begingroup
+ \savemainelementisotope\@elements@tmpa{#1}%
+ \@elements@tmpa
+ \endgroup
+}
+
+% --------------------------------------------------------------------------
+% electron distribution
+\newrobustcmd*\DeclareElectronDistribution[2]{%
+ \@elements@define@electron@distribution{#1}{#2}%
+}
+\@onlypreamble\DeclareElectronDistribution
+
+\newrobustcmd*\setelectrondistribution[2]{%
+ \@elements@define@electron@distribution{#1}{#2}%
+}
+
+\newrobustcmd*\@elements@define@electron@distribution[2]{%
+ \csdef{@elements@electron@distribution@\romannumeral#1}{#2}%
+}
+
+% #1: element
+% #2: macro that gets the electron distribution as argument
+\newrobustcmd*\@elements@act@on@elconf[2]{%
+ \saveatomicnumber\@elements@tmpa{#1}%
+ \edef\@elements@tmpa{%
+ \csuse{@elements@electron@distribution@\romannumeral\@elements@tmpa}%
+ }%
+ \expandafter\def\expandafter\@elements@tmpa
+ \expandafter{\romannumeral-`0\@elements@tmpa}%
+ \expandafter#2\expandafter{\@elements@tmpa}%
+}
+
+\newcounter{@elements@orbital@type}
+\newcounter{@elements@shell@number}
+
+\newrobustcmd*\elconf[1]{\@elements@elconf{#1}}
+\newrobustcmd*\writeelconf[1]{\@elements@print@elconf{#1}}
+
+% prints electron configuration of element #1:
+\newrobustcmd*\@elements@elconf[1]{%
+ \@elements@act@on@elconf{#1}{\@elements@print@elconf}%
+}
+
+\newrobustcmd*\@elements@print@elconf[1]{%
+ \def\@elements@current@elconf{}%
+ \setcounter{@elements@shell@number}{0}%
+ \@elements@getelconf{#1}%
+ \expandafter\@elements@write@elconf\expandafter{\@elements@current@elconf}%
+}
+
+\newrobustcmd*\@elements@getelconf[1]{%
+ \forcsvlist{\@elements@getelconf@aux}{#1}%
+}
+
+\newrobustcmd*\@elements@getelconf@aux[1]{%
+ \stepcounter{@elements@shell@number}%
+ \setcounter{@elements@orbital@type}{0}%
+ \@elements@parse@elconf#1+\q@stop
+}
+
+\protected\def\@elements@parse@elconf#1+#2\q@stop{%
+ \eappto\@elements@current@elconf{\arabic{@elements@shell@number}}%
+ \eappto\@elements@current@elconf
+ {\expandonce{\csname @elements@angmom@\arabic{@elements@orbital@type}\endcsname}}%
+ \appto\@elements@current@elconf{^{#1}}%
+ \stepcounter{@elements@orbital@type}%
+ \ifblank{#2}
+ {}
+ {\@elements@parse@elconf#2\q@stop}%
+}
+
+\newrobustcmd*\@elements@write@elconf[1]{\ensuremath{#1}}
+
+% #1: type
+% #2: output (in math mode)
+\newrobustcmd*\setangularmomentum[2]{%
+ \csdef{@elements@angmom@#1}{\printangularmomentum{#2}}%
+}
+
+\setangularmomentum{0}{s}
+\setangularmomentum{1}{p}
+\setangularmomentum{2}{d}
+\setangularmomentum{3}{f}
+\setangularmomentum{4}{g}
+\setangularmomentum{5}{h}
+
+\newcommand*\printangularmomentum[1]{\mathrm{#1}}
+
+% --------------------------------------------------------------------------
+% extendable language settings
+\RequirePackage{translations}
+\AfterEndPreamble{
+ % this will load a file `elements_elements_<lang>.def', <lang> is a
+ % `translations' base language
+ % currently German, English, and French are available, English being the
+ % fallback; other languages are added by providing the corresponding file
+ \ifdef\@elements@language
+ {\edef\@elements@language{\@trnslt@language{\@elements@language}}}
+ {\def\@elements@language{\@trnslt@language{\@trnslt@current@language}}}
+ \InputIfFileExists
+ {elements_names_\@elements@language.def}
+ {}
+ {\input{elements_names_english.def}}
+}
+
+% ==========================================================================
+% define the elements properties for elements 1 -- 112
+%
+% declare atom symbols:
+\DeclareAtomSymbol{1}{H}
+\DeclareAtomSymbol{2}{He}
+
+\DeclareAtomSymbol{3}{Li}
+\DeclareAtomSymbol{4}{Be}
+\DeclareAtomSymbol{5}{B}
+\DeclareAtomSymbol{6}{C}
+\DeclareAtomSymbol{7}{N}
+\DeclareAtomSymbol{8}{O}
+\DeclareAtomSymbol{9}{F}
+\DeclareAtomSymbol{10}{Ne}
+
+\DeclareAtomSymbol{11}{Na}
+\DeclareAtomSymbol{12}{Mg}
+\DeclareAtomSymbol{13}{Al}
+\DeclareAtomSymbol{14}{Si}
+\DeclareAtomSymbol{15}{P}
+\DeclareAtomSymbol{16}{S}
+\DeclareAtomSymbol{17}{Cl}
+\DeclareAtomSymbol{18}{Ar}
+
+\DeclareAtomSymbol{19}{K}
+\DeclareAtomSymbol{20}{Ca}
+\DeclareAtomSymbol{21}{Sc}
+\DeclareAtomSymbol{22}{Ti}
+\DeclareAtomSymbol{23}{V}
+\DeclareAtomSymbol{24}{Cr}
+\DeclareAtomSymbol{25}{Mn}
+\DeclareAtomSymbol{26}{Fe}
+\DeclareAtomSymbol{27}{Co}
+\DeclareAtomSymbol{28}{Ni}
+\DeclareAtomSymbol{29}{Cu}
+\DeclareAtomSymbol{30}{Zn}
+\DeclareAtomSymbol{31}{Ga}
+\DeclareAtomSymbol{32}{Ge}
+\DeclareAtomSymbol{33}{As}
+\DeclareAtomSymbol{34}{Se}
+\DeclareAtomSymbol{35}{Br}
+\DeclareAtomSymbol{36}{Kr}
+
+\DeclareAtomSymbol{37}{Rb}
+\DeclareAtomSymbol{38}{Sr}
+\DeclareAtomSymbol{39}{Y}
+\DeclareAtomSymbol{40}{Zr}
+\DeclareAtomSymbol{41}{Nb}
+\DeclareAtomSymbol{42}{Mo}
+\DeclareAtomSymbol{43}{Tc}
+\DeclareAtomSymbol{44}{Ru}
+\DeclareAtomSymbol{45}{Rh}
+\DeclareAtomSymbol{46}{Pd}
+\DeclareAtomSymbol{47}{Ag}
+\DeclareAtomSymbol{48}{Cd}
+\DeclareAtomSymbol{49}{In}
+\DeclareAtomSymbol{50}{Sn}
+\DeclareAtomSymbol{51}{Sb}
+\DeclareAtomSymbol{52}{Te}
+\DeclareAtomSymbol{53}{I}
+\DeclareAtomSymbol{54}{Xe}
+
+\DeclareAtomSymbol{55}{Cs}
+\DeclareAtomSymbol{56}{Ba}
+\DeclareAtomSymbol{57}{La}
+\DeclareAtomSymbol{58}{Ce}
+\DeclareAtomSymbol{59}{Pr}
+\DeclareAtomSymbol{60}{Nd}
+\DeclareAtomSymbol{61}{Pm}
+\DeclareAtomSymbol{62}{Sm}
+\DeclareAtomSymbol{63}{Eu}
+\DeclareAtomSymbol{64}{Gd}
+\DeclareAtomSymbol{65}{Tb}
+\DeclareAtomSymbol{66}{Dy}
+\DeclareAtomSymbol{67}{Ho}
+\DeclareAtomSymbol{68}{Er}
+\DeclareAtomSymbol{69}{Tm}
+\DeclareAtomSymbol{70}{Yb}
+\DeclareAtomSymbol{71}{Lu}
+\DeclareAtomSymbol{72}{Hf}
+\DeclareAtomSymbol{73}{Ta}
+\DeclareAtomSymbol{74}{W}
+\DeclareAtomSymbol{75}{Re}
+\DeclareAtomSymbol{76}{Os}
+\DeclareAtomSymbol{77}{Ir}
+\DeclareAtomSymbol{78}{Pt}
+\DeclareAtomSymbol{79}{Au}
+\DeclareAtomSymbol{80}{Hg}
+\DeclareAtomSymbol{81}{Tl}
+\DeclareAtomSymbol{82}{Pb}
+\DeclareAtomSymbol{83}{Bi}
+\DeclareAtomSymbol{84}{Po}
+\DeclareAtomSymbol{85}{At}
+\DeclareAtomSymbol{86}{Rn}
+
+\DeclareAtomSymbol{87}{Fr}
+\DeclareAtomSymbol{88}{Ra}
+\DeclareAtomSymbol{89}{Ac}
+\DeclareAtomSymbol{90}{Th}
+\DeclareAtomSymbol{91}{Pa}
+\DeclareAtomSymbol{92}{U}
+\DeclareAtomSymbol{93}{Np}
+\DeclareAtomSymbol{94}{Pu}
+\DeclareAtomSymbol{95}{Am}
+\DeclareAtomSymbol{96}{Cm}
+\DeclareAtomSymbol{97}{Bk}
+\DeclareAtomSymbol{98}{Cf}
+\DeclareAtomSymbol{99}{Es}
+\DeclareAtomSymbol{100}{Fm}
+\DeclareAtomSymbol{101}{Md}
+\DeclareAtomSymbol{102}{No}
+\DeclareAtomSymbol{103}{Lr}
+\DeclareAtomSymbol{104}{Rf}
+\DeclareAtomSymbol{105}{Db}
+\DeclareAtomSymbol{106}{Sg}
+\DeclareAtomSymbol{107}{Bh}
+\DeclareAtomSymbol{108}{Hs}
+\DeclareAtomSymbol{109}{Mt}
+\DeclareAtomSymbol{110}{Ds}
+\DeclareAtomSymbol{111}{Rg}
+\DeclareAtomSymbol{112}{Cn}
+
+% --------------------------------------------------------------------------
+% declare electron distributions:
+% period 1
+\DeclareElectronDistribution{1}{1}
+\DeclareElectronDistribution{2}{2}% He
+% period 2
+\DeclareElectronDistribution{3}{2,1}
+\DeclareElectronDistribution{4}{2,2}
+\DeclareElectronDistribution{5}{2,2+1}
+\DeclareElectronDistribution{6}{2,2+2}
+\DeclareElectronDistribution{7}{2,2+3}
+\DeclareElectronDistribution{8}{2,2+4}
+\DeclareElectronDistribution{9}{2,2+5}
+\DeclareElectronDistribution{10}{2,2+6}% Ne
+% period 3
+\DeclareElectronDistribution{11}{2,2+6,1}
+\DeclareElectronDistribution{12}{2,2+6,2}
+\DeclareElectronDistribution{13}{2,2+6,2+1}
+\DeclareElectronDistribution{14}{2,2+6,2+2}
+\DeclareElectronDistribution{15}{2,2+6,2+3}
+\DeclareElectronDistribution{16}{2,2+6,2+4}
+\DeclareElectronDistribution{17}{2,2+6,2+5}
+\DeclareElectronDistribution{18}{2,2+6,2+6}% Ar
+% period 4
+\DeclareElectronDistribution{19}{2,2+6,2+6,1}
+\DeclareElectronDistribution{20}{2,2+6,2+6,2}
+\DeclareElectronDistribution{21}{2,2+6,2+6+1,2}
+\DeclareElectronDistribution{22}{2,2+6,2+6+2,2}
+\DeclareElectronDistribution{23}{2,2+6,2+6+3,2}
+\DeclareElectronDistribution{24}{2,2+6,2+6+5,1}
+\DeclareElectronDistribution{25}{2,2+6,2+6+5,2}
+\DeclareElectronDistribution{26}{2,2+6,2+6+6,2}
+\DeclareElectronDistribution{27}{2,2+6,2+6+7,2}
+\DeclareElectronDistribution{28}{2,2+6,2+6+8,2}
+\DeclareElectronDistribution{29}{2,2+6,2+6+10,1}
+\DeclareElectronDistribution{30}{2,2+6,2+6+10,2}
+\DeclareElectronDistribution{31}{2,2+6,2+6+10,2+1}
+\DeclareElectronDistribution{32}{2,2+6,2+6+10,2+2}
+\DeclareElectronDistribution{33}{2,2+6,2+6+10,2+3}
+\DeclareElectronDistribution{34}{2,2+6,2+6+10,2+4}
+\DeclareElectronDistribution{35}{2,2+6,2+6+10,2+5}
+\DeclareElectronDistribution{36}{2,2+6,2+6+10,2+6}% Kr
+% period 5
+\DeclareElectronDistribution{37}{2,2+6,2+6+10,2+6,1}
+\DeclareElectronDistribution{38}{2,2+6,2+6+10,2+6,2}
+\DeclareElectronDistribution{39}{2,2+6,2+6+10,2+6+1,2}
+\DeclareElectronDistribution{40}{2,2+6,2+6+10,2+6+2,2}
+\DeclareElectronDistribution{41}{2,2+6,2+6+10,2+6+4,1}
+\DeclareElectronDistribution{42}{2,2+6,2+6+10,2+6+5,1}
+\DeclareElectronDistribution{43}{2,2+6,2+6+10,2+6+6,1}
+\DeclareElectronDistribution{44}{2,2+6,2+6+10,2+6+7,1}
+\DeclareElectronDistribution{45}{2,2+6,2+6+10,2+6+8,1}
+\DeclareElectronDistribution{46}{2,2+6,2+6+10,2+6+10}
+\DeclareElectronDistribution{47}{2,2+6,2+6+10,2+6+10,1}
+\DeclareElectronDistribution{48}{2,2+6,2+6+10,2+6+10,2}
+\DeclareElectronDistribution{49}{2,2+6,2+6+10,2+6+10,2+1}
+\DeclareElectronDistribution{50}{2,2+6,2+6+10,2+6+10,2+2}
+\DeclareElectronDistribution{51}{2,2+6,2+6+10,2+6+10,2+3}
+\DeclareElectronDistribution{52}{2,2+6,2+6+10,2+6+10,2+4}
+\DeclareElectronDistribution{53}{2,2+6,2+6+10,2+6+10,2+5}
+\DeclareElectronDistribution{54}{2,2+6,2+6+10,2+6+10,2+6}% Xe
+% period 6
+\DeclareElectronDistribution{55}{2,2+6,2+6+10,2+6+10,2+6,1}
+\DeclareElectronDistribution{56}{2,2+6,2+6+10,2+6+10,2+6,2}
+\DeclareElectronDistribution{57}{2,2+6,2+6+10,2+6+10,2+6+1,2}
+\DeclareElectronDistribution{58}{2,2+6,2+6+10,2+6+10+2,2+6,2}
+\DeclareElectronDistribution{59}{2,2+6,2+6+10,2+6+10+3,2+6,2}
+\DeclareElectronDistribution{60}{2,2+6,2+6+10,2+6+10+4,2+6,2}
+\DeclareElectronDistribution{61}{2,2+6,2+6+10,2+6+10+5,2+6,2}
+\DeclareElectronDistribution{62}{2,2+6,2+6+10,2+6+10+6,2+6,2}
+\DeclareElectronDistribution{63}{2,2+6,2+6+10,2+6+10+7,2+6,2}
+\DeclareElectronDistribution{64}{2,2+6,2+6+10,2+6+10+7,2+6+1,2}
+\DeclareElectronDistribution{65}{2,2+6,2+6+10,2+6+10+9,2+6,2}
+\DeclareElectronDistribution{66}{2,2+6,2+6+10,2+6+10+10,2+6,2}
+\DeclareElectronDistribution{67}{2,2+6,2+6+10,2+6+10+11,2+6,2}
+\DeclareElectronDistribution{68}{2,2+6,2+6+10,2+6+10+12,2+6,2}
+\DeclareElectronDistribution{69}{2,2+6,2+6+10,2+6+10+13,2+6,2}
+\DeclareElectronDistribution{70}{2,2+6,2+6+10,2+6+10+14,2+6,2}
+\DeclareElectronDistribution{71}{2,2+6,2+6+10,2+6+10+14,2+6+1,2}
+\DeclareElectronDistribution{72}{2,2+6,2+6+10,2+6+10+14,2+6+2,2}
+\DeclareElectronDistribution{73}{2,2+6,2+6+10,2+6+10+14,2+6+3,2}
+\DeclareElectronDistribution{74}{2,2+6,2+6+10,2+6+10+14,2+6+4,2}
+\DeclareElectronDistribution{75}{2,2+6,2+6+10,2+6+10+14,2+6+5,2}
+\DeclareElectronDistribution{76}{2,2+6,2+6+10,2+6+10+14,2+6+6,2}
+\DeclareElectronDistribution{77}{2,2+6,2+6+10,2+6+10+14,2+6+7,2}
+\DeclareElectronDistribution{78}{2,2+6,2+6+10,2+6+10+14,2+6+9,1}
+\DeclareElectronDistribution{79}{2,2+6,2+6+10,2+6+10+14,2+6+10,1}
+\DeclareElectronDistribution{80}{2,2+6,2+6+10,2+6+10+14,2+6+10,2}
+\DeclareElectronDistribution{81}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+1}
+\DeclareElectronDistribution{82}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+2}
+\DeclareElectronDistribution{83}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+3}
+\DeclareElectronDistribution{84}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+4}
+\DeclareElectronDistribution{85}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+5}
+\DeclareElectronDistribution{86}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+6}% Rn
+% period 7
+\DeclareElectronDistribution{87}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+6,1}
+\DeclareElectronDistribution{88}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+6,2}
+\DeclareElectronDistribution{89}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+6+1,2}
+\DeclareElectronDistribution{90}{2,2+6,2+6+10,2+6+10+14,2+6+10,2+6+2,2}
+\DeclareElectronDistribution{91}{2,2+6,2+6+10,2+6+10+14,2+6+10+2,2+6+1,2}
+\DeclareElectronDistribution{92}{2,2+6,2+6+10,2+6+10+14,2+6+10+3,2+6+1,2}
+\DeclareElectronDistribution{93}{2,2+6,2+6+10,2+6+10+14,2+6+10+4,2+6+1,2}
+\DeclareElectronDistribution{94}{2,2+6,2+6+10,2+6+10+14,2+6+10+6,2+6,2}
+\DeclareElectronDistribution{95}{2,2+6,2+6+10,2+6+10+14,2+6+10+7,2+6,2}
+\DeclareElectronDistribution{96}{2,2+6,2+6+10,2+6+10+14,2+6+10+7,2+6+1,2}
+\DeclareElectronDistribution{97}{2,2+6,2+6+10,2+6+10+14,2+6+10+9,2+6,2}
+\DeclareElectronDistribution{98}{2,2+6,2+6+10,2+6+10+14,2+6+10+10,2+6,2}
+\DeclareElectronDistribution{99}{2,2+6,2+6+10,2+6+10+14,2+6+10+11,2+6,2}
+\DeclareElectronDistribution{100}{2,2+6,2+6+10,2+6+10+14,2+6+10+12,2+6,2}
+\DeclareElectronDistribution{101}{2,2+6,2+6+10,2+6+10+14,2+6+10+13,2+6,2}
+\DeclareElectronDistribution{102}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6,2}
+\DeclareElectronDistribution{103}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+1,2}
+\DeclareElectronDistribution{104}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+2,2}
+\DeclareElectronDistribution{105}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+3,2}
+\DeclareElectronDistribution{106}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+4,2}
+\DeclareElectronDistribution{107}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+5,2}
+\DeclareElectronDistribution{108}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+6,2}
+\DeclareElectronDistribution{109}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+7,2}
+\DeclareElectronDistribution{110}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+9,1}
+\DeclareElectronDistribution{111}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+10,1}
+\DeclareElectronDistribution{112}{2,2+6,2+6+10,2+6+10+14,2+6+10+14,2+6+10,2}
+
+% --------------------------------------------------------------------------
+% declare isotope lists:
+\DeclareAtomIsotopes{1} {!1,2,3}
+\DeclareAtomIsotopes{2} {3,!4,5,6}
+
+\DeclareAtomIsotopes{3} {3,4,5,6,!7,8,9,10,11,12,13}
+\DeclareAtomIsotopes{4} {7,8,!9,10,11}
+\DeclareAtomIsotopes{5} {8,9,10,!11,12,13}
+\DeclareAtomIsotopes{6} {10,11,!12,13,14,15,16}
+\DeclareAtomIsotopes{7} {13,!14,15,16}
+\DeclareAtomIsotopes{8} {15,!16,17,18}
+\DeclareAtomIsotopes{9} {17,18,!19,20,21}
+\DeclareAtomIsotopes{10} {18,19,!20,21,22,23,24}
+
+\DeclareAtomIsotopes{11} {21,22,!23,24,25}
+\DeclareAtomIsotopes{12} {23,!24,25,26,27,28}
+\DeclareAtomIsotopes{13} {25,26,!27,28,29}
+\DeclareAtomIsotopes{14} {26,27,!28,29,30,31,32,33,34}
+\DeclareAtomIsotopes{15} {28,29,30,!31,32,33,34,35}
+\DeclareAtomIsotopes{16} {30,31,!32,33,34,35,36,37,38,39,40}
+\DeclareAtomIsotopes{17} {!35,36,37}
+\DeclareAtomIsotopes{18} {33,34,35,36,37,38,39,!40,41,42}
+
+\DeclareAtomIsotopes{19} {38,!39,40,41,42,43}
+\DeclareAtomIsotopes{20} {!40,41,42,43,44,45,46,47,48}
+\DeclareAtomIsotopes{21} {43,44,!45,46,47,48,49}
+\DeclareAtomIsotopes{22} {44,45,46,47,!48,49,50,51,52}
+\DeclareAtomIsotopes{23} {48,49,50,!51}
+\DeclareAtomIsotopes{24} {48,49,50,51,!52,53,54,55,56}
+\DeclareAtomIsotopes{25} {52,53,54,!55,56}
+\DeclareAtomIsotopes{26} {52,53,54,55,!56,57,58,59,60}
+\DeclareAtomIsotopes{27} {55,56,57,58,!59,60,61}
+\DeclareAtomIsotopes{28} {!58,59,60,61,62,63,64}
+\DeclareAtomIsotopes{29} {61,62,!63,64,65,66,67}
+\DeclareAtomIsotopes{30} {!64,65,66,67,68,69,70}
+\DeclareAtomIsotopes{31} {67,68,!69,70,71,72,73}
+\DeclareAtomIsotopes{32} {68,69,70,71,72,73,!74,75,76,77}
+\DeclareAtomIsotopes{33} {72,73,74,!75,76,77}
+\DeclareAtomIsotopes{34} {74,75,76,77,78,79,!80,81,82}
+\DeclareAtomIsotopes{35} {77,78,!79,80,81,82,83}
+\DeclareAtomIsotopes{36} {78,79,80,81,82,83,!84,85,86}
+
+\DeclareAtomIsotopes{37} {83,84,!85,86,87,88,89}
+\DeclareAtomIsotopes{38} {82,83,84,85,86,87,!88,89,90}
+\DeclareAtomIsotopes{39} {87,88,!89,90,91}
+\DeclareAtomIsotopes{40} {89,!90,91,92,93,94,95,96}
+\DeclareAtomIsotopes{41} {91,92,!93,94,95}
+\DeclareAtomIsotopes{42} {92,93,94,95,96,97,!98,99,100}
+\DeclareAtomIsotopes{43} {95,96,97,98,!99}
+\DeclareAtomIsotopes{44} {96,97,98,99,100,101,!102,103,104,105,106}
+\DeclareAtomIsotopes{45} {101,102,102,!103,104,105}
+\DeclareAtomIsotopes{46} {102,103,104,105,!106,107,108,109,110}
+\DeclareAtomIsotopes{47} {105,106,!107,108,109,110,111}
+\DeclareAtomIsotopes{48} {106,107,108,109,110,111,112,113,!114,115,116}
+\DeclareAtomIsotopes{49} {111,112,113,114,!115}
+\DeclareAtomIsotopes{50} {112,113,114,115,116,117,118,119,!120,121,122,123,124,125,126}
+\DeclareAtomIsotopes{51} {119,120,!121,122,123,124,125}
+\DeclareAtomIsotopes{52} {120,121,122,123,124,125,126,127,128,129,!130}
+\DeclareAtomIsotopes{53} {123,124,125,126,!127,128,129,130,131}
+\DeclareAtomIsotopes{54} {124,125,126,127,128,129,130,131,!132,133,134,135,136}
+
+\DeclareAtomIsotopes{55} {131,132,!133,134,135,136,137}
+\DeclareAtomIsotopes{56} {128,129,130,131,132,133,134,135,136,137,!138,139,140}
+\DeclareAtomIsotopes{57} {135,136,137,138,!139,140,141}
+\DeclareAtomIsotopes{58} {134,135,136,137,138,139,!140,141,142,143,144}
+\DeclareAtomIsotopes{59} {137,138,139,140,!141,142,143,144,145}
+\DeclareAtomIsotopes{60} {!142,143,144,145,146,147,148,149,150}
+\DeclareAtomIsotopes{61} {143,144,145,146,!147,148,149}
+\DeclareAtomIsotopes{62} {144,145,146,147,148,149,150,151,!152,153,154}
+\DeclareAtomIsotopes{63} {149,150,151,152,!153,154,155}
+\DeclareAtomIsotopes{64} {150,151,152,153,154,155,156,157,!158,159,160}
+\DeclareAtomIsotopes{65} {155,156,157,158,!159,160,161}
+\DeclareAtomIsotopes{66} {154,155,156,157,158,159,160,161,162,163,!164}
+\DeclareAtomIsotopes{67} {163,164,!165,166,167}
+\DeclareAtomIsotopes{68} {162,163,164,165,!166,167,168,169,170}
+\DeclareAtomIsotopes{69} {167,168,!169,170,171}
+\DeclareAtomIsotopes{70} {168,169,170,171,172,173,!174,175,176}
+\DeclareAtomIsotopes{71} {173,174,!175,176,177}
+\DeclareAtomIsotopes{72} {174,175,176,177,178,179,!180,181,182}
+\DeclareAtomIsotopes{73} {177,178,179,180,!181,182,183}
+\DeclareAtomIsotopes{74} {178,179,180,181,182,183,!184,185,186,187,188}
+\DeclareAtomIsotopes{75} {185,186,!187,188}
+\DeclareAtomIsotopes{76} {184,185,186,187,188,189,190,191,!192}
+\DeclareAtomIsotopes{77} {189,190,191,192,!193,194,195}
+\DeclareAtomIsotopes{78} {188,189,190,191,192,193,194,!195,196,197,198,199,200}
+\DeclareAtomIsotopes{79} {195,196,!197,198,199}
+\DeclareAtomIsotopes{80} {196,197,198,199,200,201,!202,203,204,206}
+\DeclareAtomIsotopes{81} {199,200,201,202,203,204,!205,206,207,208,210}
+\DeclareAtomIsotopes{82} {202,203,204,205,206,207,!208,209,210,211,212,213,214}
+\DeclareAtomIsotopes{83} {205,206,207,208,!209,210,211,212,213,214,215}
+\DeclareAtomIsotopes{84} {208,209,!210,211,212,213,214,215,216,217,218}
+% no main isotope:
+\DeclareAtomIsotopes{85} {209,210,211,212,213,214,215,218,219,220}
+\DeclareAtomIsotopes{86} {210,211,212,217,218,219,220,221,!222,223,224}
+
+\DeclareAtomIsotopes{87} {222,!223}
+\DeclareAtomIsotopes{88} {223,224,225,!226,227,228}
+\DeclareAtomIsotopes{89} {224,225,226,!227,228}
+\DeclareAtomIsotopes{90} {227,228,229,230,231,!232,233,234}
+\DeclareAtomIsotopes{91} {229,230,!231,232,233,234}
+\DeclareAtomIsotopes{92} {232,233,234,235,236,237,!238,239}
+% no main isotope:
+\DeclareAtomIsotopes{93} {235,236,237,238,239}
+\DeclareAtomIsotopes{94} {236,237,238,239,240,241,242,243,!244}
+% no main isotope:
+\DeclareAtomIsotopes{95} {238,239,240,241,242,243,244}
+% no main isotope:
+\DeclareAtomIsotopes{96} {240,241,242,243,244,245,246,247,248,249,250}
+% no main isotope:
+\DeclareAtomIsotopes{97} {242,243,244,245,246,247,248,249,250}
+% no main isotope:
+\DeclareAtomIsotopes{98} {244,245,246,247,248,249,250,251,252,253,254}
+% no main isotope:
+\DeclareAtomIsotopes{99} {248,249,250,251,252,253,254,255}
+% no main isotope:
+\DeclareAtomIsotopes{100}{250,251,252,253,254,255,256,257,258,259}
+% no main isotope:
+\DeclareAtomIsotopes{101}{257,258,259,260}
+% no main isotope:
+\DeclareAtomIsotopes{102}{257,259}
+% no main isotope:
+\DeclareAtomIsotopes{103}{260,261,262,266}
+% no main isotope:
+\DeclareAtomIsotopes{104}{253,254,255,256,257,258,259,260,261,262}
+% no main isotope:
+\DeclareAtomIsotopes{105}{261,262,263}
+% no main isotope:
+\DeclareAtomIsotopes{106}{265,266}
+% no main isotope:
+\DeclareAtomIsotopes{107}{261,262,264}
+% no main isotope:
+\DeclareAtomIsotopes{108}{268,269,270}
+% no main isotope:
+\DeclareAtomIsotopes{109}{266,267,268,270,274,275,276}
+% no main isotope:
+\DeclareAtomIsotopes{110}{267,268,269,270,271,272,273,279,280,281,282}
+% no main isotope:
+\DeclareAtomIsotopes{111}{272,274,278,279,280}
+% no main isotope:
+\DeclareAtomIsotopes{112}{277,283,285}
+
+% --------------------------------------------------------------------------
+\endinput
+
+HISTORY:
+2015/06/14 v0.1 - first public version
+2015/06/30 v0.1a - bug fix in loading the fallback translations
+2015/10/15 v0.1b - minor fix in French translations
+2015/11/24 v0.1c - small code improvements
+2016/04/17 v0.1d - minor fix in French translations
+ - new macro \mainelementisotope
+2016/05/15 v0.2 - new macro \setangularmomentum
+ - new macro \printangularmomentum
+ - add Spanish language -- thanks to Schmidt Cristian Hernan
+2017/06/12 v0.2a - fix typos in French translations
+ - correct wrong isotope lists
+2017/06/17 v0.2b - fix typos in French translations
+2018/01/31 v0.2c - fix typos in German translations
diff --git a/macros/latex/contrib/elements/elements_en.pdf b/macros/latex/contrib/elements/elements_en.pdf
new file mode 100644
index 0000000000..71e001f9c9
--- /dev/null
+++ b/macros/latex/contrib/elements/elements_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/elements/elements_en.tex b/macros/latex/contrib/elements/elements_en.tex
new file mode 100644
index 0000000000..efada83966
--- /dev/null
+++ b/macros/latex/contrib/elements/elements_en.tex
@@ -0,0 +1,317 @@
+% arara: pdflatex: { action: nonstopmode }
+% arara: biber
+% arara: pdflatex: { action: nonstopmode }
+% arara: pdflatex: { action: nonstopmode }
+% --------------------------------------------------------------------------
+% the ELEMENTS package
+%
+% retrieve different properties of chemical elements
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: http://www.mychemistry.eu/forums/forum/elements/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2015--2018 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+\documentclass[load-preamble+]{cnltx-doc}
+\usepackage[utf8]{inputenc}
+\usepackage{elements}
+
+\setcnltx{
+ package = elements ,
+ authors = Clemens Niederberger ,
+ email = contact@mychemistry.eu ,
+ url = http://www.mychemistry.eu/forums/forum/elements/ ,
+ add-cmds = {
+ atomicnumber,
+ DeclareAtomIsotopes,
+ DeclareAtomName,
+ DeclareAtomSymbol,
+ DeclareElectronDistribution,
+ elconf,
+ elementname,
+ elementsymbol,
+ mainelementisotope,
+ printangularmomentum,
+ saveatomicnumber,
+ saveelementisotopes,
+ saveelementname,
+ saveelementsymbol,
+ savemainelementisotope,
+ setangularmomentum,
+ setatomisotopes,
+ setatomname,
+ setatomsymbol,
+ setelectrondistribution,
+ writeelconf,
+ Z
+ } ,
+ add-silent-cmds = {
+ endhead, foo, ifnumless, LTleft, LTright, midrule, theelement, toprule,
+ whileboolexpr
+ } ,
+ add-silent-envs = { longtable, landscape } ,
+ abstract = {%
+ This package provides means for retrieving properties of chemical elements
+ like atomic number, element symbol, element name, electron distribution or
+ isotope number. Properties are defined for the elements up to the atomic
+ number~112.
+
+ This package is a spin-off of the package \pkg{bohr}~\cite{pkg:bohr} by
+ the same author.
+ } ,
+ index-setup = {
+ othercode = \footnotesize ,
+ level = \addsec ,
+ noclearpage
+ } ,
+ makeindex-setup = {
+ columns = 3 ,
+ columnsep = 1em
+ }
+}
+
+\expandafter\def\csname libertine@figurestyle\endcsname{LF}
+\usepackage[libertine]{newtxmath}
+\expandafter\def\csname libertine@figurestyle\endcsname{OsF}
+
+\usepackage{array,booktabs,longtable}
+\usepackage{lscape}
+
+\defbibheading{bibliography}{\addsec{References}}
+
+\begin{document}
+
+\section{Licence and Requirements}
+\license
+
+\elements\ loads the packages \pkg{etoolbox}~\cite{pkg:etoolbox} and
+\pkg{translations}~\cite{pkg:translations}.
+
+\section{Element Names}
+
+\begin{commands}
+ \command{elementname}[\Marg{\meta{atomic number}|\meta{element symbol}}]
+ Prints the element name of a given element as defined with \cs{setatomname}.
+ \command{setatomname}[\oarg{alt.\@ name}\marg{atomic number}\marg{element
+ name}]
+ Define or redefine the name of an element. If \meta{element name}
+ contains non-ascii symbols the optional argument \meta{alt.\@ name} must
+ be given. In this case \meta{alt.\@ name} must be used in \elements'
+ other macros where an element's name can be given as argument.
+ \command{DeclareAtomName}[\oarg{alt.\@ name}\marg{atomic
+ number}\marg{element name}]
+ This is the same as \cs{setatomname} but used before begin document or in
+ packages/classes.
+ \command{saveelementname}[\marg{cs}\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Saves the name of the given element as replacement text for the macro
+ \meta{cs}.
+\end{commands}
+
+\begin{example}[side-by-side]
+ \elementname{Cu} \par
+ \elementname{11} \par
+ \saveelementname\foo{28}
+ \ttfamily\meaning\foo
+\end{example}
+
+\section{Element Symbols}
+
+\begin{commands}
+ \command{elementsymbol}[\Marg{\meta{atomic number}|\meta{element name}}]
+ Prints the element symbol of a given element as defined with \cs{setatomsymbol}.
+ \command{setatomsymbol}[\marg{atomic number}\marg{element symbol}]
+ Define or redefine the symbol of an element.
+ \command{DeclareAtomSymbol}[\marg{atomic number}\marg{element symbol}]
+ This is the same as \cs{setatomsymbol} but used before begin document or in
+ packages/classes.
+ \command{saveelementsymbol}[\marg{cs}\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Saves the symbol of the given element as replacement text for the macro
+ \meta{cs}.
+\end{commands}
+
+\begin{example}[side-by-side]
+ \elementsymbol{13} \par
+ \elementsymbol{Sulfur} \par
+ \saveelementsymbol\foo{83}
+ \ttfamily\meaning\foo
+\end{example}
+
+\section{Atomic Numbers}
+
+\begin{commands}
+ \command{atomicnumber}[\Marg{\meta{element symbol}|\meta{element name}}]
+ Prints the atomic number of a given element.
+ \command{Z}[\Marg{\meta{element symbol}|\meta{element name}}]
+ An alias of \cs{atomicnumber} but only defined at begin document and only
+ if it isn't defined already.
+ \command{saveatomicnumber}[\marg{cs}\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Saves the atomic number of the given element as replacement text for the
+ macro \meta{cs}.
+\end{commands}
+
+\begin{example}[side-by-side]
+ \atomicnumber{U} \par
+ \atomicnumber{Chlorine} \par
+ \saveatomicnumber\foo{Kr}
+ \ttfamily\meaning\foo
+\end{example}
+
+\section{Electron Configuration}
+
+\begin{commands}
+ \command{elconf}[\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Typesets the electron configuration of the given element.
+ \command{writeelconf}[\marg{electron distribution}]
+ Typesets the electron distribution \meta{electron distribution}. The
+ input is the same as described below for \cs{setelectrondistribution}.
+ \command{setelectrondistribution}[\marg{atomic number}\marg{electron distribution}]
+ This set the electron distribution associated with the atom number
+ \meta{atomic number}. \meta{electron distribution} is a comma-separated
+ list of the number of electrons placed on each shell from inner to outer
+ shell. For example \verbcode+\setelectrondistribution{3}{2,0,1}+ would
+ be an excited \elementname{3}. The number of electrons with the same
+ principal quantum number but a different angular quantum number are
+ separated with a \code{+} ordered by the angular quantum number, \ie,
+ first \emph{s}, then \emph{p}, then \emph{d}, and then \emph{f} .
+ \elementname{29}’s distribution would be declared like this: \\
+ \verbcode!\setelectrondistribution{29}{2,2+6,2+6+10,1}!. \\
+ A declaration with \verbcode!\setelectrondistribution{29}{2,8,18,1}!
+ would work but then \verbcode!\elconf{29}! would give the wrong results.
+ \command{DeclareElectronDistribution}
+ This is the same as \cs{setelectrondistribution} but used before begin
+ document or in packages/classes.
+ \command{printangularmomentum}[\marg{angular momentum}]
+ \sinceversion{0.1e}This command is used be \cs{elconf} and
+ \cs{writeelconf} for typesetting $\printangularmomentum{s}$,
+ $\printangularmomentum{p}$, $\printangularmomentum{d}$, \ldots{} You can
+ redefine it if you want to change how those functions are typeset (keeping
+ in mind that it will be used in \emph{math mode}). The initial definition
+ is:\par
+ \verbcode+\newcommand*\printangularmomentum[1]{\mathrm{#1}}+
+\end{commands}
+
+\begin{example}[side-by-side]
+ \writeelconf{2,2+6,2+6+7} \par
+ \elconf{Cl}
+\end{example}
+
+There is currently \emph{no way} to get the electron configuration in the
+shortened way (\eg:
+[Ar]$\printangularmomentum{d}^{10}4\printangularmomentum{s}^1$).
+
+\section{Isotope Lists}
+
+\begin{commands}
+ \command{setatomisotopes}[\marg{atomic number}\marg{isotope list}]
+ Defines or redefines the isotope list for a given element. \meta{isotope
+ list} should be a comma seperated list of integers. One of the integers
+ may be preceded with a \code{!} to mark the main isotope for the given
+ element: \verbcode+\setatomisotopes{6}{10,11,!12,13,14,15,16}+
+ \command{DeclareAtomIsotopes}[\marg{atomic number}\marg{isotope list}]
+ This is the same as \cs{setatomisotopes} but used before begin document or
+ in packages/classes.
+ \command{saveelementisotopes}[\marg{cs}\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Saves the isotope list of the given element as replacement text for the
+ macro \meta{cs}.
+ \command{savemainelementisotope}[\marg{cs}\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Saves the main isotope of the given element as replacement text for the
+ macro \meta{cs}. If the isotope list of the element contains no main
+ isotope \meta{cs} will be equivalent to \cs*{@empty}.
+ \command{mainelementisotope}[\Marg{\meta{atomic number}|\meta{element
+ symbol}|\meta{element name}}]
+ Print\sinceversion{0.1d} the main isotope of the given element. If the
+ isotope list of the element contains no main isotope nothing will be
+ printed.
+\end{commands}
+
+\begin{example}[side-by-side]
+ \ttfamily
+ \saveelementisotopes\foo{C}
+ \meaning\foo\par
+ \savemainelementisotope\foo{C}
+ \meaning\foo\par
+ \normalfont
+ \mainelementisotope{C}
+\end{example}
+
+\clearpage
+
+\addsec{Element Properties}
+
+On the following pages a table containing the properties known to \elements\
+is printed. For those interested: the code used to get the table is as follows
+(using the packages \pkg{lscape}~\cite{pkg:lscape},
+\pkg{longtable}~\cite{pkg:longtable} and \pkg{booktabs}~\cite{pkg:booktabs}).
+
+\begin{sourcecode}[gobble=0]
+\setlength\LTleft\fill
+\setlength\LTright\fill
+\newcounter{element}
+\setcounter{element}{1}
+\begin{landscape}
+\begin{longtable}{lllll}
+ \toprule
+ Number & Symbol & Name & Main Isotope & Electron Configuration \\
+ \midrule
+ \endhead
+ \whileboolexpr{test{\ifnumless{\value{element}}{113}}}
+ {
+ \theelement &
+ \elementsymbol{\arabic{element}} &
+ \elementname{\arabic{element}} &
+ \mainelementisotope{\arabic{element}} &
+ \elconf{\arabic{element}}
+ \stepcounter{element} \\
+ }
+ {}
+\end{longtable}
+\end{landscape}
+\end{sourcecode}
+
+\setlength\LTleft\fill
+\setlength\LTright\fill
+\newcounter{element}
+\setcounter{element}{1}
+\begin{landscape}
+\begin{longtable}{lllll}
+ \toprule
+ Number & Symbol & Name & Main Isotope & Electron Configuration \\
+ \midrule
+ \endhead
+ \whileboolexpr{test{\ifnumless{\value{element}}{113}}}
+ {
+ \theelement &
+ \elementsymbol{\arabic{element}} &
+ \elementname{\arabic{element}} &
+ \mainelementisotope{\arabic{element}} &
+ \elconf{\arabic{element}}
+ \stepcounter{element} \\
+ }
+ {}
+\end{longtable}
+\end{landscape}
+
+\end{document}
diff --git a/macros/latex/contrib/elements/elements_names_english.def b/macros/latex/contrib/elements/elements_names_english.def
new file mode 100644
index 0000000000..44f4bb32f4
--- /dev/null
+++ b/macros/latex/contrib/elements/elements_names_english.def
@@ -0,0 +1,138 @@
+% --------------------------------------------------------------------------
+% the ELEMENTS package
+%
+% retrieve different properties of chemical elements
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/elements/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2015--2018 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\DeclareAtomName{1}{Hydrogen}
+\DeclareAtomName{2}{Helium}
+\DeclareAtomName{3}{Lithium}
+\DeclareAtomName{4}{Beryllium}
+\DeclareAtomName{5}{Boron}
+\DeclareAtomName{6}{Carbon}
+\DeclareAtomName{7}{Nitrogen}
+\DeclareAtomName{8}{Oxygen}
+\DeclareAtomName{9}{Fluorine}
+\DeclareAtomName{10}{Neon}
+\DeclareAtomName{11}{Sodium}
+\DeclareAtomName{12}{Magnesium}
+\DeclareAtomName{13}{Aluminium}
+\DeclareAtomName{14}{Silicon}
+\DeclareAtomName{15}{Phosphorus}
+\DeclareAtomName{16}{Sulfur}
+\DeclareAtomName{17}{Chlorine}
+\DeclareAtomName{18}{Argon}
+\DeclareAtomName{19}{Potassium}
+\DeclareAtomName{20}{Calcium}
+\DeclareAtomName{21}{Scandium}
+\DeclareAtomName{22}{Titanium}
+\DeclareAtomName{23}{Vanadium}
+\DeclareAtomName{24}{Chromium}
+\DeclareAtomName{25}{Manganese}
+\DeclareAtomName{26}{Iron}
+\DeclareAtomName{27}{Cobalt}
+\DeclareAtomName{28}{Nickel}
+\DeclareAtomName{29}{Copper}
+\DeclareAtomName{30}{Zinc}
+\DeclareAtomName{31}{Gallium}
+\DeclareAtomName{32}{Germanium}
+\DeclareAtomName{33}{Arsenic}
+\DeclareAtomName{34}{Selenium}
+\DeclareAtomName{35}{Bromine}
+\DeclareAtomName{36}{Krypton}
+\DeclareAtomName{37}{Rubidium}
+\DeclareAtomName{38}{Strontium}
+\DeclareAtomName{39}{Yttrium}
+\DeclareAtomName{40}{Zirconium}
+\DeclareAtomName{41}{Niobium}
+\DeclareAtomName{42}{Molybdenum}
+\DeclareAtomName{43}{Technetium}
+\DeclareAtomName{44}{Ruthenium}
+\DeclareAtomName{45}{Rhodium}
+\DeclareAtomName{46}{Palladium}
+\DeclareAtomName{47}{Silver}
+\DeclareAtomName{48}{Cadmium}
+\DeclareAtomName{49}{Indium}
+\DeclareAtomName{50}{Tin}
+\DeclareAtomName{51}{Antimony}
+\DeclareAtomName{52}{Tellurium}
+\DeclareAtomName{53}{Iodine}
+\DeclareAtomName{54}{Xenon}
+\DeclareAtomName{55}{Caesium}
+\DeclareAtomName{56}{Barium}
+\DeclareAtomName{57}{Lanthanum}
+\DeclareAtomName{58}{Cerium}
+\DeclareAtomName{59}{Praseodymium}
+\DeclareAtomName{60}{Neodymium}
+\DeclareAtomName{61}{Promethium}
+\DeclareAtomName{62}{Samarium}
+\DeclareAtomName{63}{Europium}
+\DeclareAtomName{64}{Gadolinium}
+\DeclareAtomName{65}{Terbium}
+\DeclareAtomName{66}{Dysprosium}
+\DeclareAtomName{67}{Holmium}
+\DeclareAtomName{68}{Erbium}
+\DeclareAtomName{69}{Thulium}
+\DeclareAtomName{70}{Ytterbium}
+\DeclareAtomName{71}{Lutetium}
+\DeclareAtomName{72}{Hafnium}
+\DeclareAtomName{73}{Tantalium}
+\DeclareAtomName{74}{Tungsten}
+\DeclareAtomName{75}{Rhenium}
+\DeclareAtomName{76}{Osmium}
+\DeclareAtomName{77}{Iridium}
+\DeclareAtomName{78}{Platinum}
+\DeclareAtomName{79}{Gold}
+\DeclareAtomName{80}{Mercury}
+\DeclareAtomName{81}{Thallium}
+\DeclareAtomName{82}{Lead}
+\DeclareAtomName{83}{Bismuth}
+\DeclareAtomName{84}{Polonium}
+\DeclareAtomName{85}{Astatine}
+\DeclareAtomName{86}{Radon}
+\DeclareAtomName{87}{Francium}
+\DeclareAtomName{88}{Radium}
+\DeclareAtomName{89}{Actinium}
+\DeclareAtomName{90}{Thorium}
+\DeclareAtomName{91}{Protactinium}
+\DeclareAtomName{92}{Uranium}
+\DeclareAtomName{93}{Neptunium}
+\DeclareAtomName{94}{Plutonium}
+\DeclareAtomName{95}{Americium}
+\DeclareAtomName{96}{Curium}
+\DeclareAtomName{97}{Berkelium}
+\DeclareAtomName{98}{Californium}
+\DeclareAtomName{99}{Einsteinium}
+\DeclareAtomName{100}{Fermium}
+\DeclareAtomName{101}{Mendelevium}
+\DeclareAtomName{102}{Nobelium}
+\DeclareAtomName{103}{Lawrencium}
+\DeclareAtomName{104}{Rutherfordium}
+\DeclareAtomName{105}{Dubnium}
+\DeclareAtomName{106}{Seaborgium}
+\DeclareAtomName{107}{Bohrium}
+\DeclareAtomName{108}{Hassium}
+\DeclareAtomName{109}{Meitnerium}
+\DeclareAtomName{110}{Darmstadtium}
+\DeclareAtomName{111}{Roentgenium}
+\DeclareAtomName{112}{Copernicium}
+
+\endinput
diff --git a/macros/latex/contrib/elements/elements_names_french.def b/macros/latex/contrib/elements/elements_names_french.def
new file mode 100644
index 0000000000..4db52e1df3
--- /dev/null
+++ b/macros/latex/contrib/elements/elements_names_french.def
@@ -0,0 +1,138 @@
+% --------------------------------------------------------------------------
+% the ELEMENTS package
+%
+% retrieve different properties of chemical elements
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/elements/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2015--2018 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\DeclareAtomName[Hydrogene]{1}{Hydrog\`ene}
+\DeclareAtomName[Helium]{2}{H\'elium}
+\DeclareAtomName{3}{Lithium}
+\DeclareAtomName[Beryllium]{4}{B\'eryllium}
+\DeclareAtomName{5}{Bore}
+\DeclareAtomName{6}{Carbone}
+\DeclareAtomName{7}{Azote}
+\DeclareAtomName[Oxygene]{8}{Oxyg\`ene}
+\DeclareAtomName{9}{Fluor}
+\DeclareAtomName[Neon]{10}{N\'eon}
+\DeclareAtomName{11}{Sodium}
+\DeclareAtomName[Magnesium]{12}{Magn\'esium}
+\DeclareAtomName{13}{Aluminium}
+\DeclareAtomName{14}{Silicium}
+\DeclareAtomName{15}{Phosphore}
+\DeclareAtomName{16}{Soufre}
+\DeclareAtomName{17}{Chlore}
+\DeclareAtomName{18}{Argon}
+\DeclareAtomName{19}{Potassium}
+\DeclareAtomName{20}{Calcium}
+\DeclareAtomName{21}{Scandium}
+\DeclareAtomName{22}{Titane}
+\DeclareAtomName{23}{Vanadium}
+\DeclareAtomName{24}{Chrome}
+\DeclareAtomName[Manganese]{25}{Mangan\`ese}
+\DeclareAtomName{26}{Fer}
+\DeclareAtomName{27}{Cobalt}
+\DeclareAtomName{28}{Nickel}
+\DeclareAtomName{29}{Cuivre}
+\DeclareAtomName{30}{Zinc}
+\DeclareAtomName{31}{Gallium}
+\DeclareAtomName{32}{Germanium}
+\DeclareAtomName{33}{Arsenic}
+\DeclareAtomName[Selenium]{34}{S\'el\'enium}
+\DeclareAtomName{35}{Brome}
+\DeclareAtomName{36}{Krypton}
+\DeclareAtomName{37}{Rubidium}
+\DeclareAtomName{38}{Strontium}
+\DeclareAtomName{39}{Yttrium}
+\DeclareAtomName{40}{Zirconium}
+\DeclareAtomName{41}{Niobium}
+\DeclareAtomName[Molybdene]{42}{Molybd\`ene}
+\DeclareAtomName[Technetium]{43}{Techn\'etium}
+\DeclareAtomName[Ruthenium]{44}{Ruth\'enium}
+\DeclareAtomName{45}{Rhodium}
+\DeclareAtomName{46}{Palladium}
+\DeclareAtomName{47}{Argent}
+\DeclareAtomName{48}{Cadmium}
+\DeclareAtomName{49}{Indium}
+\DeclareAtomName{50}{Etain}
+\DeclareAtomName{51}{Antimoine}
+\DeclareAtomName{52}{Tellure}
+\DeclareAtomName{53}{Iode}
+\DeclareAtomName[Xenon]{54}{X\'enon}
+\DeclareAtomName[Cesium]{55}{C\'esium}
+\DeclareAtomName{56}{Baryum}
+\DeclareAtomName{57}{Lanthane}
+\DeclareAtomName[Cerium]{58}{C\'erium}
+\DeclareAtomName[Praseodyme]{59}{Pras\'eodyme}
+\DeclareAtomName[Neodyme]{60}{N\'eodyme}
+\DeclareAtomName[Promethium]{61}{Prom\'ethium}
+\DeclareAtomName{62}{Samarium}
+\DeclareAtomName{63}{Europium}
+\DeclareAtomName{64}{Gadolinium}
+\DeclareAtomName{65}{Terbium}
+\DeclareAtomName{66}{Dysprosium}
+\DeclareAtomName{67}{Holmium}
+\DeclareAtomName{68}{Erbium}
+\DeclareAtomName{69}{Thulium}
+\DeclareAtomName{70}{Ytterbium}
+\DeclareAtomName[Lutecium]{71}{Lut\'ecium}
+\DeclareAtomName{72}{Hafnium}
+\DeclareAtomName{73}{Tantale}
+\DeclareAtomName[Tungstene]{74}{Tungst\`ene}
+\DeclareAtomName[Rhenium]{75}{Rh\'enium}
+\DeclareAtomName{76}{Osmium}
+\DeclareAtomName{77}{Iridium}
+\DeclareAtomName{78}{Platine}
+\DeclareAtomName{79}{Or}
+\DeclareAtomName{80}{Mercure}
+\DeclareAtomName{81}{Thallium}
+\DeclareAtomName{82}{Plomb}
+\DeclareAtomName{83}{Bismuth}
+\DeclareAtomName{84}{Polonium}
+\DeclareAtomName{85}{Astate}
+\DeclareAtomName{86}{Radon}
+\DeclareAtomName{87}{Francium}
+\DeclareAtomName{88}{Radium}
+\DeclareAtomName{89}{Actinium}
+\DeclareAtomName{90}{Thorium}
+\DeclareAtomName{91}{Protactinium}
+\DeclareAtomName{92}{Uranium}
+\DeclareAtomName{93}{Neptunium}
+\DeclareAtomName{94}{Plutonium}
+\DeclareAtomName[Americium]{95}{Am\'ericium}
+\DeclareAtomName{96}{Curium}
+\DeclareAtomName[Berkelium]{97}{Berk\'elium}
+\DeclareAtomName{98}{Californium}
+\DeclareAtomName{99}{Einsteinium}
+\DeclareAtomName{100}{Fermium}
+\DeclareAtomName[Mendelevium]{101}{Mendel\'evium}
+\DeclareAtomName[Nobelium]{102}{Nob\'elium}
+\DeclareAtomName{103}{Lawrencium}
+\DeclareAtomName{104}{Rutherfordium}
+\DeclareAtomName{105}{Dubnium}
+\DeclareAtomName{106}{Seaborgium}
+\DeclareAtomName{107}{Bohrium}
+\DeclareAtomName{108}{Hassium}
+\DeclareAtomName{109}{Meitnerium}
+\DeclareAtomName{110}{Darmstadtium}
+\DeclareAtomName{111}{Roentgenium}
+\DeclareAtomName{112}{Copernicium}
+
+\endinput
diff --git a/macros/latex/contrib/elements/elements_names_german.def b/macros/latex/contrib/elements/elements_names_german.def
new file mode 100644
index 0000000000..ad071e837c
--- /dev/null
+++ b/macros/latex/contrib/elements/elements_names_german.def
@@ -0,0 +1,138 @@
+% --------------------------------------------------------------------------
+% the ELEMENTS package
+%
+% retrieve different properties of chemical elements
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/elements/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2015--2018 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\DeclareAtomName{1}{Wasserstoff}
+\DeclareAtomName{2}{Helium}
+\DeclareAtomName{3}{Lithium}
+\DeclareAtomName{4}{Beryllium}
+\DeclareAtomName{5}{Bor}
+\DeclareAtomName{6}{Kohlenstoff}
+\DeclareAtomName{7}{Stickstoff}
+\DeclareAtomName{8}{Sauerstoff}
+\DeclareAtomName{9}{Fluor}
+\DeclareAtomName{10}{Neon}
+\DeclareAtomName{11}{Natrium}
+\DeclareAtomName{12}{Magnesium}
+\DeclareAtomName{13}{Aluminium}
+\DeclareAtomName{14}{Silicium}
+\DeclareAtomName{15}{Phosphor}
+\DeclareAtomName{16}{Schwefel}
+\DeclareAtomName{17}{Chlor}
+\DeclareAtomName{18}{Argon}
+\DeclareAtomName{19}{Kalium}
+\DeclareAtomName{20}{Calcium}
+\DeclareAtomName{21}{Scandium}
+\DeclareAtomName{22}{Titan}
+\DeclareAtomName{23}{Vanadium}
+\DeclareAtomName{24}{Chrom}
+\DeclareAtomName{25}{Mangan}
+\DeclareAtomName{26}{Eisen}
+\DeclareAtomName{27}{Cobalt}
+\DeclareAtomName{28}{Nickel}
+\DeclareAtomName{29}{Kupfer}
+\DeclareAtomName{30}{Zink}
+\DeclareAtomName{31}{Gallium}
+\DeclareAtomName{32}{Germanium}
+\DeclareAtomName{33}{Arsen}
+\DeclareAtomName{34}{Selen}
+\DeclareAtomName{35}{Brom}
+\DeclareAtomName{36}{Krypton}
+\DeclareAtomName{37}{Rubidium}
+\DeclareAtomName{38}{Strontium}
+\DeclareAtomName{39}{Yttrium}
+\DeclareAtomName{40}{Zirconium}
+\DeclareAtomName{41}{Niobium}
+\DeclareAtomName[Molybdaen]{42}{Molybd\"{a}n}
+\DeclareAtomName{43}{Technetium}
+\DeclareAtomName{44}{Ruthenium}
+\DeclareAtomName{45}{Rhodium}
+\DeclareAtomName{46}{Palladium}
+\DeclareAtomName{47}{Silber}
+\DeclareAtomName{48}{Cadmium}
+\DeclareAtomName{49}{Indium}
+\DeclareAtomName{50}{Zinn}
+\DeclareAtomName{51}{Antimon}
+\DeclareAtomName{52}{Tellur}
+\DeclareAtomName{53}{Iod}
+\DeclareAtomName{54}{Xenon}
+\DeclareAtomName[Caesium]{55}{C\"{a}sium}
+\DeclareAtomName{56}{Barium}
+\DeclareAtomName{57}{Lanthan}
+\DeclareAtomName{58}{Cer}
+\DeclareAtomName{59}{Praseodym}
+\DeclareAtomName{60}{Neodym}
+\DeclareAtomName{61}{Promethium}
+\DeclareAtomName{62}{Samarium}
+\DeclareAtomName{63}{Europium}
+\DeclareAtomName{64}{Gadolinium}
+\DeclareAtomName{65}{Terbium}
+\DeclareAtomName{66}{Dysprosium}
+\DeclareAtomName{67}{Holmium}
+\DeclareAtomName{68}{Erbium}
+\DeclareAtomName{69}{Thulium}
+\DeclareAtomName{70}{Ytterbium}
+\DeclareAtomName{71}{Lutetium}
+\DeclareAtomName{72}{Hafnium}
+\DeclareAtomName{73}{Tantal}
+\DeclareAtomName{74}{Wolfram}
+\DeclareAtomName{75}{Rhenium}
+\DeclareAtomName{76}{Osmium}
+\DeclareAtomName{77}{Iridium}
+\DeclareAtomName{78}{Platin}
+\DeclareAtomName{79}{Gold}
+\DeclareAtomName{80}{Quecksilber}
+\DeclareAtomName{81}{Thallium}
+\DeclareAtomName{82}{Blei}
+\DeclareAtomName{83}{Bismut}
+\DeclareAtomName{84}{Polonium}
+\DeclareAtomName{85}{Astat}
+\DeclareAtomName{86}{Radon}
+\DeclareAtomName{87}{Francium}
+\DeclareAtomName{88}{Radium}
+\DeclareAtomName{89}{Actinium}
+\DeclareAtomName{90}{Thorium}
+\DeclareAtomName{91}{Protactinium}
+\DeclareAtomName{92}{Uran}
+\DeclareAtomName{93}{Neptunium}
+\DeclareAtomName{94}{Plutonium}
+\DeclareAtomName{95}{Americium}
+\DeclareAtomName{96}{Curium}
+\DeclareAtomName{97}{Berkelium}
+\DeclareAtomName{98}{Californium}
+\DeclareAtomName{99}{Einsteinium}
+\DeclareAtomName{100}{Fermium}
+\DeclareAtomName{101}{Mendelevium}
+\DeclareAtomName{102}{Nobelium}
+\DeclareAtomName{103}{Lawrencium}
+\DeclareAtomName{104}{Rutherfordium}
+\DeclareAtomName{105}{Dubnium}
+\DeclareAtomName{106}{Seaborgium}
+\DeclareAtomName{107}{Bohrium}
+\DeclareAtomName{108}{Hassium}
+\DeclareAtomName{109}{Meitnerium}
+\DeclareAtomName{110}{Darmstadtium}
+\DeclareAtomName{111}{Roentgenium}
+\DeclareAtomName{112}{Copernicium}
+
+\endinput
diff --git a/macros/latex/contrib/elements/elements_names_spanish.def b/macros/latex/contrib/elements/elements_names_spanish.def
new file mode 100644
index 0000000000..4589c53da3
--- /dev/null
+++ b/macros/latex/contrib/elements/elements_names_spanish.def
@@ -0,0 +1,138 @@
+% --------------------------------------------------------------------------
+% the ELEMENTS package
+%
+% retrieve different properties of chemical elements
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/elements/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2015--2018 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\DeclareAtomName[Hidrogeno]{1}{Hidr\'ogeno}
+\DeclareAtomName{2}{Helio}
+\DeclareAtomName{3}{Litio}
+\DeclareAtomName{4}{Berilio}
+\DeclareAtomName{5}{Boro}
+\DeclareAtomName{6}{Carbono}
+\DeclareAtomName[Nitrogeno]{7}{Nitr\'ogeno}
+\DeclareAtomName[Oxigeno]{8}{Ox\'\i geno}
+\DeclareAtomName[Fluor]{9}{Fl\'uor}
+\DeclareAtomName[Neon]{10}{Ne\'on}
+\DeclareAtomName{11}{Sodio}
+\DeclareAtomName{12}{Magnesio}
+\DeclareAtomName{13}{Aluminio}
+\DeclareAtomName{14}{Silicio}
+\DeclareAtomName[Fosforo]{15}{F\'osforo}
+\DeclareAtomName{16}{Azufre}
+\DeclareAtomName{17}{Cloro}
+\DeclareAtomName[Argon]{18}{Arg\'on}
+\DeclareAtomName{19}{Potasio}
+\DeclareAtomName{20}{Calcio}
+\DeclareAtomName{21}{Escandio}
+\DeclareAtomName{22}{Titanio}
+\DeclareAtomName{23}{Vanadio}
+\DeclareAtomName{24}{Cromo}
+\DeclareAtomName{25}{Manganeso}
+\DeclareAtomName{26}{Hierro}
+\DeclareAtomName{27}{Cobalto}
+\DeclareAtomName[Niquel]{28}{N\'\i quel}
+\DeclareAtomName{29}{Cobre}
+\DeclareAtomName{30}{Zinc}
+\DeclareAtomName{31}{Galio}
+\DeclareAtomName{32}{Germanio}
+\DeclareAtomName[Arsenico]{33}{Ars\'enico}
+\DeclareAtomName{34}{Selenio}
+\DeclareAtomName{35}{Bromo}
+\DeclareAtomName[Kripton]{36}{Kript\'on}
+\DeclareAtomName{37}{Rubidio}
+\DeclareAtomName{38}{Estroncio}
+\DeclareAtomName{39}{Itrio}
+\DeclareAtomName{40}{Zirconio}
+\DeclareAtomName{41}{Niobio}
+\DeclareAtomName{42}{Molibdeno}
+\DeclareAtomName{43}{Tecnecio}
+\DeclareAtomName{44}{Rutenio}
+\DeclareAtomName{45}{Rodio}
+\DeclareAtomName{46}{Paladio}
+\DeclareAtomName{47}{Plata}
+\DeclareAtomName{48}{Cadmio}
+\DeclareAtomName{49}{Indio}
+\DeclareAtomName[Estano]{50}{Esta\~no}
+\DeclareAtomName{51}{Antimonio}
+\DeclareAtomName{52}{Telurio}
+\DeclareAtomName{53}{Yodo}
+\DeclareAtomName[Xenon]{54}{Xen\'on}
+\DeclareAtomName{55}{Cesio}
+\DeclareAtomName{56}{Bario}
+\DeclareAtomName{57}{Lantano}
+\DeclareAtomName{58}{Cerio}
+\DeclareAtomName{59}{Praseodimio}
+\DeclareAtomName{60}{Neodimio}
+\DeclareAtomName{61}{Prometio}
+\DeclareAtomName{62}{Samario}
+\DeclareAtomName{63}{Europio}
+\DeclareAtomName{64}{Gadolinio}
+\DeclareAtomName{65}{Terbio}
+\DeclareAtomName{66}{Disprosio}
+\DeclareAtomName{67}{Holmio}
+\DeclareAtomName{68}{Erbio}
+\DeclareAtomName{69}{Tulio}
+\DeclareAtomName{70}{Iterbio}
+\DeclareAtomName{71}{Lutecio}
+\DeclareAtomName{72}{Hafnio}
+\DeclareAtomName{73}{Tantalo}
+\DeclareAtomName{74}{Tungsteno}
+\DeclareAtomName{75}{Renio}
+\DeclareAtomName{76}{Osmio}
+\DeclareAtomName{77}{Iridio}
+\DeclareAtomName{78}{Platino}
+\DeclareAtomName{79}{Oro}
+\DeclareAtomName{80}{Mercurio}
+\DeclareAtomName{81}{Talio}
+\DeclareAtomName{82}{Plomo}
+\DeclareAtomName{83}{Bismuto}
+\DeclareAtomName{84}{Polonio}
+\DeclareAtomName{85}{Astato}
+\DeclareAtomName[Radon]{86}{Rad\'on}
+\DeclareAtomName{87}{Francio}
+\DeclareAtomName{88}{Radio}
+\DeclareAtomName{89}{Actinio}
+\DeclareAtomName{90}{Torio}
+\DeclareAtomName{91}{Protactinio}
+\DeclareAtomName{92}{Uranio}
+\DeclareAtomName{93}{Neptunio}
+\DeclareAtomName{94}{Plutonio}
+\DeclareAtomName{95}{Americio}
+\DeclareAtomName{96}{Curio}
+\DeclareAtomName{97}{Berkelio}
+\DeclareAtomName{98}{Californio}
+\DeclareAtomName{99}{Einstenio}
+\DeclareAtomName{100}{Fermio}
+\DeclareAtomName{101}{Mendelevio}
+\DeclareAtomName{102}{Nobelio}
+\DeclareAtomName{103}{Laurencio}
+\DeclareAtomName{104}{Rutherfordio}
+\DeclareAtomName{105}{Dubnio}
+\DeclareAtomName{106}{Seaborgio}
+\DeclareAtomName{107}{Bohrio}
+\DeclareAtomName{108}{Hassio}
+\DeclareAtomName{109}{Meitnerio}
+\DeclareAtomName{110}{Darmstadtio}
+\DeclareAtomName{111}{Roentgenio}
+\DeclareAtomName{112}{Copernicio}
+
+\endinput