Pour colorier des lettres de mots, j'utilise des expressions régulières.

Par exemple, la commande \orthoFirstLetter colore en rouge la première lettre d'un 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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Posée 14 Mar, 08:54

polymorphisme's gravatar image

polymorphisme
602925
Taux d'acceptation : 53%

Modifiée 14 Mar, 14:41

Pathe's gravatar image

Pathe ♦♦
7.6k50210253

1

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

(15 Mar, 12:08) touhami touhami's gravatar image

Oui, impécable, merci.

Lien permanent

Publiée 26 Mar, 18:14

polymorphisme's gravatar image

polymorphisme
602925
Taux d'acceptation : 53%

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×7
×2

Question posée : 14 Mar, 08:54

Question vue : 415 fois

Dernière mise à jour : 26 Mar, 18:14