summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex')
-rwxr-xr-xMaster/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex338
1 files changed, 189 insertions, 149 deletions
diff --git a/Master/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex b/Master/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex
index 90edd773ff5..589c76dee83 100755
--- a/Master/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex
+++ b/Master/texmf-dist/doc/latex/xstring/xstring_doc_fr.tex
@@ -26,26 +26,12 @@
\usepackage[frenchb]{babel}
\makeatletter
-\newcommand*\Exemple{\@ifstar{\def\frontiere{|}\@Ex}{\def\frontiere{}\@Ex}}
-% la macro de Ulrich Diez
-\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{\@ehc}%
- \aftergroup\verb@balance@group%
- \lowercase{%
- \let ~\verb@egroup%
- \def\@tempa##1~{\hbox to \Partage\linewidth{\hfil##1~}\quad\scantokens{\frontiere##1\frontiere}\par}}%
- \@tempa}%
+\newcommand*\exemple{\@ifstar{\def\frontiere{|}\@xs@MakeVerb}{\def\frontiere{}\@xs@MakeVerb}}
+\def\@xs@afterreadverb#1{%
+ \normalexpandarg
+ \tokenize\cs@resultat{#1}%
+ \fullexpandarg
+ \hbox to\linewidth{\hbox to0.7\linewidth{\hfil\tt#1}\quad\frontiere\cs@resultat\frontiere\hfil}\par}
\makeatother
\newcommand\guill[1]{\og{}#1\fg{}}
\newcommand\argu[1]{$\langle$\textit{#1}$\rangle$}
@@ -65,14 +51,14 @@
{\end{list}}
\begin{document}
-\gdef\Partage{0.7}
+\setlength{\parindent}{0pt}
\begin{titlepage}
\null\par\vfill
\begin{center}
\begin{minipage}{0.75\linewidth}
\begin{center}
\Huge\bfseries xstring\par\vspace{5pt}
- \small v1.0\par\vspace{25pt}
+ \small v\xstringversion\par\vspace{25pt}
\normalsize Manuel de l'utilisateur
\end{center}
\end{minipage}
@@ -81,20 +67,21 @@
\begin{center}
Christian {\sc Tellechea}\par\small
\href{mailto:unbonpetit@gmail.com}{\nolinkurl{unbonpetit@gmail.com}}\par\vspace{5pt}
- 5 juillet 2008
+ \xstringfrenchdate
\end{center}
\vfill\hrulefill
\begin{center}
\begin{minipage}{0.85\linewidth}
\noindent
\hfill\textbf{\textit{Résumé}}\hfill{}\medskip\par
- Cette extension regroupe un ensemble de macros manipulant des chaînes de caractères :
+ Cette extension qui requiert Plain $\varepsilon$-\TeX{} regroupe un ensemble de macros manipulant des chaînes de caractères :
\setlength{\parindent}{1.5em}
\begin{itemize}
\item[$\triangleright$] des tests :
\begin{itemize}
\item une chaîne en contient elle une autre au moins $n$ fois ?
\item une chaîne commence t-elle ou finit-elle par une autre ? etc.
+ \item une chaîne représente t-elle un entier relatif ? Un nombre décimal ?
\end{itemize}
\item[$\triangleright$] des extractions de chaînes :
\begin{itemize}
@@ -110,6 +97,7 @@
\item comptage du nombre d'occurrences d'une sous-chaîne dans une autre.
\end{itemize}
\end{itemize}
+ \setlength{\parindent}{0pt}
\medskip
D'autres commandes permettent de traiter les caractères spéciaux (\verb|&|, \verb|~|, \verb|\|, \verb|{|, \verb|}|, \verb|_|, \verb|#|, \verb|$|, \verb|^| et \verb|%|) de façon à les utiliser dans les arguments des macros de ce package, ce qui permet d'utiliser ces macros à fins de programmation.
\end{minipage}
@@ -122,7 +110,7 @@
\section{Présentation}
\subsection{Description}
-Cette extension regroupe des macros et des tests opérant sur des chaînes de caractères, un peu comme en disposent des langages dit \guill{évolués}. On y trouve les opérations habituelles sur les chaînes de caractères, comme par exemple : test si une chaîne en contient une autre, commence ou finit par une autre, extractions de sous-chaînes ou de caractères, calculs de position d'une sous-chaîne, calculs du nombre d'occurrences, etc.\medskip
+Cette extension\footnote{L'extension ne nécessite pas \LaTeX et peut être compilée sous Plain $\varepsilon$-\TeX{}.} regroupe des macros et des tests opérant sur des chaînes de caractères, un peu comme en disposent des langages dit \guill{évolués}. On y trouve les opérations habituelles sur les chaînes de caractères, comme par exemple : test si une chaîne en contient une autre, commence ou finit par une autre, test si une chaîne est un nombre entier ou décimal, extractions de sous-chaînes ou de caractères, calculs de position d'une sous-chaîne, calculs du nombre d'occurrences, etc.\medskip
Certes d'autres packages existent (par exemple \href{http://www.ctan.org/tex-archive/macros/latex/contrib/substr/}{\nolinkurl{substr}} et \href{http://www.ctan.org/tex-archive/macros/latex/contrib/stringstrings/}{\nolinkurl{stringstrings}}), mais outre des différences notables quant aux fonctionnalités, ils ne prennent pas en charge les occurrences des sous-chaînes et me semblent soit trop limités, soit trop difficiles à utiliser pour la programmation.
@@ -222,13 +210,13 @@ Teste si \argu{chaine} contient au moins \argu{nombre} fois \argu{chaineA} et ex
\item Si \argu{chaine} ou \argu{chaineA} est vide, exécute \argu{faux}.
\end{Conditions}
-\Exemple|\IfSubStr{xstring}{tri}{vrai}{faux}|
-\Exemple|\IfSubStr{xstring}{a}{vrai}{faux}|
-\Exemple|\IfSubStr{a bc def }{c d}{vrai}{faux}|
-\Exemple|\IfSubStr{a bc def }{cd}{vrai}{faux}|
-\Exemple|\IfSubStr[2]{1a2a3a}{a}{vrai}{faux}|
-\Exemple|\IfSubStr[3]{1a2a3a}{a}{vrai}{faux}|
-\Exemple|\IfSubStr[4]{1a2a3a}{a}{vrai}{faux}|
+\exemple|\IfSubStr{xstring}{tri}{vrai}{faux}|
+\exemple|\IfSubStr{xstring}{a}{vrai}{faux}|
+\exemple|\IfSubStr{a bc def }{c d}{vrai}{faux}|
+\exemple|\IfSubStr{a bc def }{cd}{vrai}{faux}|
+\exemple|\IfSubStr[2]{1a2a3a}{a}{vrai}{faux}|
+\exemple|\IfSubStr[3]{1a2a3a}{a}{vrai}{faux}|
+\exemple|\IfSubStr[4]{1a2a3a}{a}{vrai}{faux}|
\subsubsection{IfSubStrBefore}
\verb|\IfSubStrBefore|\arguCC{nombre1}{nombre2}\ARGU{chaine}\ARGU{chaineA}\ARGU{chaineB}\ARGU{vrai}\ARGU{faux}
@@ -244,15 +232,15 @@ Dans \argu{chaine}, la macro teste si l'occurrence \no\argu{nombre1} de \argu{ch
\item Si l'un au moins des deux arguments optionnels est négatif ou nul, exécute \argu{faux}.
\end{Conditions}
-\Exemple|\IfSubStrBefore{xstring}{st}{in}{vrai}{faux}|
-\Exemple|\IfSubStrBefore{xstring}{ri}{s}{vrai}{faux}|
-\Exemple|\IfSubStrBefore{LaTeX}{LaT}{TeX}{vrai}{faux}|
-\Exemple|\IfSubStrBefore{a bc def }{ b}{ef}{vrai}{faux}|
-\Exemple|\IfSubStrBefore{a bc def }{ab}{ef}{vrai}{faux}|
-\Exemple|\IfSubStrBefore[2,1]{b1b2b3}{b}{2}{vrai}{faux}|
-\Exemple|\IfSubStrBefore[3,1]{b1b2b3}{b}{2}{vrai}{faux}|
-\Exemple|\IfSubStrBefore[2,2]{baobab}{a}{b}{vrai}{faux}|
-\Exemple|\IfSubStrBefore[2,3]{baobab}{a}{b}{vrai}{faux}|
+\exemple|\IfSubStrBefore{xstring}{st}{in}{vrai}{faux}|
+\exemple|\IfSubStrBefore{xstring}{ri}{s}{vrai}{faux}|
+\exemple|\IfSubStrBefore{LaTeX}{LaT}{TeX}{vrai}{faux}|
+\exemple|\IfSubStrBefore{a bc def }{ b}{ef}{vrai}{faux}|
+\exemple|\IfSubStrBefore{a bc def }{ab}{ef}{vrai}{faux}|
+\exemple|\IfSubStrBefore[2,1]{b1b2b3}{b}{2}{vrai}{faux}|
+\exemple|\IfSubStrBefore[3,1]{b1b2b3}{b}{2}{vrai}{faux}|
+\exemple|\IfSubStrBefore[2,2]{baobab}{a}{b}{vrai}{faux}|
+\exemple|\IfSubStrBefore[2,3]{baobab}{a}{b}{vrai}{faux}|
\subsubsection{IfSubStrBehind}
\verb|\IfSubStrBehind|\arguCC{nombre1}{nombre2}\ARGU{chaine}\ARGU{chaineA}\ARGU{chaineB}\ARGU{vrai}\ARGU{faux}
@@ -268,15 +256,15 @@ Dans \argu{chaine}, la macro teste si l'occurrence \no\argu{nombre1} de \argu{ch
\item Si l'un au moins des deux arguments optionnels est négatif ou nul, exécute \argu{faux}.
\end{Conditions}
-\Exemple|\IfSubStrBehind{xstring}{ri}{xs}{vrai}{faux}|
-\Exemple|\IfSubStrBehind{xstring}{s}{i}{vrai}{faux}|
-\Exemple|\IfSubStrBehind{LaTeX}{TeX}{LaT}{vrai}{faux}|
-\Exemple|\IfSubStrBehind{a bc def }{ d}{a}{vrai}{faux}|
-\Exemple|\IfSubStrBehind{a bc def }{cd}{a b}{vrai}{faux}|
-\Exemple|\IfSubStrBehind[2,1]{b1b2b3}{b}{2}{vrai}{faux}|
-\Exemple|\IfSubStrBehind[3,1]{b1b2b3}{b}{2}{vrai}{faux}|
-\Exemple|\IfSubStrBehind[2,2]{baobab}{b}{a}{vrai}{faux}|
-\Exemple|\IfSubStrBehind[2,3]{baobab}{b}{a}{vrai}{faux}|
+\exemple|\IfSubStrBehind{xstring}{ri}{xs}{vrai}{faux}|
+\exemple|\IfSubStrBehind{xstring}{s}{i}{vrai}{faux}|
+\exemple|\IfSubStrBehind{LaTeX}{TeX}{LaT}{vrai}{faux}|
+\exemple|\IfSubStrBehind{a bc def }{ d}{a}{vrai}{faux}|
+\exemple|\IfSubStrBehind{a bc def }{cd}{a b}{vrai}{faux}|
+\exemple|\IfSubStrBehind[2,1]{b1b2b3}{b}{2}{vrai}{faux}|
+\exemple|\IfSubStrBehind[3,1]{b1b2b3}{b}{2}{vrai}{faux}|
+\exemple|\IfSubStrBehind[2,2]{baobab}{b}{a}{vrai}{faux}|
+\exemple|\IfSubStrBehind[2,3]{baobab}{b}{a}{vrai}{faux}|
\subsubsection{IfBeginWith}
@@ -289,10 +277,10 @@ Teste si \argu{chaine} commence par \argu{chaineA}, et exécute \argu{vrai} dans
\item Si \argu{chaine} ou \argu{chaineA} est vide, exécute \argu{faux}.
\end{Conditions}
-\Exemple|\IfBeginWith{xstring}{xst}{vrai}{faux}|
-\Exemple|\IfBeginWith{LaTeX}{a}{vrai}{faux}|
-\Exemple|\IfBeginWith{a bc def }{a b}{vrai}{faux}|
-\Exemple|\IfBeginWith{a bc def }{ab}{vrai}{faux}|
+\exemple|\IfBeginWith{xstring}{xst}{vrai}{faux}|
+\exemple|\IfBeginWith{LaTeX}{a}{vrai}{faux}|
+\exemple|\IfBeginWith{a bc def }{a b}{vrai}{faux}|
+\exemple|\IfBeginWith{a bc def }{ab}{vrai}{faux}|
\subsubsection{IfEndWith}
@@ -305,10 +293,62 @@ Teste si \argu{chaine} se termine par \argu{chaineA}, et exécute \argu{vrai} da
\item Si \argu{chaine} ou \argu{chaineA} est vide, exécute \argu{faux}.
\end{Conditions}
-\Exemple|\IfEndWith{xstring}{ring}{vrai}{faux}|
-\Exemple|\IfEndWith{LaTeX}{a}{vrai}{faux}|
-\Exemple|\IfEndWith{a bc def }{ef }{vrai}{faux}|
-\Exemple|\IfEndWith{a bc def }{ef}{vrai}{faux}|
+\exemple|\IfEndWith{xstring}{ring}{vrai}{faux}|
+\exemple|\IfEndWith{LaTeX}{a}{vrai}{faux}|
+\exemple|\IfEndWith{a bc def }{ef }{vrai}{faux}|
+\exemple|\IfEndWith{a bc def }{ef}{vrai}{faux}|
+
+\subsubsection{IfInteger}
+
+\verb|\IfInteger|\ARGU{nombre}\ARGU{vrai}\ARGU{faux}
+\smallskip
+
+Teste si \argu{nombre} est un nombre entier relatif, et exécute \argu{vrai} dans l'affirmative, et \argu{faux} dans le cas contraire.\smallskip
+
+Si le test est faux pour cause de caractères non autorisés, la séquence de contrôle \verb|\@xs@afterinteger| contient la partie illégale de \argu{number}.\medskip
+
+\exemple|\IfInteger{13}{vrai}{faux}|
+\exemple|\IfInteger{-219}{vrai}{faux}|
+\exemple|\IfInteger{+9}{vrai}{faux}|
+\exemple|\IfInteger{3.14}{vrai}{faux}|
+\exemple|\IfInteger{0}{vrai}{faux}|
+\exemple|\IfInteger{49a}{vrai}{faux}|
+\exemple|\IfInteger{+}{vrai}{faux}|
+\exemple|\IfInteger{-}{vrai}{faux}|
+\exemple|\IfInteger{0000}{vrai}{faux}|
+
+\subsubsection{IfDecimal}
+
+
+\verb|\IfInteger|\ARGU{nombre}\ARGU{vrai}\ARGU{faux}
+\smallskip
+
+Teste si \argu{nombre} est un nombre décimal, et exécute \argu{vrai} dans l'affirmative, et \argu{faux} dans le cas contraire.\smallskip
+
+Les compteurs \verb|\integerpart| et \verb|\decimalpart| contiennent les parties entières et décimales de \argu{number}.
+
+Si le test est faux pour cause de caractères non autorisés, la séquence de contrôle \verb|\@xs@afterdecimal| contient la partie illégale de \argu{number}, alors que si le test est faux parce que la partie décimale après le séparateur décimal est vide, elle contient \guill{X}.\medskip
+
+\begin{Conditions}
+ \item Le séparateur décimal peut être un point ou une virgule;
+ \item Si ce qui se trouve à droite du séparateur décimal s'il est présent est vide, le test est faux;
+ \item Si ce qui se trouve à gauche du séparateur décimal s'il est présent est vide, la partie entière est considérée comme étant 0.
+\end{Conditions}
+
+\exemple|\IfDecimal{3.14}{vrai}{faux}|
+\exemple|\IfDecimal{3,14}{vrai}{faux}|
+\exemple|\IfDecimal{-0.5}{vrai}{faux}|
+\exemple|\IfDecimal{.7}{vrai}{faux}|
+\exemple|\IfDecimal{,9}{vrai}{faux}|
+\exemple|\IfDecimal{1..2}{vrai}{faux}|
+\exemple|\IfDecimal{+6}{vrai}{faux}|
+\exemple|\IfDecimal{-15}{vrai}{faux}|
+\exemple|\IfDecimal{1.}{vrai}{faux}|
+\exemple|\IfDecimal{2,}{vrai}{faux}|
+\exemple|\IfDecimal{.}{vrai}{faux}|
+\exemple|\IfDecimal{,}{vrai}{faux}|
+\exemple|\IfDecimal{+}{vrai}{faux}|
+\exemple|\IfDecimal{-}{vrai}{faux}|
\subsection{Les macros renvoyant une chaîne}
\subsubsection{StrBefore}
@@ -325,14 +365,14 @@ Dans \argu{chaine}, renvoie ce qui se trouve avant l'occurrence \no\argu{nombre}
\item Si l'occurrence n'est pas trouvée, une chaîne vide est renvoyée.
\end{Conditions}
-\Exemple*|\StrBefore{xstring}{tri}|
-\Exemple*|\StrBefore{LaTeX}{e}|
-\Exemple*|\StrBefore{LaTeX}{p}|
-\Exemple*|\StrBefore{LaTeX}{L}|
-\Exemple*|\StrBefore{a bc def }{def}|
-\Exemple*|\StrBefore{a bc def }{cd}|
-\Exemple*|\StrBefore[1]{1b2b3}{b}|
-\Exemple*|\StrBefore[2]{1b2b3}{b}|
+\exemple*|\StrBefore{xstring}{tri}|
+\exemple*|\StrBefore{LaTeX}{e}|
+\exemple*|\StrBefore{LaTeX}{p}|
+\exemple*|\StrBefore{LaTeX}{L}|
+\exemple*|\StrBefore{a bc def }{def}|
+\exemple*|\StrBefore{a bc def }{cd}|
+\exemple*|\StrBefore[1]{1b2b3}{b}|
+\exemple*|\StrBefore[2]{1b2b3}{b}|
\subsubsection{StrBehind}
\verb|\StrBehind|\arguC{nombre}\ARGU{chaine}\ARGU{chaineA}\arguC{nom}
@@ -348,15 +388,15 @@ Dans \argu{chaine}, renvoie ce qui se trouve après l'occurrence \no\argu{nombre
\item Si l'occurrence n'est pas trouvée, une chaîne vide est renvoyée.
\end{Conditions}
-\Exemple*|\StrBehind{xstring}{tri}|
-\Exemple*|\StrBehind{LaTeX}{e}|
-\Exemple*|\StrBehind{LaTeX}{p}|
-\Exemple*|\StrBehind{LaTeX}{X}|
-\Exemple*|\StrBehind{a bc def }{bc}|
-\Exemple*|\StrBehind{a bc def }{cd}|
-\Exemple*|\StrBehind[1]{1b2b3}{b}|
-\Exemple*|\StrBehind[2]{1b2b3}{b}|
-\Exemple*|\StrBehind[3]{1b2b3}{b}|
+\exemple*|\StrBehind{xstring}{tri}|
+\exemple*|\StrBehind{LaTeX}{e}|
+\exemple*|\StrBehind{LaTeX}{p}|
+\exemple*|\StrBehind{LaTeX}{X}|
+\exemple*|\StrBehind{a bc def }{bc}|
+\exemple*|\StrBehind{a bc def }{cd}|
+\exemple*|\StrBehind[1]{1b2b3}{b}|
+\exemple*|\StrBehind[2]{1b2b3}{b}|
+\exemple*|\StrBehind[3]{1b2b3}{b}|
\subsubsection{StrBetween}
\verb|\StrBetween|\arguCC{nombre1}{nombre2}\ARGU{chaine}\ARGU{chaineA}\ARGU{chaineB}\arguC{nom}
@@ -373,16 +413,16 @@ Dans \argu{chaine}, renvoie ce qui se trouve entre\footnote{Au sens strict, c'es
\item Si l'un des arguments optionnels \argu{nombre1} ou \argu{nombre2} est négatif ou nul, une chaîne vide est renvoyée.
\end{Conditions}
-\Exemple*|\StrBetween{xstring}{xs}{ng}|
-\Exemple*|\StrBetween{xstring}{i}{n}|
-\Exemple*|\StrBetween{xstring}{a}{tring}|
-\Exemple*|\StrBetween{a bc def }{a}{d}|
-\Exemple*|\StrBetween{a bc def }{a }{f}|
-\Exemple*|\StrBetween{a1b1a2b2a3b3}{a}{b}|
-\Exemple*|\StrBetween[2,3]{a1b1a2b2a3b3}{a}{b}|
-\Exemple*|\StrBetween[1,3]{a1b1a2b2a3b3}{a}{b}|
-\Exemple*|\StrBetween[3,1]{a1b1a2b2a3b3}{a}{b}|
-\Exemple*|\StrBetween[3,2]{abracadabra}{a}{bra}|
+\exemple*|\StrBetween{xstring}{xs}{ng}|
+\exemple*|\StrBetween{xstring}{i}{n}|
+\exemple*|\StrBetween{xstring}{a}{tring}|
+\exemple*|\StrBetween{a bc def }{a}{d}|
+\exemple*|\StrBetween{a bc def }{a }{f}|
+\exemple*|\StrBetween{a1b1a2b2a3b3}{a}{b}|
+\exemple*|\StrBetween[2,3]{a1b1a2b2a3b3}{a}{b}|
+\exemple*|\StrBetween[1,3]{a1b1a2b2a3b3}{a}{b}|
+\exemple*|\StrBetween[3,1]{a1b1a2b2a3b3}{a}{b}|
+\exemple*|\StrBetween[3,2]{abracadabra}{a}{bra}|
\subsubsection{StrSubstitute}
\verb|\StrSubstitute|\arguC{nombre}\ARGU{chaine}\ARGU{chaineA}\ARGU{chaineB}\arguC{nom}
@@ -400,16 +440,16 @@ Dans \argu{chaine}, la macro remplace les \argu{nombre} premières occurrences d
\item Si \argu{chaineB} est vide, alors les occurrences de \argu{chaineA}, si elles existent, sont supprimées.
\end{Conditions}
-\Exemple|\StrSubstitute{xstring}{i}{a}|
-\Exemple|\StrSubstitute{abracadabra}{a}{o}|
-\Exemple|\StrSubstitute{abracadabra}{br}{TeX}|
-\Exemple|\StrSubstitute{LaTeX}{m}{n}|
-\Exemple|\StrSubstitute{a bc def }{ }{M}|
-\Exemple|\StrSubstitute{a bc def }{ab}{AB}|
-\Exemple|\StrSubstitute[1]{a1a2a3}{a}{B}|
-\Exemple|\StrSubstitute[2]{a1a2a3}{a}{B}|
-\Exemple|\StrSubstitute[3]{a1a2a3}{a}{B}|
-\Exemple|\StrSubstitute[4]{a1a2a3}{a}{B}|
+\exemple|\StrSubstitute{xstring}{i}{a}|
+\exemple|\StrSubstitute{abracadabra}{a}{o}|
+\exemple|\StrSubstitute{abracadabra}{br}{TeX}|
+\exemple|\StrSubstitute{LaTeX}{m}{n}|
+\exemple|\StrSubstitute{a bc def }{ }{M}|
+\exemple|\StrSubstitute{a bc def }{ab}{AB}|
+\exemple|\StrSubstitute[1]{a1a2a3}{a}{B}|
+\exemple|\StrSubstitute[2]{a1a2a3}{a}{B}|
+\exemple|\StrSubstitute[3]{a1a2a3}{a}{B}|
+\exemple|\StrSubstitute[4]{a1a2a3}{a}{B}|
\subsubsection{StrDel}
\verb|\StrDel|\arguC{nombre}\ARGU{chaine}\ARGU{chaineA}\arguC{nom}
@@ -426,12 +466,12 @@ Supprime les \argu{nombre} premières occurrences de \argu{chaineA} dans \argu{c
\item Si \argu{nombre}${}<0$ alors la macro se comporte comme si \argu{nombre}${}=0$;
\end{Conditions}
-\Exemple|\StrDel{abracadabra}{a}|
-\Exemple|\StrDel[1]{abracadabra}{a}|
-\Exemple|\StrDel[4]{abracadabra}{a}|
-\Exemple|\StrDel[9]{abracadabra}{a}|
-\Exemple|\StrDel{a bc def }{ }|
-\Exemple*|\StrDel{a bc def }{def}|
+\exemple|\StrDel{abracadabra}{a}|
+\exemple|\StrDel[1]{abracadabra}{a}|
+\exemple|\StrDel[4]{abracadabra}{a}|
+\exemple|\StrDel[9]{abracadabra}{a}|
+\exemple|\StrDel{a bc def }{ }|
+\exemple*|\StrDel{a bc def }{def}|
\subsubsection{StrGobbleLeft}
@@ -446,11 +486,11 @@ Dans \argu{chaine}, enlève les \argu{nombre} premiers caractères de gauche.\me
\item Si \argu{nombre}${}\geqslant{}$\argu{longueurChaine}, tous les caractères sont supprimés.
\end{Conditions}
-\Exemple*|\StrGobbleLeft{xstring}{2}|
-\Exemple*|\StrGobbleLeft{xstring}{9}|
-\Exemple*|\StrGobbleLeft{LaTeX}{4}|
-\Exemple*|\StrGobbleLeft{LaTeX}{-2}|
-\Exemple*|\StrGobbleLeft{a bc def }{4}|
+\exemple*|\StrGobbleLeft{xstring}{2}|
+\exemple*|\StrGobbleLeft{xstring}{9}|
+\exemple*|\StrGobbleLeft{LaTeX}{4}|
+\exemple*|\StrGobbleLeft{LaTeX}{-2}|
+\exemple*|\StrGobbleLeft{a bc def }{4}|
\subsubsection{StrLeft}
\verb|\StrLeft|\ARGU{chaine}\ARGU{nombre}\arguC{nom}
@@ -464,11 +504,11 @@ Dans \argu{chaine}, renvoie la sous-chaîne de gauche de longueur \argu{nombre}.
\item Si \argu{nombre}${}\geqslant{}$\argu{longueurChaine}, tous les caractères sont retournés.
\end{Conditions}
-\Exemple*|\StrLeft{xstring}{2}|
-\Exemple*|\StrLeft{xstring}{9}|
-\Exemple*|\StrLeft{LaTeX}{4}|
-\Exemple*|\StrLeft{LaTeX}{-2}|
-\Exemple*|\StrLeft{a bc def }{5}|
+\exemple*|\StrLeft{xstring}{2}|
+\exemple*|\StrLeft{xstring}{9}|
+\exemple*|\StrLeft{LaTeX}{4}|
+\exemple*|\StrLeft{LaTeX}{-2}|
+\exemple*|\StrLeft{a bc def }{5}|
\subsubsection{StrGobbleRight}
\verb|\StrGobbleRight|\ARGU{chaine}\ARGU{nombre}\arguC{nom}
@@ -476,11 +516,11 @@ Dans \argu{chaine}, renvoie la sous-chaîne de gauche de longueur \argu{nombre}.
Agit comme \verb|\StrGobbleLeft|, mais enlève les caractères à droite de \argu{chaine}.
-\Exemple*|\StrGobbleRight{xstring}{2}|
-\Exemple*|\StrGobbleRight{xstring}{9}|
-\Exemple*|\StrGobbleRight{LaTeX}{4}|
-\Exemple*|\StrGobbleRight{LaTeX}{-2}|
-\Exemple*|\StrGobbleRight{a bc def }{4}|
+\exemple*|\StrGobbleRight{xstring}{2}|
+\exemple*|\StrGobbleRight{xstring}{9}|
+\exemple*|\StrGobbleRight{LaTeX}{4}|
+\exemple*|\StrGobbleRight{LaTeX}{-2}|
+\exemple*|\StrGobbleRight{a bc def }{4}|
\subsubsection{StrRight}
\verb|\StrRight|\ARGU{chaine}\ARGU{nombre}\arguC{nom}
@@ -488,11 +528,11 @@ Agit comme \verb|\StrGobbleLeft|, mais enlève les caractères à droite de \arg
Agit comme \verb|\StrLeft|, mais renvoie les caractères à la droite de \argu{chaine}.
-\Exemple*|\StrRight{xstring}{2}|
-\Exemple*|\StrRight{xstring}{9}|
-\Exemple*|\StrRight{LaTeX}{4}|
-\Exemple*|\StrRight{LaTeX}{-2}|
-\Exemple*|\StrRight{a bc def }{5}|
+\exemple*|\StrRight{xstring}{2}|
+\exemple*|\StrRight{xstring}{9}|
+\exemple*|\StrRight{LaTeX}{4}|
+\exemple*|\StrRight{LaTeX}{-2}|
+\exemple*|\StrRight{a bc def }{5}|
\subsubsection{StrChar}
\verb|\StrChar|\ARGU{chaine}\ARGU{nombre}\arguC{nom}
@@ -505,10 +545,10 @@ Renvoie le caractère à la position \argu{nombre} dans la chaîne \argu{chaine}
\item Si \argu{nombre}${}\leqslant0$ ou si \argu{nombre}${}>{}$\argu{longueurChaine}, aucun caractère n'est renvoyé.
\end{Conditions}
-\Exemple|\StrChar{xstring}{4}|
-\Exemple*|\StrChar{xstring}{9}|
-\Exemple*|\StrChar{xstring}{-5}|
-\Exemple|\StrChar{a bc def }{6}|
+\exemple|\StrChar{xstring}{4}|
+\exemple*|\StrChar{xstring}{9}|
+\exemple*|\StrChar{xstring}{-5}|
+\exemple|\StrChar{a bc def }{6}|
\subsubsection{StrMid}
\verb|\StrMid|\ARGU{chaine}\ARGU{nombreA}\ARGU{nombreB}\arguC{nom}
@@ -525,12 +565,12 @@ Dans \argu{chaine}, renvoie la sous chaîne se trouvant entre\footnote{Au sens l
\item Si \argu{nombreB}${}>{}$\argu{longueurChaine}, alors la macro se comporte comme si \argu{nombreB}${}={}$\argu{longueurChaine}.
\end{Conditions}
-\Exemple|\StrMid{xstring}{2}{5}|
-\Exemple|\StrMid{xstring}{-4}{2}|
-\Exemple*|\StrMid{xstring}{5}{1}|
-\Exemple|\StrMid{xstring}{6}{15}|
-\Exemple|\StrMid{xstring}{3}{3}|
-\Exemple*|\StrMid{a bc def }{2}{7}|
+\exemple|\StrMid{xstring}{2}{5}|
+\exemple|\StrMid{xstring}{-4}{2}|
+\exemple*|\StrMid{xstring}{5}{1}|
+\exemple|\StrMid{xstring}{6}{15}|
+\exemple|\StrMid{xstring}{3}{3}|
+\exemple*|\StrMid{a bc def }{2}{7}|
\subsection{Les macros renvoyant des nombres}
@@ -540,9 +580,9 @@ Dans \argu{chaine}, renvoie la sous chaîne se trouvant entre\footnote{Au sens l
Renvoie la longueur de \argu{chaine}.
-\Exemple|\StrLen{xstring}|
-\Exemple|\StrLen{A}|
-\Exemple|\StrLen{a bc def }|
+\exemple|\StrLen{xstring}|
+\exemple|\StrLen{A}|
+\exemple|\StrLen{a bc def }|
\subsubsection{StrCount}
\verb|\StrCount|\ARGU{chaine}\ARGU{chaineA}\arguC{nom}
@@ -554,10 +594,10 @@ Compte combien de fois \argu{chaineA} est contenue dans \argu{chaine}.\par\medsk
\item Si l'un au moins des arguments \argu{chaine} ou \argu{chaineA} est vide, la macro renvoie 0.
\end{Conditions}
-\Exemple|\StrCount{abracadabra}{a}|
-\Exemple|\StrCount{abracadabra}{bra}|
-\Exemple|\StrCount{abracadabra}{tic}|
-\Exemple|\StrCount{aaaaaa}{aa}|
+\exemple|\StrCount{abracadabra}{a}|
+\exemple|\StrCount{abracadabra}{bra}|
+\exemple|\StrCount{abracadabra}{tic}|
+\exemple|\StrCount{aaaaaa}{aa}|
\subsubsection{StrPosition}
\verb|\StrPosition|\arguC{nombre}\ARGU{chaine}\ARGU{chaineA}\arguC{nom}
@@ -573,13 +613,13 @@ Dans \argu{chaine}, renvoie la position de l'occurrence \no\argu{nombre} de \arg
\end{Conditions}
\medskip
-\Exemple|\StrPosition{xstring}{ring}|
-\Exemple|\StrPosition[4]{abracadabra}{a}|
-\Exemple|\StrPosition[2]{abracadabra}{bra}|
-\Exemple|\StrPosition[9]{abracadabra}{a}|
-\Exemple|\StrPosition{abracadabra}{z}|
-\Exemple|\StrPosition{a bc def }{d}|
-\Exemple|\StrPosition[3]{aaaaaa}{aa}|
+\exemple|\StrPosition{xstring}{ring}|
+\exemple|\StrPosition[4]{abracadabra}{a}|
+\exemple|\StrPosition[2]{abracadabra}{bra}|
+\exemple|\StrPosition[9]{abracadabra}{a}|
+\exemple|\StrPosition{abracadabra}{z}|
+\exemple|\StrPosition{a bc def }{d}|
+\exemple|\StrPosition[3]{aaaaaa}{aa}|
\section{Utilisation des macros à des fins de programmation}
\label{programmation}
@@ -603,7 +643,7 @@ Concernant ces arguments verb, il faut tenir compte des deux points suivants :
\end{itemize}
\medskip
-Exemple :\par\medskip
+exemple :\par\medskip
\begin{minipage}[r]{0.6\linewidth}
\hfill
\begin{boxedverbatim}
@@ -623,9 +663,9 @@ Le processus inverse de ce qui a été vu au dessus consiste à transformer un \
\hfill\verb|\tokenize|\ARGU{nom}\ARGU{séquence de contrôle}\hfill{}
\smallskip
-\argu{séquence de contrôle} est développée le plus possible si l'on a invoqué \verb|\fullexpandarg| (voir page~\pageref{devarg}); elle subit un 1-développement si l'on invoque \verb|\normalexpandarg|. Dans les deux cas, le développement doit donner du \texte{10,11,12}. Ensuite, ce \texte{10,11,12} est transformé en tokens puis assigné à l 'aide d'un \verb|\def| à la séquence de contrôle \argu{nom}.\medskip
+\argu{séquence de contrôle} est développée le plus possible si l'on a invoqué \verb|\fullexpandarg| (voir page~\pageref{devarg}); elle n'est pas développée si l'on invoque \verb|\normalexpandarg|. Dans les deux cas, le développement doit donner du \texte{10,11,12}. Ensuite, ce \texte{10,11,12} est transformé en tokens puis assigné à l 'aide d'un \verb|\def| à la séquence de contrôle \argu{nom}.\medskip
-Exemple :\par\medskip
+exemple :\par\medskip
\begin{minipage}[r]{0.6\linewidth}
\hfill
\begin{boxedverbatim}
@@ -762,7 +802,7 @@ De plus, et c'est aussi le sens du message d'avertissement généré par la vers
Enfin, lors de l'utilisation de \verb|\scancs|, une espace est insérée après chaque séquence de contrôle. En effet, la primitive \verb|\detokenize| de $\varepsilon$-\TeX{} qui a été utilisée ici, insère une espace apès chaque séquence de contrôle. Il n'y a pas moyen de l'éviter.\medskip
-\subsubsection{Exemples}
+\subsubsection{exemples}
Dans l'exemple suivant, les séquences de contrôle subissent un 2-développement. \verb|\d| donne donc \verb|\b|, et \verb|\b| donne \verb|\textbf{a}\textit{b}|, et on constate bien qu'une espace est insérée après chaque séquence de contrôle. \par\medskip
\begin{minipage}[r]{0.6\linewidth}
\hfill