texlive[51511] Master/texmf-dist: pseudo (30jun19)

commits+karl at tug.org commits+karl at tug.org
Sun Jun 30 23:01:24 CEST 2019


Revision: 51511
          http://tug.org/svn/texlive?view=revision&revision=51511
Author:   karl
Date:     2019-06-30 23:01:23 +0200 (Sun, 30 Jun 2019)
Log Message:
-----------
pseudo (30jun19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/pseudo/VERSION
    trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex
    trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex
    trunk/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf
    trunk/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex
    trunk/Master/texmf-dist/tex/latex/pseudo/pseudo.sty

Modified: trunk/Master/texmf-dist/doc/latex/pseudo/VERSION
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pseudo/VERSION	2019-06-30 13:42:49 UTC (rev 51510)
+++ trunk/Master/texmf-dist/doc/latex/pseudo/VERSION	2019-06-30 21:01:23 UTC (rev 51511)
@@ -1 +1 @@
-1.0.1
+1.1

Modified: trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex	2019-06-30 13:42:49 UTC (rev 51510)
+++ trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/hilitefig.tex	2019-06-30 21:01:23 UTC (rev 51511)
@@ -1,39 +1,11 @@
 \documentclass[beamer,preview,multi]{standalone}
-% \documentclass{beamer}
-% \usepackage{mlh}
 \usepackage{pseudo}
-% \pseudoset{kw, hpad, kwfont=\bfseries}
-% \pseudoset{kw, hpad, kwfont=\bfseries}
-\pseudoset{hpad}
+\pseudoset{hpad, compact}
 
 \standaloneenv{myenv}
 
-% XXX My \== gets ruined by the standalone preview option for some reason.
-
 \begin{document}
 
-% \begin{standaloneframe}
-% \begin{myenv}
-% \begin{pseudo}[hpad]           <1-3>
-%     if $x < y$          \\+    <2>      [bol=\onslide<2->]
-%     $\id{foo} = 2$      \\-    [hl<3>,   bol=\onslide<3->]
-%     howdy
-% \end{pseudo}
-% \end{myenv}
-% \end{standaloneframe}
-
-% \begin{standaloneframe}
-% \begin{myenv}
-% \begin{pseudo}                      <1,4>
-%     while $a \neq b$        \\+     <2>
-%         if $a > b$          \\+
-%             $a = a - b$     \\-     <3>
-%         else $b = b - a$    \\-     <5>
-%     return $a$
-% \end{pseudo}
-% \end{myenv}
-% \end{standaloneframe}
-
 \begin{standaloneframe}
 \begin{myenv}
 \begin{pseudo}

Modified: trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex	2019-06-30 13:42:49 UTC (rev 51510)
+++ trunk/Master/texmf-dist/doc/latex/pseudo/doc/fig/pausefig.tex	2019-06-30 21:01:23 UTC (rev 51511)
@@ -1,48 +1,14 @@
 \documentclass[beamer,preview,multi]{standalone}
-% \documentclass{beamer}
-
-% \usepackage[notmath]{sansmathfonts}
-% \usepackage{mlh}
 \usepackage{pseudo}
-% \pseudoset{kw, hpad, kwfont=\bfseries, prfont=\sffamily}
+\pseudoset{compact}
 
-% \usepackage{expl3,xparse}
-%
-% \makeatletter
-% \ExplSyntaxOn
-%
-% \int_new:N \g_@@_row_num_int
-%
-% \cs_new:Nn \@@_onslide: {
-%     \int_gincr:N \g_@@_row_num_int
-%     \onslide<\g_@@_row_num_int->
-% }
-%
-% \NewDocumentCommand \pseudostartslide {} {
-%     \int_zero:N \g_@@_row_num_int
-% }
-%
-% \cs_set_eq:NN \pseudoonslide \@@_onslide:
-% % \cs_set_eq:NN \oldctrcmd \__pseudo_old_counter_cmds:
-%
-% \ExplSyntaxOff
-% \makeatother
-
 \setbeamercovered{transparent}
 \standaloneenv{myenv}
 
 \begin{document}
 
-
-% \begin{frame}
 \begin{standaloneframe}
 \begin{myenv}
-% XXX Begins on line 2, as it hasn't been incremented yet. And several
-% solutions (like \onslide<+-> or \pause) just break down.
-% XXX Working on an "uncover" option. Should probably have a similar thing
-% that dims out the previous ones -- or maybe even a "dim" key...
-%
-% XXX Use the suffix package to get the starred versions
 \begin{pseudo}[pause]
     Eeny  \\
     Meeny \\
@@ -51,6 +17,5 @@
 \end{pseudo}
 \end{myenv}
 \end{standaloneframe}
-% \end{frame}
 
 \end{document}

Modified: trunk/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex	2019-06-30 13:42:49 UTC (rev 51510)
+++ trunk/Master/texmf-dist/doc/latex/pseudo/doc/pseudo.tex	2019-06-30 21:01:23 UTC (rev 51511)
@@ -438,6 +438,15 @@
 \end{texexp}
 
 \noindent
+Spacing is handled similarly to in \LaTeX\ lists, with \cs{topsep} and
+\cs{parskip} added before and after, as well as \cs{partopsep} whenever the
+environment starts a new paragraph. The left margin (how much the pseudocode
+is indented wrt.\ the surrounding text) is set by the \refk{left-margin} key
+(initially \code{0pt}).\footnote{If \refe{pseudo} occurs in a box such as
+\code{fbox}, or a \pkg[https://ctan.org/pkg/pgf]{tikz} node, this spacing is
+dropped.}
+
+\medskip\noindent
 There are also some styling commands for special elements of the pseudocode:
 
 \begin{texexp}
@@ -1044,6 +1053,45 @@
     \fontcmd{cn}
 \end{docCommand}
 
+\begin{docKey}{compact}{\,=\,\meta{boolean}}{default \code{true}, initially
+    \code{false}}
+
+    \parindent1.5em
+    \noindent
+    The \refe{pseudo} environment emulates the built-in \LaTeX\ lists when it
+    comes to spacing above and below, in normal text. If the environment is
+    part of an ongoing paragraph, paragraphs will be inserted above and below,
+    along with whitespace specified by \refk{topsep} and \refk{parskip}. If
+    the environment begins a paragraph of its own, additional whitespace is
+    added, as specified by \refk{partopsep}. It is also possible to specify
+    space to insert to the left of the environment, using \refk{left-margin}.
+
+    However, these spacing commands don't work well inside \cs{mbox},
+    \cs{fbox}, etc. To avoid getting into trouble, \pkg{pseudo} determines
+    that the environment should be \emph{compact}, and drop this surrounding
+    space, if we're in inner horizontal mode at the beginning of the
+    environment.
+
+\begin{texexp}
+% In preamble:
+% \usepackage{tikz}
+\begin{tikzpicture}
+    \draw (0,0) node [draw] {%
+        \begin{pseudo}
+            if we're in a node \\+
+                there's no added space
+        \end{pseudo}};
+\end{tikzpicture}
+\end{texexp}
+
+    This may not be enough, however. For example, if you're using
+    \pkg[https://ctan.org/pkg/standalone]{standalone} to produce individual
+    pseudocode images, this compactness will \emph{not} be triggered
+    automatically. In such cases, you can override the behavior using the
+    \refk{compact} trigger, manually specifying whether you want the
+    pseudocode to be compact or not.
+\end{docKey}
+
 \begin{docCommand}{ct}{\marg{text}}
     Indicates that \meta{text} is a comment, \ct{typeset like this}. You can
     customize the comment appearance using \refk{ctfont}, \refk{ct-left} and
@@ -1551,6 +1599,40 @@
     get the results you want by specifying your own \refk{preamble} in full.
 \end{docKey}
 
+\begin{docKey}{left-margin}{\,=\,\meta{length}}{\initialkeyvalue{\code{0pt}}}
+    Sets the left margin of the \code{pseudo} environment, i.e., how far it is
+    indented wrt.\ the surrounding text:
+\begin{texexp}
+Lorem ipsum dolor sit amet:
+
+\begin{pseudo}[left-margin=1.25em]
+consetetur sadipscing elitr \\
+sed diam nonumy eirmod tempor
+\end{pseudo}
+
+Invidunt ut labore et dolore magna.
+\end{texexp}
+
+To have the environment indented as (the beginning of) any normal paragraph,
+you could use \code*{left-margin = \cs{parindent}}. Note that
+\refk{left-margin}, as well as the spacing above and below the \refe{pseudo}
+environment, is turned off inside \cs{mbox} and the like:
+\begin{texexp}
+\pseudoset{left-margin=1cm} % Won't affect box contents
+\fbox{\begin{pseudo*}
+I'm a livin' in a box \\
+I'm a livin' in a cardboard box
+\end{pseudo*}}
+\end{texexp}
+Note that as opposed to \refk{topsep}, \refk{parskip} and \refk{partopsep}, we
+are \emph{not} working with one of the built-in list spacing commands;
+\cs{leftmargin} has no effect on this key (which is why the hyphenated naming
+style of other keys such as \refk{label-align} or \refk{indent-text} is also
+adopted for \refk{left-margin}).
+%
+See also \refk{compact}.
+\end{docKey}
+
 \begin{docKey}{line-height}{\,=\,\meta{factor}}{\initialkeyvalue{\code{1}}}
     The \meta{factor} with which to multiply the ordinary line height. For
     simple, sparse pseudocode, the oridnary line height works well, but if
@@ -1569,6 +1651,16 @@
     See also \refc{tn}.
 \end{docCommand}
 
+\begin{docKey}{parskip}{\,=\,\meta{length}}{\initialkeyvalue{\cs{parskip}}}
+    Sets a \pkg{pseudo}-local copy of \cs{parskip} for use in vertical spacing
+    above and below the \refe{pseudo} environment. See also \refk{compact}.
+\end{docKey}
+
+\begin{docKey}{partopsep}{\,=\,\meta{length}}{\initialkeyvalue{\cs{partopsep}}}
+    Sets a \pkg{pseudo}-local copy of \cs{partopsep} for use in vertical
+    spacing above and below the \refe{pseudo} environment. See also \refk{compact}.
+\end{docKey}
+
 \begin{docKey}{pause}{}{\novaluekey}
     Equivalent to \code*{\refk{eol-append} = \cs{pause}} (see \cref{p:pause}).
 \end{docKey}
@@ -1856,6 +1948,11 @@
     \shortcutted{tn}{textnormal}
 \end{docCommand}
 
+\begin{docKey}{topsep}{\,=\,\meta{length}}{\initialkeyvalue{\cs{topsep}}}
+    Sets a \pkg{pseudo}-local copy of \cs{topsep} for use in vertical spacing
+    above and below the \refe{pseudo} environment. See also \refk{compact}.
+\end{docKey}
+
 \begin{docKey}{unknown}{}{}
     Unknown keys are checked for \pkg[https://ctan.org/pkg/beamer]{beamer}
     overlay specifications. That is, if an unknown key has the form
@@ -2894,6 +2991,9 @@
     hsep            .tl_set:N       = \l_@@_hsep_tl,
     hsep            .initial:n      = .75em,
 
+    left-margin     .tl_set:N       = \l_@@_left_margin_tl,
+    left-margin     .initial:n      = 0pt,
+
     label           .tl_set:N       = \l_@@_label_tl,
     label           .initial:n      = \arabic*,
 
@@ -3042,6 +3142,32 @@
     end-tabular     .tl_set:N       = \l_@@_end_tabular_tl,
     end-tabular     .initial:n      = \end{tabular},
 \end{source}
+\paragraph{List-like spacing.} Space above and below is handled similarly to
+in the built-in \LaTeX\ lists, with the option of locally overriding
+\cs{topsep}, \cs{parskip} and \cs{partopsep}, with \refk{compact} used to
+control the presence of this spacing (overriding the ordinary automatic choice
+based on the current mode).
+\begin{source}
+    topsep          .tl_set:N       = \l_@@_topsep_tl,
+    topsep          .initial:n      = { \topsep },
+
+    parskip         .tl_set:N       = \l_@@_parskip_tl,
+    parskip         .initial:n      = { \parskip },
+
+    partopsep       .tl_set:N       = \l_@@_partopsep_tl,
+    partopsep       .initial:n      = { \partopsep },
+
+    compact         .meta:n         = {
+        compact-val = #1,
+        compact-def = true,
+    },
+    compact         .default:n      = true,
+
+    % For internal use:
+    compact-val     .bool_set:N     = \l_@@_compact_bool,
+    compact-def     .bool_set:N     = \l_@@_compact_def_bool,
+\end{source}
+
 \paragraph{Details.} Finally, some tweakable parameters.
 \begin{source}
     eqs-scale       .fp_set:N       = \l_@@_eqs_scale_fp,
@@ -3053,6 +3179,7 @@
     eqs-pad         .tl_set:N       = \l_@@_eqs_pad_tl,
     eqs-pad         .initial:n      = 0.28mu,
 
+
 }
 \end{source}
 %
@@ -3290,6 +3417,7 @@
 \NewDocumentEnvironment { pseudo } { !+o !s d<> +O{ } } {
 
     \group_begin:
+
     \@@_gsave_as:NN \\ \c_@@_saved_cr_cs
     \@@_gsave_as:NN \= \c_@@_saved_eq_cs
 
@@ -3304,6 +3432,32 @@
     }
     \@@_set_indent_length:
 
+    % If not manually set as compact/noncompact, set automatically:
+    \bool_if:NF \l_@@_compact_def_bool {
+        \bool_set:Nn \l_@@_compact_bool {
+            \mode_if_horizontal_p: && \mode_if_inner_p:
+        }
+    }
+
+    \bool_if:nF { \l_@@_compact_bool } {
+
+        \skip_set:Nn \l_tmpa_skip {
+            \l_@@_topsep_tl + \l_@@_parskip_tl
+        }
+        \mode_if_vertical:TF {
+            \skip_add:Nn \l_tmpa_skip { \l_@@_partopsep_tl }
+        } {
+            \unskip \par
+        }
+
+        \addvspace { \l_tmpa_skip }
+
+        \noindent
+        \skip_horizontal:n{ \dim_eval:n { \l_@@_left_margin_tl } }
+
+    }
+
+
     \dim_set:Nn \tabcolsep    { \l_@@_hsep_tl / 2 }
     \tl_set:Nn  \arraystretch
         { \fp_to_decimal:n { \l_@@_line_height_fp } }
@@ -3356,6 +3510,17 @@
 
     \tl_use:N \l_@@_end_tabular_tl
 
+
+    \bool_if:nF { \l_@@_compact_bool } {
+
+        \mode_if_vertical:F {
+            \unskip \par
+        }
+
+        \addvspace{ \l_tmpa_skip }
+
+    }
+
     \group_end:
 
 }

Modified: trunk/Master/texmf-dist/tex/latex/pseudo/pseudo.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pseudo/pseudo.sty	2019-06-30 13:42:49 UTC (rev 51510)
+++ trunk/Master/texmf-dist/tex/latex/pseudo/pseudo.sty	2019-06-30 21:01:23 UTC (rev 51511)
@@ -20,8 +20,8 @@
 % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 % SOFTWARE.
 %
-\def \pseudoversion {1.0.1}
-\def \pseudodate    {2019-06-27}
+\def \pseudoversion {1.1}
+\def \pseudodate    {2019-06-30}
 \RequirePackage{expl3}
 \ProvidesExplPackage
     {pseudo}
@@ -255,6 +255,8 @@
     hpad            .default:n      = 0.3em,
     hsep            .tl_set:N       = \l__pseudo_hsep_tl,
     hsep            .initial:n      = .75em,
+    left-margin     .tl_set:N       = \l__pseudo_left_margin_tl,
+    left-margin     .initial:n      = 0pt,
     label           .tl_set:N       = \l__pseudo_label_tl,
     label           .initial:n      = \arabic*,
     label-align     .code:n         =
@@ -353,6 +355,19 @@
     begin-tabular   .initial:n      = \begin{tabular}{\pseudopreamble},
     end-tabular     .tl_set:N       = \l__pseudo_end_tabular_tl,
     end-tabular     .initial:n      = \end{tabular},
+    topsep          .tl_set:N       = \l__pseudo_topsep_tl,
+    topsep          .initial:n      = { \topsep },
+    parskip         .tl_set:N       = \l__pseudo_parskip_tl,
+    parskip         .initial:n      = { \parskip },
+    partopsep       .tl_set:N       = \l__pseudo_partopsep_tl,
+    partopsep       .initial:n      = { \partopsep },
+    compact         .meta:n         = {
+        compact-val = #1,
+        compact-def = true,
+    },
+    compact         .default:n      = true,
+    compact-val     .bool_set:N     = \l__pseudo_compact_bool,
+    compact-def     .bool_set:N     = \l__pseudo_compact_def_bool,
     eqs-scale       .fp_set:N       = \l__pseudo_eqs_scale_fp,
     eqs-scale       .initial:n      = 0.6785,
     eqs-sep         .tl_set:N       = \l__pseudo_eqs_sep_tl,
@@ -470,6 +485,24 @@
         \pseudoset { #1 }
     }
     \__pseudo_set_indent_length:
+    \bool_if:NF \l__pseudo_compact_def_bool {
+        \bool_set:Nn \l__pseudo_compact_bool {
+            \mode_if_horizontal_p: && \mode_if_inner_p:
+        }
+    }
+    \bool_if:nF { \l__pseudo_compact_bool } {
+        \skip_set:Nn \l_tmpa_skip {
+            \l__pseudo_topsep_tl + \l__pseudo_parskip_tl
+        }
+        \mode_if_vertical:TF {
+            \skip_add:Nn \l_tmpa_skip { \l__pseudo_partopsep_tl }
+        } {
+            \unskip \par
+        }
+        \addvspace { \l_tmpa_skip }
+        \noindent
+        \skip_horizontal:n{ \dim_eval:n { \l__pseudo_left_margin_tl } }
+    }
     \dim_set:Nn \tabcolsep    { \l__pseudo_hsep_tl / 2 }
     \tl_set:Nn  \arraystretch
         { \fp_to_decimal:n { \l__pseudo_line_height_fp } }
@@ -486,6 +519,12 @@
     \__pseudo_bol:
 } {
     \tl_use:N \l__pseudo_end_tabular_tl
+    \bool_if:nF { \l__pseudo_compact_bool } {
+        \mode_if_vertical:F {
+            \unskip \par
+        }
+        \addvspace{ \l_tmpa_skip }
+    }
     \group_end:
 }
 \pseudodefinestyle{starred}{



More information about the tex-live-commits mailing list