texlive[76092] Master/texmf-dist: piton (19aug25)

commits+karl at tug.org commits+karl at tug.org
Tue Aug 19 21:49:48 CEST 2025


Revision: 76092
          https://tug.org/svn/texlive?view=revision&revision=76092
Author:   karl
Date:     2025-08-19 21:49:48 +0200 (Tue, 19 Aug 2025)
Log Message:
-----------
piton (19aug25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/lualatex/piton/piton-french.pdf
    trunk/Master/texmf-dist/doc/lualatex/piton/piton-french.tex
    trunk/Master/texmf-dist/doc/lualatex/piton/piton.pdf
    trunk/Master/texmf-dist/source/lualatex/piton/piton.dtx
    trunk/Master/texmf-dist/tex/lualatex/piton/piton.lua
    trunk/Master/texmf-dist/tex/lualatex/piton/piton.sty

Modified: trunk/Master/texmf-dist/doc/lualatex/piton/piton-french.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/lualatex/piton/piton-french.tex
===================================================================
--- trunk/Master/texmf-dist/doc/lualatex/piton/piton-french.tex	2025-08-18 23:41:54 UTC (rev 76091)
+++ trunk/Master/texmf-dist/doc/lualatex/piton/piton-french.tex	2025-08-19 19:49:48 UTC (rev 76092)
@@ -130,7 +130,7 @@
 elle fonctionne uniquement avec |lualatex| (et ne va pas fonctionner avec les
 autres moteurs de compilation LaTeX, que ce soit |latex|, |pdflatex| ou
 |xelatex|). Elle n'utilise aucun programme extérieur et donc, a fortiori, elle
-ne requiert l'utilisation de |--shell-escape| lors de la compilation. La
+ne requiert pas l'utilisation de |--shell-escape| lors de la compilation. La
 compilation est très rapide puisque tout le travail du parseur est fait par la
 librairie LPEG, écrite en C.
 
@@ -573,7 +573,7 @@
 \item la largeur de la boîte LaTeX créée par la clé |box| quand celle-ci est
 utilisée (cf. p.~\pageref{box}) ;
 \item la largeur de la boîte graphique créée par la clé |tcolorbox| quand celle-ci
-est utilisée.
+est utilisée (cf. p.~\pageref{tcolorbox}).
 \end{itemize}
 
 \item \index{max-width (clé)} \colorbox{yellow!50}{\textbf{Nouveau 4.6}}
@@ -664,6 +664,8 @@
 
 
 
+
+
 \bigskip
 La commande |\PitonOptions| propose d'autres clés qui seront décrites plus loin (voir en
 particulier la coupure des pages et des lignes p.~\pageref{breakable}).
@@ -701,7 +703,7 @@
 
 \begin{Verbatim}
 \SetPitonStyle
-  { Name.Function = \bfseries \hightLight[red!30] }
+  { Name.Function = \bfseries \highLight[red!30] }
 \end{Verbatim}
 
 Ici, |\highLight[red!30]| doit être considéré comme le nom d'une fonction LaTeX qui prend
@@ -731,8 +733,8 @@
 
 \smallskip
 La syntaxe |{\PitonStyle{|\textsl{\texttt{style}}|}{...}}| est nécessaire pour pouvoir
-tenir compte à la fois des commandes semi-globales et des commandes à argument présentes
-dans la valeur courante du style \texttt{\textsl{style}}.
+tenir compte à la fois des commandes semi-globales et des commandes à argument
+potentiellement présentes dans la valeur courante du style \texttt{\textsl{style}}.
 
 
 \subsubsection{Styles locaux et globaux}
@@ -775,7 +777,61 @@
 \medskip
 Les styles fournis par défaut par \pkg{piton} sont tous définis globalement.
 
+
 \bigskip
+\subsubsection{La commande \textbackslash rowcolor}
+
+\label{rowcolor}
+\indexcommand{rowcolor}
+
+\colorbox{yellow!50}{\textbf{Nouveau 4.8}}
+
+\nobreak
+\medskip
+L'extension \pkg{piton} fournit la commande \DefinitionCommand{rowcolor} qui impose un
+fond coloré à la ligne courante (\emph{toute la ligne} et pas seulement la partie
+contenant du texte) et que l'on peut utiliser dans les styles.
+
+\smallskip
+La commande |\rowcolor| a une syntaxe similaire à la commande classique |\color|. Par
+exemple, il est possible d'écrire |\rowcolor[rgb]{0.8,1,0.8}|.
+
+\smallskip
+La commande |\rowcolor| est protégée contre le développement TeX.
+
+\smallskip
+Voici un exemple pour le langage Python où on modifie le style |String.Doc|
+des \emph{documentation strings} pour avoir un fond coloré gris.
+
+
+\begin{Verbatim}
+~emphase#\SetPitonStyle{String.Doc = \rowcolor{gray!15}\color{black!80}}@
+\begin{Piton}[width=min]
+def square(x):
+    """Calcule le carré de x
+       Deuxième ligne de la documentation"""
+    return x*x
+\end{Piton}
+\end{Verbatim}
+
+
+\bigskip
+\begingroup
+\SetPitonStyle{String.Doc = \rowcolor{gray!15}\color{black!80}}
+\begin{Piton}[width=min]
+def square(x):
+    """Calcule le carré de x
+       Deuxième ligne de la documentation"""
+    return x*x
+\end{Piton}
+\endgroup
+
+\bigskip
+Si la commande |\rowcolor| apparaît (via un style de \pkg{piton}) dans une commande
+|\piton|, elle est sans effet (comme on s'en doute).
+
+
+\bigskip
 \subsubsection{Le style UserFunction}
 
 \index{UserFunction (style)}
@@ -855,6 +911,8 @@
 
 
 
+
+
 \subsection{Définition de nouveaux environnements}
 
 \label{NewPitonEnvironment}
@@ -880,7 +938,7 @@
 \medskip
 Il existe aussi les commandes suivantes similaires à celles de LaTeX3 :
 \DefinitionCommand{RenewPitonEnvironment},
-\DefinitionCommand{DeclarePitonEnvironment}  et \DefinitionCommand{ProvidePitonEnvironment},
+\DefinitionCommand{DeclarePitonEnvironment} et \DefinitionCommand{ProvidePitonEnvironment}.
 
 
 
@@ -894,9 +952,12 @@
 
 \bigskip
 Si on souhaite un environnement |{Python}| qui compose le code inclus dans une boîte de
-\pkg{mdframed}, on peut écrire (à condition, bien entendu, d'avoir chargé l'extension
-\pkg{mdframed} et, dans ce document, elle a été chargée avec la clé |framemethod=tikz|):
+\pkg{mdframed}, on peut écrire :
 
+\begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+\usepackage[framemethod=tikz]{mdframed} % dans le préambule
+\end{Verbatim}
+
 \begin{Verbatim}
 ~emphase#\NewPitonEnvironment@{Python}{}
   {\begin{mdframed}[roundcorner=3mm]}
@@ -1073,13 +1134,13 @@
 %
 {\color{gray}
 \begin{verbatim}
-\NewPitonLanguage{LaTeX}{keywordsprefix = \ , alsoletter = @_ }
+\NewPitonLanguage{LaTeX}{keywordsprefix = \ , alsoother = @_ }
 \end{verbatim}
 } 
 
 Initialement, les caractères |@| et |_| sont considérés comme des lettres car de nombreux
 langages de programmation les autorisent dans les mots-clés et les identificateurs. Avec
-\verb|alsoletter = @_|, on les retire de la catégorie des lettres.
+\verb|alsoother = @_|, on les retire de la catégorie des lettres.
 
 
 
@@ -2016,15 +2077,16 @@
 \subsection{Les échappements vers LaTeX}
 
 \index{echappements@échappements vers LaTeX}
+\label{LaTeX-escapes}
 
 L'extension \pkg{piton} propose plusieurs mécanismes d'échappement vers LaTeX :
 \begin{itemize}
 \item Il est possible d'avoir des commentaires entièrement composés en LaTeX.
-\item Il est possible d'avoir, dans les commentaires Python, les éléments entre
+\item Il est possible d'avoir, dans les commentaires, les éléments entre
 \texttt{\$} composés en mode mathématique de LaTeX.
 \item Il est possible de demander à \pkg{piton} de détecter directement certaines
 commandes LaTeX avec leur argument.
-\item Il est possible d'insérer du code LaTeX à n'importe quel endroit d'un listing Python.
+\item Il est possible d'insérer du code LaTeX à n'importe quel endroit d'un listing.
 \end{itemize}
 Ces mécanismes vont être détaillés dans les sous-parties suivantes.
 
@@ -2092,17 +2154,17 @@
   |\label| (comme \pkg{varioref}, \pkg{refcheck}, \pkg{showlabels}, etc.)}
 De même, la commande |\zlabel| du paquetage \pkg{zref} peut être utilisée.\footnote{
   Y compris la commande |\zcref| de \pkg{zref-clever}.}
-L'option globale |label-as-zlabel| permet d'utiliser |\label| à la place de |\zlabel| dans
-les commentaires LaTeX (ce qui est le comportement par défaut de \pkg{zref} en général).
+La clé |label-as-zlabel| qui est disponible dans |\PitonOptions| dans le préambule du document
+permet d'utiliser |\label| à la place de |\zlabel| dans les commentaires LaTeX (ce qui est
+le comportement par défaut de \pkg{zref} en général).
 
 \subsubsection{La clé «math-comments»}
 
 \index{math-comments}
 
