Latex3 LaTeX3 et expressions régulières passée passées en argument
Pour colorier des lettres de mots, j'utilise des expressions régulières.
Par exemple, la commande \orthoFirstLetter `\orthoFirstLetter` colore en rouge la première lettre d'un mot.
mot :
\ExplSyntaxOn%
\regex_new:N \l_firstLetter_regex%
\regex_set:Nn \l_firstLetter_regex {([A-Za-zÉÀÈÙÂÊÎÛËÏÜÇéàèùâêîûëïüç]{1})(\-?[A-Za-zÉÀÈÙÂÊÎÛËÏÜÇéàèùâêîûëïüç]*)}%
\NewDocumentCommand{\orthoFirstLetter}{ m }{%
\tl_set:Nn \l_tmpa_tl { #2 }%
\regex_replace_all:NnN%
{ \l_firstLetter_regex }%
{ \c{textcolor}\cB\{red\cE\}\cB\{ \1 \cE\} \2 }%
\l_tmpa_tl%
\tl_use:N \l_tmpa_tl%
}%
\ExplSyntaxOff%
\orthoFirstLetter{mot}
Aussi, comme plusieurs motifs (première lettre, double lettre...) sont transformés par une même expression régulière, je me demandais s'il était possible de la passer en paramètre. J'obtiendrais ainsi quelque chose comme :
\NewDocumentCommand{\orthoFirstLetter}{ m m }%
\orthoFirstLetter{firstLetter}{mot}
\orthoFirstLetter{lastLetter}{mot}