%% %% This is file `scontents.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% scontents.dtx (with options: `loader,plain') %% %% Copyright (C) 2019 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{2019-10-26}% \def\ScontentsFileVersion{1.6}% \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_const:Nx \c__scontents_end_env_tl { \c_backslash_str end scontents } \file_input:n { scontents-code.tex } \cs_new:Npn \__scontents_format_case:nnn #1 #2 #3 {#2} % Plain/Generic \keys_define:nn { scontents } { verb-font .initial:n = \tt } \seq_new:N \l__scontents_compat_seq \cs_new_protected:Npn \__scontents_compat_redefine:Npn #1 { \seq_put_right:Nn \l__scontents_compat_seq {#1} \cs_set_eq:cN { __scontents_saved_\cs_to_str:N #1: } #1 \cs_new_protected:Npn #1 } \cs_new_protected:Npn \__scontents_compat_restore: { \seq_map_function:NN \l__scontents_compat_seq \__scontents_compat_restore:N } \cs_new_protected:Npn \__scontents_compat_restore:N #1 { \cs_set_eq:Nc #1 { __scontents_saved_\cs_to_str:N #1: } \cs_undefine:c { __scontents_saved_\cs_to_str:N #1: } } \cs_generate_variant:Nn \__scontents_compat_redefine:Npn { c } \cs_new_protected:Npn \__scontents_optarg:nn #1 #2 { \peek_charcode_ignore_spaces:NTF [ {#1} {#1[#2]} } \cs_new_protected:Npn \__scontents_stararg:nn #1 #2 { \peek_charcode_remove_ignore_spaces:NTF * {#1} {#2} } \__scontents_compat_redefine:Npn \RequirePackage { \__scontents_optarg:nn { \__scontents_require_auxi:wn } { } } \cs_new_protected:Npn \__scontents_require_auxi:wn [#1] #2 { \__scontents_optarg:nn { \__scontents_require_auxii:wnw [{#1}]{#2} } { } } \cs_new:Npn \__scontents_zap_space:ww #1~#2 { #1 \if_meaning:w #2 \q_mark \exp_after:wN \use_none:n \else: \exp_after:wN \__scontents_zap_space:ww \fi: #2 } \cs_new_protected:Npn \__scontents_require_auxii:wnw [#1] #2 [#3] { \tl_set:Nx \l__scontents_temp_tl { \__scontents_zap_space:ww #2 ~ \q_mark } \clist_map_function:NN \l__scontents_temp_tl \__scontents_require_auxiii:n } \cs_new_protected:Npn \__scontents_require_auxiii:n #1 { \str_if_eq:eeF {expl3} {#1} { \msg_error:nnn { scontents } { invalid-package } {#1} } } \msg_new:nnn { scontents } { invalid-package } { Package~`#1'~invalid~in~scontents.~This~is~an~error~in~scontents. } \__scontents_compat_redefine:cpn { @ifpackagelater } #1 { \exp_args:Nc \__scontents_package_later_aux:Nn { ver@#1.sty } } \cs_new_protected:Npn \__scontents_package_later_aux:Nn #1 #2 { \int_compare:nNnTF { \exp_after:wN \__scontents_parse_version:w #1 //00 \q_mark } < { \exp_after:wN \__scontents_parse_version:w #2 //00 \q_mark } } \cs_new:Npn \__scontents_parse_version:w #1 { \__scontents_parse_version_auxi:w 0#1 } \cs_new:Npn \__scontents_parse_version_auxi:w #1/#2/#3#4#5 \q_mark { \__scontents_parse_version_auxii:w #1-#2-#3#4 \q_mark } \cs_new:Npn \__scontents_parse_version_auxii:w #1-#2-#3#4#5 \q_mark { \tl_if_blank:nF {#2} {#1} #2 #3 #4 } \__scontents_compat_redefine:Npn \ProvidesExplPackage #1 #2 #3 #4 { \__scontents_provides_aux:nn {#1} { #2 \ifx\relax#3\relax\else v#3\space\fi #4 } } \cs_new_protected:Npn \__scontents_provides_aux:nn #1 #2 { \tl_gset:cx { ver@#1.sty } {#2} \iow_log:n { Package~#1:~#2 } \ExplSyntaxOn } \__scontents_compat_redefine:Npn \DeclareOption { \__scontents_stararg:nn { \use_none:n } { \use_none:nn } } \__scontents_compat_redefine:Npn \ProcessOptions { \__scontents_stararg:nn { } { } } \int_set:Nn \l__scontents_tmpa_int { \char_value_catcode:n { `\@ } } \char_set_catcode_letter:N \@ \exp_after:wN \ExplSyntaxOff \file_input:n { xparse.sty } \ExplSyntaxOn \char_set_catcode:nn { `\@ } { \l__scontents_tmpa_int } \__scontents_compat_restore: \NewDocumentEnvironment { scontents } { } { \group_begin: \__scontents_scontents_env_begin: } { \__scontents_scontents_env_end: \group_end: } \NewDocumentCommand \__scontents_grab_optional:w { r[] } { \__scontents_grab_optional:n {#1} } \bool_new:N \l__scontents_temp_bool \cs_new_protected:Npn \verbatim { \__scontents_verbatim_aux: \frenchspacing \__scontents_vobeyspaces: \__scontents_xverb: } \cs_new_protected:Npn \__scontents_verbatim_aux: { \skip_vertical:N \parskip \int_set:Nn \parindent { 0pt } \skip_set:Nn \parfillskip { 0pt plus 1fil } \int_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 } } \NewDocumentEnvironment { verbatimsc } { } { \group_begin: \verbatim } { \group_end: } \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'.