summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/xsim/xsim.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/xsim/xsim.sty')
-rw-r--r--Master/texmf-dist/tex/latex/xsim/xsim.sty109
1 files changed, 109 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/xsim/xsim.sty b/Master/texmf-dist/tex/latex/xsim/xsim.sty
new file mode 100644
index 00000000000..7bc7248c47e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/xsim/xsim.sty
@@ -0,0 +1,109 @@
+% ----------------------------------------------------------------------------
+% the XSIM package
+%
+% eXercise Sheets IMproved
+%
+% ----------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://github.com/cgnieder/xsim
+% E-Mail: contact@mychemistry.eu
+% ----------------------------------------------------------------------------
+% Copyright 2017 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.
+% ----------------------------------------------------------------------------
+\RequirePackage {expl3,xparse}
+
+\ExplSyntaxOn
+
+\tl_const:Nn \c_xsim_date_tl {2017/05/19}
+\tl_const:Nn \c_xsim_version_major_number_tl {0}
+\tl_const:Nn \c_xsim_version_minor_number_tl {8}
+\tl_const:Nn \c_xsim_version_subrelease_tl {a}
+\tl_const:Nx \c_xsim_version_number_tl
+ {
+ \c_xsim_version_major_number_tl .
+ \c_xsim_version_minor_number_tl
+ }
+\tl_const:Nx \c_xsim_version_tl
+ {
+ \c_xsim_version_number_tl
+ \c_xsim_version_subrelease_tl
+ }
+\tl_const:Nn \c_xsim_info_tl {eXercise ~ Sheets ~ IMproved}
+
+\ProvidesExplPackage
+ {xsim}
+ {\c_xsim_date_tl}
+ {\c_xsim_version_tl}
+ {\c_xsim_info_tl}
+
+% --------------------------------------------------------------------------
+
+% options, information
+
+\bool_new:N \g_xsim_final_bool
+\bool_new:N \g_xsim_verbose_bool
+\bool_new:N \g_xsim_clear_aux_bool
+
+\keys_define:nn {xsim}
+ {
+ final .bool_gset:N = \g_xsim_final_bool ,
+ verbose .bool_gset:N = \g_xsim_verbose_bool ,
+ clear-aux .bool_gset:N = \g_xsim_clear_aux_bool
+ }
+
+\DeclareOption {final}
+ { \bool_gset_true:N \g_xsim_final_bool }
+
+\DeclareOption {verbose}
+ { \bool_gset_true:N \g_xsim_verbose_bool }
+
+\DeclareOption {clear-aux}
+ { \bool_gset_true:N \g_xsim_clear_aux_bool }
+
+\ProcessOptions \scan_stop:
+
+% --------------------------------------------------------------------------
+
+% messages:
+\msg_new:nnn {xsim} {rerun}
+ {
+ Exercise~ properties~ may~ have~ changed.~ Rerun~ to~ get~ them~
+ synchronized.
+ }
+
+\msg_new:nnn {xsim} {verbose} { #1 ~(\msg_line_context:) }
+
+% --------------------------------------------------------------------------
+
+\bool_new:N \g__xsim_rerun_bool
+
+\cs_new_protected:Npn \xsim_do_rerun:
+ { \xsim_if_rerun:T { \msg_warning:nn {xsim} {rerun} } }
+
+% --------------------------------------------------------------------------
+
+% load module mechanism:
+\tl_set:Nn \l_tmpa_tl {code.tex}
+\@onefilewithoptions {xsim.modules} [][] \l_tmpa_tl
+
+% --------------------------------------------------------------------------
+\xsim_load_modules:n {definitions}
+
+\AtEndDocument { \xsim_do_rerun: }
+
+\tex_endinput:D