|
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