summaryrefslogtreecommitdiff
path: root/macros/generic/listofitems/test/listofitems-test-latex.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/listofitems/test/listofitems-test-latex.tex')
-rw-r--r--macros/generic/listofitems/test/listofitems-test-latex.tex123
1 files changed, 123 insertions, 0 deletions
diff --git a/macros/generic/listofitems/test/listofitems-test-latex.tex b/macros/generic/listofitems/test/listofitems-test-latex.tex
new file mode 100644
index 0000000000..715e7f02bc
--- /dev/null
+++ b/macros/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