diff options
Diffstat (limited to 'macros/latex/contrib/xsim/code/xsim.modules.code.tex')
-rw-r--r-- | macros/latex/contrib/xsim/code/xsim.modules.code.tex | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/macros/latex/contrib/xsim/code/xsim.modules.code.tex b/macros/latex/contrib/xsim/code/xsim.modules.code.tex deleted file mode 100644 index c487c73036..0000000000 --- a/macros/latex/contrib/xsim/code/xsim.modules.code.tex +++ /dev/null @@ -1,220 +0,0 @@ -% ---------------------------------------------------------------------------- -% the XSIM package - modules module -% -% eXercise Sheets IMproved -% -% ---------------------------------------------------------------------------- -% Clemens Niederberger -% Web: https://github.com/cgnieder/xsim -% E-Mail: contact@mychemistry.eu -% ---------------------------------------------------------------------------- -% Copyright 2017--2020 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. -% ---------------------------------------------------------------------------- -% -% this is a pseudo module as it does the actual definitions for the whole -% module loading stuff; we do this so both packages `xsimverb' and `xsim' can -% use the `verbwrite' module -\RequirePackage{scrlfile} -\ExplSyntaxOn - -\msg_new:nnn {xsim} {module-missing} - { - You've~ requested~ the~ xsim~ 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 {xsim} {loading-module} - { Loading~ module~ `#1'~ ... } - -\msg_new:nnn {xsim} {wrong-module-name} - { The~ module~ file~ name~ is~ `#2'~ but~ it~ provides~ module~ `#1'. } - -\msg_new:nnn {xsim} {forbidden-module} - { - You've~ requested~ the~ xsim~ module~ `modules'~ \msg_line_context: .~ - This~ module~ is~ a~ pseudo~ module~ which~ may~ not~ be~ loaded~ through~ - the~ module~ loading~ mechansim. - } - -% ---------------------------------------------------------------------------- - -\cs_generate_variant:Nn \str_if_eq:nnF {xx} - -\tl_const:Nn \c__xsim_module_extension_tl {code.tex} -\tl_const:Nn \c__xsim_module_prefix_tl {xsim} - -\seq_new:N \g__xsim_loaded_modules_seq -\prop_new:N \g__xsim_loaded_modules_prop - -\cs_new_protected:Npn \xsim_load_modules:n #1 - { \clist_map_inline:nn {#1} { \xsim_load_module:n {##1} } } - -\cs_new_protected:Npn \xsim_load_module:n #1 - { - \tl_set:Nx \l_tmpa_tl { \tl_trim_spaces:n {#1} } - \str_if_eq:VnTF \l_tmpa_tl {modules} - { \msg_error:nn {xsim} {forbidden-module} } - { \__xsim_load_module:V \l_tmpa_tl } - } - -\cs_new_protected:Npn \__xsim_load_module:n #1 - { - \xsim_if_module_loaded:nF {#1} - { - \xsim_if_module_exist:nTF {#1} - { - \__xsim_use_module_hook:nn {#1} {before} - \msg_info:nnn {xsim} {loading-module} {#1} - \@onefilewithoptions - {\c__xsim_module_prefix_tl.#1}[][] - \c__xsim_module_extension_tl - \__xsim_use_module_hook:nn {#1} {after} - } - { \msg_error:nnn {xsim} {module-missing} {#1} } - } - } -\cs_generate_variant:Nn \__xsim_load_module:n {V} - -\prg_new_conditional:Npnn \xsim_if_module_loaded:n #1 {p,T,F,TF} - { - \seq_if_in:NnTF \g__xsim_loaded_modules_seq {#1} - { \prg_return_true: } - { \prg_return_false: } - } - -\prg_new_conditional:Npnn \xsim_if_module_exist:n #1 {p,T,F,TF} - { - \file_if_exist:nTF - {\c__xsim_module_prefix_tl.#1.\c__xsim_module_extension_tl} - { \prg_return_true: } - { \prg_return_false: } - } - -% -------------------------------------------------------------------------- -% module hooks: -% #1: module -% #2: code -\cs_new_protected:Npn \xsim_after_module:nn #1#2 - { - \xsim_if_module_loaded:nTF {#1} - {#2} - { \__xsim_add_to_module_hook:nnn {#1} {after} {#2} } - } - -% #1: module -% #2: code -\cs_new_protected:Npn \xsim_before_module:nn #1#2 - { - \xsim_if_module_loaded:nF {#1} - { \__xsim_add_to_module_hook:nnn {#1} {before} {#2} } - } - -% #1: module -% #2: hook name -% #3: code -\cs_new_protected:Npn \__xsim_add_to_module_hook:nnn #1#2#3 - { - \xsim_if_module_loaded:nF {#1} - { - \tl_if_exist:cF {g__xsim_module_#1_#2_hook_tl} - { \tl_new:c {g__xsim_module_#1_#2_hook_tl} } - \tl_gput_right:cn {g__xsim_module_#1_#2_hook_tl} {#3} - } - } - -% #1: module -% #2: hook name -\cs_new_protected:Npn \__xsim_use_module_hook:nn #1#2 - { - \tl_if_exist:cT {g__xsim_module_#1_#2_hook_tl} - { - \tl_use:c {g__xsim_module_#1_#2_hook_tl} - \tl_gclear:c {g__xsim_module_#1_#2_hook_tl} - } - } - -% -------------------------------------------------------------------------- - -\tl_new:N \l__xsim_module_date_tl -\tl_new:N \l__xsim_module_version_tl - -\tl_if_exist:NF \c_xsim_date_tl - { \tl_set:Nx \l__xsim_module_date_tl {\c_xsimverb_date_tl} } -\tl_if_exist:NF \c_xsim_version_tl - { \tl_set:Nx \l__xsim_module_version_tl {\c_xsimverb_version_tl} } - -\AfterPackage*{xsim} - { - \tl_set:Nx \l__xsim_module_date_tl {\c_xsim_date_tl} - \tl_set:Nx \l__xsim_module_version_tl {\c_xsim_version_tl} - } - -\cs_new_protected:Npn \__xsim_module:nn #1#2 - { - \seq_gput_right:Nn \g__xsim_loaded_modules_seq {#1} - \prop_gput:Nnn \g__xsim_loaded_modules_prop {#1} {#2} - \str_if_eq:xxF - {\c__xsim_module_prefix_tl.#1.\c__xsim_module_extension_tl} - {\@currname.\@currext} - { - \msg_error:nnnxx {xsim} {wrong-module-name} - {#1} - {\@currname.\@currext} - } - \ProvidesFile - {\c__xsim_module_prefix_tl.#1.\c__xsim_module_extension_tl} - [ - \l__xsim_module_date_tl - \c_space_tl - v \l__xsim_module_version_tl - \c_space_tl - xsim~ module~ `#1'~ (#2) - ] - } -\cs_generate_variant:Nn \msg_error:nnnn {nnnx} - -% -------------------------------------------------------------------------- -% define a xsim module: -% #1: name -% #2: description -\NewDocumentCommand \XSIMmodule {mm} - { \__xsim_module:nn {#1} {#2} \ExplSyntaxOn } - -% -------------------------------------------------------------------------- -% style files -\NewDocumentCommand \xsimstyle {smO{}} - { - \__xsim_module:nn {style.#2} {#3} - \IfBooleanT {#1} { \ExplSyntaxOn } - } - -% \cs_new_protected:Npn \xsim_style_options:nn #1#2 -% { \keys_define:nn {xsim/#1} {#2} } - -\cs_new_protected:Npn \xsim_load_style:n #1 - { \clist_map_inline:nn {#1} { \xsim_load_module:n {style.##1} } } - -\keys_define:nn {xsim} - { load-style .code:n = \xsim_load_style:n {#1} } - -\NewDocumentCommand \loadxsimstyle {m} - { \xsim_load_style:n {#1} } - -% -------------------------------------------------------------------------- -\file_input_stop: |