summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.isotopes.code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.isotopes.code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.isotopes.code.tex238
1 files changed, 0 insertions, 238 deletions
diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.isotopes.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.isotopes.code.tex
deleted file mode 100644
index 587bc3c266e..00000000000
--- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.isotopes.code.tex
+++ /dev/null
@@ -1,238 +0,0 @@
-% --------------------------------------------------------------------------
-%
-% the CHEMMACROS package -- module: `isotopes'
-%
-% --------------------------------------------------------------------------
-% Clemens Niederberger
-% --------------------------------------------------------------------------
-% https://github.org/cgnieder/chemmacros/
-% contact@mychemistry.eu
-% --------------------------------------------------------------------------
-% If you have any ideas, questions, suggestions or bugs to report, please
-% feel free to contact me.
-% --------------------------------------------------------------------------
-% Copyright 2011--2020 Clemens Niederberger
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% 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 2008/05/04 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Clemens Niederberger.
-% --------------------------------------------------------------------------
-\ChemModule{isotopes}{2015/07/22 a macro to easily print element isotopes}
-
-\RequirePackage{elements}
-
-\msg_new:nnn {chemmacros} {no-isotope}
- { The~ isotope~ #2~ is~ not~ defined~ for~ element~ #1. }
-
-% --------------------------------------------------------------------------
-\tl_new:N \l__chemmacros_isotope_tl
-\tl_new:N \l__chemmacros_isotope_list_tl
-\seq_new:N \l__chemmacros_isotope_seq
-\seq_new:N \l__chemmacros_check_isotopes_seq
-
-% #1: atomic number|element symbol|element name
-% #2: tokenlist variable
-\cs_new_protected:Npn \chemmacros_get_atom_number:nN #1#2
- {
- \chemmacros_if_is_int:nTF {#1}
- { \tl_set:Nn #2 {#1} }
- {
- \cs_if_exist:cTF { @elements@atom@number@ \str_lowercase:n {#1} }
- { \tl_set:Nx #2 { \use:c { @elements@atom@number@ \str_lowercase:n {#1} } } }
- { \tl_set:Nx #2 { \use:c { @elements@atom@name@num@ \str_lowercase:n {#1} } } }
- }
- }
-\cs_generate_variant:Nn \chemmacros_get_atom_number:nN { V }
-
-% #1: atomic number|element symbol|element name
-% #2: tl to store the result in
-\cs_new_protected:Npn \chemmacros_get_isotope_list:nN #1#2
- {
- \chemmacros_get_atom_number:nN {#1} \l__chemmacros_isotope_tl
- \tl_set:Nx #2
- {
- \use:c
- {
- @elements@atom@isotopes@
- \int_to_roman:n {\l__chemmacros_isotope_tl}
- }
- }
- }
-
-% #1: atomic number|element symbol|element name
-% #2: tokenlist variable
-\cs_new_protected:Npn \chemmacros_get_element_symbol:nN #1#2
- {
- \chemmacros_get_atom_number:nN {#1} \l__chemmacros_isotope_tl
- \tl_set:Nx #2
- {
- \use:c
- {
- @elements@atom@symbol@num@
- \int_to_roman:n {\l__chemmacros_isotope_tl}
- }
- }
- }
-
-% #1: atomic number|element symbol|element name
-% #2: isotope number
-\prg_new_protected_conditional:Npnn \chemmacros_check_isotope:nn #1#2 {T,F,TF}
- {
- \chemmacros_get_isotopes:nN {#1} \l__chemmacros_check_isotopes_seq
- \seq_if_in:NnTF \l__chemmacros_check_isotopes_seq {#2}
- { \prg_return_true: }
- { \prg_return_false: }
- }
-\cs_generate_variant:Nn \chemmacros_check_isotope:nnF { V }
-
-% #1: atomic number|element symbol|element name
-% #2: tl to store the result in
-\cs_new_protected:Npn \chemmacros_get_main_isotope:nN #1#2
- {
- \chemmacros_get_isotope_list:nN {#1} \l__chemmacros_isotope_list_tl
- \seq_set_split:NnV \l__chemmacros_isotope_seq {,} \l__chemmacros_isotope_list_tl
- \seq_map_inline:Nn \l__chemmacros_isotope_seq
- {
- \chemmacros_read_isotope:nNN {##1}
- \l__chemmacros_tmpa_bool
- #2
- \bool_if:NT \l__chemmacros_tmpa_bool
- { \seq_map_break: }
- }
- }
-\cs_generate_variant:Nn \chemmacros_get_main_isotope:nN { V }
-
-% #1: atomic number|element symbol|element name
-% #2: seq to store the results in
-\cs_new_protected:Npn \chemmacros_get_isotopes:nN #1#2
- {
- \seq_clear:N #2
- \chemmacros_get_isotope_list:nN {#1} \l__chemmacros_tmpa_tl
- \seq_set_split:NnV \l__chemmacros_isotope_seq {,} \l__chemmacros_tmpa_tl
- \seq_map_inline:Nn \l__chemmacros_isotope_seq
- {
- \chemmacros_read_isotope:nNN {##1}
- \l__chemmacros_tmpa_bool
- \l__chemmacros_tmpa_tl
- \seq_put_right:NV #2 \l__chemmacros_tmpa_tl
- }
- }
-
-% #1: boolean variable
-% #2: tokenlist variable
-% #3: isotope list entry
-\cs_new_protected:Npn \chemmacros_read_isotope:nNN #1#2#3
- { \__chemmacros_read_isotope:NNw #2#3 !#1!! \q_stop }
-
-% \__chemmacros_read_isotope:NNw N N !!1!! \q_stop
-% \__chemmacros_read_isotope:NNw N N !1!! \q_stop
-\cs_new_protected:Npn \__chemmacros_read_isotope:NNw #1#2#3!#4!#5!#6 \q_stop
- {
- \tl_if_blank:nTF {#5}
- {
- \tl_set:Nn #2 {#4}
- \bool_set_false:N #1
- }
- {
- \tl_set:Nn #2 {#5}
- \bool_set_true:N #1
- }
- }
-
-% --------------------------------------------------------------------------
-% #1: boolean: hide atomic number?
-% #2: nucleons, element symbol
-\cs_new_protected:Npn \chemmacros_isotope:nn #1#2
- { \__chemmacros_isotope:nww {#1} #2,, \q_stop }
-
-\cs_new_protected:Npn \__chemmacros_isotope:nww #1#2,#3,#4 \q_stop
- {
- \tl_if_blank:nTF {#3}
- {
- \chemmacros_get_element_symbol:nN {#2} \l__chemmacros_tmpa_tl
- \chemmacros_get_main_isotope:nN {#2} \l__chemmacros_tmpb_tl
- \chemmacros_get_atom_number:nN {#2} \l__chemmacros_tmpc_tl
- \bool_if:nTF {#1}
- {
- \chemmacros_isotope_write:VnV
- \l__chemmacros_tmpb_tl
- { }
- \l__chemmacros_tmpa_tl
- }
- {
- \chemmacros_isotope_write:VVV
- \l__chemmacros_tmpb_tl
- \l__chemmacros_tmpc_tl
- \l__chemmacros_tmpa_tl
- }
- }
- {
- \chemmacros_get_element_symbol:nN {#3} \l__chemmacros_tmpa_tl
- \chemmacros_get_atom_number:nN {#3} \l__chemmacros_tmpb_tl
- \chemmacros_check_isotope:VnF
- \l__chemmacros_tmpa_tl
- {#2}
- {
- \chemmacros_get_element_symbol:nN {#3} \l__chemmacros_tmpa_tl
- \msg_warning:nnVn {chemmacros} {no-isotope}
- \l__chemmacros_tmpa_tl
- {#2}
- }
- \chemmacros_get_element_symbol:nN {#3} \l__chemmacros_tmpa_tl
- \bool_if:nTF {#1}
- { \chemmacros_isotope_write:nnV {#2} { } \l__chemmacros_tmpa_tl }
- {
- \chemmacros_isotope_write:nVV {#2}
- \l__chemmacros_tmpb_tl
- \l__chemmacros_tmpa_tl
- }
- }
- }
-
-\bool_new:N \l__chemmacros_isotope_super_bool
-\tl_new:N \l__chemmacros_isotope_side_connect_tl
-
-\chemmacros_define_keys:nn {isotopes}
- {
- format .choice: ,
- format / super .code:n =
- \bool_set_true:N \l__chemmacros_isotope_super_bool ,
- format / side .code:n =
- \bool_set_false:N \l__chemmacros_isotope_super_bool ,
- format .initial:n = super ,
- side-connect .tl_set:N = \l__chemmacros_isotope_side_connect_tl ,
- side-connect .initial:n = -
- }
-
-% #1: nucleons
-% #2: atomic number
-% #3: element symbol
-\cs_new_protected:Npn \chemmacros_isotope_write:nnn #1#2#3
- {
- \bool_if:NTF \l__chemmacros_isotope_super_bool
- { \chemmacros_chemformula:n { ^{#1}_{#2}#3 } }
- {
- \chemmacros_chemformula:n {#3}
- \tl_use:N \l__chemmacros_isotope_side_connect_tl
- #1
- }
- }
-\cs_generate_variant:Nn \chemmacros_isotope_write:nnn { VnV , VVV , nnV , nVV }
-
-% TODO: option for the layout of the written isotope: ^{12}_6C vs C-12
-
-\NewDocumentCommand \isotope { sm }
- { \chemmacros_isotope:nn {#1} {#2} }
-
-% --------------------------------------------------------------------------
-\file_input_stop:
-2015/07/22 - first version
-2020/01/16 - adapt to renaming of string case changing functions