J'utilise la commande \dicStylePhonetic pour formater une chaîne de caractère.

Si je passe une chaîne de caractère en argument alors la chaîne est retournée formatée.

En revanche, si je stocke la chaîne dans une commande alors la chaîne est retournée n'est pas formatée. Et je ne trouve pas la solution.

\documentclass{article}%

\usepackage{color}

\ExplSyntaxOn%
\NewDocumentCommand{\dicStr}{}{weak /bi/ strong /bi/}%

\NewDocumentCommand{\dicStylePhonetic}{ m }{%
  \tl_set:Nn \l_tmpa_tl { #1 }%
  \regex_replace_case_all:nN {
    { (weak|strong) } { \c{textcolor}\cB\{red\cE\} \cB\{ \1 \cE\} }%
  } \l_tmpa_tl
  \tl_use:N \l_tmpa_tl%
}%
\ExplSyntaxOff%

\begin{document}%

\dicStylePhonetic{weak /bi/ strong /bi/}%

\dicStylePhonetic{\dicStr{}}%

\end{document}%

Posée 10 Aoû, 21:25

polymorphisme's gravatar image

polymorphisme
6461127
Taux d'acceptation : 50%

Modifiée 10 Aoû, 23:56


  1. Les commandes définies avec \NewDocumentCommand ne sont pas développables. Il faut donc utiliser soit \newcommand soit \NewExpandableDocumentCommand.
  2. Dans la définition de \dicStylePhonetic vous avez besoin d'utiliser \tl_set:Nx avec :Nx au lieu de :Nn, pour que l'argument soit développé.
Lien permanent

Publiée 13 Aoû, 18:41

touhami's gravatar image

touhami
10.1k410
Taux d'acceptation : 52%

Ok, ça marche, j'ai compris pour cet exemple. Néanmoins, il faut que je me documente pour faire le tour et comprendre les commandes et les arguments développables.

(13 Aoû, 20:53) polymorphisme polymorphisme's gravatar image

La solution :

\documentclass{article}%

\usepackage{color}

\ExplSyntaxOn%
\NewExpandableDocumentCommand{\dicStr}{}{weak /bi/ strong /bi/}%

\NewDocumentCommand{\dicStylePhonetic}{ m }{%
  \tl_set:Nx \l_tmpa_tl { #1 }%
  \regex_replace_case_all:nN {
    { (weak|strong) } { \c{textcolor}\cB\{red\cE\} \cB\{ \1 \cE\} }%
  } \l_tmpa_tl
  \tl_use:N \l_tmpa_tl%
}%
\ExplSyntaxOff%

\begin{document}%

\dicStylePhonetic{weak /bi/ strong /bi/}%

\dicStylePhonetic{\dicStr{}}%

\end{document}%
Lien permanent

Publiée 13 Aoû, 20:50

polymorphisme's gravatar image

polymorphisme
6461127
Taux d'acceptation : 50%

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.