<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% !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`\&amp;{} et \char`\\\char `\\}
\setsepchar{\\/&amp;}
\readlist\foo{1 &amp; 2 &amp; 3\\ a &amp; b&amp; \\ x &amp; &amp; 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 Ă&nbsp; 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 Ă&nbsp; 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}</pre></body></html>