diff options
Diffstat (limited to 'macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex')
-rw-r--r-- | macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex | 445 |
1 files changed, 0 insertions, 445 deletions
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex deleted file mode 100644 index 504a9a58b3..0000000000 --- a/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex +++ /dev/null @@ -1,445 +0,0 @@ -% -------------------------------------------------------------------------- -% -% the CHEMMACROS package -- module: `reactions' -% -% -------------------------------------------------------------------------- -% 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{reactions}{2020/02/02 reaction environments} - -\chemmacros_load_module:n {chemformula} - -\RequirePackage{mathtools} - -% -------------------------------------------------------------------------- -\cs_new_protected:Npn \__chemmacros_record_for_lor:nnnnn #1#2#3#4#5 - { - \tl_if_eq:nnT {#1} {reaction} - { - \group_begin: - % we need to prevent \Hy@make@anchor from being written to the lor - % file: - \bool_if:NT \l__chemmacros_hyperref_bool - { \cs_set:Npn \Hy@make@anchor {} } - \addcontentsline {lor} {reaction} - { - \tl_use:N \l__chemmacros_reaction_lorname_tl - \tl_use:N \c_space_tl - #2 #3 #4 #5 - \tl_use:N \g__chemmacros_reaction_description_tl - } - \tl_gclear:N \g__chemmacros_reaction_description_tl - \group_end: - } - } - -% redefine mathtools' command \MT_define_tagform:nwnn to ensure we add an -% entry to the list of reactions even if the user redefines the reaction tag -% this should probably be done via patching... -\AfterPackage* { mathtools } - { - \cs_set_protected:Npn \MT_define_tagform:nwnn #1[#2]#3#4 - { - \@namedef{MT_tagform_#1:n}##1 - { - % this is the original part: - \maketag@@@{#3\ignorespaces#2{##1}\unskip\@@italiccorr#4} - % this is added => this disturbs hyperref: - \__chemmacros_record_for_lor:nnnnn - {#1} {#3} {#2} {##1} {#4} - } - } - } - -\tl_new:N \g__chemmacros_reaction_description_tl - -\cs_new_protected:Npn \chemmacros_add_reaction_description:n #1 - { - \tl_if_blank:nF {#1} - { \tl_gset:Nn \g__chemmacros_reaction_description_tl {:~#1} } - } - -\NewDocumentCommand \AddRxnDesc {m} - { \chemmacros_add_reaction_description:n {#1} } - -% define \listofreactions -\tl_new:N \l__chemmacros_reaction_lorname_tl -\tl_new:N \reactionlistname -\tl_new:N \l__chemmacros_reaction_heading_tl - -\cs_new:Npn \__chemmacros_reaction_heading:n #1 - { \l__chemmacros_reaction_heading_tl {#1} } -\cs_generate_variant:Nn \__chemmacros_reaction_heading:n { V } - -\ChemCompatibilityTo{5.6} -\tl_set:Nn \l__chemmacros_reaction_lorname_tl - { \chemmacros_translate:n {reaction} } -\EndChemCompatibility -\ChemCompatibilityFrom{5.6} -\tl_set:Nn \l__chemmacros_reaction_lorname_tl - { \chemmacros_translate:n {Reaction} } -\EndChemCompatibility - -\tl_set:Nn \reactionlistname { \chemmacros_translate:n {list-of-reactions} } - -\chemmacros_define_keys:nn {reactions} - { - list-name .tl_set:N = \reactionlistname , - list-entry .tl_set:N = \l__chemmacros_reaction_lorname_tl , - } -\ChemCompatibilityFrom{5.2} -\chemmacros_define_keys:nn {reactions} - { - list-heading-cmd .code:n = - \cs_set_protected:Npn \__chemmacros_reaction_heading:n ##1 {#1} - } -\EndChemCompatibility - -\cs_if_exist:NTF \chapter - { - \chemmacros_if_compatibility:nnTF {>=} {5.2} - { - \chemmacros_set_keys:nn {reactions} - { list-heading-cmd = \chapter* {#1} } - } - { \cs_set_protected:Npn \__chemmacros_reaction_heading:n { \chapter* } } - } - { - \chemmacros_if_compatibility:nnTF {>=} {5.2} - { - \chemmacros_set_keys:nn {reactions} - { list-heading-cmd = \section* {#1} } - } - { \cs_set_protected:Npn \__chemmacros_reaction_heading:n { \section* } } - } - -\cs_new_protected:Npn \listofreactions - { - \__chemmacros_reaction_heading:V \reactionlistname - \@starttoc {lor} - } - -\ChemCompatibilityTo{5.6} -\cs_new_protected:Npn \l@reaction #1#2 - { \@dottedtocline {1} {1.5em} {2.3em} {#1} {#2} } -\EndChemCompatibility - -\ChemCompatibilityFrom{5.6} -\cs_new_eq:NN \l@reaction \l@figure - -\bool_new:N \l__chemmacros_reactions_tocbasic_bool -\cs_if_exist:NT \KOMAClassName - { \bool_set_true:N \l__chemmacros_reactions_tocbasic_bool } - -\tl_new:N \l__chemmacros_reactions_tag_open_tl -\tl_new:N \l__chemmacros_reactions_tag_close_tl -\tl_new:N \l__chemmacros_reactions_before_tag_tl - -\chemmacros_define_keys:nn {reactions} - { - tocbasic .bool_set:N = \l__chemmacros_reactions_tocbasic_bool , - tag-open .tl_set:N = \l__chemmacros_reactions_tag_open_tl , - tag-open .initial:n = \{ , - tag-close .tl_set:N = \l__chemmacros_reactions_tag_close_tl , - tag-close .initial:n = \} , - before-tag .tl_set:N = \l__chemmacros_reactions_before_tag_tl - } - -\AtEndPreamble - { - \bool_lazy_or:nnT - { \chemmacros_if_package_loaded_p:n {tocbasic} } - { \l__chemmacros_reactions_tocbasic_bool } - { - \RequirePackage {tocbasic} - \addtotoclist [float] {lor} - \cs_set_protected:Npn \listofreactions { \listoftoc {lor} } - \cs_new:Npn \listoflorname { \reactionlistname } - } - } - -\ChemCleverefSupport {reaction} - { \chemmacros_translate:n {reaction} } - [ \chemmacros_translate:n {Reaction} ] - { \chemmacros_translate:n {reactions} } - [ \chemmacros_translate:n {Reactions} ] - -\AfterPackage* {cleveref} - { - \creflabelformat {reaction} - { - #2 - \l__chemmacros_reactions_tag_open_tl - #1 - \l__chemmacros_reactions_tag_close_tl - #3 - } - } - -\ChemFancyrefSupport {rct} - { \chemmacros_translate:n {reaction} } - [ \chemmacros_translate:n {Reaction} ] -\EndChemCompatibility - -% create new tagform -\ChemCompatibilityTo{5.6} -\newtagform {reaction} {\{} {\}} -\EndChemCompatibility -\ChemCompatibilityFrom{5.6} -\newtagform {reaction} - [\l__chemmacros_reactions_before_tag_tl] - {\l__chemmacros_reactions_tag_open_tl} - {\l__chemmacros_reactions_tag_close_tl} -\EndChemCompatibility -\newcounter {chemmacros_save_reaction} -\newcounter {reaction} - -\ChemCompatibilityTo{5.6} -\cs_new_protected:Npn \__chemmacros_begin_reaction: - { - % create individual names for `hyperref': - \bool_if:NT \l__chemmacros_hyperref_bool - { - \cs_set:Npn \theHequation - { R . \theHsection . \arabic {reaction} } - } - % enable labelformat `reaction': - \bool_if:NT \l__chemmacros_varioref_bool - { \cs_set_eq:NN \p@equation \p@reaction } - \setcounter {chemmacros_save_reaction} { \value {equation} } - \setcounter {equation} { \value {reaction} } - \usetagform {reaction} - } -\EndChemCompatibility - -\ChemCompatibilityFrom{5.6} -\cs_new_protected:Npn \__chemmacros_begin_reaction: - { - \patchcmd \thereaction {reaction} {equation} {} {} - \cs_set_eq:NN \theequation \thereaction - \cs_set_eq:NN \r@equation \r@reaction - \cs_set_eq:NN \p@equation \p@reaction - \cs_set:Npn \theHequation { R . \theHsection . \theequation } - \setcounter {chemmacros_save_reaction} { \value {equation} } - \setcounter {equation} { \value {reaction} } - \chemmacros_if_package_loaded:nT {cleveref} - { \crefalias {equation} {reaction} } - \usetagform {reaction} - } -\EndChemCompatibility - -% switch back to equation tags -\cs_new_protected:Npn \__chemmacros_end_reaction: - { - \setcounter {reaction} { \value {equation} } - \setcounter {equation} { \value {chemmacros_save_reaction} } - } - -\tl_new:N \l__chemmacros_reactions_args_tl - -\cs_new_protected:Npn \__chemmacros_reactions_build_args:n #1 - { \tl_put_right:Nn \l__chemmacros_reactions_args_tl { {## #1} } } - -\cs_new_protected:Npn \chemmacros_define_reaction:nnn #1#2#3 - { - \int_compare:nNnT {#3+0} > {0} - { - \tl_clear:N \l__chemmacros_reactions_args_tl - \int_step_function:nnnN {2} {1} {#3+1} \__chemmacros_reactions_build_args:n - } - \chemmacros_declare_reaction_env:nnnV {#1} {#2} {#3} \l__chemmacros_reactions_args_tl - } - -% #1: chem -% #2: math -% #3: args number -% #4: argument list ({#2}{#3}...) -\cs_new_protected:Npn \chemmacros_declare_reaction_env:nnnn #1#2#3#4 - { - \exp_args:Nnx \DeclareDocumentEnvironment {#1} - { \int_compare:nT { #3+0 = 0 } {!} O{} \prg_replicate:nn {#3+0} {m} } - { - \chemmacros_add_reaction_description:n {##1} - \__chemmacros_begin_reaction: - \chemmacros_reaction_read:nnw {#2} {#4} - } - { - \__chemmacros_end_reaction: - \ignorespacesafterend - } - } -\cs_generate_variant:Nn \chemmacros_declare_reaction_env:nnnn {nnnV} - -\ChemCompatibilityTo{5.6} -\cs_new_protected:Npn \chemmacros_reaction_read:nnw #1#2#3 \end - { - \begin{#1}#2 - \chemmacros_reaction:n {#3} - \end{#1} - \end - } -\EndChemCompatibility - -\ChemCompatibilityFrom{5.6} -\cs_new_protected:Npn \chemmacros_reaction_read:nnw #1#2#3 \end - { - \tl_clear:N \l__chemmacros_tmpa_tl - \seq_clear:N \l__chemmacros_tmpc_seq - \seq_set_split:Nnn \l__chemmacros_tmpa_seq {\\} {#3} - \int_set:Nn \l__chemmacros_tmpa_int - { \seq_count:N \l__chemmacros_tmpa_seq } - \int_zero:N \l__chemmacros_tmpb_int - \seq_map_inline:Nn \l__chemmacros_tmpa_seq - { - \int_incr:N \l__chemmacros_tmpb_int - \seq_clear:N \l__chemmacros_tmpc_seq - \seq_set_split:Nnn \l__chemmacros_tmpb_seq {&} {##1} - \seq_map_inline:Nn \l__chemmacros_tmpb_seq - { - \seq_put_right:Nn \l__chemmacros_tmpc_seq - { \chemmacros_reaction:n {####1} } - } - \tl_put_right:Nx \l__chemmacros_tmpa_tl - { \seq_use:Nn \l__chemmacros_tmpc_seq {&} } - \int_compare:nF - { \l__chemmacros_tmpa_int = \l__chemmacros_tmpb_int } - { \tl_put_right:Nn \l__chemmacros_tmpa_tl {\\} } - } - \chemmacros_reaction_write:nnV {#1} {#2} \l__chemmacros_tmpa_tl - \end - } - -\cs_new_protected:Npn \chemmacros_reaction_write:nnn #1#2#3 - { - \begin{#1}#2 - #3 - \end{#1} - } -\cs_generate_variant:Nn \chemmacros_reaction_write:nnn { nnV } -\EndChemCompatibility - -\NewChemMacroset* {Reaction} {mO{}m} - { \chemmacros_define_reaction:nnn {#1} {#3} {#2} } - -\NewChemReaction {reaction} {equation} -\NewChemReaction {reaction*} {equation*} -\NewChemReaction {reactions} {align} -\NewChemReaction {reactions*} {align*} - -% -------------------------------------------------------------------------- -\ChemCompatibilityTo{5.6} -\DeclareTranslationFallback {list-of-reactions} {List~ of~ Reactions} -\DeclareTranslation {English} {list-of-reactions} {List~ of~ Reactions} -\DeclareTranslation {German} {list-of-reactions} {Reaktionsverzeichnis} -\DeclareTranslation {Italian} {list-of-reactions} {Elenco~ delle~ reazioni} -\DeclareTranslation {French} {list-of-reactions} {Table~ des~ r\'{e}actions} -\DeclareTranslation {Dutch} {list-of-reactions} {Lijst~ van~ reacties} - -\DeclareTranslationFallback {reaction} {Reaction} -\DeclareTranslation {English} {reaction} {Reaction} -\DeclareTranslation {German} {reaction} {Reaktion} -\DeclareTranslation {Italian} {reaction} {Reazione} -\DeclareTranslation {French} {reaction} {R\'{e}action} -\DeclareTranslation {Dutch} {reaction} {Reactie} -\EndChemCompatibility - -\ChemCompatibilityFrom{5.6} -\chemmacros_declare_translations:nn {list-of-reactions} - { - fallback = List~ of~ Reactions , - English = List~ of~ Reactions , - German = Reaktionsverzeichnis , - Italian = Elenco~ delle~ reazioni , - French = Table~ des~ r\'{e}actions , - Dutch = Lijst~ van~ reacties , - Norwegian = Reaksjonsliste , - Nynorsk = Reaksjonsliste - } - -\chemmacros_declare_translations:nn {reaction} - { - fallback = reaction , - English = reaction , - German = Reaktion , - Italian = reazione , - French = r\'{e}action , - Dutch = reactie , - Norwegian = reaksjon , - Nynorsk = reaksjon - } - -\chemmacros_declare_translations:nn {reactions} - { - fallback = reactions , - English = reactions , - German = Reaktionen , - Italian = reazioni , - French = r\'{e}actions , - Dutch = reacties , - Norwegian = reaksjoner , - Nynorsk = reaksjonar - } - -\chemmacros_declare_translations:nn {Reaction} - { - fallback = Reaction , - English = Reaction , - German = Reaktion , - Italian = Reazione , - French = R\'{e}action , - Dutch = Reactie , - Norwegian = Reaksjon , - Nynorsk = Reaksjon - } - -\chemmacros_declare_translations:nn {Reactions} - { - fallback = Reactions , - English = Reactions , - German = Reaktionen , - Italian = Reazioni , - French = R\'{e}actions , - Dutch = Reacties , - Norwegian = Reaksjoner , - Nynorsk = Reaksjonar - } -\EndChemCompatibility -% -------------------------------------------------------------------------- -\file_input_stop: - -2015/09/15 - adapt to `method' option => do not use chemformula's macros - directly -2015/10/14 - new option `list-heading-cmd' -2016/02/09 - added \ignorespacesafterend to environments -2016/03/17 - tocbasic integration of lor - - add missing compatibility check for the usage of the - `list-heading-cmd' option -2016/04/02 - adapt to new formula methods -2016/04/27 - correct \__chemmacros_begin_reaction: so tags obey \thereaction - - add cleveref support - - add fancyref support - - moved translations from lang module to reactions module -2016/05/04 - options `tag-open', `tag-close' and `before-tag' -2019/09/23 - added Norwegian translations -2019/09/27 - change `O{}' argument of reactions into `!O{}' -2020/02/02 - lazy boolean evaluation |