diff options
author | Karl Berry <karl@freefriends.org> | 2019-10-02 21:18:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-10-02 21:18:19 +0000 |
commit | 40da9ba138cb7756f970eca33d3896daf628c2c9 (patch) | |
tree | f672783eed5ba42c2d67d5d76ff542d14eb1b377 /Master/texmf-dist/tex | |
parent | 74b90237d9652cb087fea6622543cf4bd13cfd54 (diff) |
scontents (2oct19)
git-svn-id: svn://tug.org/texlive/trunk@52260 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/scontents/scontents.sty | 281 |
1 files changed, 167 insertions, 114 deletions
diff --git a/Master/texmf-dist/tex/latex/scontents/scontents.sty b/Master/texmf-dist/tex/latex/scontents/scontents.sty index 6983b4517d5..48aba087349 100644 --- a/Master/texmf-dist/tex/latex/scontents/scontents.sty +++ b/Master/texmf-dist/tex/latex/scontents/scontents.sty @@ -1,13 +1,38 @@ -%%^^A Initial declaration of the package +%% +%% This is file `scontents.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% scontents.dtx (with options: `package') +%% +%% Copyright (C) 2019 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 +%% 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 file scontents.dtx +%% and the derived files scontents.ins, +%% scontents.pdf and +%% scontents.sty. +%% \RequirePackage{l3keys2e} \RequirePackage{xparse}[2019/05/28] -\ProvidesExplPackage{scontents}{2019/09/24}{1.3} +\ProvidesExplPackage{scontents}{2019/10/03}{1.4} {Stores LaTeX contents in memory or files} -%%^^A Checking the version of xparse -\@ifpackagelater { xparse } { 2019/05/03 } +\@ifpackagelater { expl3 } { 2019/09/19 } { } { - \PackageError { scontents } { Support~package~xparse~too~old } + \PackageError { scontents } { Support~package~expl3~too~old } { You~need~to~update~your~installation~of~the~bundles~ 'l3kernel'~and~'l3packages'.\MessageBreak @@ -15,7 +40,6 @@ } \file_input_stop: } -%%^^A Common keys available as package options \keys_define:nn { scontents } { store-env .tl_set:N = \l__scontents_name_seq_env_tl, @@ -41,26 +65,22 @@ width-tab .value_required:n = true, print-all .meta:n = { print-env = #1 , print-cmd = #1 }, print-all .default:n = true, - unknown .code:n = { \__scontents_parse_unknown_key:n {#1} } + store-all .meta:n = { store-env = #1 , store-cmd = #1 }, + store-all .value_required:n = true } -%%^^A Process options for package \ProcessKeysOptions { scontents } -%%^^A Internal token list vars \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 -%%^^A Internal int vars \int_new:N \l__scontents_seq_item_int \int_new:N \l__scontents_env_nesting_int \int_new:N \l__scontents_tmpa_int -%%^^A Internal bool vars \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 -%%^^A A token list to match \env{verbatimsc} and \env{scontents} \tl_new:N \g__scontents_end_verbatimsc_tl \tl_gset_rescan:Nnn \g__scontents_end_verbatimsc_tl @@ -72,23 +92,19 @@ { \end{verbatimsc} } \tl_const:Nx \c__scontents_end_env_tl { \c_backslash_str end \c_left_brace_str scontents \c_right_brace_str } -%%^^A Internal quarks +\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 -%%^^A Stream for saving the contents \iow_new:N \l__scontents_file_iow -%%^^A Copy of scantokens in expl3 \cs_new_protected:Npn \__scontents_rescan_tokens:n #1 { \tex_scantokens:D {#1} } \cs_generate_variant:Nn \__scontents_rescan_tokens:n { V, x } -%%^^A Internal \tab and \par \cs_new:Npx \__scontents_tab: { \c_space_tl } \cs_new:Npn \__scontents_par: { ^^J ^^J } -%%^^A Some nonstandard variants \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 } -%%^^A Add keys to scontents environnment -\keys_define:nn { scontents } +\keys_define:nn { scontents / scontents } { write-env .code:n = { \bool_set_true:N \l__scontents_writing_bool @@ -100,67 +116,100 @@ \tl_set:Nn \l__scontents_fname_out_tl {#1} }, write-env .value_required:n = true, - write-out .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} } } -%%^^A A sub/keys for command \Scontents \keys_define:nn { scontents / Scontents } { - print-cmd .meta:nn = { scontents } { print-cmd = #1 }, - store-cmd .meta:nn = { scontents } { store-cmd = #1 }, - force-eol .meta:nn = { scontents } { force-eol = #1 } + 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} } } -%%^^A Parse unknown keys -\cs_new_protected:Npn \__scontents_parse_unknown_key:n #1 - { \exp_args:NV \__scontents_parse_unknown_key:nn \l_keys_key_tl {#1} } -\cs_new_protected:Npn \__scontents_parse_unknown_key:nn #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 } { key-value-unknown } {#1} {#2} } + { \msg_error:nnnn { scontents } { type-key-value-unknown } {#1} {#2} } } { \tl_if_blank:nTF {#2} - { \msg_error:nnn { scontents } { key-unknown } {#1} } - { \msg_error:nnnn { scontents } { key-value-unknown } {#1} {#2} } + { \msg_error:nnn { scontents } { type-key-unknown } {#1} } + { \msg_error:nnnn { scontents } { type-key-value-unknown } {#1} {#2} } } } -%%^^A Programming of the sequences \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_seq_name_#1_seq } - { \seq_new:c { g__scontents_seq_name_#1_seq } } - \seq_gput_right:cn { g__scontents_seq_name_#1_seq } {#2} + \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_seq_name_#2_seq } + \seq_if_exist:cTF { g__scontents_name_#2_seq } { \exp_args:Nf \__scontents_getfrom_seq:nnn - { \seq_count:c { g__scontents_seq_name_#2_seq } } + { \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 +\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_seq_name_#3_seq } {#2} } + { \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 } -%%^^A Storing content in sequences -\cs_new_protected:Npn \__scontents_store_to_seq:NN #1 #2 +\cs_new_protected:Npn \__scontents_store_to_seq:NN #1#2 { \tl_log:N #1 \__scontents_append_contents:Vx #2 { \exp_not:V #1 } } -%%^^A Definition of {scontents}[key=val] env \NewDocumentEnvironment { scontents } { } { \char_set_catcode_active:N \^^M @@ -170,7 +219,6 @@ \__scontents_stop_environment: \__scontents_atend_environment: } -%%^^A Test [key=val] for environment scontents \cs_new_protected:Npn \__scontents_environment_inline:w { \peek_charcode_ignore_spaces:NTF [ % ] @@ -182,7 +230,7 @@ } \cs_new_protected:Npn \__scontents_environment_keys:w [ #1 ] { - \keys_set_known:nn { scontents } {#1} + \keys_set:nn { scontents / scontents } {#1} \__scontents_environment_junk:xw { after~optional~argument~to~\c_backslash_str begin{scontents} } } @@ -192,7 +240,6 @@ { \msg_error:nnnn { scontents } { junk-after-begin } {#1} {#2} } } \cs_generate_variant:Nn \__scontents_environment_junk:nw { x } -%%^^A First start_environment/stop_environment \group_begin: \char_set_catcode_active:N \^^I \char_set_catcode_active:N \^^L @@ -211,7 +258,6 @@ \group_end: \tl_set:Nn \l__scontents_macro_tmp_tl \l__scontents_macro_tmp_tl } -%%^^A File write start/File write stop \cs_new_protected:Npn \__scontents_file_tl_write_start:n #1 { \group_begin: @@ -283,10 +329,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 - \bool_if:NT \l__scontents_forced_eol_bool { \exp_not:N ^^J } - } + { \exp_args:NV \__scontents_remove_leading_nl:n \l__scontents_file_tl } } } } @@ -343,28 +386,22 @@ \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 } -%%^^A Second atend_environment/stored_to_seq \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 } } - \bool_if:NT \l__scontents_print_env_bool - { - \tl_gset_eq:NN \g__scontents_temp_tl \l__scontents_macro_tmp_tl - \tl_gput_right:NV \g__scontents_temp_tl \c_percent_str - \group_insert_after:N \__scontents_rescan_tokens:V - \group_insert_after:N \g__scontents_temp_tl - } - \tl_clear:N \l__scontents_macro_tmp_tl } -%%^^A User command \Scontents to stored content \NewDocumentCommand { \Scontents }{ !s !O{} } { \group_begin: \IfNoValueF {#2} - { \keys_set_known:nn { scontents / Scontents } {#2} } + { \keys_set:nn { scontents / Scontents } {#2} } \char_set_catcode_active:n { 9 } \IfBooleanTF {#1} { \__scontents_verb_arg:w } @@ -372,47 +409,46 @@ } \cs_new_protected:Npn \__scontents_norm_arg:n #1 { - \exp_args:NV \__scontents_append_contents:nn \l__scontents_name_seq_cmd_tl {#1} - \bool_if:NT \l__scontents_print_cmd_bool { \__scontents_rescan_tokens: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: } \NewDocumentCommand { \__scontents_verb_arg:w } { +v } { - \tl_set:Nx \l__scontents_temp_tl - { - \exp_not:n {#1} - \bool_if:NT \l__scontents_forced_eol_bool { \exp_not:N ^^J } - } + \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_rescan_tokens:V \l__scontents_temp_tl } + { \__scontents_lastfrom_seq:n \l__scontents_name_seq_cmd_tl } \group_end: } -%%^^A User command \getstored to get content \NewDocumentCommand { \getstored } { O{1} m } { \group_begin: \__scontents_rescan_tokens:x - { - \__scontents_getfrom_seq:nn {#1} {#2} - \c_percent_str - } + { \__scontents_getfrom_seq:nn {#1} {#2} } \group_end: } -%%^^A User command \typestored to verbatimized content \NewDocumentCommand { \typestored } { o m } { \group_begin: \int_set:Nn \l__scontents_seq_item_int { 1 } - \IfValueT {#1} { \keys_set:nn { scontents } {#1} } - \tl_set:Nx \l__scontents_temp_tl { \exp_args:NV \__scontents_getfrom_seq:nn \l__scontents_seq_item_int {#2} } + \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: } -%%^^A Internal verb_print:N, need to verbatimized content \group_begin: \char_set_catcode_active:N \^^M \cs_new_protected:Npn \__scontents_verb_print:N #1 @@ -431,7 +467,6 @@ \cs_set_eq:NN ^^M \__scontents_verb_print_EOL: } \group_end: -%%^^A Definition of verbatimsc environment \cs_new_protected:Npn \__scontents_xverb: { \char_set_catcode_active:n { 9 } @@ -450,10 +485,8 @@ \verbatim } { } -%%^^A Tab to space \cs_new:Npn \__scontents_tabs_to_spaces: { \prg_replicate:nn { \l__scontents_tab_width_int } { ~ } } -%%^^A Patch do_noligs for ligatures \cs_new:Npn \__scontents_do_noligs:N #1 { \char_set_catcode_active:N #1 @@ -465,7 +498,6 @@ \char_generate:nn { `#1 } { 12 } } } -%%^^A Common catcode changes \cs_new_protected:Npn \__scontents_set_active_eq:NN #1 { \char_set_catcode_active:N #1 @@ -477,15 +509,13 @@ \__scontents_set_active_eq:NN \^^L \__scontents_par: \__scontents_set_active_eq:NN \^^M \__scontents_ret:w } -%%^^A User command \setupsc -\NewDocumentCommand { \setupsc } { m } +\NewDocumentCommand { \setupsc } { +m } { \keys_set:nn { scontents } {#1} } -%%^^A User command \meaningsc \NewDocumentCommand { \meaningsc } { o m } { \group_begin: \int_set:Nn \l__scontents_seq_item_int { 1 } - \IfValueT {#1} { \keys_set:nn { scontents } {#1} } + \IfValueT {#1} { \keys_set:nn { scontents / typemeaning } {#1} } \__scontents_meaningsc:n {#2} \group_end: } @@ -493,21 +523,22 @@ \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_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: -%%^^A User command \countsc \NewExpandableDocumentCommand { \countsc } { m } - { \seq_count:c { g__scontents_seq_name_#1_seq } } -%%^^A User command \cleanseqsc + { \seq_count:c { g__scontents_name_#1_seq } } \NewDocumentCommand { \cleanseqsc } { m } - { \seq_clear_new:c { g__scontents_seq_name_#1_seq } } -%%^^A Messages used throughout the package + { \seq_clear_new:c { g__scontents_name_#1_seq } } \msg_new:nnn { scontents } { junk-after-begin } { Junk~characters~#1~\msg_line_context: : @@ -515,33 +546,17 @@ #2 } \msg_new:nnn { scontents } { empty-stored-content } - { Empty~value~for~key~`getstored'~\msg_line_context:. } + { Empty~value~for~key~'getstored'~\msg_line_context:. } \msg_new:nnn { scontents } { empty-variable } - { Variable~`#1'~empty~\msg_line_context:. } + { Variable~'#1'~empty~\msg_line_context:. } \msg_new:nnn { scontents } { rewriting-file } - { Overwriting ~ file ~ `#1' } + { Overwriting ~ file ~ '#1' } \msg_new:nnn { scontents } { writing-file } - { Writing ~ file ~ `#1' } + { Writing ~ file ~ '#1' } \msg_new:nnn { scontents } { rescanning-text } - { Rescanning~text~`#1'~after~\c_backslash_str end{scontents}~\msg_line_context:.} + { 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 } { tab-to-space } - { Tab~has~been~converted~to~Blank~Space } -\msg_new:nnn { scontents } { feed-to-space } - { Form~Feed~has~been~converted~to~Blank~Space } -\msg_new:nnnn { scontents } { key-unknown } - { The~key~'#1'~is~unknown~and~is~being~ignored. } - { - The~module~'scontents'~does~not~have~a~key~called~'#1'.\\ - Check~that~you~have~spelled~the~key~name~correctly. - } -\msg_new:nnnn { scontents } { key-value-unknown } - { The~key~'#1'~to~which~you~passed~'#2'~is~unknown~and~is~being~ignored. } - { - The~module~'scontents'~does~not~have~a~key~called~'#1'.\\ - Check~that~you~have~spelled~the~key~name~correctly. - } \msg_new:nnn { scontents } { undefined-storage } { Storage~named~'#1'~is~not~defined. } \msg_new:nnn { scontents } { index-out-of-range } @@ -554,5 +569,43 @@ { Max = } { Min = -} #3. } } -%%^^A Finish package :) +\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'. |