summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pseudo
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-10-30 21:19:15 +0000
committerKarl Berry <karl@freefriends.org>2019-10-30 21:19:15 +0000
commit70dd8a5346665a84bb1302c1395ef46fc449b7e9 (patch)
tree7b633b7ede6a90a847e2b68c7960751d3a4412ae /Master/texmf-dist/tex/latex/pseudo
parent058a57ec3538e04866ea61867f842eb7f9583cd6 (diff)
pseudo (30oct19)
git-svn-id: svn://tug.org/texlive/trunk@52582 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pseudo')
-rw-r--r--Master/texmf-dist/tex/latex/pseudo/pseudo.sty113
1 files changed, 61 insertions, 52 deletions
diff --git a/Master/texmf-dist/tex/latex/pseudo/pseudo.sty b/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
index 20859c819de..938fb4e887d 100644
--- a/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
+++ b/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
@@ -20,8 +20,8 @@
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
% SOFTWARE.
%
-\def \pseudoversion {1.1.2}
-\def \pseudodate {2019-07-14}
+\def \pseudoversion {1.1.3}
+\def \pseudodate {2019/10/30}
\RequirePackage{expl3}
\ProvidesExplPackage
{pseudo}
@@ -42,10 +42,8 @@
\dim_new:N \pseudoindentlength
\int_new:N \g__pseudo_indent_level_int
\int_new:N \l__pseudo_initial_indent_level_int
-\cs_generate_variant:Nn \tl_if_novalue:nTF { VTF }
+\cs_generate_variant:Nn \quark_if_no_value:nTF { VTF }
\cs_generate_variant:Nn \tl_set:Nn { Ne }
-\cs_generate_variant:Nn \regex_extract_once:nnNTF { nVNTF }
-\cs_generate_variant:Nn \regex_match:nnF { neF }
\cs_new:Nn \__pseudo_undef_col:n {
\tl_set_eq:cN { NC@find@ \token_to_str:N #1 } \scan_stop:
}
@@ -56,18 +54,18 @@
\cs_new:Nn \__pseudo_meta_new_cmd:NNnn {
\tl_set:Nn \l_tmpa_tl {pseudo \cs_to_str:N #2}
\exp_args:Nc
- #1 \l_tmpa_tl {#3} {#4}
+ #1 \l_tmpa_tl #3 {#4}
\cs_if_free:NT #2 {\cs_gset_eq:Nc #2 \l_tmpa_tl}
}
\cs_new:Nn \__pseudo_new_cmd:Nnn {
\__pseudo_meta_new_cmd:NNnn
- \NewDocumentCommand #1 {#2} {
+ \NewDocumentCommand #1 {{#2}} {
#3
}
}
\cs_new:Nn \__pseudo_new_ecmd:Nnn {
\__pseudo_meta_new_cmd:NNnn
- \NewExpandableDocumentCommand #1 {#2} {
+ \def #1 {#2} {
#3
}
}
@@ -89,7 +87,7 @@
}
}
\cs_new:Nn \__pseudo_set_indent_length: {
- \tl_if_novalue:VTF \l__pseudo_indent_length_tl {
+ \quark_if_no_value:VTF \l__pseudo_indent_length_tl {
\hbox_set:Nn \l_tmpa_box { \l__pseudo_indent_text_tl }
\dim_set:Nn \pseudoindentlength { \box_wd:N \l_tmpa_box }
} {
@@ -152,53 +150,44 @@
\__pseudo_b_or_bx:
\cs_if_exist:NT \@defaultsubs {
\cs_gset_eq:NN \__pseudo_b_or_bx: \bfseries
- \group_insert_after:N \__pseudo_b_or_bx:
}
\group_end:
+ \__pseudo_b_or_bx:
}
\cs_new:Nn \__pseudo_fmt_pr:n {
\textnormal{\prfont{ #1 }}
}
-\cs_new:Nn \__pseudo_fmt_pr:nn {
- \__pseudo_fmt_pr:n { #1 }
- \ensuremath{ ( #2 ) }
+\NewDocumentCommand \__pseudo_parse_paren_args { +d() } {
+ \IfNoValueF { #1 } {
+ \ensuremath{ ( #1 ) }
+ }
}
-\__pseudo_new_cmd:Nnn \pr { m !+d() } {
- \IfNoValueTF { #2 } {
- \__pseudo_fmt_pr:n { #1 }
+\NewDocumentCommand \__pseudo_parse_bracket_or_paren_args { +o } {
+ \IfNoValueTF { #1 } {
+ \__pseudo_parse_paren_args
} {
- \__pseudo_fmt_pr:nn { #1 } { #2 }
+ \ensuremath{ [ #1 ] }
+ }
+}
+\__pseudo_new_cmd:Nnn \pr { m } {
+ \__pseudo_fmt_pr:n { #1 }
+ \peek_catcode:NTF { ~ } { } {
+ \__pseudo_parse_paren_args
}
}
\cs_new:Nn \__pseudo_fmt_fn:n {
\textnormal{\fnfont{ #1 }}
}
-\cs_new:Nn \__pseudo_fmt_fn:nn {
- \__pseudo_fmt_fn:n { #1 }
- \ensuremath{ ( #2 ) }
-}
-\cs_new:Nn \__pseudo_fmt_ar:nn {
+\__pseudo_new_cmd:Nnn \fn { m } {
\__pseudo_fmt_fn:n { #1 }
- \ensuremath{ [ #2 ] }
-}
-\__pseudo_new_cmd:Nnn \fn { m !+o !+d() } {
- \IfNoValueTF { #2 } {
- \IfNoValueTF { #3 } {
- \__pseudo_fmt_fn:n { #1 }
- } {
- \__pseudo_fmt_fn:nn { #1 } { #3 }
- }
- } {
- \__pseudo_fmt_ar:nn { #1 } { #2 }
- \IfNoValueF { #3 } {
- ( #3 )
- }
+ \peek_catcode:NTF { ~ } { } {
+ \__pseudo_parse_bracket_or_paren_args
}
}
-\__pseudo_new_ecmd:Nnn \hd { m +r() } {
+\__pseudo_new_ecmd:Nnn \hd { #1 ( #2 ) } {
\multicolumn{2}
{\__pseudo_hd_preamble}
- {\__pseudo_fmt_pr:nn{#1}{#2}}
+ {\__pseudo_fmt_pr:n{#1}\ensuremath{(#2)}}
}
\__pseudo_new_cmd:Nnn \st { +m } {
\textnormal {
@@ -208,7 +197,7 @@
\textnormal {
\l__pseudo_ct_left_tl {\ctfont{#1}} \l__pseudo_ct_right_tl }
}
-\NewExpandableDocumentCommand \pseudohl { } {
+\def \pseudohl {
\rowcolor{\pseudohlcolor}
}
\__pseudo_new_dec:nn { Comment } { ct }
@@ -229,7 +218,7 @@
\tex_mskip:D \l_tmpa_muskip
\box_use:N \l_tmpa_box
\tex_mskip:D \l_tmpb_muskip
- \box_use_drop:N \l_tmpa_box
+ \box \l_tmpa_box
\tex_mskip:D \l_tmpa_muskip
}
\group_end:
@@ -281,7 +270,7 @@
ref .tl_set:N = \thepseudoline,
ref .default:n = \l__pseudo_label_tl,
indent-length .tl_set:N = \l__pseudo_indent_length_tl,
- indent-length .initial:V = \c_novalue_tl,
+ indent-length .initial:V = \q_no_value,
indent-text .tl_set:N = \l__pseudo_indent_text_tl,
indent-text .initial:n = { \pseudofont\kw{else}\ },
indent-level .int_set:N = \l__pseudo_initial_indent_level_int,
@@ -408,22 +397,42 @@
\msg_new:nnn { pseudo } { unknown-key } {
Unknown~key~'#1'~ignored.
}
+\tl_new:N \l__pseudo_overlay_tl
\keys_define:nn { pseudo } {
unknown .code:n = {
- \tl_set_eq:NN \l_tmpa_tl \l_keys_key_tl
- \regex_extract_once:nVNTF {\A (.*) < (.*) > \Z}
- \l_tmpa_tl \l_tmpa_seq {
- \seq_pop_right:NN \l_tmpa_seq \l_tmpb_tl
- \seq_pop_right:NN \l_tmpa_seq \l_tmpa_tl
+ \group_begin:
+ \tl_map_inline:Nn \l_keys_key_tl {
+ \tl_if_eq:nnTF { ##1 } { < } {
+ \int_incr:N \l_tmpa_int
+ \int_compare:nF { \l_tmpb_int == 0 } {
+ \int_incr:N \l_tmpa_int
+ }
+ \tl_set_eq:NN \l_tmpb_tl \l_tmpa_tl
+ \tl_clear:N \l_tmpa_tl
+ } {
+ \tl_if_eq:nnTF { ##1 } { > } {
+ \int_incr:N \l_tmpb_int
+ \tl_set_eq:NN \l__pseudo_overlay_tl \l_tmpa_tl
+ \tl_clear:N \l_tmpa_tl
+ } {
+ \tl_put_right:Nn \l_tmpa_tl { ##1 }
+ } }
+ }
+ \bool_if:nTF {
+ \int_compare_p:n { \l_tmpa_int == \l_tmpb_int == 1 }
+ &&
+ \tl_if_empty_p:N \l_tmpa_tl
+ }{
\tl_if_blank:nF{#1} {
- \tl_put_right:Nn \l_tmpa_tl {= #1}
+ \tl_put_right:Nn \l_tmpb_tl {= #1}
}
\__pseudo_keys_set_overlay:VnV
- \l_tmpb_tl { pseudo } \l_tmpa_tl
- }{
+ \l__pseudo_overlay_tl { pseudo } \l_tmpb_tl
+ } {
\msg_error:nnx
{ pseudo } { unknown-key } { \l_keys_path_tl }
}
+ \group_end:
}
}
\cs_new:Nn \__pseudo_set:n { \keys_set:nn { pseudo } { #1 } }
@@ -431,7 +440,7 @@
\int_gincr:N \g__pseudo_indent_level_int
}
\cs_new:Nn \__pseudo_dec_indent: {
- \int_compare:nNnT \g__pseudo_indent_level_int > \c_zero_int {
+ \int_compare:nNnT \g__pseudo_indent_level_int > 0 {
\int_gdecr:N \g__pseudo_indent_level_int
}
}
@@ -448,7 +457,7 @@
\tl_gset_eq:NN \g__pseudo_cur_prefix_tl \pseudoprefix
}
}
-\NewDocumentCommand \__pseudo_eol_tail { !s d<> +O{ } } {
+\NewDocumentCommand \__pseudo_eol_tail { s d<> +O{ } } {
\__pseudo_eol_handle_args:nnn{#1}{#2}{#3}
\peek_meaning_ignore_spaces:NF \end {
\pseudoeol
@@ -490,7 +499,7 @@
}
}
}
-\NewDocumentEnvironment { pseudo } { !+o !s d<> +O{ } } {
+\NewDocumentEnvironment { pseudo } { +o s d<> +O{ } } {
\group_begin:
\__pseudo_gsave_as:NN \\ \c__pseudo_saved_cr_cs
\__pseudo_gsave_as:NN \= \c__pseudo_saved_eq_cs