Pour colorier des lettres de mots, j'utilise des expressions régulières. Par exemple, la commande \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} |
Oui, impécable, merci. |
Comme ça?
\ExplSyntaxOn \regex_new:N \l_Letters_regex \NewDocumentCommand{\orthoSpecialLetter}{ m m }{ \tl_set:Nn \l_tmpa_tl { #1 } \regex_replace_all:NnN% \l_Letters_regex { #2 }% \l_tmpa_tl% \tl_use:N \l_tmpa_tl% } \NewDocumentCommand{\orthoFirstLetter} { m } { \regex_set:Nn \l_Letters_regex {([A-Za-zÉÈÙÂÊÎÛËÏÜÇéàèùâêîûëïüç]{1})(\-?[A-Za-zÉÀÈÙÂÊÎÛËÏÜÇéàèùâêîûëïüç]*)} \orthoSpecialLetter {#1} {\c{textcolor}\cB\{red\cE\}\cB\{ \1 \cE\} \2} } \NewDocumentCommand{\orthoLastLetter} { m } { \regex_set:Nn \l_Letters_regex { ... } \orthoSpecialLetter {#1} { ... } \ExplSyntaxOff