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}

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}

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.6k50210252

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 : 309 fois

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