summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/xstring/xstring_test.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/xstring/xstring_test.tex')
-rwxr-xr-xMaster/texmf-dist/doc/latex/xstring/xstring_test.tex552
1 files changed, 552 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/xstring/xstring_test.tex b/Master/texmf-dist/doc/latex/xstring/xstring_test.tex
new file mode 100755
index 00000000000..fd853f16b4a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/xstring/xstring_test.tex
@@ -0,0 +1,552 @@
+\documentclass[a4paper,10pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[dvips,margin=1.5cm,noheadfoot]{geometry}
+\pagestyle{empty}
+\usepackage{verbatim}
+\usepackage{listings}
+\usepackage{xstring}
+\usepackage{etex}
+
+\makeatletter
+
+\newcommand*\ExNorm{\@ifstar{\def\frontiere{|}\@Ex}{\def\frontiere{}\@Ex}}
+
+\newcommand*\@Ex{%
+ \relax%
+ \ifmmode\hbox\else\leavevmode\null\fi%
+ \bgroup%
+ \verb@eol@error%
+ \let\do\@makeother\dospecials%
+ \verbatim@font\@noligs%
+ \@@Ex%
+ }
+\newcommand*\@@Ex[1]{%
+ \@vobeyspaces\frenchspacing\
+ \catcode`#1\active%
+ \lccode`\~`#1%
+ \gdef\verb@balance@group{%
+ \verb@egroup\@latex@error{\noexpand\verb commande illégale !!}%
+ \@ehc%
+ }%
+ \aftergroup\verb@balance@group%
+ \lowercase{%
+ \let ~\verb@egroup%
+ \everyeof{\noexpand}%
+ \endlinechar=\m@ne%
+ \def\@tempa##1~{%
+ \hbox to \Partage\linewidth{\hfil##1~}\quad\scantokens{\frontiere##1\frontiere}\commentaire\gdef\commentaire{}%
+ \par}%
+ }%
+ \@tempa%
+}%
+\makeatother
+
+\newcommand\chapitre[2]{\medskip{\large\textbf{#1} \texttt{\textbackslash#2}}\smallskip}
+
+\begin{document}
+\setlength{\parindent}{0pt}
+
+\begin{center}\Large{Ceci est le fichier de test de xstring}.\end{center}
+
+\gdef\Partage{0.7}
+\gdef\commentaire{}
+
+Toutes les situations ne sont pas envisagées, mais au moins un grand nombre ! Les macros sont examinées dans l'ordre logique du code.
+
+Lorsque le résultat contient des espaces ou peut conduire à des doutes, il sera entouré de «|», étant entendu que «||» est une chaîne vide.\bigskip
+
+\chapitre{Le test}{IfSubStr}
+\setverbdelim{|}
+
+\ExNorm|\IfSubStr{abcdef}{cd}{vrai}{faux}|
+\ExNorm|\IfSubStr{a b c d }{b c}{vrai}{faux}|
+\ExNorm|\IfSubStr{a b c d }{bc}{vrai}{faux}|
+\ExNorm|\IfSubStr{abcdef}{}{vrai}{faux}|
+\ExNorm|\IfSubStr{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStr{aaaa}{aa}{vrai}{faux}|
+\ExNorm|\IfSubStr{a}{aa}{vrai}{faux}|
+\ExNorm|\IfSubStr{éàèï}{à}{vrai}{faux}|
+\ExNorm|\IfSubStr{éàèï}{ù}{vrai}{faux}|
+\ExNorm|\IfSubStr{ÉÀÇ}{Ç}{vrai}{faux}|
+\ExNorm|\IfSubStr{a}{}{vrai}{faux}|
+\ExNorm|\IfSubStr{}{a}{vrai}{faux}|
+\ExNorm|\IfSubStr{}{}{vrai}{faux}|
+\ExNorm|\IfSubStr[2]{abaca}{a}{vrai}{faux}|
+\ExNorm|\IfSubStr[3]{abaca}{a}{vrai}{faux}|
+\ExNorm|\IfSubStr[4]{abaca}{a}{vrai}{faux}|
+\ExNorm|\IfSubStr[-2]{abaca}{a}{vrai}{faux}|
+
+\chapitre{Le test}{IfBeginWith}
+
+\ExNorm|\IfBeginWith{abcdef}{adc}{vrai}{faux}|
+\ExNorm|\IfBeginWith{abcdef}{abcd}{vrai}{faux}|
+\ExNorm|\IfBeginWith{ a b c }{ a}{vrai}{faux}|
+\ExNorm|\IfBeginWith{a b c d}{ab}{vrai}{faux}|
+\ExNorm|\IfBeginWith{a}{a}{vrai}{faux}|
+\ExNorm|\IfBeginWith{a}{aa}{vrai}{faux}|
+\ExNorm|\IfBeginWith{éàèï}{è}{vrai}{faux}|
+\ExNorm|\IfBeginWith{éàèï}{éà}{vrai}{faux}|
+\ExNorm|\IfBeginWith{ÉÀÇ}{É}{vrai}{faux}|
+\ExNorm|\IfBeginWith{a}{}{vrai}{faux}|
+\ExNorm|\IfBeginWith{}{a}{vrai}{faux}|
+\ExNorm|\IfBeginWith{}{}{vrai}{faux}|
+
+\chapitre{Le test}{IfEndWith}
+
+\ExNorm|\IfEndWith{abcdef}{ab}{vrai}{faux}|
+\ExNorm|\IfEndWith{abcdef}{f}{vrai}{faux}|
+\ExNorm|\IfEndWith{ a b c }{c}{vrai}{faux}|
+\ExNorm|\IfEndWith{ a b c }{ }{vrai}{faux}|
+\ExNorm|\IfEndWith{a}{a}{vrai}{faux}|
+\ExNorm|\IfEndWith{a}{aa}{vrai}{faux}|
+\ExNorm|\IfEndWith{éàèï}{è}{vrai}{faux}|
+\ExNorm|\IfEndWith{éàèï}{ï}{vrai}{faux}|
+\ExNorm|\IfEndWith{ÉÀÇ}{Ç}{vrai}{faux}|
+\ExNorm|\IfEndWith{a}{}{vrai}{faux}|
+\ExNorm|\IfEndWith{}{a}{vrai}{faux}|
+\ExNorm|\IfEndWith{}{}{vrai}{faux}|
+
+\chapitre{Le test}{IfSubStrBefore}
+
+\ExNorm|\IfSubStrBefore{abcdef}{b}{e}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{abcdef}{e}{c}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{ a b c }{ }{b}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{ a b c }{ b}{c }{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{abcdef}{z}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{abcdef}{y}{z}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{abcdef}{a}{z}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{aaa}{a}{aa}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{abcdef}{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{éàèï}{à}{ï}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{éàèï}{é}{à}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{ÉÀÇ}{Ç}{É}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{a}{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{}{a}{b}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{a}{}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{}{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore{}{}{}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[1,1]{abacada}{d}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[1,2]{abacada}{d}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[1,3]{abacada}{d}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[1,4]{abacada}{d}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[2,1]{maman papa}{a}{p}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[2,2]{maman papa}{a}{p}{vrai}{faux}|
+\ExNorm|\IfSubStrBefore[4,2]{maman papa}{a}{p}{vrai}{faux}|
+
+\chapitre{Le test}{IfStrBehind}
+
+\ExNorm|\IfSubStrBehind{abcdef}{b}{e}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{abcdef}{e}{c}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{ a b c }{ }{b}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{ a b c }{ c}{ a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{abcdef}{z}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{abcdef}{y}{z}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{abcdef}{a}{z}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{aaa}{a}{aa}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{abcdef}{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{éàèï}{ï}{à}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{éàèï}{à}{é}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{ÉÀÇ}{À}{Ç}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{a}{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{}{a}{b}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{a}{}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{}{a}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind{}{}{}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[1,1]{abacada}{c}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[1,2]{abacada}{c}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[1,3]{abacada}{c}{a}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[2,1]{maman papa}{a}{p}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[3,1]{maman papa}{a}{p}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[3,2]{maman papa}{a}{p}{vrai}{faux}|
+\ExNorm|\IfSubStrBehind[4,2]{maman papa}{a}{p}{vrai}{faux}|
+
+\chapitre{La macro}{StrBefore}
+
+\ExNorm|\StrBefore{abcedef}{e}|
+\ExNorm*|\StrBefore{abcdef}{a}|
+\ExNorm*|\StrBefore{abcdef}{z}|
+\ExNorm*|\StrBefore{a b c d}{c}|
+\ExNorm*|\StrBefore{a b c d}{ }|
+\ExNorm*|\StrBefore[2]{a b c d}{ }|
+\ExNorm*|\StrBefore[3]{a b c d}{ }|
+\ExNorm*|\StrBefore[9]{a b c d}{ }|
+\ExNorm*|\StrBefore[-7]{a b c d}{ }|
+\ExNorm*|\StrBefore{abcdef}{Z}|
+\ExNorm|\StrBefore{éàèï}{è}|
+\ExNorm|\StrBefore[2]{étété}{é}|
+\ExNorm|\StrBefore{ÉÀÇ}{À}|
+\ExNorm*|\StrBefore[1]{aaaaaa}{aa}|
+\ExNorm|\StrBefore[2]{aaaaaa}{aa}|
+\ExNorm|\StrBefore[3]{aaaaaa}{aa}|
+\ExNorm*|\StrBefore[4]{aaaaaa}{aa}|
+\ExNorm*|\StrBefore{a}{}|
+\ExNorm*|\StrBefore{}{a}|
+\ExNorm*|\StrBefore{}{}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrBefore{abcedef}{e}[\aa]\aa|
+\ExNorm*|\StrBefore{abcdef}{a}[\aa]\aa|
+\ExNorm*|\StrBefore{abcdef}{z}[\aa]\aa|
+\ExNorm*|\StrBefore{a b c d}{c}[\aa]\aa|
+\ExNorm*|\StrBefore{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBefore[2]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBefore[3]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBefore[9]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBefore[-7]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBefore{abcdef}{Z}[\aa]\aa|
+\ExNorm|\StrBefore{éàèï}{è}[\aa]\aa|
+\ExNorm|\StrBefore[2]{étété}{é}[\aa]\aa|
+\ExNorm|\StrBefore{ÉÀÇ}{À}[\aa]\aa|
+\ExNorm*|\StrBefore[1]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrBefore[2]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrBefore[3]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm*|\StrBefore[4]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm*|\StrBefore{a}{}[\aa]\aa|
+\ExNorm*|\StrBefore{}{a}[\aa]\aa|
+\ExNorm*|\StrBefore{}{}[\aa]\aa|
+
+\chapitre{La macro}{StrBehind}
+
+\ExNorm|\StrBehind{abcedef}{e}|
+\ExNorm*|\StrBehind{abcdef}{a}|
+\ExNorm*|\StrBehind{abcdef}{z}|
+\ExNorm*|\StrBehind{a b c d}{c}|
+\ExNorm*|\StrBehind{a b c d}{ }|
+\ExNorm*|\StrBehind[2]{a b c d}{ }|
+\ExNorm*|\StrBehind[3]{a b c d}{ }|
+\ExNorm*|\StrBehind[9]{a b c d}{ }|
+\ExNorm*|\StrBehind[-7]{a b c d}{ }|
+\ExNorm*|\StrBehind{abcdef}{Z}|
+\ExNorm|\StrBehind{éàèï}{è}|
+\ExNorm|\StrBehind{ÉÀÇ}{À}|
+\ExNorm|\StrBehind[1]{aaaaaa}{aa}|
+\ExNorm|\StrBehind[2]{aaaaaa}{aa}|
+\ExNorm*|\StrBehind[3]{aaaaaa}{aa}|
+\ExNorm*|\StrBehind[4]{aaaaaa}{aa}|
+% \ExNorm*|\StrBehind{a}{}|
+% \ExNorm*|\StrBehind{}{a}|
+% \ExNorm*|\StrBehind{}{}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrBehind{abcedef}{e}[\aa]\aa|
+\ExNorm*|\StrBehind{abcdef}{a}[\aa]\aa|
+\ExNorm*|\StrBehind{abcdef}{z}[\aa]\aa|
+\ExNorm*|\StrBehind{a b c d}{c}[\aa]\aa|
+\ExNorm*|\StrBehind{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBehind[2]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBehind[3]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBehind[9]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBehind[-7]{a b c d}{ }[\aa]\aa|
+\ExNorm*|\StrBehind{abcdef}{Z}[\aa]\aa|
+\ExNorm|\StrBehind{éàèï}{è}[\aa]\aa|
+\ExNorm|\StrBehind{ÉÀÇ}{À}[\aa]\aa|
+\ExNorm|\StrBehind[1]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrBehind[2]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm*|\StrBehind[3]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm*|\StrBehind[4]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm*|\StrBehind{a}{}[\aa]\aa|
+\ExNorm*|\StrBehind{}{a}[\aa]\aa|
+\ExNorm*|\StrBehind{}{}[\aa]\aa|
+
+\chapitre{La macro}{StrBetween}
+
+\ExNorm|\StrBetween{abcdef}{b}{e}|
+\ExNorm*|\StrBetween{aZaaaaZa}{Z}{Z}|
+\ExNorm*|\StrBetween[1,2]{aZaaaaZa}{Z}{Z}|
+\ExNorm*|\StrBetween{a b c d}{a}{c}|
+\ExNorm*|\StrBetween{a b c d}{a }{ d}|
+\ExNorm*|\StrBetween{abcdef}{a}{Z}|
+\ExNorm*|\StrBetween{abcdef}{Y}{Z}|
+\ExNorm*|\StrBetween[2,5]{aAaBaCaDa}{a}{a}|
+\ExNorm*|\StrBetween[4,1]{ab1ab2ab3ab4ab}{b}{a}|
+\ExNorm*|\StrBetween[3,4]{a b c d e f}{ }{ }|
+\ExNorm|\StrBetween[1,3]{aaaaaa}{aa}{aa}|
+\ExNorm|\StrBetween{éàèï}{é}{ï}|
+\ExNorm|\StrBetween{ÉÀÇ}{É}{Ç}|
+\ExNorm*|\StrBetween{abcdef}{a}{}|
+\ExNorm*|\StrBetween{abcdef}{}{f}|
+\ExNorm*|\StrBetween{}{a}{b}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrBetween{abcdef}{b}{e}[\aa]\aa|
+\ExNorm*|\StrBetween{aZaaaaZa}{Z}{Z}[\aa]\aa|
+\ExNorm*|\StrBetween[1,2]{aZaaaaZa}{Z}{Z}[\aa]\aa|
+\ExNorm*|\StrBetween{a b c d}{a}{c}[\aa]\aa|
+\ExNorm*|\StrBetween{a b c d}{a }{ d}[\aa]\aa|
+\ExNorm*|\StrBetween{abcdef}{a}{Z}[\aa]\aa|
+\ExNorm*|\StrBetween{abcdef}{Y}{Z}[\aa]\aa|
+\ExNorm*|\StrBetween[2,5]{aAaBaCaDa}{a}{a}[\aa]\aa|
+\ExNorm*|\StrBetween[4,1]{ab1ab2ab3ab4ab}{b}{a}[\aa]\aa|
+\ExNorm*|\StrBetween[3,4]{a b c d e f}{ }{ }[\aa]\aa|
+\ExNorm|\StrBetween[1,3]{aaaaaa}{aa}{aa}[\aa]\aa|
+\ExNorm|\StrBetween{éàèï}{é}{ï}[\aa]\aa|
+\ExNorm|\StrBetween{ÉÀÇ}{É}{Ç}[\aa]\aa|
+\ExNorm*|\StrBetween{abcdef}{a}{}[\aa]\aa|
+\ExNorm*|\StrBetween{abcdef}{}{f}[\aa]\aa|
+\ExNorm*|\StrBetween{}{a}{b}[\aa]\aa|
+
+\chapitre{La macro}{StrSubstitute}
+
+\ExNorm|\StrSubstitute{abcdef}{c}{ZZ}|
+\ExNorm|\StrSubstitute{aaaaaaa}{aa}{w}|
+\ExNorm|\StrSubstitute[0]{abacada}{a}{.}|
+\ExNorm|\StrSubstitute[1]{abacada}{a}{.}|
+\ExNorm|\StrSubstitute[2]{abacada}{a}{.}|
+\ExNorm|\StrSubstitute[3]{abacada}{a}{.}|
+\ExNorm|\StrSubstitute[4]{abacada}{a}{.}|
+\ExNorm|\StrSubstitute[5]{abacada}{a}{.}|
+\ExNorm|\StrSubstitute{a b c d e}{ }{,}|
+\ExNorm|\StrSubstitute{a b c d e}{ }{}|
+\ExNorm|\StrSubstitute{éàèï}{è}{Z}|
+\ExNorm|\StrSubstitute{ÉÀÇ}{Ç}{c}|
+\ExNorm|\StrSubstitute{abcdef}{}{A}|
+\ExNorm|\StrSubstitute{abcdef}{}{}|
+\ExNorm*|\StrSubstitute{}{a}{b}|
+\ExNorm*|\StrSubstitute{}{}{}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrSubstitute{abcdef}{c}{ZZ}[\aa]\aa|
+\ExNorm|\StrSubstitute{aaaaaaa}{aa}{w}[\aa]\aa|
+\ExNorm|\StrSubstitute[0]{abacada}{a}{.}[\aa]\aa|
+\ExNorm|\StrSubstitute[1]{abacada}{a}{.}[\aa]\aa|
+\ExNorm|\StrSubstitute[2]{abacada}{a}{.}[\aa]\aa|
+\ExNorm|\StrSubstitute[3]{abacada}{a}{.}[\aa]\aa|
+\ExNorm|\StrSubstitute[4]{abacada}{a}{.}[\aa]\aa|
+\ExNorm|\StrSubstitute[5]{abacada}{a}{.}[\aa]\aa|
+\ExNorm|\StrSubstitute{a b c d e}{ }{,}[\aa]\aa|
+\ExNorm|\StrSubstitute{a b c d e}{ }{}[\aa]\aa|
+\ExNorm|\StrSubstitute{éàèï}{è}{Z}[\aa]\aa|
+\ExNorm|\StrSubstitute{ÉÀÇ}{Ç}{c}[\aa]\aa|
+\ExNorm|\StrSubstitute{abcdef}{}{A}[\aa]\aa|
+\ExNorm|\StrSubstitute{abcdef}{}{}[\aa]\aa|
+\ExNorm*|\StrSubstitute{}{a}{b}[\aa]\aa|
+\ExNorm*|\StrSubstitute{}{}{}[\aa]\aa|
+
+\chapitre{La macro}{StrDel}
+
+\ExNorm|\StrDel{a1a2a3a4}{a}|
+\ExNorm|\StrDel[2]{a1a2a3a4}{a}|
+\ExNorm|\StrDel[-2]{a1a2a3a4}{a}|
+\ExNorm|\StrDel[10]{a1a2a3a4}{a}|
+\ExNorm|\StrDel[3]{a b c d e}{a}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrDel{a1a2a3a4}{a}[\aa]\aa|
+\ExNorm|\StrDel[2]{a1a2a3a4}{a}[\aa]\aa|
+\ExNorm|\StrDel[-2]{a1a2a3a4}{a}[\aa]\aa|
+\ExNorm|\StrDel[10]{a1a2a3a4}{a}[\aa]\aa|
+\ExNorm|\StrDel[3]{a b c d e}{a}[\aa]\aa|
+
+\chapitre{La macro}{StrLen}
+
+
+\ExNorm|\StrLen{abcdef}|
+\ExNorm|\StrLen{a b c}|
+\ExNorm|\StrLen{ a b c }|
+\ExNorm|\StrLen{a}|
+\ExNorm|\StrLen{éàèï}|% fonctionne mal en utf8 : donne 8 au lieu de 4
+\ExNorm|\StrLen{ÉÀÇ}|% idem
+\ExNorm|\StrLen{}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrLen{abcdef}[\aa]\aa|
+\ExNorm|\StrLen{a b c}[\aa]\aa|
+\ExNorm|\StrLen{ a b c }[\aa]\aa|
+\ExNorm|\StrLen{a}[\aa]\aa|
+\ExNorm|\StrLen{éàèï}[\aa]\aa|% fonctionne mal en utf8 : donne 8 au lieu de 4
+\ExNorm|\StrLen{ÉÀÇ}[\aa]\aa|% idem
+\ExNorm|\StrLen{}[\aa]\aa|
+
+\chapitre{la macro}{StrMid}
+
+\ExNorm|\StrMid{abcdef}{2}{5}|
+\ExNorm*|\StrMid{a b c d}{2}{6}|
+\ExNorm*|\StrMid{abcdef}{4}{2}|
+\ExNorm|\StrMid{abcdef}{-4}{3}|
+\ExNorm*|\StrMid{abcdef}{-4}{-1}|
+\ExNorm|\StrMid{abcdef}{-4}{20}|
+\ExNorm*|\StrMid{abcdef}{8}{10}|
+\ExNorm|\StrMid{abcdef}{2}{2}|
+\ExNorm|\StrMid{éàèï}{2}{3}|
+\ExNorm|\StrMid{ÉÀÇ}{2}{3}|
+\ExNorm|\StrMid{aaaaaa}{3}{6}|
+\ExNorm*|\StrMid{}{4}{5}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrMid{abcdef}{2}{5}[\aa]\aa|
+\ExNorm*|\StrMid{a b c d}{2}{6}[\aa]\aa|
+\ExNorm*|\StrMid{abcdef}{4}{2}[\aa]\aa|
+\ExNorm|\StrMid{abcdef}{-4}{3}[\aa]\aa|
+\ExNorm*|\StrMid{abcdef}{-4}{-1}[\aa]\aa|
+\ExNorm|\StrMid{abcdef}{-4}{20}[\aa]\aa|
+\ExNorm*|\StrMid{abcdef}{8}{10}[\aa]\aa|
+\ExNorm|\StrMid{abcdef}{2}{2}[\aa]\aa|
+\ExNorm|\StrMid{éàèï}{2}{3}[\aa]\aa|
+\ExNorm|\StrMid{ÉÀÇ}{2}{3}[\aa]\aa|
+\ExNorm|\StrMid{aaaaaa}{3}{6}[\aa]\aa|
+\ExNorm*|\StrMid{}{4}{5}[\aa]\aa|
+
+\chapitre{La macro}{StrGobbleLeft}
+
+\ExNorm|\StrGobbleLeft{abcdef}{3}|
+\ExNorm*|\StrGobbleLeft{a b c d}{3}|
+\ExNorm|\StrGobbleLeft{abcdef}{-3}|
+\ExNorm*|\StrGobbleLeft{abcdef}{9}|
+\ExNorm|\StrGobbleLeft{éàèï}{2}|
+\ExNorm|\StrGobbleLeft{ÉÀÇ}{1}|
+\ExNorm|\StrGobbleLeft{aaaaa}{4}|
+\ExNorm*|\StrGobbleLeft{}{2}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrGobbleLeft{abcdef}{3}[\aa]\aa|
+\ExNorm*|\StrGobbleLeft{a b c d}{3}[\aa]\aa|
+\ExNorm|\StrGobbleLeft{abcdef}{-3}[\aa]\aa|
+\ExNorm*|\StrGobbleLeft{abcdef}{9}[\aa]\aa|
+\ExNorm|\StrGobbleLeft{éàèï}{2}[\aa]\aa|
+\ExNorm|\StrGobbleLeft{ÉÀÇ}{1}[\aa]\aa|
+\ExNorm|\StrGobbleLeft{aaaaa}{4}[\aa]\aa|
+\ExNorm*|\StrGobbleLeft{}{2}[\aa]\aa|
+
+\chapitre{La macro}{StrGobbleRight}
+
+\ExNorm|\StrGobbleRight{abcdef}{3}|
+\ExNorm*|\StrGobbleRight{a b c d}{3}|
+\ExNorm|\StrGobbleRight{abcdef}{-3}|
+\ExNorm*|\StrGobbleRight{abcdef}{9}|
+\ExNorm|\StrGobbleRight{éàèï}{2}|
+\ExNorm|\StrGobbleRight{ÉÀÇ}{1}|
+\ExNorm|\StrGobbleRight{aaaaa}{4}|
+\ExNorm*|\StrGobbleRight{}{2}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrGobbleRight{abcdef}{3}[\aa]\aa|
+\ExNorm*|\StrGobbleRight{a b c d}{3}[\aa]\aa|
+\ExNorm|\StrGobbleRight{abcdef}{-3}[\aa]\aa|
+\ExNorm*|\StrGobbleRight{abcdef}{9}[\aa]\aa|
+\ExNorm|\StrGobbleRight{éàèï}{2}[\aa]\aa|
+\ExNorm|\StrGobbleRight{ÉÀÇ}{1}[\aa]\aa|
+\ExNorm|\StrGobbleRight{aaaaa}{4}[\aa]\aa|
+\ExNorm*|\StrGobbleRight{}{2}[\aa]\aa|
+
+\chapitre{La macro}{StrLeft}
+
+\ExNorm|\StrLeft{abcdef}{3}|
+\ExNorm*|\StrLeft{a b c d}{3}|
+\ExNorm*|\StrLeft{abcdef}{-3}|
+\ExNorm*|\StrLeft{abcdef}{9}|
+\ExNorm|\StrLeft{éàèï}{2}|
+\ExNorm|\StrLeft{ÉÀÇ}{1}|
+\ExNorm|\StrLeft{aaaaa}{4}|
+\ExNorm*|\StrLeft{}{2}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrLeft{abcdef}{3}[\aa]\aa|
+\ExNorm*|\StrLeft{a b c d}{3}[\aa]\aa|
+\ExNorm*|\StrLeft{abcdef}{-3}[\aa]\aa|
+\ExNorm*|\StrLeft{abcdef}{9}[\aa]\aa|
+\ExNorm|\StrLeft{éàèï}{2}[\aa]\aa|
+\ExNorm|\StrLeft{ÉÀÇ}{1}[\aa]\aa|
+\ExNorm|\StrLeft{aaaaa}{4}[\aa]\aa|
+\ExNorm*|\StrLeft{}{2}[\aa]\aa|
+
+\chapitre{La macro}{StrRight}
+
+\ExNorm|\StrRight{abcdef}{3}|
+\ExNorm*|\StrRight{a b c d}{3}|
+\ExNorm*|\StrRight{abcdef}{-3}|
+\ExNorm*|\StrRight{abcdef}{9}|
+\ExNorm|\StrRight{éàèï}{2}|
+\ExNorm|\StrRight{ÉÀÇ}{1}|
+\ExNorm|\StrRight{aaaaa}{4}|
+\ExNorm*|\StrRight{}{2}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrRight{abcdef}{3}[\aa]\aa|
+\ExNorm*|\StrRight{a b c d}{3}[\aa]\aa|
+\ExNorm*|\StrRight{abcdef}{-3}[\aa]\aa|
+\ExNorm*|\StrRight{abcdef}{9}[\aa]\aa|
+\ExNorm|\StrRight{éàèï}{2}[\aa]\aa|
+\ExNorm|\StrRight{ÉÀÇ}{1}[\aa]\aa|
+\ExNorm|\StrRight{aaaaa}{4}[\aa]\aa|
+\ExNorm*|\StrRight{}{2}[\aa]\aa|
+
+\chapitre{la macro}{StrChar}
+
+\ExNorm|\StrChar{abcdef}{5}|
+\ExNorm*|\StrChar{a b c d}{4}|
+\ExNorm|\StrChar{a b c d}{7}|
+\ExNorm*|\StrChar{abcdef}{10}|
+\ExNorm*|\StrChar{abcdef}{-5}|
+\ExNorm*|\StrChar{}{3}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrChar{abcdef}{5}[\aa]\aa|
+\ExNorm*|\StrChar{a b c d}{4}[\aa]\aa|
+\ExNorm|\StrChar{a b c d}{7}[\aa]\aa|
+\ExNorm*|\StrChar{abcdef}{10}[\aa]\aa|
+\ExNorm*|\StrChar{abcdef}{-5}[\aa]\aa|
+\ExNorm*|\StrChar{}{3}[\aa]\aa|
+
+\chapitre{La macro}{StrCount}
+
+\ExNorm|\StrCount{abcdef}{d}|
+\ExNorm|\StrCount{a b c d}{ }|
+\ExNorm|\StrCount{aaaaaa}{aa}|
+\ExNorm|\StrCount{étété}{é}|
+\ExNorm|\StrCount{abcdef}{Z}|
+\ExNorm|\StrCount{éàèï}{é}|
+\ExNorm|\StrCount{ÉÀÇ}{Ç}|
+\ExNorm|\StrCount{abcdef}{}|
+\ExNorm|\StrCount{}{a}|
+\ExNorm|\StrCount{}{}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrCount{abcdef}{d}[\aa]\aa|
+\ExNorm|\StrCount{a b c d}{ }[\aa]\aa|
+\ExNorm|\StrCount{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrCount{étété}{é}[\aa]\aa|
+\ExNorm|\StrCount{abcdef}{Z}[\aa]\aa|
+\ExNorm|\StrCount{éàèï}{é}[\aa]\aa|
+\ExNorm|\StrCount{ÉÀÇ}{Ç}[\aa]\aa|
+\ExNorm|\StrCount{abcdef}{}[\aa]\aa|
+\ExNorm|\StrCount{}{a}[\aa]\aa|
+\ExNorm|\StrCount{}{}[\aa]\aa|
+
+\chapitre{La macro}{StrPosition}
+
+\ExNorm|\StrPosition{abcdef}{c}|
+\ExNorm|\StrPosition{abcdef}{Z}|
+\ExNorm|\StrPosition{a b c d}{ }|
+\ExNorm|\StrPosition[3]{a b c d}{ }|
+\ExNorm|\StrPosition[8]{a b c d}{ }|
+\ExNorm|\StrPosition{étété}{é}|
+\ExNorm|\StrPosition[3]{étété}{é}|
+\ExNorm|\StrPosition[5]{étété}{é}|
+\ExNorm|\StrPosition{aaaaaa}{aa}|
+\ExNorm|\StrPosition[2]{aaaaaa}{aa}|
+\ExNorm|\StrPosition[3]{aaaaaa}{aa}|
+\ExNorm|\StrPosition{éàèï}{è}|
+\ExNorm|\StrPosition{ÉÀÇ}{À}|
+\ExNorm|\StrPosition{abcdef}{}|
+\ExNorm|\StrPosition{}{a}|
+\ExNorm|\StrPosition{}{}|
+\par\bigskip Mêmes exemples avec l'argument optionnel :
+
+\ExNorm|\StrPosition{abcdef}{c}[\aa]\aa|
+\ExNorm|\StrPosition{abcdef}{Z}[\aa]\aa|
+\ExNorm|\StrPosition{a b c d}{ }[\aa]\aa|
+\ExNorm|\StrPosition[3]{a b c d}{ }[\aa]\aa|
+\ExNorm|\StrPosition[8]{a b c d}{ }[\aa]\aa|
+\ExNorm|\StrPosition{étété}{é}[\aa]\aa|
+\ExNorm|\StrPosition[3]{étété}{é}[\aa]\aa|
+\ExNorm|\StrPosition[5]{étété}{é}[\aa]\aa|
+\ExNorm|\StrPosition{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrPosition[2]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrPosition[3]{aaaaaa}{aa}[\aa]\aa|
+\ExNorm|\StrPosition{éàèï}{è}[\aa]\aa|
+\ExNorm|\StrPosition{ÉÀÇ}{À}[\aa]\aa|
+\ExNorm|\StrPosition{abcdef}{}[\aa]\aa|
+\ExNorm|\StrPosition{}{a}[\aa]\aa|
+\ExNorm|\StrPosition{}{}[\aa]\aa|
+\end{document} \ No newline at end of file