-Il est possible de demander que, dans les commentaires Python normaux, c'est-à-dire
-débutant par~|#| (et non par |#>|), les éléments placés entre symboles \texttt{\$} soient
-composés en mode mathématique de LaTeX (le reste du commentaire restant composé en
-verbatim).
+Il est possible de demander que, dans les commentaires, les éléments placés
+entre symboles \texttt{\$} soient composés en mode mathématique de LaTeX (le
+reste du commentaire restant composé en verbatim).
 
 La clé \Definition{math-comments} (\emph{qui ne peut être activée que dans le préambule du
   document}) active ce comportement.
@@ -2161,16 +2223,12 @@
 Dans l'exemple suivant, qui est une programmation récursive de la factorielle, on décide
 de surligner en jaune l'appel récursif. La commande |\highLight| de
 \pkg{lua-ul}\footnote{L'extension \pkg{lua-ul} requiert elle-même l'extension
-  \pkg{luacolor}.} permet de le faire facilement avec la
-syntaxe |\highLight{...}|.
+  \pkg{luacolor}.} permet de le faire facilement.
 
-\smallskip
-On suppose que l'on a mis dans le préambule du document LaTeX l'instruction suivante :
-\begin{Verbatim}
-\PitonOptions{~emphase#detected-commands@ = highLight}
+\begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+\PitonOptions{~emphase#detected-commands@ = highLight} % dans le préambule
 \end{Verbatim}
 
-On peut alors écrire directement :
 \begin{Verbatim}
 \begin{Piton}
 def fact(n):
@@ -2390,103 +2448,7 @@
         return s
 \end{Piton}
 
-\subsubsection{La commande \textbackslash rowcolor}
 
-\indexcommand{rowcolor}
-
-\colorbox{yellow!50}{\textbf{Nouveau 4.8}}
-
-\nobreak
-\medskip
-L'extension \pkg{piton} propose une commande \DefinitionCommand{rowcolor} qui,
-placée dans une ligne de code, indique que cette ligne de code devra avoir un
-fond coloré (avec la couleur en argument\footnote{La commande |\rowcolor|
-  ne prend qu'un seul argument : il n'y a pas d'argument optionnel pour l'espace
-  colorimétrique. Néanmoins, il est possible d'écrire, par exemple :
-  \verb|\rowcolor{[rgb]{0.8,1,0.8}}|.} de |\rowcolor|).
-
-\medskip
-On documente cette commande dans la partie sur les échappements vers LaTeX, car
-cette commande n'est utilisable, justement, qu'à travers un échappement vers
-LaTeX, par exemple via la clé |raw-detected-commands|
-(cf.~p.~\pageref{raw-detected-commands}).
-
-\nobreak
-\begin{Verbatim}[formatcom=\footnotesize\color{gray}]
-\PitonOptions{raw-detected-commands = rowcolor} % dans le préambule
-\end{Verbatim}
-
-\medskip
-
-\begin{BVerbatim}[boxwidth=87mm,baseline=c]
-\begin{Piton}[width=min]
-def fact(n):
-    if n==0:
-        return 1 ~emphase#\rowcolor{yellow!50}@
-    else:
-        return n*fact(n-1)
-\end{Piton}        
-\end{BVerbatim}
-\hspace{1cm}
-\begin{Piton}[width=min,box]
-def fact(n):
-    if n==0:
-        return 1 \rowcolor{yellow!50}
-    else:
-        return n*fact(n-1)
-\end{Piton}        
-
-
-\bigbreak
-Voici maintenant le même exemple avec utilisation conjointe de la clé
-|background-color| (cf. p.~\pageref{background-color}) :
-
-\medskip
-\begin{BVerbatim}[boxwidth=91mm,baseline=c]
-\begin{Piton}[width=min,~emphase#background-color=gray!15@]
-def fact(n):
-    if n==0:
-        return 1 ~emphase#\rowcolor{yellow!50}@
-    else:
-        return n*fact(n-1)
-\end{Piton}        
-\end{BVerbatim}
-\hspace{6mm}
-\begin{Piton}[width=min,box,background-color=gray!15]
-def fact(n):
-    if n==0:
-        return 1 \rowcolor{yellow!50}
-    else:
-        return n*fact(n-1)
-\end{Piton}        
-
-
-\bigbreak
-Comme on le constate, une marge a été ajoutée à gauche et à droite par la clé
-|background-color|. Pour avoir une telle marge sans couleur de fond générale, il
-convient d'utiliser |background-color| avec
-la couleur spéciale |none|.
-
-\medskip
-\begin{BVerbatim}[boxwidth=87mm,baseline=c]
-\begin{Piton}[width=min,~emphase#background-color=none@]
-def fact(n):
-    if n==0:
-        return 1 ~emphase#\rowcolor{yellow!50}@
-    else:
-        return n*fact(n-1)
-\end{Piton}        
-\end{BVerbatim}
-\hspace{1cm}
-\begin{Piton}[width=min,box,background-color=none]
-def fact(n):
-    if n==0:
-        return 1 \rowcolor{yellow!50}
-    else:
-        return n*fact(n-1)
-\end{Piton}        
-
-
 \subsection{Comportement dans la classe Beamer}
 
 \label{beamer}
@@ -2900,10 +2862,12 @@
 \end{Verbatim}
 
 
-Dans ce réglage, de nombreuses valeurs fournies aux clés sont vides, ce qui signifie que
-le style correspondant n'insèrera aucune instruction de formatage (l'élément sera composé
-dans la couleur standard, le plus souvent, en noir, etc.). Ces entrées avec valeurs nulles
-sont néanmoins nécessaires car la valeur initiale de ces styles dans \pkg{piton} n'est
+Dans ce réglage, de nombreuses valeurs fournies aux clés sont vides, ce qui
+signifie que le style correspondant n'insèrera aucune instruction de formatage,
+si ce n'est celles données par le paramètre |font-command|, dont la valeur
+initiale est |\ttfamily| (l'élément sera composé dans la couleur standard, le
+plus souvent, en noir, etc.). Ces entrées avec valeurs nulles sont néanmoins
+nécessaires car la valeur initiale de ces styles dans \pkg{piton} n'est
 \emph{pas} vide.
 
 \begingroup
@@ -3087,6 +3051,102 @@
 \end{Piton}
 \endgroup
 
+\subsection{La commande \textbackslash rowcolor}
+
+\indexcommand{rowcolor}
+
+La commande |\rowcolor| a été décrite à la partie \ref{rowcolor},
+p.~\pageref{rowcolor}, dans la partie sur les styles. Rappelons qu'elle impose
+un fond coloré à la ligne courante (\emph{toute la ligne} et pas seulement la partie
+contenant du texte).
+
+\medskip
+Cette commande |\rowcolor| peut-être utilisée dans un style, comme illustré à la
+page~\pageref{rowcolor} mais on peut aussi envisager de l'utiliser directement
+dans un listing. Il faudra néanmoins utiliser un des mécanismes d'échappement
+vers LaTeX fournis par \pkg{piton}. Dans l'exemple suivant, on utilise la clé
+|raw-detected-commands| (cf.~p.~\pageref{raw-detected-commands}). On ne pourra
+pas utiliser une syntaxe comme |\rowcolor[rgb]{0.8,1,0.8}| car les «commandes
+détectées» sont des commandes à un seul argument mais on pourra utiliser
+|\rowcolor{[rgb]{0.8,1,0.8}}| (syntaxe acceptée par |\rowcolor|).
+
+\nobreak
+\begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+\PitonOptions{raw-detected-commands = rowcolor} % dans le préambule
+\end{Verbatim}
+
+\medskip
+
+\begin{BVerbatim}[boxwidth=87mm,baseline=c]
+\begin{Piton}[width=min]
+def fact(n):
+    if n==0:
+        return 1 ~emphase#\rowcolor{yellow!50}@
+    else:
+        return n*fact(n-1)
+\end{Piton}        
+\end{BVerbatim}
+\hspace{1cm}
+\begin{Piton}[width=min,box]
+def fact(n):
+    if n==0:
+        return 1 \rowcolor{yellow!50}
+    else:
+        return n*fact(n-1)
+\end{Piton}        
+
+
+\bigbreak
+Voici maintenant le même exemple avec utilisation conjointe de la clé
+|background-color| (cf. p.~\pageref{background-color}).
+
+\medskip
+\begin{BVerbatim}[boxwidth=91mm,baseline=c]
+\begin{Piton}[width=min,~emphase#background-color=gray!15@]
+def fact(n):
+    if n==0:
+        return 1 ~emphase#\rowcolor{yellow!50}@
+    else:
+        return n*fact(n-1)
+\end{Piton}        
+\end{BVerbatim}
+\hspace{6mm}
+\begin{Piton}[width=min,box,background-color=gray!15]
+def fact(n):
+    if n==0:
+        return 1 \rowcolor{yellow!50}
+    else:
+        return n*fact(n-1)
+\end{Piton}        
+
+
+\bigbreak
+Comme on le constate, une marge a été ajoutée à gauche et à droite par la clé
+|background-color|. Pour avoir une telle marge sans couleur de fond générale, il
+convient d'utiliser |background-color| avec
+la couleur spéciale |none|.
+
+\medskip
+\begin{BVerbatim}[boxwidth=87mm,baseline=c]
+\begin{Piton}[width=min,~emphase#background-color=none@]
+def fact(n):
+    if n==0:
+        return 1 ~emphase#\rowcolor{yellow!50}@
+    else:
+        return n*fact(n-1)
+\end{Piton}        
+\end{BVerbatim}
+\hspace{1cm}
+\begin{Piton}[width=min,box,background-color=none]
+def fact(n):
+    if n==0:
+        return 1 \rowcolor{yellow!50}
+    else:
+        return n*fact(n-1)
+\end{Piton}        
+
+
+
 \subsection{Utilisation avec tcolorbox}
 
 \label{examples-tcolorbox}
@@ -3363,7 +3423,36 @@
 \end{PitonExecute}
 
 \bigskip
+On peut, dans cet environnement, utiliser les mécanismes d'échappement vers
+LaTeX de la même manière que précédemment (cf. p.~\pageref{LaTeX-escapes}).
 
+
+\begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+\usepackage{luacolor,lua-ul}                  % dans le préambule
+\PitonOptions{detected-commands = highLight}  % dans le préambule
+\end{Verbatim}
+
+\begin{Verbatim}
+\begin{PitonExecute}[background-color=gray!15]
+def carré(x):
+    """Calcule le carré de l'argument"""
+    ~emphase#\highLight{return x*x}@
+print(f'Le carré de 12 est {carré(12)}.')
+\end{PitonExecute}
+\end{Verbatim}
+
+\medskip
+\begin{PitonExecute}[background-color=gray!15]
+def carré(x):
+    """Calcule le carré de l'argument"""
+    \highLight{return x*x}
+print(f'Le carré de 12 est {carré(12)}.')
+\end{PitonExecute}
+
+
+
+\bigskip
+
 \subsubsection{Utilisation de l'environnement \{pythonrepl\} de pyluatex}
 
 \label{pythonrepl}
@@ -3379,8 +3468,8 @@
 \medskip
 Il est ensuite possible de passer cela à un environnement |{Piton}| qui va faire un
 coloriage syntaxique et mettre sur fond grisé les lignes correspondant aux instructions
-fournies à l'interpréteur Python (grâce à la clé |prompt-background-color| de
-|\PitonOptions|).
+fournies à l'interpréteur Python (la couleur de ce fond est réglable avec la clé
+|prompt-background-color| dont la valuer initiale est |gray!15|).
 
 
 \medskip
@@ -3397,8 +3486,7 @@
  { 
    \PitonOptions
      { 
-       background-color=white,
-       ~emphase#prompt-background-color = gray!15@,
+       ~emphase#background-color=none@, % pour avoir des petites marges
        ~#1
      }
    \PyLTVerbatimEnv
@@ -3442,7 +3530,7 @@
 \ExplSyntaxOn
 \NewDocumentEnvironment { PitonREPL } { }
  { 
-   \PitonOptions{background-color=white,prompt-background-color = gray!15}
+   \PitonOptions{background-color=none}
    \PyLTVerbatimEnv
    \begin{pythonrepl}
  }
@@ -3906,7 +3994,7 @@
 \end{center}
 
 \bigskip
-Le language «|verbatim|» ne propose aucun style et ne fait donc aucun formatage
+Le langage «|verbatim|» ne propose aucun style et ne fait donc aucun formatage
 syntaxique. On peut néanmoins y utiliser le mécanisme |detected-commands| (cf. partie
 \ref{detected-commands}, p.~\pageref{detected-commands}) ainsi que le
 mécanisme de détection des commandes et des environnements de Beamer.

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

Modified: trunk/Master/texmf-dist/source/lualatex/piton/piton.dtx
===================================================================
--- trunk/Master/texmf-dist/source/lualatex/piton/piton.dtx	2025-08-18 23:41:54 UTC (rev 76091)
+++ trunk/Master/texmf-dist/source/lualatex/piton/piton.dtx	2025-08-19 19:49:48 UTC (rev 76092)
@@ -88,12 +88,12 @@
 % \iffalse
 %<*STY>
 % \fi
-\def\PitonFileVersion{4.8}
-\def\PitonFileDate{2025/08/08}
+\def\PitonFileVersion{4.8a}
+\def\PitonFileDate{2025/08/19}
 % \iffalse
 %</STY>
 %<*LUA>
-piton_version = "4.8" -- 2025/08/08
+piton_version = "4.8a" -- 2025/08/19
 %</LUA>
 %\fi
 %
@@ -544,7 +544,7 @@
 % \item the width of the LaTeX box created by the key |box| when that key is used
 % (cf. p.~\pageref{box});
 % \item the width of the graphical box created by the key |tcolorbox| when that
-% key is used.
+% key is used (cf.~p.~\pageref{tcolorbox}).
 % \end{itemize}
 %
 % \item \index{max-width} \colorbox{yellow!50}{\textbf{New 4.6}}
@@ -752,7 +752,61 @@
 % all the styles globally. 
 %
 % \bigskip
+
+% \bigskip
+% \subsubsection{The command \textbackslash rowcolor}
 %
+% \label{rowcolor}
+% \indexcommand{rowcolor}
+%
+% \colorbox{yellow!50}{\textbf{New 4.8}}
+%
+% \nobreak
+% \medskip
+% The extension \pkg{piton} provides the command \DefinitionCommand{rowcolor} which adds
+% a colored background to the current line (the \emph{whole} line and not only the part with
+% text) which may be used in the styles.
+%
+% \smallskip
+% The command |\rowcolor| has a syntax similar to the classical command |\color|. For example,
+% it's possible to write |\rowcolor[rgb]{0.9,1,0.9}|.
+%
+% \smallskip
+% The command |\rowcolor| is protected against the TeX expansions.
+%
+% \smallskip
+% Here is an example for the language Python where we modify the style |String.Doc|
+% of the ``documentation strings'' in order to have a colored background.
+
+%
+% \begin{Verbatim}
+% ~emphase#\SetPitonStyle{String.Doc = \rowcolor{gray!15}\color{black!80}}@
+% \begin{Piton}[width=min]
+% def square(x):
+%     """Computes the square of x
+%        Second line of the documentation"""
+%     return x*x
+% \end{Piton}
+% \end{Verbatim}
+%
+%
+% \bigskip
+% \begingroup
+% \SetPitonStyle{String.Doc = \rowcolor{gray!15}\color{black!80}}
+% \begin{Piton}[width=min]
+% def square(x):
+%     """Computes the square of x
+%        Second line of the documentation"""
+%     return x*x
+% \end{Piton}
+% \endgroup
+%
+%
+% \bigskip
+% If the command |\rowcolor| appears (through a style of \pkg{piton}) inside a
+% command |\piton|, it is no-op (as expected).
+%
+%
 % \subsubsection{The style UserFunction}
 %
 % \index{UserFunction (style)}
@@ -866,10 +920,12 @@
 % 
 % \bigskip
 % If one wishes to format Python code in a box of \pkg{mdframed}, it's possible
-% to define an environment |{Python}| with the following code (of course, the
-% package \pkg{mdframed} must be loaded, and, in this document, it has been loaded
-% with the key |framemethod=tikz|).
+% to define an environment |{Python}| with the following code.
 %
+% \begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+% \usepackage[framemethod=tikz]{mdframed} % in the preamble
+% \end{Verbatim}
+%
 %\begin{Verbatim}
 % ~emphase#\NewPitonEnvironment@{Python}{}
 %   {\begin{mdframed}[roundcorner=3mm]}
@@ -1049,12 +1105,12 @@
 % For example, here is a language called ``LaTeX'' to format LaTeX chunks of codes:
 
 % \begin{Verbatim}
-% \NewPitonLanguage{LaTeX}{keywordsprefix = \ , alsoletter = ~@_ }
+% \NewPitonLanguage{LaTeX}{keywordsprefix = \ , alsoother = ~@_ }
 % \end{Verbatim}
 %
 % Initially, the characters |@| and |_| are considered as letters because, in
 % many computer languages, they are allowed in the keywords and the names of
-% the identifiers. With \verb|alsoletter = @_|, we retrieve them from the
+% the identifiers. With \verb|alsoother = @_|, we retrieve them from the
 % category of the letters. 
 % 
 % \section{Advanced features}
@@ -2151,15 +2207,13 @@
 % In the following example, which is a recursive programmation of the factorial
 % function, we decide to highlight the recursive call. The command |\highLight|
 % of \pkg{lua-ul}\footnote{The package \pkg{lua-ul} requires itself the package
-% \pkg{luacolor}.} directly does the job with the easy syntax |\highLight{...}|.
+% \pkg{luacolor}.} directly does the job.
 %
 % \medskip 
-% We assume that the preamble of the LaTeX document contains the following line:
-% \begin{Verbatim}
-% \PitonOptions{~emphase#detected-commands@ = highLight}
+% \begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+% \PitonOptions{~emphase#detected-commands@ = highLight} % in the preamble
 % \end{Verbatim}
 %
-% Then, it's possible to write directly:
 % \begin{Verbatim}
 % \begin{Piton}
 % def fact(n):
@@ -2193,12 +2247,12 @@
 % \textsc{sql} by the the name of the table, followed, between brackets, by the
 % names of its fields (ex. : |client(name,town)|).
 %
-% If we insert that element in a command |\piton|, the word \emph{client} won't be
-% recognized as a name of table but as a name of field. It's possible to define
-% a personal command |\NomTable|
-% which we will apply by hand to the names of the tables. In that aim, we declare that
-% command with |raw-detected-commands| and, thus, its argument won't be re-analyzed
-% by \pkg{piton} (that second analysis would format it as a name of field).
+% If we insert that element in a command |\piton|, the word \emph{client} won't
+% be recognized as a name of table but as a name of field. It's possible to
+% define a personal command |\NomTable| which we will apply by hand to the names
+% of the tables. In that aim, we declare that command with
+% |raw-detected-commands| and, thus, its argument won't be re-analyzed by
+% \pkg{piton} (that second analysis would format it as a name of field).
 %
 % \medskip
 % In the preamble of the LaTeX document, we insert the following lines:
@@ -2304,7 +2358,7 @@
 %
 % \bigskip
 % \emph{Caution} : The mechanism ``escape'' is not active in the strings nor in
-% the Python comments (however, it's possible to have a whole Python comment
+% the comments (however, it's possible to have a whole Python comment
 % composed in LaTeX by beginning it with |#>|; such comments are merely called
 % ``LaTeX comments'' in this document).
 % 
@@ -2374,102 +2428,8 @@
 % \end{Piton}
 %
 %
-% \subsubsection{The command \textbackslash rowcolor}
+% 
 %
-% \indexcommand{rowcolor}
-%
-% \colorbox{yellow!50}{\textbf{New 4.8}}
-%
-% \nobreak
-% \medskip
-% The extension \pkg{piton} provides a command \DefinitionCommand{rowcolor}
-% which, when place within a line of code, specifies that this line will have a
-% colored background (with the color in the argument\footnote{The command
-% |\rowcolor| takes in only one argument. There is no optional argument between
-% square brackets for the colorimetric space. However, it's possible to write
-% something like |\rowcolor{[rgb]{0.8,1,0.8}}|.} of the command).
-%
-% \medskip
-% We documente that command in the part which deals about the escapes to LaTeX because
-% this command can only be used through an escape to LaTeX, for example with the key
-% |raw-detected-commands| (cf.~p.~\pageref{raw-detected-commands}).
-%
-% \nobreak
-% \begin{Verbatim}[formatcom=\footnotesize\color{gray}]
-% \PitonOptions{raw-detected-commands = rowcolor} % in the preamble
-% \end{Verbatim}
-%
-% \medskip
-%
-% \begin{BVerbatim}[boxwidth=87mm,baseline=c]
-% \begin{Piton}[width=min]
-% def fact(n):
-%     if n==0:
-%         return 1 ~emphase#\rowcolor{yellow!50}@
-%     else:
-%         return n*fact(n-1)
-% \end{Piton}        
-% \end{BVerbatim}
-% \hspace{1cm}
-% \begin{Piton}[width=min,box]
-% def fact(n):
-%     if n==0:
-%         return 1 \rowcolor{yellow!50}
-%     else:
-%         return n*fact(n-1)
-% \end{Piton}        
-%
-%
-% \bigbreak
-% Here is now the same example with the join use of the key |background-color|
-% (cf. p.~\pageref{background-color}).
-%
-% \medskip
-% \begin{BVerbatim}[boxwidth=87mm,baseline=c]
-% \begin{Piton}[width=min,~emphase#background-color=gray!15@]
-% def fact(n):
-%     if n==0:
-%         return 1 ~emphase#\rowcolor{yellow!50}@
-%     else:
-%         return n*fact(n-1)
-% \end{Piton}        
-% \end{BVerbatim}
-% \hspace{1cm}
-% \begin{Piton}[width=min,box,background-color=gray!15]
-% def fact(n):
-%     if n==0:
-%         return 1 \rowcolor{yellow!50}
-%     else:
-%         return n*fact(n-1)
-% \end{Piton}        
-%
-%
-% \bigbreak
-% As you can see, a margin has been added on both sides of the code by the key
-% |background-color|. If you wish those margins without general background, you
-% should use |background-color| with the special value~|none|.
-%
-% \medskip
-% \begin{BVerbatim}[boxwidth=87mm,baseline=c]
-% \begin{Piton}[width=min,~emphase#background-color=none@]
-% def fact(n):
-%     if n==0:
-%         return 1 ~emphase#\rowcolor{yellow!50}@
-%     else:
-%         return n*fact(n-1)
-% \end{Piton}        
-% \end{BVerbatim}
-% \hspace{1cm}
-% \begin{Piton}[width=min,box,background-color=none]
-% def fact(n):
-%     if n==0:
-%         return 1 \rowcolor{yellow!50}
-%     else:
-%         return n*fact(n-1)
-% \end{Piton}        
-%
-%
-%
 % \subsection{Behaviour in the class Beamer}
 %
 % \label{beamer}
@@ -2529,7 +2489,7 @@
 % \item no mandatory argument : |\pause|\footnote{One should remark that it's
 % also  possible to use the command |\pause| in a ``LaTeX
 % comment'', that is to say by writing |#> \pause|. By
-% this way, if the Python code is copied, it's still executable by Python}.  ;
+% this way, if the code is copied, it's still executable}.  ;
 % \item one mandatory argument : |\action|, |\alert|, |\invisible|, |\only|,
 % |\uncover| and |\visible| ; \newline
 % % It's possible to add new commands to that list with the key
@@ -2882,10 +2842,11 @@
 % \end{Verbatim}
 %
 % In that tuning, many values given to the keys are empty: that means that the
-% corresponding style won't insert any formatting instruction (the element will
-% be composed in the standard color, usually in black, etc.). Nevertheless,
-% those entries are mandatory because the initial value of those keys in
-% \pkg{piton} is \emph{not} empty.
+% corresponding style won't insert any formatting instruction, except those in
+% the value of the parameter |font-command|, whose initial value is |\ttfamily|
+% (the element will be composed in the standard color, usually in black, etc.).
+% Nevertheless, those entries are mandatory because the initial value of those
+% keys in \pkg{piton} is \emph{not} empty.
 %
 % \begingroup
 %  \PitonOptions{splittable}
@@ -3027,7 +2988,7 @@
 %
 % \vspace{1cm}
 % It's also possible to display these LaTeX comments in a kind of second column
-% by limiting the width of the Python code with the key |width|. 
+% by limiting the width of the listing with the key |width|. 
 %
 % \begingroup
 % \fvset{commandchars=\~\&\@,formatcom=\small\color{gray}}
@@ -3071,6 +3032,99 @@
 % \endgroup
 %
 %
+% \subsection{The command \textbackslash rowcolor}
+%
+% \indexcommand{rowcolor}
+%
+%
+% The command |\rowcolor| has been presented in the part \ref{rowcolor}, at the
+% page~\pageref{rowcolor}. We recall that this command adds a colored background
+% to the current line (the \emph{whole} line, and not only the part with text).
+%
+% It's possible to use that command in a style of \pkg{piton}, as shown in
+% p.~\pageref{rowcolor}, but maybe we wish to use it directly in a listing. In that aim,
+% it's mandatory to use one of the mechanisms to escape to LaTeX provided by \pkg{piton}.
+% In the following example, we use the key |raw-detected-commands|
+% (cf.~p.~\pageref{raw-detected-commands}). Since the ``detected commands'' are commands
+% with only one argument, it won't be possible to write (for example)
+% |\rowcolor[rgb]{0.9,1,0.9}| but the syntax |\rowcolor{[rgb]{0.9,1,0.9}}| will be
+% allowed.
+%
+% \bigbreak
+% \begin{Verbatim}[formatcom=\footnotesize\color{gray}]
+% \PitonOptions{raw-detected-commands = rowcolor} % in the preamble
+% \end{Verbatim}
+%
+% \medskip
+%
+% \begin{BVerbatim}[boxwidth=87mm,baseline=c]
+% \begin{Piton}[width=min]
+% def fact(n):
+%     if n==0:
+%         return 1 ~emphase#\rowcolor{yellow!50}@
+%     else:
+%         return n*fact(n-1)
+% \end{Piton}        
+% \end{BVerbatim}
+% \hspace{1cm}
+% \begin{Piton}[width=min,box]
+% def fact(n):
+%     if n==0:
+%         return 1 \rowcolor{yellow!50}
+%     else:
+%         return n*fact(n-1)
+% \end{Piton}        
+%
+%
+% \bigbreak
+% Here is now the same example with the join use of the key |background-color|
+% (cf. p.~\pageref{background-color}).
+%
+% \medskip
+% \begin{BVerbatim}[boxwidth=92mm,baseline=c]
+% \begin{Piton}[width=min,~emphase#background-color=gray!15@]
+% def fact(n):
+%     if n==0:
+%         return 1 ~emphase#\rowcolor{yellow!50}@
+%     else:
+%         return n*fact(n-1)
+% \end{Piton}        
+% \end{BVerbatim}
+% \hspace{5mm}
+% \begin{Piton}[width=min,box,background-color=gray!15]
+% def fact(n):
+%     if n==0:
+%         return 1 \rowcolor{yellow!50}
+%     else:
+%         return n*fact(n-1)
+% \end{Piton}        
+%
+%
+% \bigbreak
+% As you can see, a margin has been added on both sides of the code by the key
+% |background-color|. If you wish those margins without general background, you
+% should use |background-color| with the special value~|none|.
+%
+% \medskip
+% \begin{BVerbatim}[boxwidth=87mm,baseline=c]
+% \begin{Piton}[width=min,~emphase#background-color=none@]
+% def fact(n):
+%     if n==0:
+%         return 1 ~emphase#\rowcolor{yellow!50}@
+%     else:
+%         return n*fact(n-1)
+% \end{Piton}        
+% \end{BVerbatim}
+% \hspace{1cm}
+% \begin{Piton}[width=min,box,background-color=none]
+% def fact(n):
+%     if n==0:
+%         return 1 \rowcolor{yellow!50}
+%     else:
+%         return n*fact(n-1)
+% \end{Piton}        
+%
+%
 % 
 %
 %
@@ -3714,19 +3768,25 @@
 %
 % \subsection{Introduction}
 % 
-% The main job of the package \pkg{piton} is to take in as input a Python
+% The main job of the package \pkg{piton} is to take in as input a computer
 % listing and to send back to LaTeX as output that code \emph{with interlaced LaTeX
 % instructions of formatting}.
 %
-% In fact, all that job is done by a \textsc{lpeg} called |python|. That
-% \textsc{lpeg}, when matched against the string of a Python listing,
-% returns as capture a Lua table containing data to send to LaTeX. 
-% The only thing to do after will be to apply |tex.tprint| to each element of
-% that table.\footnote{Recall that |tex.tprint| takes in as argument a Lua table whose
-% first component is a ``catcode table'' and the second element a string. The
-% string will be sent to LaTeX with the regime of catcodes specified by the
+% In fact, all that job is done by a \textsc{lpeg} called |LPEG1[<language>]|
+% where |<language>| is a Lua string which is the name of the computer language.
+% That \textsc{lpeg}, when matched against the string of a computer listing,
+% returns as capture a Lua table containing data to send to LaTeX. The only
+% thing to do after will be to apply |tex.tprint| to each element of that
+% table.\footnote{Recall that |tex.tprint| takes in as argument a Lua table
+% whose first component is a ``catcode table'' and the second element a string.
+% The string will be sent to LaTeX with the regime of catcodes specified by the
 % catcode table. If no catcode table is provided, the standard catcodes of LaTeX
 % will be used.}
+%
+% In fact, there is a variant of the \textsc{lpeg} |LPEG1[<language>]|, called
+% |LPEG2[<language>]|. The latter uses the first one and will be used to format
+% the whole content of an environment |{Piton}| (with, in particular, small tuning
+% for the beginning and the end).
 % 
 % \bigskip
 % Consider, for example, the following Python code:
@@ -3736,14 +3796,15 @@
 %     return x%2
 % \end{Piton}
 %
-% The capture returned by the \pkg{lpeg} |python| against that code is the
-% Lua table containing the following elements :
+% The capture returned by the \textsc{lpeg} |LPEG1['python']| (in Lua, this may
+% also be written |LPEG1.python|) against that code is the Lua table containing
+% the following elements :
 %
 % \bigskip
 % \begin{minipage}{\linewidth}
 % \color{gray}
 % 
-% |{ "\\__piton_begin_line:" }|\footnote{Each line of the Python listings will
+% |{ "\\__piton_begin_line:" }|\footnote{Each line of the computer listings will
 % be encapsulated in a pair: \texttt{\textbackslash_@@_begin_line:} --
 % \texttt{\textbackslash@@_end_line:}. The token
 % \texttt{\textbackslash@@_end_line:} must be explicit because it will be used as
@@ -3754,7 +3815,7 @@
 % argument of a command \texttt{\textbackslash piton}).}  
 % 
 % \texttt{\{ "\{\textbackslash PitonStyle\{Keyword\}\{" \}}\footnote{The
-% lexical elements of Python for which we have a \pkg{piton} style will be
+% lexical elements for which we have a \pkg{piton} style will be
 % formatted via the use of the command \texttt{\textbackslash PitonStyle}.
 % Such an element is typeset in LaTeX via the syntax \texttt{\{\textbackslash
 % PitonStyle\{\textsl{style}\}\{...\}\}} because the instructions inside an \texttt{\textbackslash
@@ -3783,7 +3844,7 @@
 %
 % |{ luatexbase.catcodetables.CatcodeTableOther, ":" }|
 % 
-% |{ "\\__piton_end_line: \\__piton_newline: \\__piton_begin_line:" }|
+% |{ "\\__piton_end_line: \\__piton_par: \\__piton_begin_line:" }|
 %
 % |{ luatexbase.catcodetables.CatcodeTableOther, "    " }|
 %
@@ -3799,7 +3860,7 @@
 %
 % |{ "{\PitonStyle{Operator}{" }|
 %
-% |{ luatexbase.catcodetables.CatcodeTableOther, "&" }|
+% |{ luatexbase.catcodetables.CatcodeTableOther, "%" }|
 %
 % |{ "}}" }|
 %
@@ -3818,7 +3879,7 @@
 % on several lines for legibility but no character |\r| will be sent to LaTeX). The
 % characters which are greyed-out are sent to LaTeX with the catcode ``other''
 % (=12). All the others characters are sent with the regime of catcodes of L3
-% (as set by |\ExplSyntaxOn|)
+% (as set by |\ExplSyntaxOn|).
 %
 % 
 % \begingroup
@@ -3827,7 +3888,7 @@
 % 
 % \begin{Verbatim*}[formatcom = \color{black}]
 % \__piton_begin_line:{\PitonStyle{Keyword}{~gbox#def@}}
-% ~gbox# @{\PitonStyle{Name.Function}{~gbox#parity@}}~gbox#(x):@\__piton_end_line:\__piton_newline:
+% ~gbox# @{\PitonStyle{Name.Function}{~gbox#parity@}}~gbox#(x):@\__piton_end_line:\__piton_par:
 % \__piton_begin_line:~gbox#    @{\PitonStyle{Keyword}{~gbox#return@}}
 % ~gbox# x@{\PitonStyle{Operator}{~gbox#%@}}{\PitonStyle{Number}{~gbox#2@}}\__piton_end_line:
 % \end{Verbatim*}
@@ -3865,12 +3926,14 @@
 %    \end{macrocode}
 % \bigskip
 % The command |\text| provided by the package \pkg{amstext} will be used to
-% allow the use of the command |\pion{...}| (with the standard syntax) in
+% allow the use of the command |\piton{...}| (with the standard syntax) in
 % mathematical mode.
 %    \begin{macrocode}
 \RequirePackage { amstext }
 %    \end{macrocode}
 %
+% \bigskip
+% It will be possible to delete the following lines in the future.
 %    \begin{macrocode}
 \ProvideDocumentCommand { \IfPackageLoadedT } { m m }
   { \IfPackageLoadedTF { #1 } { #2 } { } }
@@ -3897,6 +3960,7 @@
 \cs_new_protected:Npn \@@_msg_new:nn { \msg_new:nnn { piton } }
 %    \end{macrocode}
 %
+% \bigskip
 % With Overleaf (and also TeXPage), by default, a document is compiled in
 % non-stop mode. When there is an error, there is no way to the user to use the
 % key H in order to have more information. That's why we decide to put that
@@ -4023,7 +4087,7 @@
     Unknown~key.\\
     You~have~used~the~key~'\l_keys_key_str'~when~loading~piton~
     but~the~only~keys~available~here~are~'beamer',~'footnote'~
-    and~'footnotehyper'.~ Other~keys~are~available~in~
+    and~'footnotehyper'.~Other~keys~are~available~in~
     \token_to_str:N \PitonOptions.\\
     That~key~will~be~ignored.
   }
@@ -4202,13 +4266,13 @@
 % The following parameter corresponds to the key |tcolorbox|.
 %    \begin{macrocode}
 \bool_new:N \l_@@_tcolorbox_bool
-% \end{macrocode}
+%    \end{macrocode}
 %
 % \medskip
 % The following parameter corresponds to the key |box|.
 %    \begin{macrocode}
 \str_new:N \l_@@_box_str
-% \end{macrocode}
+%    \end{macrocode}
 %
 % \medskip
 % In order to have a better control over the keys.
@@ -4243,7 +4307,8 @@
 % It will take into account all the lines, empty or not empty. It won't be used
 % to print the numbers of the lines but will be used to allow or disallow line
 % breaks (when |splittable| is in force) and for the color of the background
-% (when |background-color| is used with a \emph{list} of colors).
+% (when |background-color| is used with a \emph{list} of colors or when
+% |\rowcolor| is used).
 %    \begin{macrocode}
 \int_new:N \g_@@_line_int
 %    \end{macrocode}
@@ -4296,6 +4361,7 @@
 % will have the standard background color specified by |background-color|).
 %    \begin{macrocode}
 \tl_new:N \l_@@_prompt_bg_color_tl
+\tl_set:Nn \l_@@_prompt_bg_color_tl { gray!15 }
 %    \end{macrocode}
 %
 % \medskip
@@ -4398,7 +4464,7 @@
 % 
 %    \begin{macrocode} 
 \dim_new:N \l_@@_width_dim
-% \end{macrocode}
+%    \end{macrocode}
 %
 % \bigskip
 % |\g_@@_width_dim| will be the width of the environment, after construction.
@@ -4409,12 +4475,13 @@
 %    \end{macrocode}
 % 
 % \medskip
-% We will also use another dimension called |\l_@@_code_width_dim|. That
-% will the width of the actual lines of code. That dimension may be lower than
-% the whole |\l_@@_width_dim| because we have to take into account the value of
+% We will also use another dimension called |\l_@@_code_width_dim|. That will
+% the width of the actual lines of code. That dimension may be lower than the
+% whole |\l_@@_width_dim| because we have to take into account the value of
 % |\l_@@_left_margin_dim| (for the numbers of lines when |line-numbers| is in
-% force) and another small margin when a background color is used (with the key
-% |background-color|). 
+% force) and another small margin when |background-color| is in
+% force\footnote{However, the mere use of |\rowcolor| does not add those small
+% margins.}).
 %    \begin{macrocode}
 \dim_new:N \l_@@_code_width_dim
 %    \end{macrocode}
@@ -4576,15 +4643,24 @@
 % In the environments |{Piton}| the command |\rowcolor| will be linked to the
 % following one.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_rowcolor:n #1
+\NewDocumentCommand { \@@_rowcolor:n } { o m }
   {
-    \tl_gset:ce { g_@@_color_ \int_eval:n { \g_@@_line_int + 1 }_ tl } { #1 }
+    \tl_gset:ce
+      { g_@@_color_ \int_eval:n { \g_@@_line_int + 1 }_ tl }
+      { \tl_if_novalue:nTF { #1 } { #2 } { [ #1 ] { #2 } } }
     \bool_gset_true:N \g_@@_rowcolor_inside_bool 
   }
 %    \end{macrocode}
+%
+% In the command |piton| (in fact in |\@@_piton_standard| and |\@@_piton_verbatim|,
+% the command |\rowcolor| will be linked to the following one (in order to nullify
+% its effect).
+%    \begin{macrocode}
+\NewDocumentCommand { \@@_noop_rowcolor } { o m } { }
+%    \end{macrocode}
 % 
 % \bigskip
-% The following commands corresponds to the keys |marker/beginning| and
+% The following commands correspond to the keys |marker/beginning| and
 % |marker/end|. The values of that keys are functions that will be applied to
 % the ``\emph{range}'' specified by the final user in an individual
 % |\PitonInputFile|. They will construct the markers used to find textually in
@@ -4600,15 +4676,11 @@
 % 
 % 
 % \bigskip
-% The following token list will be evaluated at the beginning of
+% The following token list will be evaluated at the end of
 % |\@@_begin_line:|... |\@@_end_line:| and cleared at the end. It will be used
 % by LPEG acting between the lines of the Python code in order to add
-% instructions to be executed at the beginning of the line.
-%    \begin{macrocode} 
-\tl_new:N \g_@@_before_line_tl
-%    \end{macrocode}
+% instructions to be executed in vertical mode between the lines.
 %
-% \bigskip
 %    \begin{macrocode}
 \tl_new:N \g_@@_after_line_tl
 %    \end{macrocode}
@@ -4620,8 +4692,8 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_trailing_space: { }
 %    \end{macrocode}
-% When we have to rescan some pieces of code, we will use |\@@_piton:n|, which
-% we will set |\@@_trailing_space:| equal to |\space|.
+% When we have to rescan some pieces of code, we will use |\@@_piton:n| and that
+% command |\@@_piton:n| will set |\@@_trailing_space:| equal to |\space|.
 %
 % \bigskip
 %    \begin{macrocode}
@@ -4633,6 +4705,7 @@
 %    \begin{macrocode}
 \bool_new:N \g_@@_rowcolor_inside_bool
 %    \end{macrocode}
+%
 % 
 % \bigskip
 % \subsubsection{Detected commands}
@@ -4639,8 +4712,10 @@
 %
 % There are four keys for ``detected commands and environments'':
 % |detected-commands|, |raw-detected-commands|, |beamer-commands| and
-% |beamer-environments|. 
+% |beamer-environments|.
 %
+% In fact, there is also |vertical-detected-commands| but has a special treatment. 
+%
 % For each of those keys, we keep a clist of the names of such detected
 % commands and environments. For the commands, the corresponding |clist| will
 % contain the name of the commands \emph{wihtout} the backlash.
@@ -4661,7 +4736,7 @@
 %
 % \bigskip
 % Of course, the value of those clists may be modified during the preamble of
-% the document by using the corresponding key ('detected-commands', etc.).
+% the document by using the corresponding key (|detected-commands|, etc.).
 %
 % However, after the |\begin{document}|, it's no longer possible to modify those
 % clists because their contents will be used in the construction of the main
@@ -4813,7 +4888,6 @@
 \cs_set_protected:Npn \@@_begin_line: #1 \@@_end_line:
   { 
     \group_begin:
-    \g_@@_before_line_tl
     \int_gzero:N \g_@@_indentation_int
 %    \end{macrocode}
 %
@@ -4861,7 +4935,7 @@
 % If there is a background, we must remind that there is a left margin of 0.5~em
 % for the background...
 %    \begin{macrocode}
-        \bool_if:NT \g_@@_bg_bool
+        \int_compare:nNnT \l_@@_bg_colors_int > { \c_zero_int }
           { 
 %    \end{macrocode}
 % ... but if only if the key |left-margin| is not used !
@@ -4910,7 +4984,6 @@
     \group_end:
     \g_@@_after_line_tl
     \tl_gclear:N \g_@@_after_line_tl
-    \tl_gclear:N \g_@@_before_line_tl
   }
 %    \end{macrocode}
 %
@@ -5096,7 +5169,7 @@
 % 
 % \bigskip
 % The command |\@@_par:| will be inserted by Lua between two lines of the
-% informatic listing.
+% computer listing.
 % \begin{itemize}
 % \item In fact, it will be inserted between two commands
 % |\@@_begin_line:|...|\@@_end_of_line:|. 
@@ -5115,7 +5188,8 @@
 %    \begin{macrocode}
     \int_gincr:N \g_@@_line_int
 %    \end{macrocode}
-% ... it will be used to allow or disallow page breaks.
+% ... it will be used to allow or disallow page breaks, and also by the command
+% |\rowcolor|.
 %
 %
 % Each line in the listing is composed in a box of TeX (which may contain
@@ -5154,8 +5228,9 @@
               \normalfont \footnotesize \color { gray } 
               \l_@@_continuation_symbol_tl 
             } 
-            \skip_horizontal:n { 0.3 em }  
-            \bool_if:NT \g_@@_bg_bool { \skip_horizontal:n { 0.5 em } }
+            \skip_horizontal:n { 0.3 em }
+            \int_compare:nNnT \l_@@_bg_colors_int > { \c_zero_int } 
+              { \skip_horizontal:n { 0.5 em } }
           }  
         \bool_if:NT \l_@@_indent_broken_lines_bool
           { 
@@ -5420,7 +5495,7 @@
     background-color .value_required:n  = true ,
     prompt-background-color .tl_set:N         = \l_@@_prompt_bg_color_tl ,
     prompt-background-color .value_required:n = true ,
-% \end{macrocode}
+%    \end{macrocode}
 % With the tuning |write=false|, the content of the environment won't be parsed
 % and won't be printed on the \textsc{pdf}. However, the Lua variables |piton.last_code|
 % and |piton.last_language| will be set (and, hence, |piton.get_last_code| will be
@@ -5448,7 +5523,7 @@
     
     write .str_set:N = \l_@@_write_str ,
     write .value_required:n = true ,
-%     \end{macrocode}
+%    \end{macrocode}
 % For the key |join|, we convert immediatly the value of the key in utf16
 % (with the \text{bom} big endian that will be automatically inserted)
 % written in hexadecimal (what L3 calls the \emph{escaping}). Indeed, we will
@@ -5455,7 +5530,7 @@
 % have to write that value in the key |/UF| of a |/Filespec| (between angular
 % brackets |<| and |>| since it is in hexadecimal). It's prudent to do that
 % conversion right now since that value will transit by the Lua of LuaTeX.
-%     \begin{macrocode}
+%    \begin{macrocode}
     join .code:n
       = \str_set_convert:Nnnn \l_@@_join_str { #1 } { } { utf16/hex } ,
     join .value_required:n = true ,
@@ -5803,6 +5878,15 @@
 %
 %    \begin{macrocode}
     \cs_set_eq:NN \@@_begin_line: \prg_do_nothing:
+%    \end{macrocode}
+%    
+%    \bigskip
+%    We redefine |\rowcolor| inside of |\piton| commands to do nothing.
+%    \begin{macrocode}
+    \cs_set_eq:NN \rowcolor \@@_noop_rowcolor
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
     \tl_set:Ne \l_tmpa_tl 
       { 
         \lua_now:e 
@@ -5840,6 +5924,15 @@
     \group_begin:
     \automatichyphenmode = 1
     \cs_set_eq:NN \@@_begin_line: \prg_do_nothing:
+%    \end{macrocode}
+%    
+%    \bigskip
+%    We redefine |\rowcolor| inside of |\piton| commands to do nothing.
+%    \begin{macrocode}
+    \cs_set_eq:NN \rowcolor \@@_noop_rowcolor
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
     \tl_set:Ne \l_tmpa_tl 
       { 
         \lua_now:e 
@@ -5912,11 +6005,8 @@
     \dim_zero:N \parindent 
     \dim_zero:N \lineskip
     \cs_set_eq:NN \rowcolor \@@_rowcolor:n
-    \bool_gset_false:N \g_@@_bg_bool
     \int_compare:nNnT \l_@@_bg_colors_int > { \c_zero_int }
-      { \bool_gset_true:N \g_@@_bg_bool }
-    \tl_if_empty:NF \l_@@_prompt_bg_color_tl
-      { \bool_gset_true:N \g_@@_bg_bool }
+      { \bool_set_true:N \l_@@_bg_bool }
     \bool_gset_false:N \g_@@_rowcolor_inside_bool
     \IfPackageLoadedTF { zref-base }
       {
@@ -5974,7 +6064,7 @@
 \cs_new_protected:Npn \@@_compute_width:
   {
     \dim_gset:Nn \g_@@_width_dim { \box_wd:N \g_@@_output_box }
-    \bool_if:NTF \g_@@_bg_bool
+    \int_compare:nNnTF \l_@@_bg_colors_int > { \c_zero_int }     
       { 
         \dim_gadd:Nn \g_@@_width_dim { 0.5 em }
         \dim_compare:nNnTF \l_@@_left_margin_dim = \c_zero_dim 
@@ -5994,7 +6084,7 @@
 \cs_new_protected:Npn \@@_compute_code_width:
   {
     \dim_set_eq:NN \l_@@_code_width_dim \l_@@_width_dim
-    \bool_if:NTF \g_@@_bg_bool
+    \int_compare:nNnTF \l_@@_bg_colors_int > { \c_zero_int } 
 %    \end{macrocode}
 % If there is a background, we subtract 0.5~em for the margin on the right.
 %    \begin{macrocode}
@@ -6077,7 +6167,7 @@
 %    \begin{macrocode}
             \tl_set:Nn \l_@@_listing_tl { ##1 }
             \@@_composition:
-% \end{macrocode}
+%    \end{macrocode}
 % 
 % The following |\end{#2}| is only for the stack of environments of LaTeX.
 %    \begin{macrocode}
@@ -6172,6 +6262,12 @@
   { } 
 %    \end{macrocode}
 %
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_detect_prompt:n #1
+  {
+
+  }
+%    \end{macrocode}
 % 
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_composition:
@@ -6298,7 +6394,7 @@
           }
 %    \end{macrocode}
 % If the box that we have retrieved is void, that means that, in fact, there is no
-% longer boxes in |\g_tmpa_bool| and we will exit the loop.
+% longer boxes in |\g_tmpa_box| and we will exit the loop.
 %    \begin{macrocode}
         \box_if_empty:NTF \g_@@_line_box
           { \bool_gset_true:N \g_tmpa_bool }
@@ -6318,7 +6414,8 @@
 %    \begin{macrocode}
             \cs_if_exist_use:cT { g_@@_after_line _ \int_use:N \g_@@_line_int _ tl }
               { \cs_undefine:c { g_@@_after_line _ \int_use:N \g_@@_line_int _ tl } }
-            \mode_leave_vertical: 
+            \int_compare:nNnT \g_@@_line_int < \g_@@_nb_lines_int % added 25/08/18
+              { \mode_leave_vertical: }
           }
       }
   }      
@@ -6421,8 +6518,8 @@
       { \@@_retrieve_gobble_parse:o \l_@@_listing_tl }
     \bool_if:NT \l_@@_minimize_width_bool { \@@_compute_width: }
     \bool_lazy_or:nnT
-      \g_@@_bg_bool
-      \g_@@_rowcolor_inside_bool
+      { \int_compare_p:nNn \l_@@_bg_colors_int > { \c_zero_int } }
+      { \g_@@_rowcolor_inside_bool }
       { \@@_add_backgrounds_to_output_box: }
   }
 %    \end{macrocode}
@@ -6486,7 +6583,7 @@
 %    \end{macrocode}
 % 
 % \bigskip
-% The following will be used when the final user has user |print=false|.
+% The following will be used when the final user has used |print=false|.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_gobble_parse_no_print:n
   {
@@ -6644,8 +6741,9 @@
           { \@@_error_or_warning:n { overlay~without~beamer } }
       }
     \group_begin:
+%    \end{macrocode}    
 % The following line is to allow tools such as |latexmk| to be aware that the
-% file (read by |\PitonInputFile|) is loaded during the compilation of the LaTeX
+% file read by |\PitonInputFile| is loaded during the compilation of the LaTeX
 % document. 
 %    \begin{macrocode}
       \iow_log:e { (\l_@@_file_name_str) }
@@ -6877,7 +6975,9 @@
 \keys_define:nn { piton / Styles }
   {
     String       .meta:n = { String.Long = #1 , String.Short = #1 } ,
+    String       .value_required:n = true ,    
     Comment.Math .tl_set:c = pitonStyle _ Comment.Math  ,
+    Comment.Math .value_required:n = true ,
     unknown      .code:n = 
       \@@_error:n { Unknown~key~for~SetPitonStyle }
   }
@@ -6928,7 +7028,7 @@
 % gobbled in the |\tl_map_inline:Nn|.
 %    \begin{macrocode}
     \tl_replace_all:NVn \l_tmpa_tl \c_catcode_other_space_tl \space 
-    \seq_clear:N \l_tmpa_seq % added 2025/03/03
+    \seq_clear:N \l_tmpa_seq 
     \tl_map_inline:Nn \l_tmpa_tl { \seq_put_right:Nn \l_tmpa_seq { ##1 } } 
     \seq_use:Nn \l_tmpa_seq { \- }
   }
@@ -7706,7 +7806,7 @@
 % Python chunk). The first argument is a Lua string corresponding to the name of
 % a \pkg{piton} style and the second element is a pattern (that is to say a
 % \textsc{lpeg} without capture)
-%    \begin{macrocode}e
+%    \begin{macrocode}
 local K
 function K ( style , pattern ) return
   Lc ( [[ {\PitonStyle{ ]] .. style .. "}{" )
@@ -7803,8 +7903,8 @@
 %    \end{macrocode}
 %
 % \bigskip
-% By convention, we will use names with an initial capital for \textsc{lpeg}
-% which return captures.
+% \textbf{By convention, we will use names with an initial capital for LPEG
+% which return captures.}
 %
 % \bigskip
 % 
@@ -7894,7 +7994,7 @@
 %    \end{macrocode}
 % 
 % \bigskip 
-% The following \textsc{lpeg} catches a space (U+0020) and replace it by
+% The following \textsc{lpeg} catches a space (U+0020) and replaces it by
 % |\l_@@_space_in_string_tl|. It will be used in the strings. Usually,
 % |\l_@@_space_in_string_tl| will contain a space and therefore there won't be any
 % difference. However, when the key |show-spaces-in-strings| is in force,
@@ -8857,9 +8957,9 @@
 %    \end{macrocode}
 %
 % \bigskip
-%     \begin{macrocode}
+%    \begin{macrocode}
   local braces = Compute_braces ( '\"' * ( 1 - S "\"" ) ^ 0 * '\"' )
-%     \end{macrocode}
+%    \end{macrocode}
 %
 % \bigskip
 %    \begin{macrocode}
@@ -10439,7 +10539,7 @@
     if n == -1 then 
       n = AutoGobbleLPEG : match ( code )
 %    \end{macrocode}
-% for the cas of an empty environment (only blank lines)
+% for the case of an empty environment (only blank lines)
 %    \begin{macrocode}
       if tonumber(n) then else n = 0 end
     else 
@@ -10518,7 +10618,7 @@
       piton.join_files [ piton.join ] .. "\r\n" .. piton.get_last_code ( )
     end
   end 
-%     \end{macrocode}
+%    \end{macrocode}
 %
 % Now, if the final user has used the key |write| to write the listing of the
 % environment on an external file (on the disk).
@@ -10624,7 +10724,7 @@
       ( 
         [[\begin{]] .. piton.env_used_by_split .. "}\r" 
         .. v 
-        .. [[\end{]] .. piton.env_used_by_split .. "}\r" -- previously: }%\r
+        .. [[\end{]] .. piton.env_used_by_split .. "}\r" 
       )  
   end
   sprintL3 [[ \endgroup ]] 
@@ -10662,6 +10762,7 @@
          : gsub('\r\n','\n') : gsub('\r','\n')
 end
 %    \end{macrocode}
+%
 % 
 % \subsubsection{To count the number of lines}
 %
@@ -11501,7 +11602,7 @@
 % However, despite that bit which means \emph{Hidden}, some \textsc{pdf} readers
 % show the annotation. That's why we have used |width 0pt height 0pt depth 0pt|.
 %    \begin{macrocode}
-        [[ { /Subtype /FileAttachment /F 2 /Name /Paperclip]]
+        [[ { /Subtype /FileAttachment /F 2 /Name /Paperclip ]]
         ..
         [[ /Contents (File included by the key 'join' of piton) ]]
         ..
@@ -11508,7 +11609,7 @@
 %    \end{macrocode}
 % We recall that the value of |file_name| comes from the key |join|,
 % and that we have converted immediatly the value of the key in utf16
-% (with the \text{bom} big endian) written in hexadecimal.
+% (with the \textsc{bom} big endian) written in hexadecimal.
 % It's the suitable form for insertion as value of the key |/UF| between angular
 % brackets |<| and |>|.
 %    \begin{macrocode} 

Modified: trunk/Master/texmf-dist/tex/lualatex/piton/piton.lua
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/piton/piton.lua	2025-08-18 23:41:54 UTC (rev 76091)
+++ trunk/Master/texmf-dist/tex/lualatex/piton/piton.lua	2025-08-19 19:49:48 UTC (rev 76092)
@@ -20,7 +20,7 @@
 -- -------------------------------------------
 -- 
 -- This file is part of the LuaLaTeX package 'piton'.
-piton_version = "4.8" -- 2025/08/08
+piton_version = "4.8a" -- 2025/08/19
 
 
 
@@ -28,6 +28,8 @@
 
 
 
+
+
 piton.comment_latex = piton.comment_latex or ">"
 piton.comment_latex = "#" .. piton.comment_latex
 piton.write_files = { }
@@ -1634,7 +1636,7 @@
       (
         [[\begin{]] .. piton.env_used_by_split .. "}\r"
         .. v
-        .. [[\end{]] .. piton.env_used_by_split .. "}\r" -- previously: }%\r
+        .. [[\end{]] .. piton.env_used_by_split .. "}\r"
       )
   end
   sprintL3 [[ \endgroup ]]
@@ -2178,7 +2180,7 @@
       (
         [[ \pdfextension annot width 0pt height 0pt depth 0pt ]]
         ..
-        [[ { /Subtype /FileAttachment /F 2 /Name /Paperclip]]
+        [[ { /Subtype /FileAttachment /F 2 /Name /Paperclip ]]
         ..
         [[ /Contents (File included by the key 'join' of piton) ]]
         ..

Modified: trunk/Master/texmf-dist/tex/lualatex/piton/piton.sty
===================================================================
--- trunk/Master/texmf-dist/tex/lualatex/piton/piton.sty	2025-08-18 23:41:54 UTC (rev 76091)
+++ trunk/Master/texmf-dist/tex/lualatex/piton/piton.sty	2025-08-19 19:49:48 UTC (rev 76092)
@@ -19,8 +19,8 @@
 %% LaTeX version 2005/12/01 or later.
 %% -------------------------------------------
 %% 
-\def\PitonFileVersion{4.8}
-\def\PitonFileDate{2025/08/08}
+\def\PitonFileVersion{4.8a}
+\def\PitonFileDate{2025/08/19}
 
 
 
@@ -28,6 +28,8 @@
 
 
 
+
+
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesExplPackage
   {piton}
@@ -128,7 +130,7 @@
     Unknown~key.\\
     You~have~used~the~key~'\l_keys_key_str'~when~loading~piton~
     but~the~only~keys~available~here~are~'beamer',~'footnote'~
-    and~'footnotehyper'.~ Other~keys~are~available~in~
+    and~'footnotehyper'.~Other~keys~are~available~in~
     \token_to_str:N \PitonOptions.\\
     That~key~will~be~ignored.
   }
@@ -218,6 +220,7 @@
 \clist_new:N \l__piton_bg_color_clist
 \int_new:N \l__piton_bg_colors_int
 \tl_new:N \l__piton_prompt_bg_color_tl
+\tl_set:Nn \l__piton_prompt_bg_color_tl { gray!15 }
 \tl_new:N \l__piton_space_in_string_tl
 \str_new:N \l__piton_begin_range_str
 \str_new:N \l__piton_end_range_str
@@ -310,14 +313,16 @@
       }
       { \__piton_error:n { label~with~lines~numbers } }
   }
-\cs_new_protected:Npn \__piton_rowcolor:n #1
+\NewDocumentCommand { \__piton_rowcolor:n } { o m }
   {
-    \tl_gset:ce { g__piton_color_ \int_eval:n { \g__piton_line_int + 1 }_ tl } { #1 }
+    \tl_gset:ce
+      { g__piton_color_ \int_eval:n { \g__piton_line_int + 1 }_ tl }
+      { \tl_if_novalue:nTF { #1 } { #2 } { [ #1 ] { #2 } } }
     \bool_gset_true:N \g__piton_rowcolor_inside_bool
   }
+\NewDocumentCommand { \__piton_noop_rowcolor } { o m } { }
 \cs_new:Npn \__piton_marker_beginning:n #1 { }
 \cs_new:Npn \__piton_marker_end:n #1 { }
-\tl_new:N \g__piton_before_line_tl
 \tl_new:N \g__piton_after_line_tl
 \cs_new_protected:Npn \__piton_trailing_space: { }
 \bool_new:N \g__piton_color_is_none_bool
@@ -395,7 +400,6 @@
 \cs_set_protected:Npn \__piton_begin_line: #1 \__piton_end_line:
   {
     \group_begin:
-    \g__piton_before_line_tl
     \int_gzero:N \g__piton_indentation_int
     \hbox_set:Nn \l__piton_line_box
       {
@@ -425,7 +429,7 @@
               { ! \l__piton_skip_empty_lines_bool && \l__piton_label_empty_lines_bool }
               { \__piton_print_number: }
           }
-        \bool_if:NT \g__piton_bg_bool
+        \int_compare:nNnT \l__piton_bg_colors_int > { \c_zero_int }
           {
             \dim_compare:nNnT \l__piton_left_margin_dim = \c_zero_dim
               { \skip_horizontal:n { 0.5 em } }
@@ -453,7 +457,6 @@
     \group_end:
     \g__piton_after_line_tl
     \tl_gclear:N \g__piton_after_line_tl
-    \tl_gclear:N \g__piton_before_line_tl
   }
 \cs_new_protected:Npn \__piton_vtop_of_code:n #1
   {
@@ -597,7 +600,8 @@
               \l__piton_continuation_symbol_tl
             }
             \skip_horizontal:n { 0.3 em }
-            \bool_if:NT \g__piton_bg_bool { \skip_horizontal:n { 0.5 em } }
+            \int_compare:nNnT \l__piton_bg_colors_int > { \c_zero_int }
+              { \skip_horizontal:n { 0.5 em } }
           }
         \bool_if:NT \l__piton_indent_broken_lines_bool
           {
@@ -1025,6 +1029,7 @@
     \cs_set_eq:NN \$ \c_dollar_str
     \cs_set_eq:cN { ~ } \space
     \cs_set_eq:NN \__piton_begin_line: \prg_do_nothing:
+    \cs_set_eq:NN \rowcolor \__piton_noop_rowcolor
     \tl_set:Ne \l_tmpa_tl
       {
         \lua_now:e
@@ -1049,6 +1054,7 @@
     \group_begin:
     \automatichyphenmode = 1
     \cs_set_eq:NN \__piton_begin_line: \prg_do_nothing:
+    \cs_set_eq:NN \rowcolor \__piton_noop_rowcolor
     \tl_set:Ne \l_tmpa_tl
       {
         \lua_now:e
@@ -1103,11 +1109,8 @@
     \dim_zero:N \parindent
     \dim_zero:N \lineskip
     \cs_set_eq:NN \rowcolor \__piton_rowcolor:n
-    \bool_gset_false:N \g__piton_bg_bool
     \int_compare:nNnT \l__piton_bg_colors_int > { \c_zero_int }
-      { \bool_gset_true:N \g__piton_bg_bool }
-    \tl_if_empty:NF \l__piton_prompt_bg_color_tl
-      { \bool_gset_true:N \g__piton_bg_bool }
+      { \bool_set_true:N \l__piton_bg_bool }
     \bool_gset_false:N \g__piton_rowcolor_inside_bool
     \IfPackageLoadedTF { zref-base }
       {
@@ -1148,7 +1151,7 @@
 \cs_new_protected:Npn \__piton_compute_width:
   {
     \dim_gset:Nn \g__piton_width_dim { \box_wd:N \g__piton_output_box }
-    \bool_if:NTF \g__piton_bg_bool
+    \int_compare:nNnTF \l__piton_bg_colors_int > { \c_zero_int }
       {
         \dim_gadd:Nn \g__piton_width_dim { 0.5 em }
         \dim_compare:nNnTF \l__piton_left_margin_dim = \c_zero_dim
@@ -1160,7 +1163,7 @@
 \cs_new_protected:Npn \__piton_compute_code_width:
   {
     \dim_set_eq:NN \l__piton_code_width_dim \l__piton_width_dim
-    \bool_if:NTF \g__piton_bg_bool
+    \int_compare:nNnTF \l__piton_bg_colors_int > { \c_zero_int }
       {
         \dim_sub:Nn \l__piton_code_width_dim { 0.5 em }
         \dim_compare:nNnTF \l__piton_left_margin_dim = \c_zero_dim
@@ -1240,6 +1243,10 @@
       }
   }
   { }
+\cs_new_protected:Npn \__piton_detect_prompt:n #1
+  {
+
+  }
 \cs_new_protected:Npn \__piton_composition:
   {
     \str_if_empty:NT \l__piton_box_str
@@ -1322,7 +1329,8 @@
             \__piton_add_penalty_for_the_line:
             \cs_if_exist_use:cT { g__piton_after_line _ \int_use:N \g__piton_line_int _ tl }
               { \cs_undefine:c { g__piton_after_line _ \int_use:N \g__piton_line_int _ tl } }
-            \mode_leave_vertical:
+            \int_compare:nNnT \g__piton_line_int < \g__piton_nb_lines_int % added 25/08/18
+              { \mode_leave_vertical: }
           }
       }
   }
@@ -1388,8 +1396,8 @@
       { \__piton_retrieve_gobble_parse:o \l__piton_listing_tl }
     \bool_if:NT \l__piton_minimize_width_bool { \__piton_compute_width: }
     \bool_lazy_or:nnT
-      \g__piton_bg_bool
-      \g__piton_rowcolor_inside_bool
+      { \int_compare_p:nNn \l__piton_bg_colors_int > { \c_zero_int } }
+      { \g__piton_rowcolor_inside_bool }
       { \__piton_add_backgrounds_to_output_box: }
   }
 \cs_new_protected:Npn \__piton_add_backgrounds_to_output_box:
@@ -1685,7 +1693,9 @@
 \keys_define:nn { piton / Styles }
   {
     String       .meta:n = { String.Long = #1 , String.Short = #1 } ,
+    String       .value_required:n = true ,
     Comment.Math .tl_set:c = pitonStyle _ Comment.Math  ,
+    Comment.Math .value_required:n = true ,
     unknown      .code:n =
       \__piton_error:n { Unknown~key~for~SetPitonStyle }
   }
@@ -1712,7 +1722,7 @@
   {
     \tl_set:Nn \l_tmpa_tl { #1 }
     \tl_replace_all:NVn \l_tmpa_tl \c_catcode_other_space_tl \space
-    \seq_clear:N \l_tmpa_seq % added 2025/03/03
+    \seq_clear:N \l_tmpa_seq
     \tl_map_inline:Nn \l_tmpa_tl { \seq_put_right:Nn \l_tmpa_seq { ##1 } }
     \seq_use:Nn \l_tmpa_seq { \- }
   }



More information about the tex-live-commits mailing list.