diff options
Diffstat (limited to 'macros/latex/contrib/chemmacros/chemmacros5.sty')
-rw-r--r-- | macros/latex/contrib/chemmacros/chemmacros5.sty | 330 |
1 files changed, 0 insertions, 330 deletions
diff --git a/macros/latex/contrib/chemmacros/chemmacros5.sty b/macros/latex/contrib/chemmacros/chemmacros5.sty deleted file mode 100644 index c685fefa70..0000000000 --- a/macros/latex/contrib/chemmacros/chemmacros5.sty +++ /dev/null @@ -1,330 +0,0 @@ -% -------------------------------------------------------------------------- -% the CHEMMACROS package -% -% comprehensive support for typesetting chemistry documents -% -% -------------------------------------------------------------------------- -% 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. -% -------------------------------------------------------------------------- -% The chemmacros package consists of the following files -% - chemmacros.sty, chemmacros4.sty, chemmacros5.sty, -% - chemmacros_en.tex, chemmacros_en.pdf, -% - quite a number of module files following the naming scheme -% chemmacros.module.*.code.tex -% - README - % -------------------------------------------------------------------------- -\RequirePackage{expl3,xparse,l3keys2e} -\ExplSyntaxOn - -% -------------------------------------------------------------------------- -% package information: -\ProvidesExplPackage - {chemmacros5} - {\c_chemmacros_date_tl} - {\c_chemmacros_version_tl} - {\c_chemmacros_info_tl \c_space_tl (CN)} - -% -------------------------------------------------------------------------- -\msg_new:nnn {chemmacros} {package-option} - { - Unknown~ option~ `#1'!~ Since~ v5.0~ chemmacros~ has~ no~ package~ - options~ any~ more! - } - -\msg_new:nnn {chemmacros} {module-not-available} - { - The~ module~ `#1'~ is~ only~ available~ in~ compatibility~ mode~ #2~ or~ - higher. - } - -\cs_generate_variant:Nn \msg_warning:nnn { nnV } - -\keys_define:nn {chemmacros/package-options} - { - compatibility .code:n = , - unknown .code:n = - \msg_warning:nnV {chemmacros} {package-option} \CurrentOption - } - -\ProcessKeysPackageOptions {chemmacros/package-options} - -% -------------------------------------------------------------------------- -% messages: -\msg_new:nnn {chemmacros} {module-missing} - { - You've~ requested~ the~ chemmacros~ module~ `#1'~ but~ it~ appears~ to~ - be~ missing~ on~ your~ system.~ Maybe~ you've~ misspelled~ the~ name?~ - Loading~ the~ module~ will~ abort~ \msg_line_context: - } - -\msg_new:nnn {chemmacros} {loading-module} - { - (chemmacros) \c_space_tl \c_space_tl \c_space_tl \c_space_tl - Loading~ module~ `#1'... - } - -% -------------------------------------------------------------------------- -% variants of kernel functions: -\cs_generate_variant:Nn \tl_if_eq:nnTF {xx,V} -\cs_generate_variant:Nn \seq_set_split:Nnn {Nnx} -\cs_generate_variant:Nn \prop_item:Nn {NV} -\cs_generate_variant:Nn \seq_item:Nn {cV} -\cs_generate_variant:Nn \int_to_arabic:n {V} -\cs_generate_variant:Nn \tl_replace_once:Nnn {NnV} -\cs_generate_variant:Nn \prop_gput:Nnn {cxx,NVf} -\cs_generate_variant:Nn \msg_error:nnn {nnV} -\cs_generate_variant:Nn \msg_warning:nnn {nnV} -\cs_generate_variant:Nn \msg_warning:nnnn {nnV} -\cs_generate_variant:Nn \vbox_set:Nn {NV} -\cs_generate_variant:Nn \keys_define:nn {x} -\cs_generate_variant:Nn \keys_set:nn {x,nx} - -% -------------------------------------------------------------------------- -% temporary variables: -\tl_new:N \l__chemmacros_tmpa_tl -\tl_new:N \l__chemmacros_tmpb_tl -\tl_new:N \l__chemmacros_tmpc_tl -\tl_new:N \l__chemmacros_tmpd_tl - -\bool_new:N \l__chemmacros_tmpa_bool -\bool_new:N \l__chemmacros_tmpb_bool -\bool_new:N \l__chemmacros_tmpc_bool - -\dim_new:N \l__chemmacros_tmpa_dim -\dim_new:N \l__chemmacros_tmpb_dim -\dim_new:N \l__chemmacros_tmpc_dim - -\seq_new:N \l__chemmacros_tmpa_seq -\seq_new:N \l__chemmacros_tmpb_seq -\seq_new:N \l__chemmacros_tmpc_seq - -\int_new:N \l__chemmacros_tmpa_int -\int_new:N \l__chemmacros_tmpb_int -\int_new:N \l__chemmacros_tmpc_int - -\box_new:N \l__chemmacros_tmpa_box -\box_new:N \l__chemmacros_tmpb_box -\box_new:N \l__chemmacros_tmpc_box - -\clist_new:N \l__chemmacros_tmpa_clist -\clist_new:N \l__chemmacros_tmpb_clist -\clist_new:N \l__chemmacros_tmpc_clist - -\str_new:N \l__chemmacros_tmpa_str -\str_new:N \l__chemmacros_tmpb_str -\str_new:N \l__chemmacros_tmpc_str - -% -------------------------------------------------------------------------- -% module mechanism: -\tl_const:Nn \c__chemmacros_module_extension_tl {code.tex} -\tl_const:Nn \c__chemmacros_module_prefix_tl {chemmacros.module} - -\seq_new:N \g__chemmacros_loaded_modules_seq -\prop_new:N \g__chemmacros_loaded_modules_prop - -\cs_new_protected:Npn \chemmacros_load_modules:n #1 - { \clist_map_inline:nn {#1} { \chemmacros_load_module:n {##1} } } - -\cs_new_protected:Npn \chemmacros_load_module:n #1 - { - \tl_set:Nx \l__chemmacros_tmpa_tl { \tl_trim_spaces:n {#1} } - \__chemmacros_load_module:V \l__chemmacros_tmpa_tl - } - -\cs_new_protected:Npn \__chemmacros_load_module:n #1 - { - \chemmacros_if_module_loaded:nF {#1} - { - \chemmacros_if_module_exist:nTF {#1} - { - \__chemmacros_use_module_hook:nn {#1} {before} - \msg_log:nnn {chemmacros} {loading-module} {#1} - \@onefilewithoptions - {\c__chemmacros_module_prefix_tl.#1}[][] - \c__chemmacros_module_extension_tl - \__chemmacros_use_module_hook:nn {#1} {after} - } - { \msg_error:nnn {chemmacros} {module-missing} {#1} } - } - } -\cs_generate_variant:Nn \__chemmacros_load_module:n { V } - -\prg_new_conditional:Npnn \chemmacros_if_module_loaded:n #1 {p,T,F,TF} - { - \seq_if_in:NnTF \g__chemmacros_loaded_modules_seq {#1} - { \prg_return_true: } - { \prg_return_false: } - } - -\prg_new_conditional:Npnn \chemmacros_if_module_exist:n #1 {p,T,F,TF} - { - \file_if_exist:nTF - {\c__chemmacros_module_prefix_tl.#1.\c__chemmacros_module_extension_tl} - { \prg_return_true: } - { \prg_return_false: } - } - -% -------------------------------------------------------------------------- -\ChemCompatibilityFrom{5.1} -% module hooks: -% #1: module -% #2: code -\cs_new_protected:Npn \chemmacros_after_module:nn #1#2 - { - \chemmacros_if_module_loaded:nTF {#1} - {#2} - { \__chemmacros_add_to_module_hook:nnn {#1} {after} {#2} } - } - -% #1: module -% #2: code -\cs_new_protected:Npn \chemmacros_before_module:nn #1#2 - { - \chemmacros_if_module_loaded:nF {#1} - { \__chemmacros_add_to_module_hook:nnn {#1} {before} {#2} } - } -\EndChemCompatibility - -% #1: module -% #2: hook name -% #3: code -\cs_new_protected:Npn \__chemmacros_add_to_module_hook:nnn #1#2#3 - { - \chemmacros_if_module_loaded:nF {#1} - { - \tl_if_exist:cF {g__chemmacros_module_#1_#2_hook_tl} - { \tl_new:c {g__chemmacros_module_#1_#2_hook_tl} } - \tl_gput_right:cn {g__chemmacros_module_#1_#2_hook_tl} {#3} - } - } - -% #1: module -% #2: hook name -\cs_new_protected:Npn \__chemmacros_use_module_hook:nn #1#2 - { - \tl_if_exist:cT {g__chemmacros_module_#1_#2_hook_tl} - { - \tl_use:c {g__chemmacros_module_#1_#2_hook_tl} - \tl_gclear:c {g__chemmacros_module_#1_#2_hook_tl} - } - } - -% -------------------------------------------------------------------------- -\cs_new_protected:Npn \__chemmacros_module:nnnn #1#2#3#4 - { - \chemmacros_if_compatibility:nnF {>=} {#4} - { - \msg_warning:nnnn {chemmacros} {module-not-available} {#2} {#4} - \file_input_stop: - } - \seq_gput_right:Nn \g__chemmacros_loaded_modules_seq {#2} - \prop_gput:Nnn \g__chemmacros_loaded_modules_prop {#2} {#3} - \ProvidesFile - {\c__chemmacros_module_prefix_tl.#2.\c__chemmacros_module_extension_tl} - [ - \c_chemmacros_date_tl - \c_space_tl - v \c_chemmacros_version_tl - \c_space_tl - chemmacros~ module~ `#2'~ #3 - ] - \bool_if:nF {#1} { \ExplSyntaxOn } - } - -% define a chemmacros module: -% standard modules are written in the expl3 programming environment, the -% starred version only uses a 2e programming environment, i.e., with @ as a -% letter -% #1: boolean -% #2: name -% #3: description -\NewDocumentCommand \ChemModule {smmO{5.0}} - { \__chemmacros_module:nnnn {#1} {#2} {#3} {#4} } - -% -------------------------------------------------------------------------- -% command for loading modules: -\NewDocumentCommand \usechemmodule {m} { \chemmacros_load_modules:n {#1} } - -% -------------------------------------------------------------------------- -% load default modules: -\chemmacros_load_modules:n - { - % required modules: - base, - errorcheck, - lang, greek, - chemformula, - % preloaded modules: - acid-base, - symbols, - charges, - particles, - phases , - nomenclature - } - -% -------------------------------------------------------------------------- -\file_input_stop: - -% -------------------------------------------------------------------------- -Modules: (* = preloaded) - - internal modules: - - base * - - errorcheck * - - lang * - - greek * - - chemformula * - - tikz - - user modules: - - acid-base * - - all - - charges * - - isotopes - - mechanisms - - newman - - nomenclature * - - orbital - - particles * - - phases * - - reactions - - redox - - scheme - - spectroscopy - - symbols * - - thermodynamics - - units - - xfrac - -% -------------------------------------------------------------------------- -Version history -2015/08/29 - initial release v5.0 -2015/09/23 - add module hooks `before' and `after' - - allow to give minimal compatibility version to a module: this - should be the first version when a module is published and - shouldn't be changed any more; loading the corresponding module - will abort when compatibility is too low - - store loaded modules in a seq and in a prop -2015/10/14 - bug fix in the module hook mechanism - - bug fix in \chemmacros_if_module_loaded:n - - new `errorcheck' module -2020/02/03 - add temporary string variables |