%% %% This is file `scontents.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% scontents.dtx (with options: `loader,plain') %% %% Copyright (C) 2019-2022 by Pablo González L %% %% 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.3c or later is part of all distributions of LaTeX version %% 2005/12/01 or later. %% %% This work is "maintained" (as per the LPPL maintenance status) %% by Pablo González Luengo. %% %% This work consists of the files scontents.dtx and %% scontents.ins, %% and the derived files scontents.sty, %% scontents.tex, %% t-scontents.mkiv and %% scontents-code.tex. %% \def\ScontentsFileDate{2022-04-04}% \def\ScontentsFileVersion{2.0}% \def\ScontentsFileDescription{Stores LaTeX contents in memory or files}% \input expl3-generic.tex \ExplSyntaxOn \tl_gset:cx { ver @ scontents . sty } { \ScontentsFileDate\space v\ScontentsFileVersion\space \ScontentsFileDescription } \iow_log:x { Package: ~ scontents ~ \use:c { ver @ scontents . sty } } \msg_gset:nnn { scontents } { already-loaded } { The~'scontents'~package~is~already~loaded.~Aborting~input~\msg_line_context:. } \cs_if_exist:NT \__scontents_rescan_tokens:n { \msg_warning:nn { scontents } { already-loaded } \ExplSyntaxOff \file_input_stop: } \tl_new:N \g__scontents_end_verbatimsc_tl \tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl { \char_set_catcode_other:N \\ } { \endverbatimsc } \tl_new:N \l__scontents_env_name_tl \tl_const:Nx \c__scontents_end_env_tl { \c_backslash_str end \exp_not:N \l__scontents_env_name_tl } \file_input:n { scontents-code.tex } \cs_new:Npn \__scontents_format_case:nnn #1 #2 #3 {#2} % Plain/Generic \int_set:Nn \l__scontents_tmpa_int { \char_value_catcode:n { `\@ } } \char_set_catcode_letter:N \@ \file_input:n { xparse-generic.tex } \char_set_catcode:nn { `\@ } { \l__scontents_tmpa_int } \keys_define:nn { scontents } { verb-font .initial:n = \tt } \NewDocumentCommand \newenvsc { m O{} } { \cs_if_exist:cTF { #1 } { \msg_error:nnn { scontents } { env-already-defined } {#1} } { \__scontents_env_setting:nn {#1} {#2} } } \cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3 { \NewDocumentEnvironment {#1} { } { \group_begin: #2 } { #3 \group_end: } } \newenvsc{scontents} \NewDocumentCommand \__scontents_grab_optional:w { r[] } { \__scontents_grab_optional:n {#1} } \cs_new_protected:Npn \__scontents_analyse_nesting_format:n { \__scontents_analyse_nesting_generic:nn { } } \cs_new_protected:Npn \verbatimsc { \group_begin: \__scontents_verbatimsc_aux: \frenchspacing \__scontents_vobeyspaces: \__scontents_xverb: } \cs_new_protected:Npn \endverbatimsc { \group_end: } \cs_new_protected:Npn \__scontents_verbatimsc_aux: { \skip_vertical:N \parskip \dim_zero:N \parindent \skip_set:Nn \parfillskip { 0pt plus 1fil } \skip_set:Nn \parskip { 0pt plus0pt minus0pt } \tex_par:D \bool_set_false:N \l__scontents_temp_bool \cs_set:Npn \par { \bool_if:NTF \l__scontents_temp_bool { \mode_leave_vertical: \null \tex_par:D \penalty \interlinepenalty } { \bool_set_true:N \l__scontents_temp_bool \mode_if_horizontal:T { \tex_par:D \penalty \interlinepenalty } } } \cs_set_eq:NN \do \char_set_catcode_other:N \dospecials \obeylines \tl_use:N \l__scontents_verb_font_tl \cs_set_eq:NN \do \__scontents_do_noligs:N \__scontents_nolig_list: \tex_everypar:D \exp_after:wN { \tex_the:D \tex_everypar:D \tex_unpenalty:D } } \cs_new_protected:Npn \__scontents_nolig_list: { \do\`\do\<\do\>\do\,\do\'\do\- } \cs_new_protected:Npn \__scontents_vobeyspaces: { \__scontents_set_active_eq:NN \ \__scontents_xobeysp: } \cs_new_protected:Npn \__scontents_xobeysp: { \mode_leave_vertical: \nobreak \ } \cs_if_exist:NF \dospecials { \cs_new:Npn \dospecials { \seq_map_function:NN \l_char_special_seq \do } } \NewDocumentCommand \Scontents { !s !O{} } { \__scontents_Scontents_internal:nn {#1} {#2} } \NewDocumentCommand \__scontents_verb_arg:w { +v } { \__scontents_verb_arg_internal:n {#1} } \NewDocumentCommand \getstored { O{-1} m } { \__scontents_getstored_internal:nn {#1} {#2} } \NewDocumentCommand \foreachsc { o m } { \__scontents_foreachsc_internal:nn {#1} {#2} } \NewDocumentCommand \typestored { o m } { \__scontents_typestored_internal:nn {#1} {#2} } \use:x { \cs_new_protected:Npn \exp_not:N \__scontents_xverb:w ##1 \g__scontents_end_verbatimsc_tl { ##1 \exp_not:N \endverbatimsc } } \group_begin: \char_set_catcode_active:n { `\* } \cs_new_protected:Npn \__scontents_plain_disable_outer_par: { \group_begin: \char_set_lccode:nn { `\* } { `\^^L } \tex_lowercase:D { \group_end: \tex_let:D * \scan_stop: } } \group_end: \NewDocumentCommand \setupsc { +m } { \keys_set:nn { scontents } {#1} } \NewDocumentCommand \meaningsc { o m } { \__scontents_meaningsc_internal:nn {#1} {#2} } \NewExpandableDocumentCommand \countsc { m } { \seq_count:c { g__scontents_name_#1_seq } } \NewDocumentCommand \cleanseqsc { m } { \seq_clear_new:c { g__scontents_name_#1_seq } } \ExplSyntaxOff \endinput %% %% End of file `scontents.tex'.