diff options
author | Karl Berry <karl@freefriends.org> | 2022-04-04 20:56:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-04-04 20:56:14 +0000 |
commit | 342938e12546357fa049dadca5957de15e1b5d1a (patch) | |
tree | 852afa269eea12fac7dd70e818a838d53cb665a4 /Master/texmf-dist/tex | |
parent | 405e7f6b1c67baf6929d09ef5a8655fb5365b5dd (diff) |
scontents (4apr22)
git-svn-id: svn://tug.org/texlive/trunk@62902 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
4 files changed, 91 insertions, 245 deletions
diff --git a/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv b/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv index 907c9b63b69..d87d8eda772 100644 --- a/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv +++ b/Master/texmf-dist/tex/context/third/scontents/t-scontents.mkiv @@ -6,7 +6,7 @@ %% %% scontents.dtx (with options: `loader,context') %% -%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl> +%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl> %% %% 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 @@ -33,16 +33,16 @@ %% scontents.dtx (with options: `loader,context') %D \module %D [ file=t-scontents, -%D version=1.9, +%D version=2.0, %D title=\CONTEXT\ User Module, %D subtitle=Storing Contents, %D author=Pablo González, -%D date=2020-01-21, +%D date=2022-04-04, %D copyright=Pablo González, %D email=pablgonz@educarchile.cl, %D license=LPPL] -\def\ScontentsFileDate{2020-01-21}% -\def\ScontentsFileVersion{1.9}% +\def\ScontentsFileDate{2022-04-04}% +\def\ScontentsFileVersion{2.0}% \def\ScontentsFileDescription{Stores LaTeX contents in memory or files}% \writestatus{loading}{User Module scontents v\ScontentsFileVersion} \unprotect @@ -52,12 +52,12 @@ v\ScontentsFileVersion\space \ScontentsFileDescription } \iow_log:x { Package: ~ scontents ~ \use:c { ver @ scontents . sty } } \tl_new:N \g__scontents_end_verbatimsc_tl -\tl_gset_rescan:Nnn - \g__scontents_end_verbatimsc_tl +\tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl { \char_set_catcode_other:N \\ } { \stopverbatimsc } +\tl_new:N \l__scontents_env_name_tl \tl_const:Nx \c__scontents_end_env_tl { \c_backslash_str @@ -67,89 +67,17 @@ \file_input:n { scontents-code.tex } \cs_new:Npn \__scontents_format_case:nnn #1 #2 #3 {#3} % ConTeXt -\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 \tl_if_empty:nF {#3} {#3~} #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 +\file_input:n { xparse-generic.tex } \char_set_catcode:nn { `\@ } { \l__scontents_tmpa_int } -\__scontents_compat_restore: -\NewDocumentCommand { \newenvsc } { m O{} } +\keys_define:nn { scontents } + { verb-font .initial:n = \tt } +\NewDocumentCommand \newenvsc { m O{} } { \cs_if_exist:cTF { start #1 } { \msg_error:nnn { scontents } { env-already-defined } {#1} } - { \__scontents_scontents_setenv:nn {#1} {#2} } + { \__scontents_env_setting:nn {#1} {#2} } } \cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3 { @@ -174,28 +102,28 @@ \cs_new:Npn \dospecials { \seq_map_function:NN \l_char_special_seq \do } } -\NewDocumentCommand { \Scontents }{ !s !O{} } +\NewDocumentCommand \Scontents { !s !O{} } { \__scontents_Scontents_internal:nn {#1} {#2} } -\NewDocumentCommand { \__scontents_verb_arg:w } { +v } +\NewDocumentCommand \__scontents_verb_arg:w { +v } { \__scontents_verb_arg_internal:n {#1} } -\NewDocumentCommand { \getstored } { O{-1} m } +\NewDocumentCommand \getstored { O{-1} m } { \__scontents_getstored_internal:nn {#1} {#2} } -\NewDocumentCommand { \foreachsc } { o m } +\NewDocumentCommand \foreachsc { o m } { \__scontents_foreachsc_internal:nn {#1} {#2} } -\NewDocumentCommand { \typestored } { o m } +\NewDocumentCommand \typestored { o m } { \__scontents_typestored_internal:nn {#1} {#2} } \definetyping[verbatimsc] \group_begin: \cs_new_protected:Npn \__scontents_plain_disable_outer_par: { } \group_end: -\NewDocumentCommand { \setupsc } { +m } +\NewDocumentCommand \setupsc { +m } { \keys_set:nn { scontents } {#1} } -\NewDocumentCommand { \meaningsc } { o m } +\NewDocumentCommand \meaningsc { o m } { \__scontents_meaningsc_internal:nn {#1} {#2} } -\NewExpandableDocumentCommand { \countsc } { m } +\NewExpandableDocumentCommand \countsc { m } { \seq_count:c { g__scontents_name_#1_seq } } -\NewDocumentCommand { \cleanseqsc } { m } +\NewDocumentCommand \cleanseqsc { m } { \seq_clear_new:c { g__scontents_name_#1_seq } } \ExplSyntaxOff \endinput diff --git a/Master/texmf-dist/tex/generic/scontents/scontents-code.tex b/Master/texmf-dist/tex/generic/scontents/scontents-code.tex index 2901886b2e0..01c115c058c 100644 --- a/Master/texmf-dist/tex/generic/scontents/scontents-code.tex +++ b/Master/texmf-dist/tex/generic/scontents/scontents-code.tex @@ -6,7 +6,7 @@ %% %% scontents.dtx (with options: `core') %% -%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl> +%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl> %% %% 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 @@ -27,7 +27,7 @@ %% t-scontents.mkiv and %% scontents-code.tex. %% -\def\ScontentsCoreFileDate{2020-01-21}% +\def\ScontentsCoreFileDate{2022-04-04}% \begingroup \catcode32=10 \endlinechar=32 @@ -70,6 +70,11 @@ \fi \fi \next +\tl_new:N \l__scontents_macro_tmp_tl +\tl_new:N \l__scontents_temp_tl +\tl_new:N \g__scontents_temp_tl +\int_new:N \l__scontents_tmpa_int +\bool_new:N \l__scontents_temp_bool \keys_define:nn { scontents } { store-env .tl_set:N = \l__scontents_name_seq_env_tl, @@ -100,22 +105,20 @@ store-all .meta:n = { store-env = #1 , store-cmd = #1 }, store-all .value_required:n = true } -\tl_new:N \l__scontents_macro_tmp_tl \tl_new:N \l__scontents_fname_out_tl -\tl_new:N \l__scontents_temp_tl -\tl_new:N \l__scontents_file_tl -\tl_new:N \g__scontents_temp_tl +\tl_new:N \l__scontents_every_line_env_tl +\iow_new:N \l__scontents_file_iow \tl_new:N \l__scontents_foreach_name_seq_tl \tl_new:N \l__scontents_foreach_before_tl \tl_new:N \l__scontents_foreach_after_tl \int_new:N \l__scontents_foreach_stop_int \int_new:N \l__scontents_seq_item_int \int_new:N \l__scontents_env_nesting_int -\int_new:N \l__scontents_tmpa_int \bool_new:N \l__scontents_writing_bool \bool_set_false:N \l__scontents_writing_bool \bool_new:N \l__scontents_storing_bool \bool_set_true:N \l__scontents_storing_bool +\bool_new:N \l__scontents_writable_bool \bool_new:N \l__scontents_foreach_before_bool \bool_set_false:N \l__scontents_foreach_before_bool \bool_new:N \l__scontents_foreach_after_bool @@ -124,13 +127,13 @@ \bool_set_false:N \l__scontents_foreach_stop_bool \bool_new:N \l__scontents_foreach_wrapper_bool \bool_set_false:N \l__scontents_foreach_wrapper_bool -\bool_new:N \l__scontents_writable_bool \seq_new:N \l__scontents_foreach_print_seq \str_const:Nx \c__scontents_hidden_space_str { \c_percent_str \c_circumflex_str \c_circumflex_str A scheol \c_percent_str } \quark_new:N \q__scontents_stop \quark_new:N \q__scontents_mark -\iow_new:N \l__scontents_file_iow +\int_new:N \l__scontents_save_sf_int +\skip_new:N \l__scontents_save_skip \cs_new_protected:Npn \__scontents_rescan_tokens:n #1 { \tex_scantokens:D {#1} } \cs_generate_variant:Nn \__scontents_rescan_tokens:n { V, x } \cs_new:Npx \__scontents_tab: { \c_space_tl } @@ -172,7 +175,7 @@ \bool_set_true:N \l__scontents_writing_bool \tl_set:Nn \l__scontents_fname_out_tl {#1} }, - write-env .value_required:n = true, + write-cmd .value_required:n = true, write-out .value_required:n = true, print-cmd .meta:nn = { scontents } { print-cmd = #1 }, print-cmd .default:n = true, @@ -223,7 +226,7 @@ unknown .code:n = { \__scontents_parse_type_meaning_key:n {#1} } } \cs_new_protected:Npn \__scontents_parse_environment_keys:n #1 - { \exp_args:NV \__scontents_parse_environment_keys:nn \l_keys_key_tl {#1} } + { \exp_args:NV \__scontents_parse_environment_keys:nn \l_keys_key_str {#1} } \cs_new_protected:Npn \__scontents_parse_environment_keys:nn #1#2 { \tl_if_blank:nTF {#2} @@ -231,7 +234,7 @@ { \msg_error:nnnn { scontents } { env-key-value-unknown } {#1} {#2} } } \cs_new_protected:Npn \__scontents_parse_command_keys:n #1 - { \exp_args:NV \__scontents_parse_command_keys:nn \l_keys_key_tl {#1} } + { \exp_args:NV \__scontents_parse_command_keys:nn \l_keys_key_str {#1} } \cs_new_protected:Npn \__scontents_parse_command_keys:nn #1#2 { \tl_if_blank:nTF {#2} @@ -245,9 +248,9 @@ { \msg_error:nnnn { scontents } { for-key-value-unknown } {#1} {#2} } } \cs_new_protected:Npn \__scontents_parse_foreach_keys:n #1 - { \exp_args:NV \__scontents_parse_foreach_keys:nn \l_keys_key_tl {#1} } + { \exp_args:NV \__scontents_parse_foreach_keys:nn \l_keys_key_str {#1} } \cs_new_protected:Npn \__scontents_parse_type_meaning_key:n #1 - { \exp_args:NV \__scontents_parse_type_meaning_key:nn \l_keys_key_tl {#1} } + { \exp_args:NV \__scontents_parse_type_meaning_key:nn \l_keys_key_str {#1} } \cs_new_protected:Npn \__scontents_parse_type_meaning_key:nn #1#2 { \tl_if_empty:fTF { \int_to_roman:n { -0 #1 } } @@ -303,8 +306,7 @@ \tl_log:N #1 \__scontents_append_contents:Vx #2 { \exp_not:V #1 } } -\tl_new:N \l__scontents_env_name_tl -\cs_new_protected:Npn \__scontents_scontents_setenv:nn #1 #2 +\cs_new_protected:Npn \__scontents_env_setting:nn #1 #2 { \cs_new_protected:cpn { __scontents_#1_env_begin: } { @@ -329,7 +331,7 @@ { \__scontents_stop_environment: \__scontents_finish_storing:NNN \l__scontents_macro_tmp_tl - \l__scontents_name_seq_env_tl \l__scontents_print_env_bool + \l__scontents_name_seq_env_tl \l__scontents_print_env_bool } \cs_new_protected:Npn \__scontents_grab_optional:n #1 { @@ -376,8 +378,7 @@ { \l__scontents_storing_bool } { \tl_if_empty_p:N \l__scontents_macro_tmp_tl } { - \msg_warning:nnx { scontents } { empty-environment } - { \l__scontents_env_name_tl } + \msg_warning:nnx { scontents } { empty-environment } { \l__scontents_env_name_tl } } } \cs_new_protected:Npn \__scontents_file_tl_write_start:n #1 @@ -389,7 +390,7 @@ \iow_open:Nn \l__scontents_file_iow {#1} } { \bool_set_false:N \l__scontents_writable_bool } - \tl_clear:N \l__scontents_file_tl + \tl_clear:N \l__scontents_every_line_env_tl \seq_map_function:NN \l_char_special_seq \char_set_catcode_other:N \int_step_function:nnnN { 128 } { 1 } { 255 } \char_set_catcode_letter:n \cs_set_protected:Npx \__scontents_ret:w ##1 ^^M @@ -471,7 +472,7 @@ \bool_if:NT \l__scontents_storing_bool { \tl_set:Nn \exp_not:N #1 - { \exp_args:NV \__scontents_remove_leading_nl:n \l__scontents_file_tl } + { \exp_args:NV \__scontents_remove_leading_nl:n \l__scontents_every_line_env_tl } } } } @@ -497,7 +498,7 @@ \bool_if:NT \l__scontents_writable_bool { \iow_now:Nn \l__scontents_file_iow {#1} } \bool_if:NT \l__scontents_storing_bool - { \tl_put_right:Nn \l__scontents_file_tl { ^^J #1 } } + { \tl_put_right:Nn \l__scontents_every_line_env_tl { ^^J #1 } } } \group_end: \cs_generate_variant:Nn \__scontents_verb_processor_output:n { x } @@ -589,14 +590,12 @@ \cs_new:Npn \dospecials { \seq_map_function:NN \l_char_special_seq \do } } -\int_new:N \l__scontents_save_sf_int -\dim_new:N \l__scontents_save_skip_dim \cs_new_protected:Npn \__scontents_bsphack: { \scan_stop: \mode_if_horizontal:T { - \dim_set_eq:NN \l__scontents_save_skip_dim \tex_lastskip:D + \skip_set_eq:NN \l__scontents_save_skip \tex_lastskip:D \int_set_eq:NN \l__scontents_save_sf_int \tex_spacefactor:D } } @@ -606,9 +605,9 @@ \mode_if_horizontal:T { \int_set_eq:NN \tex_spacefactor:D \l__scontents_save_sf_int - \dim_compare:nNnT { \l__scontents_save_skip_dim } > { \c_zero_dim } + \dim_compare:nNnT { \l__scontents_save_skip } > { \c_zero_skip } { - \dim_compare:nNnT { \tex_lastskip:D } = { \c_zero_dim } + \skip_if_eq:nnT { \tex_lastskip:D } { \c_zero_skip } { \nobreak \skip_horizontal:n { \c_zero_skip } @@ -642,8 +641,10 @@ \cs_new_protected:Npn \__scontents_Scontents_finish: { \__scontents_file_write_cmd:VV \l__scontents_fname_out_tl \l__scontents_temp_tl - \__scontents_finish_storing:NNN \l__scontents_temp_tl - \l__scontents_name_seq_cmd_tl \l__scontents_print_cmd_bool + \__scontents_finish_storing:NNN + \l__scontents_temp_tl + \l__scontents_name_seq_cmd_tl + \l__scontents_print_cmd_bool \use:x { \group_end: @@ -659,6 +660,7 @@ \iow_close:N \l__scontents_file_iow } } +\cs_generate_variant:Nn \__scontents_file_write_cmd:nn { VV } \prg_new_protected_conditional:Npnn \__scontents_file_if_writable:n #1 { T, F, TF } { \bool_if:NTF \l__scontents_writing_bool @@ -682,7 +684,6 @@ } { \prg_return_false: } } -\cs_generate_variant:Nn \__scontents_file_write_cmd:nn { VV } \cs_new_protected:Npn \__scontents_getstored_internal:nn #1 #2 { \group_begin: diff --git a/Master/texmf-dist/tex/generic/scontents/scontents.tex b/Master/texmf-dist/tex/generic/scontents/scontents.tex index 805c0430047..333f195ab95 100644 --- a/Master/texmf-dist/tex/generic/scontents/scontents.tex +++ b/Master/texmf-dist/tex/generic/scontents/scontents.tex @@ -6,7 +6,7 @@ %% %% scontents.dtx (with options: `loader,plain') %% -%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl> +%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl> %% %% 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 @@ -27,8 +27,8 @@ %% t-scontents.mkiv and %% scontents-code.tex. %% -\def\ScontentsFileDate{2020-01-21}% -\def\ScontentsFileVersion{1.9}% +\def\ScontentsFileDate{2022-04-04}% +\def\ScontentsFileVersion{2.0}% \def\ScontentsFileDescription{Stores LaTeX contents in memory or files}% \input expl3-generic.tex \ExplSyntaxOn @@ -44,12 +44,12 @@ \file_input_stop: } \tl_new:N \g__scontents_end_verbatimsc_tl -\tl_gset_rescan:Nnn - \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 @@ -59,89 +59,17 @@ \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 \tl_if_empty:nF {#3} {#3~} #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 +\file_input:n { xparse-generic.tex } \char_set_catcode:nn { `\@ } { \l__scontents_tmpa_int } -\__scontents_compat_restore: -\NewDocumentCommand { \newenvsc } { m O{} } +\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_scontents_setenv:nn {#1} {#2} } + { \__scontents_env_setting:nn {#1} {#2} } } \cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3 { @@ -160,7 +88,6 @@ { \__scontents_grab_optional:n {#1} } \cs_new_protected:Npn \__scontents_analyse_nesting_format:n { \__scontents_analyse_nesting_generic:nn { } } -\bool_new:N \l__scontents_temp_bool \cs_new_protected:Npn \verbatimsc { \group_begin: @@ -172,9 +99,9 @@ \cs_new_protected:Npn \__scontents_verbatimsc_aux: { \skip_vertical:N \parskip - \int_set:Nn \parindent { 0pt } + \dim_zero:N \parindent \skip_set:Nn \parfillskip { 0pt plus 1fil } - \int_set:Nn \parskip { 0pt plus0pt minus0pt } + \skip_set:Nn \parskip { 0pt plus0pt minus0pt } \tex_par:D \bool_set_false:N \l__scontents_temp_bool \cs_set:Npn \par @@ -211,15 +138,15 @@ \cs_new:Npn \dospecials { \seq_map_function:NN \l_char_special_seq \do } } -\NewDocumentCommand { \Scontents }{ !s !O{} } +\NewDocumentCommand \Scontents { !s !O{} } { \__scontents_Scontents_internal:nn {#1} {#2} } -\NewDocumentCommand { \__scontents_verb_arg:w } { +v } +\NewDocumentCommand \__scontents_verb_arg:w { +v } { \__scontents_verb_arg_internal:n {#1} } -\NewDocumentCommand { \getstored } { O{-1} m } +\NewDocumentCommand \getstored { O{-1} m } { \__scontents_getstored_internal:nn {#1} {#2} } -\NewDocumentCommand { \foreachsc } { o m } +\NewDocumentCommand \foreachsc { o m } { \__scontents_foreachsc_internal:nn {#1} {#2} } -\NewDocumentCommand { \typestored } { o m } +\NewDocumentCommand \typestored { o m } { \__scontents_typestored_internal:nn {#1} {#2} } \use:x { @@ -238,13 +165,13 @@ } } \group_end: -\NewDocumentCommand { \setupsc } { +m } +\NewDocumentCommand \setupsc { +m } { \keys_set:nn { scontents } {#1} } -\NewDocumentCommand { \meaningsc } { o m } +\NewDocumentCommand \meaningsc { o m } { \__scontents_meaningsc_internal:nn {#1} {#2} } -\NewExpandableDocumentCommand { \countsc } { m } +\NewExpandableDocumentCommand \countsc { m } { \seq_count:c { g__scontents_name_#1_seq } } -\NewDocumentCommand { \cleanseqsc } { m } +\NewDocumentCommand \cleanseqsc { m } { \seq_clear_new:c { g__scontents_name_#1_seq } } \ExplSyntaxOff \endinput diff --git a/Master/texmf-dist/tex/latex/scontents/scontents.sty b/Master/texmf-dist/tex/latex/scontents/scontents.sty index 13ff98bfabb..af503554a91 100644 --- a/Master/texmf-dist/tex/latex/scontents/scontents.sty +++ b/Master/texmf-dist/tex/latex/scontents/scontents.sty @@ -6,7 +6,7 @@ %% %% scontents.dtx (with options: `loader,latex') %% -%% Copyright (C) 2019-2020 by Pablo González L <pablgonz@educarchile.cl> +%% Copyright (C) 2019-2022 by Pablo González L <pablgonz@educarchile.cl> %% %% 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 @@ -27,31 +27,21 @@ %% t-scontents.mkiv and %% scontents-code.tex. %% -\def\ScontentsFileDate{2020-01-21}% -\def\ScontentsFileVersion{1.9}% +\def\ScontentsFileDate{2022-04-04}% +\def\ScontentsFileVersion{2.0}% \def\ScontentsFileDescription{Stores LaTeX contents in memory or files}% -\RequirePackage{expl3,xparse,l3keys2e}[2019/05/28] +\RequirePackage{l3keys2e}[2020/02/08] \ProvidesExplPackage {scontents} {\ScontentsFileDate} {\ScontentsFileVersion} {\ScontentsFileDescription} -\@ifpackageloaded { verbatim } - { - \msg_set:nnn { scontents } { unsupported-verbatim } - { - The~implementation~of~the~'verbatimsc'~environment~used~by~ - \iow_char:N \\typestored~is~not~compatible~with~package~'verbatim'.~ - Review~the~documentation~and~redefine~the~'verbatimsc'~environment. - } - \msg_warning:nn { scontents } { unsupported-verbatim } - } { } \tl_new:N \g__scontents_end_verbatimsc_tl -\tl_gset_rescan:Nnn - \g__scontents_end_verbatimsc_tl +\tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl { \char_set_catcode_other:N \\ \char_set_catcode_other:N \{ \char_set_catcode_other:N \} } { \end{verbatimsc} } +\tl_new:N \l__scontents_env_name_tl \tl_const:Nx \c__scontents_end_env_tl { \c_backslash_str @@ -66,11 +56,11 @@ \keys_define:nn { scontents } { verb-font .initial:n = \ttfamily } \ProcessKeysOptions { scontents } -\NewDocumentCommand { \newenvsc } { m O{} } +\NewDocumentCommand \newenvsc { m O{} } { \cs_if_exist:cTF { #1 } { \msg_error:nnn { scontents } { env-already-defined } {#1} } - { \__scontents_scontents_setenv:nn {#1} {#2} } + { \__scontents_env_setting:nn {#1} {#2} } } \cs_new_protected:Npn \__scontents_env_define:nnn #1 #2 #3 { @@ -89,15 +79,15 @@ \__scontents_analyse_nesting_latex:n \cs_gset_eq:NN \__scontents_bsphack: \@bsphack \cs_gset_eq:NN \__scontents_esphack: \@esphack -\NewDocumentCommand { \Scontents }{ !s !O{} } +\NewDocumentCommand \Scontents { !s !O{} } { \__scontents_Scontents_internal:nn {#1} {#2} } -\NewDocumentCommand { \__scontents_verb_arg:w } { +v } +\NewDocumentCommand \__scontents_verb_arg:w { +v } { \__scontents_verb_arg_internal:n {#1} } -\NewDocumentCommand { \getstored } { O{-1} m } +\NewDocumentCommand \getstored { O{-1} m } { \__scontents_getstored_internal:nn {#1} {#2} } -\NewDocumentCommand { \foreachsc } { o m } +\NewDocumentCommand \foreachsc { o m } { \__scontents_foreachsc_internal:nn {#1} {#2} } -\NewDocumentCommand { \typestored } { o m } +\NewDocumentCommand \typestored { o m } { \__scontents_typestored_internal:nn {#1} {#2} } \use:x { @@ -110,18 +100,18 @@ \cs_set_eq:cN { @xverbatim } \__scontents_xverb: \verbatim } - { } + { \endverbatim } \group_begin: \cs_new_protected:Npn \__scontents_plain_disable_outer_par: { } \group_end: -\NewDocumentCommand { \setupsc } { +m } +\NewDocumentCommand \setupsc { +m } { \keys_set:nn { scontents } {#1} } -\NewDocumentCommand { \meaningsc } { o m } +\NewDocumentCommand \meaningsc { o m } { \__scontents_meaningsc_internal:nn {#1} {#2} } -\NewExpandableDocumentCommand { \countsc } { m } +\NewExpandableDocumentCommand \countsc { m } { \seq_count:c { g__scontents_name_#1_seq } } -\NewDocumentCommand { \cleanseqsc } { m } +\NewDocumentCommand \cleanseqsc { m } { \seq_clear_new:c { g__scontents_name_#1_seq } } \endinput %% |