summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bohr
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-09-22 23:33:01 +0000
committerKarl Berry <karl@freefriends.org>2012-09-22 23:33:01 +0000
commit2c72983b90fc317904db5f60260e79185b33cba3 (patch)
tree064c67d91732b7c885e09a75c7394ad503f692a6 /Master/texmf-dist/tex/latex/bohr
parent07d1c4d7c04ef9d8cf14bc57709a0affe91fb15b (diff)
bohr (22sep12)
git-svn-id: svn://tug.org/texlive/trunk@27778 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bohr')
-rw-r--r--Master/texmf-dist/tex/latex/bohr/bohr.sty456
-rw-r--r--Master/texmf-dist/tex/latex/bohr/bohr_elements_english.def114
-rw-r--r--Master/texmf-dist/tex/latex/bohr/bohr_elements_german.def114
3 files changed, 684 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bohr/bohr.sty b/Master/texmf-dist/tex/latex/bohr/bohr.sty
new file mode 100644
index 00000000000..663ec4bd93c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bohr/bohr.sty
@@ -0,0 +1,456 @@
+% --------------------------------------------------------------------------
+% the BOHR package
+%
+% simple atom representation according to the Bohr model
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/bohr/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2012 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 bohr package consists of the files
+% - bohr.sty
+% - bohr_en.tex, bohr_en.pdf
+% - bohr_elements_english.def, bohr_elements_german.def
+% - README
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+\def\@bohr@date{2012/09/22}
+\def\@bohr@version{v0.2}
+\def\@bohr@description{simple atom representation according to the Bohr model}
+
+\ProvidesPackage{bohr}[\@bohr@date\space \@bohr@version\space \@bohr@description]
+\RequirePackage{tikz,etoolbox,pgfopts}
+
+% --------------------------------------------------------------------------
+% message handling
+\def\@bohr@create@message#1{%
+ \ifstrequal{#1}{Error}
+ {%
+ \lowercase{\csdef{@bohr@#1}}##1##2{%
+ \csuse{Package#1}{bohr}{##1}{##2}}%
+ }{%
+ \lowercase{\csdef{@bohr@#1}}##1{%
+ \csuse{Package#1}{bohr}{##1}}%
+ }}
+\@bohr@create@message{Error}
+\@bohr@create@message{Warning}
+\@bohr@create@message{WarningNoLine}
+\@bohr@create@message{Info}
+
+% --------------------------------------------------------------------------
+% the \bohr command
+% optional #1: number of shells
+% #2: number of electrons
+% #3: atom name
+\newrobustcmd*\bohr[3][]{\@bohr{#1}{#2}{#3}}
+
+\def\@bohr#1#2#3{%
+ \ifblank{#2}% electron number given ?
+ {% no
+ \ifboolexpr{ bool {bohr@insert@number} and test {\ifblank{#3}} }
+ {%
+ \@bohr@error{I can't insert the electron number.}
+ {I can't insert the electron number. You haven't specified the
+ element.}%
+ }{%
+ \ifboolexpr
+ {
+ bool {bohr@insert@number} and not
+ test {\lowercase{\ifcsvoid{@bohr@atom@number@#3}}}
+ }
+ {%
+ \lowercase{%
+ \def\@bohr@electron@current@number{\csuse{@bohr@atom@number@#3}}}%
+ }{%
+ \@bohr@error{You must specify an electron number, possibly 0.}
+ {You must specify an electron number, possibly 0.}%
+ }%
+ }%
+ }{% yes
+ \ifnum#2<0\relax
+ \@bohr@error{The electron number cannot be negative!}
+ {The electron number cannot be negative!}%
+ \else
+ \def\@bohr@electron@current@number{#2}%
+ \fi
+ }%
+ \ifblank{#1}
+ {\@bohr@get@shell@num{\@bohr@electron@current@number}}
+ {
+ \@bohr@get@shell@num{\@bohr@electron@current@number}%
+ \ifnum#1<\@bohr@shell@num
+ \@bohr@warning{The shell number you provided (#1) is too small for the
+ electron number you provided (\@bohr@electron@current@number)! I'll
+ use \@bohr@shell@num\space shells.}%
+ \else
+ \ifnum#1>7\relax
+ \@bohr@warning{I know only of 7 electron shells. You gave me #1 so I'll
+ be using 7 instead.}
+ \def\@bohr@shell@num{7}%
+ \else
+ \def\@bohr@shell@num{#1}%
+ \fi
+ \fi
+ }%
+ \tikzpicture[baseline=(nucleus.base)]
+ \expandafter\node\expandafter[\@bohr@name@options]
+ (nucleus) at (0,0) {\@bohr@insert@symbol{\@bohr@electron@current@number}{#3}} ;
+ \expandafter\draw\expandafter[\@bohr@nucleus@options]
+ (nucleus) circle (\@bohr@nucleus@radius) ;
+ \foreach\@bohr@current@shell@num in {1,...,\@bohr@shell@num}
+ {
+ \expandafter\draw\expandafter[\@bohr@shell@options]
+ (nucleus) circle (\@bohr@nucleus@radius+\@bohr@current@shell@num*\@bohr@shell@dist) ;
+ }
+ \@bohr@draw@electrons{\@bohr@electron@current@number}
+ \endtikzpicture
+}
+
+\def\@bohr@get@shell@num#1{%
+ \ifnum#1<3\relax
+ \def\@bohr@shell@num{1}%
+ \else
+ \ifnum#1<11\relax
+ \def\@bohr@shell@num{2}%
+ \else
+ \ifnum#1<19\relax
+ \def\@bohr@shell@num{3}%
+ \else
+ \ifnum#1<37\relax
+ \def\@bohr@shell@num{4}%
+ \else
+ \ifnum#1<55\relax
+ \def\@bohr@shell@num{5}%
+ \else
+ \ifnum#1<87\relax
+ \def\@bohr@shell@num{6}%
+ \else
+ \ifnum#1<110\relax
+ \def\@bohr@shell@num{7}%
+ \else
+ \def\@bohr@shell@num{112}%
+ \@bohr@warning{I only know atoms up to 112 (Copernicium). You
+ gave me #1 so I am using 112 instead.}
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+
+\def\@bohr@distribute@electrons#1#2#3#4{%
+ \pgfmathparse{#2}%
+ \let\@bohr@last@electron\pgfmathresult
+ \foreach\@bohr@electron@number in {#1,...,\@bohr@last@electron}
+ {
+ \expandafter\fill\expandafter[\@bohr@electron@options] (nucleus)
+ ++(#3*\@bohr@electron@number-#3:\@bohr@nucleus@radius+#4*\@bohr@shell@dist)
+ circle (\@bohr@electron@radius) ;
+ }
+}
+
+\def\@bohr@draw@electrons#1{%
+ \ifnum#1<1\relax\else
+ \ifnum#1<3\relax
+ \@bohr@distribute@electrons{1}{#1}{180}{1}%
+ \else
+ \ifnum#1<11\relax
+ \@bohr@distribute@electrons{1}{2}{180}{1}%
+ \@bohr@distribute@electrons{1}{#1-2}{45}{2}%
+ \else
+ \ifnum#1<19\relax
+ \@bohr@distribute@electrons{1}{2}{180}{1}%
+ \@bohr@distribute@electrons{1}{8}{45}{2}%
+ \@bohr@distribute@electrons{1}{#1-10}{45}{3}%
+ \else
+ \ifnum#1<37\relax
+ \@bohr@distribute@electrons{1}{2}{180}{1}%
+ \@bohr@distribute@electrons{1}{8}{45}{2}%
+ \@bohr@distribute@electrons{1}{8}{45}{3}%
+ \@bohr@distribute@electrons{1}{#1-18}{20}{4}%
+ \else
+ \ifnum#1<55\relax
+ \@bohr@distribute@electrons{1}{2}{180}{1}%
+ \@bohr@distribute@electrons{1}{8}{45}{2}%
+ \@bohr@distribute@electrons{1}{8}{45}{3}%
+ \@bohr@distribute@electrons{1}{18}{20}{4}%
+ \@bohr@distribute@electrons{1}{#1-36}{20}{5}%
+ \else
+ \ifnum#1<87\relax
+ \@bohr@distribute@electrons{1}{2}{180}{1}%
+ \@bohr@distribute@electrons{1}{8}{45}{2}%
+ \@bohr@distribute@electrons{1}{8}{45}{3}%
+ \@bohr@distribute@electrons{1}{18}{20}{4}%
+ \@bohr@distribute@electrons{1}{18}{20}{5}%
+ \@bohr@distribute@electrons{1}{#1-54}{11.25}{6}%
+ \else
+ \ifnum#1<113\relax
+ \@bohr@distribute@electrons{1}{2}{180}{1}%
+ \@bohr@distribute@electrons{1}{8}{45}{2}%
+ \@bohr@distribute@electrons{1}{8}{45}{3}%
+ \@bohr@distribute@electrons{1}{18}{20}{4}%
+ \@bohr@distribute@electrons{1}{18}{20}{5}%
+ \@bohr@distribute@electrons{1}{32}{11.25}{6}%
+ \@bohr@distribute@electrons{1}{#1-86}{11.25}{7}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+
+% --------------------------------------------------------------------------
+% atomic numbers and element symbols and names
+\def\@bohr@define@atom@symbol#1#2{%
+ \csdef{@bohr@atom@symbol@num@\romannumeral#1}{#2}%
+ \lowercase{\csdef{@bohr@atom@number@#2}}{#1}}
+\def\@bohr@define@atom@name#1#2{%
+ \csdef{@bohr@atom@name@\romannumeral#1}{#2}%
+ \lowercase{\csdef{@bohr@atom@name@num@#2}}{#1}}
+
+\newrobustcmd*\DeclareAtomName[2]{%
+ \@bohr@define@atom@name{#1}{#2}}
+\newrobustcmd*\DeclareAtomSymbol[2]{%
+ \@bohr@define@atom@symbol{#1}{#2}}
+
+\def\@bohr@get@atom@symbol#1{%
+ \csuse{@bohr@atom@symbol@num@\romannumeral#1}}
+\def\@bohr@get@atom@number#1{%
+ \lowercase{\csuse{@bohr@atom@number@#1}}}
+\def\@bohr@get@atom@name#1{%
+ \csuse{@bohr@atom@name@\romannumeral#1}}
+
+\def\@bohr@element@symbol#1{%
+ \lowercase{\ifcsdef{@bohr@atom@name@num@#1}}
+ {\lowercase{\@bohr@get@atom@symbol{\csuse{@bohr@atom@name@num@#1}}}}
+ {\@bohr@get@atom@symbol{#1}}}
+
+\def\@bohr@atomic@number#1{%
+ \lowercase{\ifcsdef{@bohr@atom@number@#1}}
+ {\@bohr@get@atom@number{#1}}
+ {\lowercase{\csuse{@bohr@atom@name@num@#1}}}}
+
+\def\@bohr@elemt@symbol#1{%
+ \if!\ifnum9<1#1!\@bohr@get@atom@name{#1}\fi
+ \else
+ \lowercase{\@bohr@get@atom@name{\csuse{@bohr@atom@number@#1}}}%
+ \fi}
+
+\newrobustcmd*\elementsymbol[1]{\@bohr@element@symbol{#1}}
+\newrobustcmd*\atomicnumber[1]{\@bohr@atomic@number{#1}}
+\newrobustcmd*\elementname[1]{\@bohr@elemt@symbol{#1}}
+\ifdef\Z{}{\let\Z\atomicnumber}
+
+\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}{Rh}
+\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}
+
+% element names are defined in bohr_elements_english.def or
+% bohr_elements_german.def, respectively. Now we need to decide
+% which ones we want
+\AfterEndPreamble{
+\ifdef\bbl@afterfi{}{\long\def\bbl@afterfi#1{\fi#1}}
+\ifboolexpr
+ {
+ test {\iflanguage{german}} or
+ test {\iflanguage{ngerman}}
+ }
+ {\booltrue{bohr@german}}{}
+\ifbool{bohr@german}
+ {\input{bohr_elements_german.def}}
+ {\input{bohr_elements_english.def}}
+}
+
+
+% --------------------------------------------------------------------------
+% options
+\def\@bohr@name@options{}
+\def\@bohr@write@atom#1{#1}
+\def\@bohr@nucleus@radius{1em}
+\def\@bohr@electron@options{blue!50!black!50}
+\def\@bohr@electron@radius{1.5pt}
+\def\@bohr@shell@dist{1em}
+\def\@bohr@nucleus@options{draw=black!80,fill=black!10,opacity=.25}
+\def\@bohr@shell@options{draw=blue!75,thin}
+
+\newbool{bohr@insert@symbol}
+\newbool{bohr@insert@number}
+\newbool{bohr@german}
+
+\def\@bohr@insert@symbol#1#2{%
+ \ifbool{bohr@insert@symbol}
+ {\ifblank{#2}{\@bohr@get@atom@symbol{#1}}{\@bohr@write@atom{#2}}}
+ {\@bohr@write@atom{#2}}}
+
+\pgfkeys{
+ bohr/.cd,
+ insert-symbol/.is if = bohr@insert@symbol ,
+ insert-number/.is if = bohr@insert@number ,
+ insert-missing/.is choice,
+ insert-missing/true/.code =
+ \booltrue{bohr@insert@symbol}\booltrue{bohr@insert@number} ,
+ insert-missing/false/.code =
+ \boolfalse{bohr@insert@symbol}\boolfalse{bohr@insert@number} ,
+ insert-missing/.default = true ,
+ atom-style/.code = \def\@bohr@write@atom{#1} ,
+ name-options-set/.code = \def\@bohr@name@options{#1} ,
+ name-options-add/.code =
+ \expandafter\def\expandafter\@bohr@name@options\expandafter{\@bohr@name@options,#1} ,
+ nucleus-radius/.code = \def\@bohr@nucleus@radius{#1} ,
+ nucleus-options-set/.code = \def\@bohr@nucleus@options{#1} ,
+ nucleus-options-add/.code =
+ \expandafter\def\expandafter\@bohr@nucleus@options\expandafter{\@bohr@nucleus@options,#1} ,
+ electron-radius/.code = \def\@bohr@electron@radius{#1} ,
+ electron-options-set/.code = \def\@bohr@electron@options{#1} ,
+ electron-options-add/.code =
+ \expandafter\def\expandafter\@bohr@electron@options\expandafter{\@bohr@electron@options,#1} ,
+ shell-dist/.code = \def\@bohr@shell@dist{#1} ,
+ shell-options-set/.code = \def\@bohr@shell@options{#1} ,
+ shell-options-add/.code =
+ \expandafter\def\expandafter\@bohr@shell@options\expandafter{\@bohr@shell@options,#1} ,
+ german/.is if = bohr@german ,
+ ngerman/.is if = bohr@german
+}
+
+\newrobustcmd\setbohr[1]{\pgfqkeys{/bohr}{#1}}
+
+\ProcessPgfOptions*
+\endinput
+
+% HISTORY
+2012/09/21 v0.1a - first version on bitbucket
+2012/09/22 v0.2 - added compatibility up to atomic number 112
+ - added the commands \elementname and \elementsymbol with
+ language support German and English
+ - improved error checking \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/bohr/bohr_elements_english.def b/Master/texmf-dist/tex/latex/bohr/bohr_elements_english.def
new file mode 100644
index 00000000000..6ac2f88f988
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bohr/bohr_elements_english.def
@@ -0,0 +1,114 @@
+\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}{Praesodymium}
+\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 \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/bohr/bohr_elements_german.def b/Master/texmf-dist/tex/latex/bohr/bohr_elements_german.def
new file mode 100644
index 00000000000..3e3a73d4066
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bohr/bohr_elements_german.def
@@ -0,0 +1,114 @@
+\DeclareAtomName{1}{Wasserstoff}
+\DeclareAtomName{2}{Helium}
+\DeclareAtomName{3}{Lithium}
+\DeclareAtomName{4}{Beryllium}
+\DeclareAtomName{5}{Bor}
+\DeclareAtomName{6}{Kohlenstoff}
+\DeclareAtomName{7}{Stickstoff}
+\DeclareAtomName{8}{Souerstoff}
+\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{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{55}{C\"{a}sium}
+\DeclareAtomName{56}{Barium}
+\DeclareAtomName{57}{Lanthan}
+\DeclareAtomName{58}{Cer}
+\DeclareAtomName{59}{Praesodym}
+\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 \ No newline at end of file