summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pseudo/pseudo.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/pseudo/pseudo.sty')
-rw-r--r--macros/latex/contrib/pseudo/pseudo.sty55
1 files changed, 39 insertions, 16 deletions
diff --git a/macros/latex/contrib/pseudo/pseudo.sty b/macros/latex/contrib/pseudo/pseudo.sty
index 2634ab7d38..6fd03eca74 100644
--- a/macros/latex/contrib/pseudo/pseudo.sty
+++ b/macros/latex/contrib/pseudo/pseudo.sty
@@ -1,6 +1,6 @@
% MIT License
%
-% Copyright (c) 2019-2022 Magnus Lie Hetland
+% Copyright (c) 2019-2023 Magnus Lie Hetland
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
@@ -20,8 +20,8 @@
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
% SOFTWARE.
%
-\def \pseudoversion {1.2.1}
-\def \pseudodate {2022/08/23}
+\def \pseudoversion {1.2.2}
+\def \pseudodate {2023/01/30}
\RequirePackage{expl3}
\ProvidesExplPackage
{pseudo}
@@ -143,12 +143,19 @@
\DeclareDocumentCommand \pseudosavelabel { } {
\__pseudo_save_label:
}
-\cs_new:Npn \__pseudo_gsave_as:NN #1 #2 {
+\cs_new:Npn \__pseudo_cs_gsave_as:NN #1 #2 {
\cs_gset_eq:NN #2 #1
\group_insert_after:N \cs_gset_eq:NN
\group_insert_after:N #1
\group_insert_after:N #2
}
+\cs_new:Npn \__pseudo_skip_pars:n #1 {
+ \peek_meaning_remove_ignore_spaces:NTF \par {
+ \__pseudo_skip_pars:n { #1 }
+ } {
+ #1
+ }
+}
\__pseudo_new_cmd:Nnn \nf { } { \normalfont }
\__pseudo_new_cmd:Nnn \tn { m } { \textnormal { #1 } }
\__pseudo_new_cmd:Nnn \kw { m } { \textnormal {\kwfont { #1 } } }
@@ -157,7 +164,7 @@
\cs_new:Npn \__pseudo_b_or_bx: {
\group_begin:
\cs_if_exist:NT \@defaultsubs {
- \__pseudo_gsave_as:NN \@defaultsubs \__pseudo_defaultsubs
+ \__pseudo_cs_gsave_as:NN \@defaultsubs \__pseudo_defaultsubs
\cs_gset_eq:NN \@defaultsubs \relax
}
\cs_gset:Nn \__pseudo_b_or_bx: { \fontseries{b}\selectfont }
@@ -274,6 +281,13 @@
}
\ProcessKeysOptions{ pseudo/package }
\keys_define:nn { pseudo } {
+ init .tl_set:N = \l__pseudo_init_tl,
+ init-append .code:n = {
+ \tl_put_right:Nn \l__pseudo_init_tl {#1}
+ },
+ init-prepend .code:n = {
+ \tl_put_left:Nn \l__pseudo_init_tl {#1}
+ },
font .tl_set:N = \pseudofont,
font .initial:n = \normalfont,
hpad .meta:n = {
@@ -551,15 +565,21 @@
}
\NewDocumentCommand \__pseudo_eol_tail { s d<> +O{ } } {
\__pseudo_eol_handle_args:nnn{#1}{#2}{#3}
- \tl_set:Nx \l_tmpa_tl {
- \exp_not:N \tabularnewline [ \l__pseudo_extra_space_tl ]
- }
- \peek_meaning_ignore_spaces:NTF \end {
- \l_tmpa_tl
+ \dim_compare:nNnTF \l__pseudo_extra_space_tl = { 0pt } {
+ \tl_set_eq:NN \l_tmpa_tl \tabularnewline
} {
- \pseudoeol
- \l_tmpa_tl
- \__pseudo_bol:
+ \tl_set:Nx \l_tmpa_tl {
+ \exp_not:N \tabularnewline [ \l__pseudo_extra_space_tl ]
+ }
+ }
+ \__pseudo_skip_pars:n {
+ \peek_meaning_ignore_spaces:NTF \end {
+ \l_tmpa_tl
+ } {
+ \pseudoeol
+ \l_tmpa_tl
+ \__pseudo_bol:
+ }
}
}
\cs_new:Npn \__pseudo_eol: {
@@ -598,8 +618,8 @@
}
\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
+ \__pseudo_cs_gsave_as:NN \\ \c__pseudo_saved_cr_cs
+ \__pseudo_cs_gsave_as:NN \= \c__pseudo_saved_eq_cs
\RestorePseudoEq
\int_set:Nn \g__pseudo_last_saved_line_int {\arabic{pseudoline}}
\__pseudo_star_setup:
@@ -630,6 +650,7 @@
\stepcounter{pseudoenv}
\setcounter{pseudoline}{\l__pseudo_start_tl}
\addtocounter{pseudoline}{-1}
+ \tl_use:N \l__pseudo_init_tl
\tl_use:N \l__pseudo_begin_tabular_tl
\tex_noalign:D {
\RestorePseudoBackslash
@@ -855,7 +876,9 @@ filled/.style = {
\@ifpackageloaded { tcolorbox } {
\cs_new:Npn \__pseudo_vmaj:n #1 { \__pseudo_vmaj_aux:w #1 \q_stop }
\cs_new:Npn \__pseudo_vmaj_aux:w #1 . #2 \q_stop { #1 }
- \tl_set:Nx \l_tmpa_tl { \exp_args:No \__pseudo_vmaj:n \tcb@version }
+ \tl_set:Nx \l_tmpa_tl {
+ \exp_args:No \__pseudo_vmaj:n \tcb@version
+ }
\int_compare:nNnT \l_tmpa_tl < 5 {
\tcbuselibrary { hooks }
\tcbset {