summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/README26
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/listofitems-en.pdfbin447840 -> 165367 bytes
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/listofitems-en.tex38
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/listofitems-fr.pdfbin412514 -> 165788 bytes
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/listofitems-fr.tex49
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.pdfbin0 -> 22162 bytes
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.tex123
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.pdfbin0 -> 70779 bytes
-rw-r--r--Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.tex140
9 files changed, 315 insertions, 61 deletions
diff --git a/Master/texmf-dist/doc/generic/listofitems/README b/Master/texmf-dist/doc/generic/listofitems/README
index 12bd57f3665..8fb8ec787b8 100644
--- a/Master/texmf-dist/doc/generic/listofitems/README
+++ b/Master/texmf-dist/doc/generic/listofitems/README
@@ -4,27 +4,27 @@ ___________________________________
listofitems
package
- v1.63
+ v1.64
- 21/08/2019
+ 10/02/2024
___________________________________
-Authors : Christian Tellechea, Steven B. Segletes
-Maintainer: Christian Tellechea
-E-mail : unbonpetit@netc.fr (CT)
- steven.b.segletes.civ@mail.mil (SBS)
- Comments, bug reports and suggestions are welcome.
-Licence : Released under the LaTeX Project Public License v1.3c or
- later, see http://www.latex-project.org/lppl.txt
+Maintainer : Christian Tellechea
+E-mail : unbonpetit@netc.fr (CT)
+ Comments, bug reports and suggestions are welcome.
+Translation: Steven B. Segletes
+ steven.b.segletes.civ@mail.mil
+Licence : Released under the LaTeX Project Public License v1.3c or
+ later, see http://www.latex-project.org/lppl.txt
----------------------------------------------------------------------
-Cette extension permet de capturer tous les \'el\'ements d'une liste
-dont le s\'eparateur a \'et\'e choisi par l'utilisateur et d'acc\'eder
-\`a tout \'el\'ement par une syntaxe simple.
+Cette extension permet de capturer tous les éléments d'une liste dont
+le séparateur a été choisi par l'utilisateur et d'accéder à tout
+élément par une syntaxe simple.
----------------------------------------------------------------------
This package allows one to capture all the items of a list, for which
the parsing character has been selected by the user, and to access any
-of these items with a simple syntax. \ No newline at end of file
+of these items with a simple syntax.
diff --git a/Master/texmf-dist/doc/generic/listofitems/listofitems-en.pdf b/Master/texmf-dist/doc/generic/listofitems/listofitems-en.pdf
index 018a8bdb6d2..cbb6fd89eda 100644
--- a/Master/texmf-dist/doc/generic/listofitems/listofitems-en.pdf
+++ b/Master/texmf-dist/doc/generic/listofitems/listofitems-en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/listofitems/listofitems-en.tex b/Master/texmf-dist/doc/generic/listofitems/listofitems-en.tex
index ca22711f269..5f177a59f1d 100644
--- a/Master/texmf-dist/doc/generic/listofitems/listofitems-en.tex
+++ b/Master/texmf-dist/doc/generic/listofitems/listofitems-en.tex
@@ -1,16 +1,11 @@
+% !TeX TS-program = lualatex
% This is the AMERICAN ENGLISH package documentation for "listofitems"
-\documentclass[american]{article}
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
-\usepackage{listofitems,babel,xspace}
+\documentclass[american,10pt]{article}
+\usepackage[a4paper,margin=2.5cm,footskip=10mm]{geometry}
\usepackage[bottom]{footmisc}
-\usepackage{libertine}\usepackage[italic]{mathastext}
-\usepackage[scaled=0.8]{luximono}
-\usepackage[margin=3cm]{geometry}
-\usepackage{fancybox}
-\usepackage{xcolor}
-\usepackage{listings,MnSymbol}
-\def\listofitems{\textsf{\loiname}\xspace}
+\usepackage{fancybox,xcolor,xspace,listings,libertinus-otf,listofitems,babel}
+\usepackage[scaled=0.8]{GoMono}
+\def\listofitems{\textsf\loiname\xspace}
\def\eTeX{\hbox{$\varepsilon$-\TeX}}
\makeatletter
\def\code{\expandafter\code@i\string}
@@ -114,7 +109,8 @@
\smallbreak
\americanloidate
\vskip1.5cm
- {Christian \bsc{Tellechea}\footnote{\texttt{unbonpetit@netc.fr}}\par Steven B. \bsc{Segletes}\footnote{steven.b.segletes.civ@mail.mil}}
+ {Christian \bsc{Tellechea}\footnote{\texttt{unbonpetit@netc.fr}}\bigbreak
+ {\footnotesize Translation: Steven B. \bsc{Segletes}\footnote{\texttt{steven.b.segletes.civ@mail.mil}}}}%
\par
\endgroup
\vskip2cm
@@ -137,10 +133,10 @@ A component may, in turn, be a list with a parsing delimiter different from
\def\listofitems{\textsf\loiname\xspace}
\section{Preface}
-\fbox{\vbox{\hsize\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax\textbf{Important}: As of version 1.62, \listofitems requires a \TeX{} engine that provides the \texttt{\string\expanded} primitive. If this is not available, an error message will be issued and version 1.61 will be loaded (last version working without the primitive \texttt{\string\expanded}); it is strongly recommended that you update your \LaTeX{} distribution in order to take advantage of the newer \TeX{} engines that provide for the use of this new primitive.}}\medbreak
+\fbox{\vbox{\hsize\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax\textbf{Important}: for any modification to the source code of this extension (bug reports, requests to add or modify a feature), \listofitems users should send an email to \texttt{unbonpetit@netc.fr}. In particular, there's no point in sending an e-mail to another address or posting on a specialized website.}}\medbreak
This package loads no external packages, must be used with the
- \eTeX{} engine, and must be called in (pdf)\hskip0pt(Xe)\hskip0pt(lua)\LaTeX{} with
+ \eTeX{} engine providing \verb|\expanded| primitive, and must be called in (pdf)\hskip0pt(Xe)\hskip0pt(lua)\LaTeX{} with
the invocation
\code|\usepackage{listofitems}|
@@ -544,17 +540,13 @@ In the inner parenthesis:
"\insmallparen"/
\section{The Code}
-
-Any suggestion, bug report, remark, request, addition or modification
- of functionality is welcome; in this case, I invite users of
- \listofitems to send me an email to \verb|unbonpetit@netc.fr|.\medbreak
-
The code below is the exact verbatim of the file \verb|listofitems.tex|.
I hope that the few comments scattered throughout it will
be enough for the user or the curious to understand the internal
machinery of this package:
-
-
+\newpage
+\pagecolor{black!85}%
+\newgeometry{margin=1.25cm}%
\lstinputlisting[
language=TeX,
inputencoding=latin1,
@@ -571,9 +563,9 @@ I hope that the few comments scattered throughout it will
showspaces=false,
showstringspaces=false,
numbers=left,
- numberstyle=\tiny\ttfamily\color{black},
+ numberstyle=\tiny\ttfamily\color{white},
breaklines=true,
- prebreak={\hbox{$\rhookswarrow$}},
+ prebreak={\hbox{$\swarrow$}},
breakindent=3em,
breakautoindent=true,
xleftmargin=1em,
diff --git a/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.pdf b/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.pdf
index 6cf2128a856..eb10a5e933c 100644
--- a/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.pdf
+++ b/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.tex b/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.tex
index 8eaff849df3..521ea601672 100644
--- a/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.tex
+++ b/Master/texmf-dist/doc/generic/listofitems/listofitems-fr.tex
@@ -1,17 +1,11 @@
-% !TeX encoding = UTF-8
+% !TeX TS-program = lualatex
% Ceci est la documentation du package "listofitems"
-%
-% Fichier compilé avec pdflatex
-\documentclass[french,a4paper]{article}
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{listofitems,babel}
+\documentclass[10pt,french]{article}
+\usepackage[a4paper,margin=2.5cm,footskip=10mm]{geometry}
\usepackage[bottom]{footmisc}
-\usepackage{libertine}\usepackage[italic,frenchmath]{mathastext}
-\usepackage[scaled=0.8]{luximono}
-\usepackage[margin=3cm]{geometry}
-\usepackage{fancybox,xcolor,xspace,listings,MnSymbol}
-\def\listofitems{\loiname\xspace}
+\usepackage{fancybox,xcolor,xspace,listings,libertinus-otf,listofitems,babel}
+\usepackage[scaled=0.8]{GoMono}
+\def\listofitems{\textsf\loiname\xspace}
\def\eTeX{\hbox{$\varepsilon$-\TeX}}
\makeatletter
\def\code{\expandafter\code@i\string}
@@ -108,7 +102,8 @@
\smallbreak
\longfrloidate
\vskip1.5cm
- {Christian \bsc{Tellechea}\footnote{\texttt{unbonpetit@netc.fr}}\par Steven B. \bsc{Segletes}\footnote{steven.b.segletes.civ@mail.mil}}
+ {Christian \bsc{Tellechea}\footnote{\texttt{unbonpetit@netc.fr}}\bigbreak
+ {\footnotesize Traducteur : Steven B. \bsc{Segletes}}\footnote{\texttt{steven.b.segletes.civ@mail.mil}}}
\par
\endgroup
\vskip2cm
@@ -117,16 +112,16 @@
Un élément peut à son tour être une liste disposant d'un autre séparateur que celui de la liste de niveau supérieur, ce qui ouvre la voie à des imbrications et donne une syntaxe rappelant celle des tableaux à plusieurs dimensions du type \verb|\foo[3,2]| pour accéder à l'élément \no2 de la liste contenue dans l'élément \no3 de la liste de plus haut niveau.
\end{titlepage}
-\def\listofitems{\textsf\loiname\xspace}
\section{Avant-propos}
-\fbox{\vbox{\hsize\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax\textbf{Important} : à partir de la version 1.62, \listofitems nécessite un moteur \TeX{} fournissant la primitive \texttt{\string\expanded}. Si ce n'est pas le cas, un message d'erreur sera émis et la version 1.61 sera chargée (dernière version fonctionnant sans la primitive \texttt{\string\expanded}) : il est vivement conseillé de mettre à jour sa distribution \LaTeX{} afin de profiter d'un moteur \TeX{} récent permettant l'utilisation de cette nouvelle primitive.}}\medbreak
+\fbox{\vbox{\hsize\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax\textbf{Important} : pour toute modification du code source de cette extension (remontée de bug, demande d'ajout ou modification de fonctionnalité), j'invite les utilisateurs de \listofitems à envoyer un email à \texttt{unbonpetit@netc.fr}. Il est notamment inutile d'envoyer un email à une autre adresse ou de poster sur un site internet spécialisé.}}\medbreak
-Cette extension ne requiert aucun package, doit être utilisée avec un moteur \eTeX, et doit être appelée sous (pdf)(Xe)(lua)\LaTeX{} par
+Cette extension ne requiert aucun package, doit être utilisée avec un moteur \eTeX{} fournissant la primitive \verb|\expanded|, et doit être appelée sous (pdf)(Xe)(lua)\LaTeX{} par
\code|\usepackage{listofitems}|
et sous (pdf)(Xe)(lua)\TeX{} par
\code|\input listofitems.tex|
+Je remercie Steven B.~\bsc{Segletes} pour la traduction de ce manuel mais aussi pour l'énergie, la motivation et la persévérance qu'il déploie pour apporter de l'aide aux utilisateurs de \listofitems en répondant à leurs questions sur un site spécialisé. J'avoue que, vu l'ampleur et la répétitivité de la tâche, je serais lassé depuis belle lurette.
\section{Lire une liste simple}
\paragraph{Définir le séparateur}
Le \verb|<séparateur>| par défaut est la virgule et si l'on souhaite en changer, il faut, avant de lire une liste d'éléments, le définir avec \verb|\setsepchar{<séparateur>}|. Un \verb|<séparateur>| est un ensemble de tokens dont les catcodes sont différents de 1 et 2 (les accolades ouvrantes et fermantes), 14 (habituellement \verb|%|) et 15. Le token de catcode 6 (habituellement \verb|#|) n'est accepté que s'il est suivi d'un entier auquel cas l'ensemble désigne l'argument d'une macro; en aucun cas ce token ne doit se trouver seul dans le \verb|<séparateur>|. Des commandes peuvent se trouver dans cet ensemble de tokens, y compris la primitive \verb|\par|.
@@ -151,7 +146,7 @@ Si la \verb|<liste>| est contenue dans une macro, alors cette macro est dévelop
\def\liste{12,abc, x y ,{\bfseries z}, ,\TeX,,!}
\readlist\foo\liste|
-La macro \verb|\greadlist| agit comme \verb|\readlist| mais effectue des assignations \emph{globales} et par conséquent, la \verb|<macroliste>| est utilisable hors du groupe où a été exécutée \verb|\greadlist|.
+La macro \verb|\greadlist| agit comme \verb|\readlist|, mais effectue des assignations \emph{globales} et donc, la \verb|<macroliste>| est utilisable hors du groupe où a été exécutée \verb|\greadlist|.
\paragraph{Accéder à un élément}
La macro \verb|\foo| attend un argument numérique \emph{obligatoire} entre crochets, que nous notons $i$ et qui désigne le rang de l'élément auquel on souhaite accéder. Ainsi, \verb|\foo[1]| est\footnote{Il faut 2 développements à \texttt{\textbackslash foo[}$i$\texttt] pour obtenir l'élément \no$i$.} \og\verb|12|\fg. De la même façon, \verb|\foo[4]| est \og\verb|{\bfseries z}|\fg.
@@ -219,7 +214,7 @@ b) nombre d'éléments = \foolen\par
\showitems\foo|
\paragraph{Itérer sur la liste}
-Une fois une liste lue par \verb|\readlist| et stockée dans une \verb|<macroliste>|, la commande \verb|\foreachitem <variable> \in <macroliste>{<code>}| itère sur la liste : la \verb|<variable>| est une macro choisire par l'utilisateur qui prendra tour à tour la valeur de chaque élément.
+Une fois une liste lue par \verb|\readlist| et stockée dans une \verb|<macroliste>|, la commande \verb|\foreachitem <variable> \in <macroliste>{<code>}| itère sur la liste : la \verb|<variable>| est une macro choisie par l'utilisateur qui prendra tour à tour la valeur de chaque élément.
La macro \verb|<variable>cnt| représente le numéro de l'élément contenu dans \verb|<variable>|.
@@ -241,7 +236,11 @@ La commande \verb|\itemtomacro<macroliste>[index]<macro>| assigne à la \verb|<m
On parle de liste \og imbriquée\fg lorsque l'on demande à \listofitems de lire une liste où les éléments sont à leur tour compris comme une liste (dont le séparateur est différent de la liste de niveau supérieur). Le nombre d'imbrication n'est pas limité, mais dans la pratique, un niveau d'imbrication de 2, voire 3, semble un maximum.
\paragraph{Définir les séparateurs}\label{sep.listes.imbriquees}
-Pour indiquer que les éléments de la liste doivent eux-mêmes être compris comme des listes et que la recherche des éléments sera récursive, il faut spécifier plusieurs \verb|<séparateurs>|, chacun correspondant à un niveau d'imbrication. Pour déclarer une \verb|<liste de séparateurs>| il faut définir le \verb|<séparateur>| de cette \verb|<liste de séparateurs>| à l'aide de l'argument optionnel de la macro \verb|\setsepchar| et écrire \verb|\setsepchar[<separateur>]{<liste des séparateurs>}|.
+Pour indiquer que les éléments de la liste doivent eux-mêmes être compris comme des listes et que la recherche des éléments sera récursive, il faut spécifier plusieurs \verb|<séparateurs>|, chacun correspondant à un niveau d'imbrication.
+
+Pour déclarer une \verb|<liste de séparateurs>| il faut définir le \verb|<séparateur>| de cette \verb|<liste de séparateurs>| à l'aide de l'argument optionnel de la macro \verb|\setsepchar| et écrire
+
+\code|\setsepchar[<separateur>]{<liste des séparateurs>}|
Par défaut, le \verb|<séparateur>| est \og\verb-/-\fg. Ainsi, si l'on donne l'ordre
@@ -297,7 +296,7 @@ La macro \verb|\listlen<macrolist>[<index>]| nécessite 2 développements pour d
La \verb|<profondeur>| de l'\verb|<index>| doit être strictement inférieure à celle de la \verb|<liste>|.\medbreak
-Dans le cas d'un \verb|<index>| vide, \verb|\listlen<macrolist>[]| donne en 2 développements le même résultat que \verb|<macrolist>len| qui le donne en 1.
+Dans le cas d'un \verb|<index>| vide, \verb|\listlen<macrolist>[]| donne en deux développements le même résultat que \verb|<macrolist>len| qui le donne en un seul.
\exemple|\setsepchar{\\/,/ }
\readlist\baz{1,2 a b,3 c\\4 d e f,5,6\\7,,8, ,9 xy z}
@@ -399,10 +398,10 @@ Dans la parenthèse intérieure :
"\insmallparen"/
\section{Le code}
-Toute suggestion, remontée de bug, remarque, demande, ajout ou modification de fonctionnalité est bienvenue; dans ce cas, j'invite les utilisateurs de \listofitems à m'envoyer un email à \verb|unbonpetit@netc.fr|.\medbreak
-
Le code ci-dessous est l'exact verbatim du fichier \verb|listofitems.tex|. J'espère que les quelques commentaires qui le parsèment de-ci de-là seront suffisants pour que l'utilisateur ou le curieux comprenne la machinerie interne de ce package :
-
+\newpage
+\pagecolor{black!85}%
+\newgeometry{margin=1.25cm}%
\lstinputlisting[
language=TeX,
inputencoding=latin1,
@@ -419,9 +418,9 @@ Le code ci-dessous est l'exact verbatim du fichier \verb|listofitems.tex|. J'esp
showspaces=false,
showstringspaces=false,
numbers=left,
- numberstyle=\tiny\ttfamily\color{black},
+ numberstyle=\tiny\ttfamily\color{white},
breaklines=true,
- prebreak={\hbox{$\rhookswarrow$}},
+ prebreak={\hbox{$\swarrow$}},
breakindent=3em,
breakautoindent=true,
xleftmargin=1em,
diff --git a/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.pdf b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.pdf
new file mode 100644
index 00000000000..34fe82b0260
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.tex b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.tex
new file mode 100644
index 00000000000..715e7f02bc6
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-latex.tex
@@ -0,0 +1,123 @@
+% !TeX TS-program = lualatex
+% Ceci est le fichier de test (pdf)(Xe)(lua)latex de l'entension listofitems
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mise en garde : lorsqu'il est compilé, ce fichier DOIT générer des erreurs aux %
+% endroits où figure "ERREUR" dans le code source. %
+% Ces erreurs sont émises par l'extension listofitems lorsqu'un %
+% argument ou un index est erroné et qu'une solution est %
+% prévue. %
+% Le fichier pdf DOIT être généré. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\documentclass[french]{article}
+\usepackage[margin=2cm]{geometry}
+\usepackage{listofitems,babel}
+\begin{document}
+\parindent=0pt
+{\hfill\huge\bfseries Fichier de test\hfill\null\par}
+\section{Séparateur vide}
+Séparateur vide :\setsepchar{}% ERREUR : le séparateur "," est pris par défaut
+\readlist\castordu{a aa, b , c cc }
+\showitems\castordu
+
+\section{Liste vide}
+Liste vide :\setsepchar{*}
+\readlist\listevide{}% ERREUR
+Showitems = \showitems\listevide\par% ne donne rien, pas d'erreur
+3\ieme{} élément = \listevide[3]\par% ne donne rien, pas d'erreur
+Longueur = \listevidelen% affiche 0
+
+\section{Cas standard}
+\setsepchar{+}
+Lecture par défaut,\readlist\maliste{123+ 456 + ++\par+{+}+* *}
+showitems = \showitems*\maliste
+
+Lecture sans élément vide,\ignoreemptyitems
+\readlist\maliste{123+ 456 + ++\par+{+}+* *}
+showitems = \showitems*\maliste
+
+Lecture sans élément vide ni espace extrêmes,\ignoreemptyitems
+\readlist*\maliste{123+ 456 + ++\par+{+}+* *}
+showitems = \showitems*\maliste
+
+Longueur = \malistelen\par
+liste entière = \maliste[]\par
+2\ieme{} élément = \maliste[2]\par
+-1\ieme{} élément = \maliste[-1]\par
+-2\ieme{} élément = \maliste[-2]\par
+-7\ieme{} élément = \maliste[-7]\par% ERREUR, doit afficher la liste entière
+7\ieme{} élément = \maliste[7]% ERREUR, doit afficher la liste entière
+
+\section{Séparateur = \char`\\par}
+\def\laliste{a b c \par def\par\par xyz}
+\reademptyitems
+\setsepchar{\par}
+Lecture par défaut, \readlist\maliste\laliste
+showitems = \showitems\maliste
+
+Lecture sans élément vide, \ignoreemptyitems
+\readlist\maliste\laliste
+showitems = \showitems\maliste
+
+\section{Séparateur = caractère actif}
+\begingroup
+\catcode`\!=13 \def!{|}
+\setsepchar{!}
+\readlist\foo{!1 ! 2 !! 3!}
+Showitems = \showitems\foo\par
+liste entière = \foo[]\par
+2\ieme{} élément = \foo[2]\par
+-1\ieme{} élément = \foo[-1]\par
+-5\ieme{} élément = \foo[-5]\par% ERREUR, doit afficher la liste entière
+\endgroup
+
+\section{Séparateurs = +\quad -\quad *\quad /}
+\setsepchar[.]{+||-||*||/}
+\def\expression{3 + 2*7 - 4*9/5 - 1}
+\readlist*\nombres\expression
+Showitems = \showitems\nombres\par
+liste entière = \nombres[]\par
+Longueur = \nombreslen\par
+2\ieme{} élément = \nombres[2]\par
+-1\ieme{} élément = \nombres[-1]\par
+-5\ieme{} élément = \nombres[-5]
+
+\section{Séparateurs = \char`\&{} et \char`\\\char `\\}
+\setsepchar{\\/&}
+\readlist\foo{1 & 2 & 3\\ a & b& \\ x & & z}
+Showitems[] = \showitems*\foo\par
+Showitems[2] = \showitems*\foo[2]\par
+Showitems[2,1] = \showitems*\foo[2,1]\par% ERREUR : trop grande profondeur
+Foreachitem = \foreachitem\myitem\in\foo[3]{\myitemcnt = "\myitem"\qquad}\par
+élément [-2,-3] = "\foo[-2,-3]"\par
+
+\section{Séparateurs = \char`\^\char`\^M actif et ponctuations}
+\begingroup
+\obeylines
+\ignoreemptyitems
+\setsepchar{^^M/ ||,||'||-||:||;||.}%
+\readlist\poeme{C'est un trou de verdure où chante une rivière,
+Accrochant follement aux herbes des haillons
+D'argent ; où le soleil, de la montagne fière,
+Luit : c'est un petit val qui mousse de rayons.}% « Le dormeur du val », Arthur Rimbaud
+\begingroup% dans ce groupe
+\renewcommand\showitemsmacro[1]{% aller à la ligne (\par) après chaque élément
+ \begingroup\fboxsep=0.25pt \fboxrule=0.5pt \fbox{\strut#1}\endgroup\par
+}
+Showitems[] =
+\showitems\poeme
+\endgroup% revenir à la macro \showitemsmacro par défaut
+\medbreak
+
+Nombre de vers = \poemelen{} ou \listlen\poeme[]
+Mots du 1\ier{} vers = \showitems\poeme[1]
+Mots du dernier vers = \showitems\poeme[-1]
+4\ieme{} mot du premier vers = "\poeme[1,4]"
+5\ieme{} mot du 3\ieme{} vers = "\poeme[3,5]"
+\medbreak
+
+\textbf{Rimes} :
+\foreachitem\vers\in\poeme{vers \no\verscnt{} : \poeme[\verscnt,-1]\par}
+\endgroup
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.pdf b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.pdf
new file mode 100644
index 00000000000..0fa54394a12
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.tex b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.tex
new file mode 100644
index 00000000000..f2cfb0ac6e4
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/listofitems/test/listofitems-test-tex.tex
@@ -0,0 +1,140 @@
+% !TeX TS-program = luatex
+% Ceci est le fichier de test (pdf)(Xe)(lua)tex de l'entension listofitems
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mise en garde : lorsqu'il est compilé, ce fichier DOIT générer des erreurs aux %
+% endroits où figure "ERREUR" dans le code source. %
+% Ces erreurs sont émises par l'extension listofitems lorsqu'un %
+% argument ou un index est erroné et qu'une solution est %
+% prévue. %
+% Le fichier pdf DOIT être généré. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\hsize = \dimexpr 21cm - 2in \relax
+\vsize = \dimexpr 29.7cm - 2in \relax
+
+\input listofitems.tex
+
+\newcount\sectioncnt
+\def\section#1{\advance \sectioncnt1 \bigbreak{\loisectionfont \the\sectioncnt\quad #1\par}\smallbreak}
+\def\expo#1{\penalty10000 \raise0.66667ex \hbox{\loiexpofont#1}}
+\font\loititlefont=ecbx2000 % titre
+\font\loisectionfont=ecbx1200 % section
+\font\loiexpofont=ecrm1000 at 8pt % exposant
+\font\loitextfont=ecrm1000 % texte
+\font\loitextfontbf=ecbx1000 % gras
+
+\catcode`\;=13 \def;{\unskip\penalty10000 \ \string;}% caractères actifs de ponctuation française
+\catcode`\:=13 \def:{\unskip\penalty10000 \ \string:}
+
+%%%%% DÉBUT DU DOCUMENT
+\loitextfont
+\parindent=0pt
+\centerline{\loititlefont Fichier de test (luatex)}
+\par\vskip1.5cm
+
+\section{Séparateur vide}
+Separateur vide :\setsepchar{}% ERREUR : le séparateur "," est pris par défaut
+\readlist\castordu{a aa, b , c cc }
+\showitems\castordu
+
+\section{Liste vide}
+Liste vide :\setsepchar{*}
+\readlist\listevide{}% ERREUR
+Showitems = \showitems\listevide\par% ne donne rien, pas d'erreur
+3\expo{e} élément = \listevide[3]\par% ne donne rien, pas d'erreur
+Longueur = \listevidelen% affiche 0
+
+\section{Cas standard}
+\setsepchar{+}
+Lecture par défaut,\readlist\maliste{123+ 456 + ++\par+{+}+* *}
+showitems = \showitems*\maliste
+
+Lecture sans élément vide,\ignoreemptyitems
+\readlist\maliste{123+ 456 + ++\par+{+}+* *}
+showitems = \showitems*\maliste
+
+Lecture sans élément vide ni espace extrêmes,\ignoreemptyitems
+\readlist*\maliste{123+ 456 + ++\par+{+}+* *}
+showitems = \showitems*\maliste
+
+Longueur = \malistelen\par
+liste entière = \maliste[]\par
+2\expo{e} élément = \maliste[2]\par
+-1\expo{e} élément = \maliste[-1]\par
+-2\expo{e} élément = \maliste[-2]\par
+-7\expo{e} élément = \maliste[-7]\par% ERREUR, doit afficher la liste entière
+7\expo{e} élément = \maliste[7]% ERREUR, doit afficher la liste entière
+
+\section{Séparateur = \char`\\par}
+\def\laliste{a b c \par def\par\par xyz}
+\reademptyitems
+\setsepchar{\par}
+Lecture par défaut, \readlist\maliste\laliste
+showitems = \showitems\maliste
+
+Lecture sans élément vide, \ignoreemptyitems
+\readlist\maliste\laliste
+showitems = \showitems\maliste
+
+\section{Séparateur = caractère actif}
+\begingroup
+\catcode`\!=13 \def!{|}
+\setsepchar{!}
+\readlist\foo{!1 ! 2 !! 3!}
+Showitems = \showitems\foo\par
+liste entière = \foo[]\par
+2\expo{e} élément = \foo[2]\par
+-1\expo{er} élément = \foo[-1]\par
+-5\expo{e} élément = \foo[-5]\par% ERREUR, doit afficher la liste entière
+\endgroup
+
+\section{Séparateurs = +\quad -\quad *\quad /}
+\setsepchar[.]{+||-||*||/}
+\def\expression{3 + 2*7 - 4*9/5 - 1}
+\readlist*\nombres\expression
+Showitems = \showitems\nombres\par
+liste entière = \nombres[]\par
+Longueur = \nombreslen\par
+2\expo{e} élément = \nombres[2]\par
+-1\expo{e} élément = \nombres[-1]\par
+-5\expo{e} élément = \nombres[-5]
+
+\section{Séparateurs = \char`\&{} et \char`\\\char `\\}
+\setsepchar{\\/&}
+\readlist\foo{1 & 2 & 3\\ a & b& \\ x & & z}
+Showitems[] = \showitems*\foo\par
+Showitems[2] = \showitems*\foo[2]\par
+Showitems[2,1] = \showitems*\foo[2,1]\par% ERREUR : trop grande profondeur
+Foreachitem = \foreachitem\myitem\in\foo[3]{\myitemcnt = "\myitem"\qquad}\par
+élément [-2,-3] = "\foo[-2,-3]"\par
+
+\section{Séparateurs = \char`\^\char`\^M actif et ponctuations}
+\begingroup
+\obeylines
+\ignoreemptyitems
+\setsepchar{^^M/ ||,||'||-||:||;||.}%
+\readlist\poeme{C'est un trou de verdure où chante une rivière,
+Accrochant follement aux herbes des haillons
+D'argent ; où le soleil, de la montagne fière,
+Luit : c'est un petit val qui mousse de rayons.}% « Le dormeur du val », Arthur Rimbaud
+\begingroup% dans ce groupe
+\def\showitemsmacro#1{% aller à la ligne (\par) après chaque élément
+ \begingroup\fboxsep=0.25pt \fboxrule=0.5pt \fbox{\strut#1}\endgroup\par
+}
+Showitems[] =
+\showitems\poeme
+\endgroup% revenir à la macro \showitemsmacro par défaut
+\medbreak
+
+Nombre de vers = \poemelen{} ou \listlen\poeme[]
+Mots du 1er vers = \showitems\poeme[1]
+Mots du dernier vers = \showitems\poeme[-1]
+4\expo{e} mot du premier vers = "\poeme[1,4]"
+5\expo{e} mot du 3e vers = "\poeme[3,5]"
+\medbreak
+
+{\loitextfontbf Rimes} :
+\foreachitem\vers\in\poeme{vers n\expo{\unkern o}\verscnt{} : \poeme[\verscnt,-1]\par}
+\endgroup
+\bye \ No newline at end of file