summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/scontents
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-10-23 21:39:58 +0000
committerKarl Berry <karl@freefriends.org>2019-10-23 21:39:58 +0000
commit90fffe82619f702549289580dd7679442168c3c9 (patch)
treeacac03627c108511ce022ac05ed05fc8e4c24063 /Master/texmf-dist/tex/latex/scontents
parentc34500f7d70733c92e29ce064dcdab40a4cc8ed0 (diff)
scontents (23oct19)
git-svn-id: svn://tug.org/texlive/trunk@52502 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/scontents')
-rw-r--r--Master/texmf-dist/tex/latex/scontents/scontents.sty592
1 files changed, 48 insertions, 544 deletions
diff --git a/Master/texmf-dist/tex/latex/scontents/scontents.sty b/Master/texmf-dist/tex/latex/scontents/scontents.sty
index 48aba087349..1639f07f615 100644
--- a/Master/texmf-dist/tex/latex/scontents/scontents.sty
+++ b/Master/texmf-dist/tex/latex/scontents/scontents.sty
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% scontents.dtx (with options: `package')
+%% scontents.dtx (with options: `loader,latex')
%%
%% Copyright (C) 2019 by Pablo González L <pablgonz@educarchile.cl>
%%
@@ -20,67 +20,29 @@
%% This work is "maintained" (as per the LPPL maintenance status)
%% by Pablo González Luengo.
%%
-%% This work consists of the file scontents.dtx
-%% and the derived files scontents.ins,
-%% scontents.pdf and
-%% scontents.sty.
+%% This work consists of the files scontents.dtx and
+%% scontents.ins,
+%% and the derived files scontents.sty,
+%% scontents.tex,
+%% t-scontents.mkvi and
+%% scontents-code.tex.
%%
-\RequirePackage{l3keys2e}
-\RequirePackage{xparse}[2019/05/28]
-\ProvidesExplPackage{scontents}{2019/10/03}{1.4}
- {Stores LaTeX contents in memory or files}
-\@ifpackagelater { expl3 } { 2019/09/19 }
- { }
- {
- \PackageError { scontents } { Support~package~expl3~too~old }
+\def\ScontentsFileDate{2019-10-24}%
+\def\ScontentsFileVersion{1.5}%
+\def\ScontentsFileDescription{Stores LaTeX contents in memory or files}%
+\RequirePackage{expl3,xparse,l3keys2e}[2019/05/28]
+\ProvidesExplPackage
+ {scontents} {\ScontentsFileDate} {\ScontentsFileVersion} {\ScontentsFileDescription}
+\@ifpackageloaded { verbatim }
+ {
+ \iow_term:n
{
- You~need~to~update~your~installation~of~the~bundles~
- 'l3kernel'~and~'l3packages'.\MessageBreak
- Loading~scontents~will~abort!
+ The~implementation~of~the~'verbatimsc'~environment~\\
+ used~by~\tl_to_str:n{\typestored}~is~not~compatible~with~package\\
+ 'verbatim'.~Review~the~documentation~and~redefine~\\
+ the~'verbatimsc'~environment.
}
- \file_input_stop:
- }
-\keys_define:nn { scontents }
- {
- store-env .tl_set:N = \l__scontents_name_seq_env_tl,
- store-env .initial:n = contents,
- store-env .value_required:n = true,
- store-cmd .tl_set:N = \l__scontents_name_seq_cmd_tl,
- store-cmd .initial:n = contents,
- store-cmd .value_required:n = true,
- verb-font .tl_set:N = \l__scontents_verb_font_tl,
- verb-font .initial:n = \ttfamily,
- verb-font .value_required:n = true,
- print-env .bool_set:N = \l__scontents_print_env_bool,
- print-env .initial:n = false,
- print-env .default:n = true,
- print-cmd .bool_set:N = \l__scontents_print_cmd_bool,
- print-cmd .initial:n = false,
- print-cmd .default:n = true,
- force-eol .bool_set:N = \l__scontents_forced_eol_bool,
- force-eol .initial:n = false,
- force-eol .default:n = true,
- width-tab .int_set:N = \l__scontents_tab_width_int,
- width-tab .initial:n = 1,
- width-tab .value_required:n = true,
- print-all .meta:n = { print-env = #1 , print-cmd = #1 },
- print-all .default:n = true,
- store-all .meta:n = { store-env = #1 , store-cmd = #1 },
- store-all .value_required:n = true
- }
-\ProcessKeysOptions { scontents }
-\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
-\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
+ } { }
\tl_new:N \g__scontents_end_verbatimsc_tl
\tl_gset_rescan:Nnn
\g__scontents_end_verbatimsc_tl
@@ -91,521 +53,63 @@
}
{ \end{verbatimsc} }
\tl_const:Nx \c__scontents_end_env_tl
- { \c_backslash_str end \c_left_brace_str scontents \c_right_brace_str }
-\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
-\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 }
-\cs_new:Npn \__scontents_par: { ^^J ^^J }
-\cs_generate_variant:Nn \tl_remove_once:Nn { NV }
-\cs_generate_variant:Nn \tl_replace_all:Nnn { Nx, Nxx, Nnx }
-\prg_generate_conditional_variant:Nnn \tl_if_empty:n { f } { TF }
-\keys_define:nn { scontents / scontents }
- {
- write-env .code:n = {
- \bool_set_true:N \l__scontents_writing_bool
- \tl_set:Nn \l__scontents_fname_out_tl {#1}
- },
- write-out .code:n = {
- \bool_set_false:N \l__scontents_storing_bool
- \bool_set_true:N \l__scontents_writing_bool
- \tl_set:Nn \l__scontents_fname_out_tl {#1}
- },
- write-env .value_required:n = true,
- write-out .value_required:n = true,
- print-env .meta:nn = { scontents } { print-env = #1 },
- print-env .default:n = true,
- store-env .meta:nn = { scontents } { store-env = #1 },
- force-eol .meta:nn = { scontents } { force-eol = #1 },
- force-eol .default:n = true,
- unknown .code:n = { \__scontents_parse_environment_keys:n {#1} }
- }
-\keys_define:nn { scontents / Scontents }
- {
- print-cmd .meta:nn = { scontents } { print-cmd = #1 },
- print-cmd .default:n = true,
- store-cmd .meta:nn = { scontents } { store-cmd = #1 },
- force-eol .meta:nn = { scontents } { force-eol = #1 },
- force-eol .default:n = true,
- unknown .code:n = { \__scontents_parse_command_keys:n {#1} }
- }
-\keys_define:nn { scontents / typemeaning }
- {
- width-tab .meta:nn = { scontents } { width-tab = #1 },
- 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} }
-\cs_new_protected:Npn \__scontents_parse_environment_keys:nn #1#2
{
- \tl_if_blank:nTF {#2}
- { \msg_error:nnn { scontents } { env-key-unknown } {#1} }
- { \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} }
-\cs_new_protected:Npn \__scontents_parse_command_keys:nn #1#2
- {
- \tl_if_blank:nTF {#2}
- { \msg_error:nnn { scontents } { cmd-key-unknown } {#1} }
- { \msg_error:nnnn { scontents } { cmd-key-value-unknown } {#1} {#2} }
- }
-\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} }
-\cs_new_protected:Npn \__scontents_parse_type_meaning_key:nn #1#2
- {
- \tl_if_empty:fTF { \int_to_roman:n { -0 #1 } }
- {
- \tl_if_blank:nTF {#2}
- { \int_set:Nn \l__scontents_seq_item_int {#1} }
- { \msg_error:nnnn { scontents } { type-key-value-unknown } {#1} {#2} }
- }
- {
- \tl_if_blank:nTF {#2}
- { \msg_error:nnn { scontents } { type-key-unknown } {#1} }
- { \msg_error:nnnn { scontents } { type-key-value-unknown } {#1} {#2} }
- }
- }
-\cs_new_protected:Npn \__scontents_append_contents:nn #1#2
- {
- \tl_if_blank:nT {#1}
- { \msg_error:nn { scontents } { empty-store-cmd } }
- \seq_if_exist:cF { g__scontents_name_#1_seq }
- { \seq_new:c { g__scontents_name_#1_seq } }
- \seq_gput_right:cn { g__scontents_name_#1_seq } {#2}
- }
-\cs_generate_variant:Nn \__scontents_append_contents:nn { Vx }
-\cs_new:Npn \__scontents_getfrom_seq:nn #1#2
- {
- \seq_if_exist:cTF { g__scontents_name_#2_seq }
- {
- \exp_args:Nf \__scontents_getfrom_seq:nnn
- { \seq_count:c { g__scontents_name_#2_seq } }
- {#1} {#2}
- }
- { \msg_expandable_error:nnn { scontents } { undefined-storage } {#2} }
- }
-\cs_new:Npn \__scontents_getfrom_seq:nnn #1#2#3
- {
- \bool_lazy_or:nnTF
- { \int_compare_p:nNn {#2} = { 0 } }
- { \int_compare_p:nNn { \int_abs:n {#2} } > {#1} }
- { \msg_expandable_error:nnnnn { scontents } { index-out-of-range } {#2} {#3} {#1} }
- { \seq_item:cn { g__scontents_name_#3_seq } {#2} }
- }
-\cs_new_protected:Npn \__scontents_lastfrom_seq:n #1
- {
- \tl_gset:Nx \g__scontents_temp_tl { \seq_item:cn { g__scontents_name_#1_seq } {-1} }
- \group_insert_after:N \__scontents_rescan_tokens:V
- \group_insert_after:N \g__scontents_temp_tl
- \group_insert_after:N \tl_gclear:N
- \group_insert_after:N \g__scontents_temp_tl
- }
-\cs_new_protected:Npn \__scontents_store_to_seq:NN #1#2
- {
- \tl_log:N #1
- \__scontents_append_contents:Vx #2 { \exp_not:V #1 }
+ \c_backslash_str
+ end
+ \c_left_brace_str
+ scontents
+ \c_right_brace_str
}
+\file_input:n { scontents-code.tex }
+\cs_new:Npn \__scontents_format_case:nnn #1 #2 #3
+ {#1} % LaTeX
+\keys_define:nn { scontents }
+ { verb-font .initial:n = \ttfamily }
+\ProcessKeysOptions { scontents }
\NewDocumentEnvironment { scontents } { }
{
- \char_set_catcode_active:N \^^M
- \__scontents_start_environment:w
+ \__scontents_scontents_env_begin:
}
{
- \__scontents_stop_environment:
- \__scontents_atend_environment:
- }
-\cs_new_protected:Npn \__scontents_environment_inline:w
- {
- \peek_charcode_ignore_spaces:NTF [ % ]
- { \__scontents_environment_keys:w }
- {
- \__scontents_environment_junk:xw
- { after~\c_backslash_str begin{scontents} }
- }
- }
-\cs_new_protected:Npn \__scontents_environment_keys:w [ #1 ]
- {
- \keys_set:nn { scontents / scontents } {#1}
- \__scontents_environment_junk:xw
- { after~optional~argument~to~\c_backslash_str begin{scontents} }
- }
-\cs_new_protected:Npn \__scontents_environment_junk:nw #1 #2 \q__scontents_mark
- {
- \tl_if_blank:nF {#2}
- { \msg_error:nnnn { scontents } { junk-after-begin } {#1} {#2} }
- }
-\cs_generate_variant:Nn \__scontents_environment_junk:nw { x }
-\group_begin:
- \char_set_catcode_active:N \^^I
- \char_set_catcode_active:N \^^L
- \char_set_catcode_active:N \^^M
- \cs_new_protected:Npn \__scontents_start_environment:w #1 ^^M
- {
- \__scontents_environment_inline:w #1 \q__scontents_mark
- \__scontents_make_control_chars_active:
- \group_begin:
- \__scontents_file_tl_write_start:V \l__scontents_fname_out_tl
- }
- \cs_new_protected:Npn \__scontents_stop_environment:
- {
- \__scontents_file_write_stop:N \l__scontents_macro_tmp_tl
- \exp_args:NNNV
- \group_end:
- \tl_set:Nn \l__scontents_macro_tmp_tl \l__scontents_macro_tmp_tl
- }
- \cs_new_protected:Npn \__scontents_file_tl_write_start:n #1
- {
- \group_begin:
- \bool_if:NT \l__scontents_writing_bool
- {
- \file_if_exist:nTF {#1}
- { \msg_warning:nnx { scontents } { rewriting-file } {#1} }
- { \msg_warning:nnx { scontents } { writing-file } {#1} }
- \iow_open:Nn \l__scontents_file_iow {#1}
- }
- \tl_clear:N \l__scontents_file_tl
- \seq_map_function:NN \l_char_special_seq \char_set_catcode_other:N
- \int_step_function:nnN { 128 } { 255 } \char_set_catcode_letter:n
- \cs_set_protected:Npx \__scontents_ret:w ##1 ^^M
- {
- \exp_not:N \__scontents_verb_processor_iterate:w
- ##1 \c__scontents_end_env_tl
- \c__scontents_end_env_tl
- \exp_not:N \q__scontents_stop
- }
- \__scontents_make_control_chars_active:
- \__scontents_ret:w
- }
- \use:x
- {
- \cs_new:Npn \exp_not:N \__scontents_verb_processor_iterate:w
- ##1 \c__scontents_end_env_tl
- ##2 \c__scontents_end_env_tl
- ##3 \exp_not:N \q__scontents_stop
- } {
- \tl_if_blank:nTF {#3}
- {
- \__scontents_analyse_nesting:n {#1}
- \__scontents_verb_processor_output:n {#1}
- }
- {
- \__scontents_if_nested:TF
- {
- \__scontents_nesting_decr:
- \__scontents_verb_processor_output:x
- { \exp_not:n {#1} \c__scontents_end_env_tl \exp_not:n {#2} }
- }
- {
- \tl_if_blank:nF {#1}
- { \__scontents_verb_processor_output:n {#1} }
- \cs_set_protected:Npx \__scontents_ret:w
- {
- \exp_not:N \end{scontents}
- \bool_lazy_or:nnF
- { \tl_if_blank_p:n {#2} }
- { \str_if_eq_p:ee {#2} { \c_percent_str } }
- {
- \msg_warning:nnn { scontents } { rescanning-text } {#2}
- \__scontents_rescan_tokens:n {#2}
- }
- }
- \char_set_active_eq:NN ^^M \__scontents_ret:w
- }
- }
- ^^M
- }
- \cs_new_protected:Npn \__scontents_file_write_stop:N #1
- {
- \bool_if:NT \l__scontents_writing_bool
- { \iow_close:N \l__scontents_file_iow }
- \use:x
- {
- \group_end:
- \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 }
- }
- }
- }
- \cs_new:Npn \__scontents_remove_leading_nl:n #1
- { \exp_not:o { \__scontents_remove_leading_nl:w #1 } }
- \cs_new:Npn \__scontents_remove_leading_nl:w ^^J { }
- \cs_new_protected:Npn \__scontents_verb_processor_output:n #1
- {
- \bool_if:NT \l__scontents_writing_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 } }
- }
- \cs_generate_variant:Nn \__scontents_verb_processor_output:n { x }
- \cs_new_protected:Npx \__scontents_analyse_nesting:n #1
- {
- \int_zero:N \l__scontents_tmpa_int
- \exp_not:N \__scontents_analyse_nesting:w #1
- \c_backslash_str begin
- \c_left_brace_str \exp_not:N \q__scontents_mark \c_right_brace_str
- \exp_not:N \q__scontents_stop
- \int_compare:nNnT { \l__scontents_tmpa_int } > { 1 }
- { \msg_warning:nn { scontents } { multiple-begin } }
- }
- \use:x
- {
- \cs_new_protected:Npn \exp_not:N \__scontents_analyse_nesting:w ##1
- \c_backslash_str begin \c_left_brace_str ##2 \c_right_brace_str
- } {
- \if_meaning:w \q__scontents_mark #2
- \exp_after:wN \use_i:nn
- \else:
- \exp_after:wN \use_ii:nn
- \fi:
- { \__scontents_use_none_delimit_by_q_stop:w }
- {
- \str_if_eq:eeT {#2} {scontents}
- {
- \int_incr:N \l__scontents_env_nesting_int
- \int_incr:N \l__scontents_tmpa_int
- \__scontents_analyse_nesting:w
- }
- \__scontents_analyse_nesting:w
- }
- }
- \cs_new_protected:Npn \__scontents_nesting_decr:
- { \int_decr:N \l__scontents_env_nesting_int }
- \prg_new_protected_conditional:Npnn \__scontents_if_nested: { TF }
- {
- \int_compare:nNnTF { \l__scontents_env_nesting_int } > { \c_zero_int }
- { \prg_return_true: }
- { \prg_return_false: }
- }
- \cs_new:Npn \__scontents_use_none_delimit_by_q_stop:w #1 \q__scontents_stop { }
-\group_end:
-\cs_generate_variant:Nn \__scontents_file_tl_write_start:n { V }
-\cs_new_protected:Npn \__scontents_atend_environment:
- {
- \bool_if:NT \l__scontents_storing_bool
- {
- \bool_if:NF \l__scontents_forced_eol_bool
- { \tl_put_right:Nx \l__scontents_macro_tmp_tl { \c__scontents_hidden_space_str } }
- \__scontents_store_to_seq:NN \l__scontents_macro_tmp_tl \l__scontents_name_seq_env_tl
- \bool_if:NT \l__scontents_print_env_bool
- { \__scontents_lastfrom_seq:n \l__scontents_name_seq_env_tl }
- }
+ \__scontents_scontents_env_end:
}
+\NewDocumentCommand \__scontents_grab_optional:w { r[] }
+ { \__scontents_grab_optional:n {#1} }
\NewDocumentCommand { \Scontents }{ !s !O{} }
- {
- \group_begin:
- \IfNoValueF {#2}
- { \keys_set:nn { scontents / Scontents } {#2} }
- \char_set_catcode_active:n { 9 }
- \IfBooleanTF {#1}
- { \__scontents_verb_arg:w }
- { \__scontents_norm_arg:n }
- }
-\cs_new_protected:Npn \__scontents_norm_arg:n #1
- {
- \tl_set:Nx \l__scontents_temp_tl { \exp_not:n {#1} }
- \tl_put_right:Nx \l__scontents_temp_tl { \c__scontents_hidden_space_str }
- \__scontents_store_to_seq:NN \l__scontents_temp_tl \l__scontents_name_seq_cmd_tl
- \bool_if:NT \l__scontents_print_cmd_bool
- { \__scontents_lastfrom_seq:n \l__scontents_name_seq_cmd_tl }
- \group_end:
- }
+ { \__scontents_Scontents_internal:nn {#1} {#2} }
\NewDocumentCommand { \__scontents_verb_arg:w } { +v }
- {
- \tl_set:Nx \l__scontents_temp_tl { \exp_not:n {#1} }
- \tl_replace_all:Nxx \l__scontents_temp_tl { \iow_char:N \^^M } { \iow_char:N \^^J }
- \bool_if:NF \l__scontents_forced_eol_bool
- { \tl_put_right:Nx \l__scontents_temp_tl { \c__scontents_hidden_space_str } }
- \__scontents_store_to_seq:NN \l__scontents_temp_tl \l__scontents_name_seq_cmd_tl
- \bool_if:NT \l__scontents_print_cmd_bool
- { \__scontents_lastfrom_seq:n \l__scontents_name_seq_cmd_tl }
- \group_end:
- }
+ { \__scontents_verb_arg_internal:n {#1} }
\NewDocumentCommand { \getstored } { O{1} m }
- {
- \group_begin:
- \__scontents_rescan_tokens:x
- { \__scontents_getfrom_seq:nn {#1} {#2} }
- \group_end:
- }
+ { \__scontents_getstored_internal:nn {#1} {#2} }
+\NewDocumentCommand { \foreachsc } { o m }
+ { \__scontents_foreachsc_internal:nn {#1} {#2} }
\NewDocumentCommand { \typestored } { o m }
- {
- \group_begin:
- \int_set:Nn \l__scontents_seq_item_int { 1 }
- \IfValueT {#1} { \keys_set:nn { scontents / typemeaning } {#1} }
- \tl_set:Nx \l__scontents_temp_tl
- {
- \exp_args:NV \__scontents_getfrom_seq:nn \l__scontents_seq_item_int {#2}
- }
- \tl_remove_once:NV \l__scontents_temp_tl \c__scontents_hidden_space_str
- \tl_log:N \l__scontents_temp_tl
- \tl_if_empty:NF \l__scontents_temp_tl
- { \__scontents_verb_print:N \l__scontents_temp_tl }
- \group_end:
- }
-\group_begin:
- \char_set_catcode_active:N \^^M
- \cs_new_protected:Npn \__scontents_verb_print:N #1
- {
- \tl_if_blank:VT #1
- { \msg_error:nnn { scontents } { empty-variable } {#1} }
- \cs_set_eq:NN \__scontents_verb_print_EOL: ^^M
- \cs_set_eq:NN ^^M \scan_stop:
- \cs_set_eq:cN { do@noligs } \__scontents_do_noligs:N
- \__scontents_rescan_tokens:x
- {
- \exp_not:N \begin{verbatimsc} ^^M
- \exp_not:V #1 ^^M
- \g__scontents_end_verbatimsc_tl
- }
- \cs_set_eq:NN ^^M \__scontents_verb_print_EOL:
- }
-\group_end:
-\cs_new_protected:Npn \__scontents_xverb:
- {
- \char_set_catcode_active:n { 9 }
- \char_set_active_eq:nN { 9 } \__scontents_tabs_to_spaces:
- \__scontents_xverb:w
- }
+ { \__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 \end{verbatimsc} }
}
- { #1 \end{verbatimsc} }
\NewDocumentEnvironment { verbatimsc } { }
{
\cs_set_eq:cN { @xverbatim } \__scontents_xverb:
\verbatim
}
- { }
-\cs_new:Npn \__scontents_tabs_to_spaces:
- { \prg_replicate:nn { \l__scontents_tab_width_int } { ~ } }
-\cs_new:Npn \__scontents_do_noligs:N #1
{
- \char_set_catcode_active:N #1
- \char_set_active_eq:Nc #1 { __scontents_active_char_ \token_to_str:N #1 : }
- \cs_set:cpx { __scontents_active_char_ \token_to_str:N #1 : }
- {
- \mode_leave_vertical:
- \tex_kern:D \c_zero_dim
- \char_generate:nn { `#1 } { 12 }
- }
- }
-\cs_new_protected:Npn \__scontents_set_active_eq:NN #1
- {
- \char_set_catcode_active:N #1
- \char_set_active_eq:NN #1
- }
-\cs_new_protected:Npn \__scontents_make_control_chars_active:
- {
- \__scontents_set_active_eq:NN \^^I \__scontents_tab:
- \__scontents_set_active_eq:NN \^^L \__scontents_par:
- \__scontents_set_active_eq:NN \^^M \__scontents_ret:w
}
+\group_begin:
+ \cs_new_protected:Npn \__scontents_plain_disable_outer_par:
+ { }
+\group_end:
\NewDocumentCommand { \setupsc } { +m }
{ \keys_set:nn { scontents } {#1} }
\NewDocumentCommand { \meaningsc } { o m }
- {
- \group_begin:
- \int_set:Nn \l__scontents_seq_item_int { 1 }
- \IfValueT {#1} { \keys_set:nn { scontents / typemeaning } {#1} }
- \__scontents_meaningsc:n {#2}
- \group_end:
- }
-\group_begin:
- \char_set_catcode_active:N \^^I
- \cs_new_protected:Npn \__scontents_meaningsc:n #1
- {
- \tl_set:Nx \l__scontents_temp_tl
- {
- \exp_args:NV \__scontents_getfrom_seq:nn \l__scontents_seq_item_int {#1}
- }
- \tl_replace_all:Nxn \l__scontents_temp_tl { \iow_char:N \^^J } { ~ }
- \tl_remove_once:NV \l__scontents_temp_tl \c__scontents_hidden_space_str
- \tl_log:N \l__scontents_temp_tl
- \tl_use:N \l__scontents_verb_font_tl
- \tl_replace_all:Nnx \l__scontents_temp_tl { ^^I } { \__scontents_tabs_to_spaces: }
- \cs_replacement_spec:N \l__scontents_temp_tl
- }
-\group_end:
+ { \__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 } }
-\msg_new:nnn { scontents } { junk-after-begin }
- {
- Junk~characters~#1~\msg_line_context: :
- \\ \\
- #2
- }
-\msg_new:nnn { scontents } { empty-stored-content }
- { Empty~value~for~key~'getstored'~\msg_line_context:. }
-\msg_new:nnn { scontents } { empty-variable }
- { Variable~'#1'~empty~\msg_line_context:. }
-\msg_new:nnn { scontents } { rewriting-file }
- { Overwriting ~ file ~ '#1' }
-\msg_new:nnn { scontents } { writing-file }
- { Writing ~ file ~ '#1' }
-\msg_new:nnn { scontents } { rescanning-text }
- { Rescanning~text~'#1'~after~\c_backslash_str end{scontents}~\msg_line_context:.}
-\msg_new:nnn { scontents } { multiple-begin }
- { Multiple~\c_backslash_str begin{scontents}~\msg_line_context:.}
-\msg_new:nnn { scontents } { undefined-storage }
- { Storage~named~'#1'~is~not~defined. }
-\msg_new:nnn { scontents } { index-out-of-range }
- {
- \int_compare:nNnTF {#1} = { 0 }
- { Index~of~sequence~cannot~be~zero. }
- {
- Index~'#1'~out~of~range~for~'#2'.~
- \int_compare:nNnTF {#1} > { 0 }
- { Max = } { Min = -} #3.
- }
- }
-\msg_new:nnnn { scontents } { env-key-unknown }
- { The~key~'#1'~is~unknown~by~environment~'scontents'~and~is~being~ignored.}
- {
- The~environment~'scontents'~does~not~have~a~key~called~'#1'.\\
- Check~that~you~have~spelled~the~key~name~correctly.
- }
-\msg_new:nnnn { scontents } { env-key-value-unknown }
- { The~key~'#1=#2'~is~unknown~by~environment~'scontents'~and~is~being~ignored. }
- {
- The~environment~'scontents'~does~not~have~a~key~called~'#1'.\\
- Check~that~you~have~spelled~the~key~name~correctly.
- }
-\msg_new:nnnn { scontents } { cmd-key-unknown }
- { The~key~'#1'~is~unknown~by~'\c_backslash_str Scontents'~and~is~being~ignored.}
- {
- The~command~'\c_backslash_str Scontents'~does~not~have~a~key~called~'#1'.\\
- Check~that~you~have~spelled~the~key~name~correctly.
- }
-\msg_new:nnnn { scontents } { cmd-key-value-unknown }
- { The~key~'#1=#2'~is~unknown~by~'\c_backslash_str Scontents'~and~is~being~ignored. }
- {
- The~command~'\c_backslash_str Scontents'~does~not~have~a~key~called~'#1'.\\
- Check~that~you~have~spelled~the~key~name~correctly.
- }
-\msg_new:nnnn { scontents } { type-key-unknown }
- { The~key~'#1'~is~unknown~and~is~being~ignored. }
- {
- This~command~does~not~have~a~key~called~'#1'.\\
- This~command~only~accepts~the~key~'width-tab'.
- }
-\msg_new:nnnn { scontents } { type-key-value-unknown }
- { The~key~'#1'~to~which~you~passed~'#2'~is~unknown~and~is~being~ignored. }
- {
- This~command~does~not~have~a~key~called~'#1'.\\
- This~command~only~accepts~the~key~'width-tab'.
- }
-\file_input_stop:
\endinput
%%
%% End of file `scontents.sty'.