Rendre une commande robuste?

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Rendre une commande robuste?

Messagepar josephtux » Dimanche 11 Décembre 2016, 19:22

Bonjour,
il est possible de rendre une commande robuste au moment de son utilisation:
\newcommand{\macommand}{...pas robuste...}
puis:
\protect\macommand

Mais existe-t-il un moyen ou des règles d'écriture qui permettraient d'écrire des commandes LaTeX plus robustes?

J'utilise vim-latex-suite (et latexmk) pour des prises de note au cours d'une commission qui prend des décisions, avec des tableaux de résultats chiffrés, une table des matières qui récapitule des décisions, et un index hiérarchique, dont le «groupe» est le nom d'un candidat et le «mot indexé» dans cette hiérarchie est la décision (qui peut donc changer d'une commission à l'autre).
Le 2e argument de l'index est une commande fragile (du type \oui, \non, \ajourne, etc..).
L'index ne fonctionne qu'avec la commande \protect, ce qui est un handicap au moment de la prise de note.

Je ne suis pas sûr qu'il existe une solution -accessible à mon (faible) niveau de LaTeX- mais qui sait ? ici certainement quelques-uns d'entre vous.

merci
Debian GNU/Linux 8.5 (jessie)
pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian)

1 % d'inspiration, 99% de transpiration (A.Einstein)
josephtux
Déca-utilisateur
 
Messages: 32
Inscription: Mardi 25 Octobre 2011, 11:06
Localisation: Picardie
Statut actuel: Actif et salarié

Publicité

Re: Rendre une commande robuste?

Messagepar balf » Dimanche 11 Décembre 2016, 20:52

Vous avez l'extension etoolbox, qui définit (voir §§ 2.1 à 2.3 de la documentation) :
  • \newrobustcmd(*)
  • \renewrobustcmd(*)
  • \providerobustcmd(*)
  • \robustify{commande}
  • \protecting{groupe de commandes}

Il y a aussi xparse, qui utilise la syntaxe de LaTeX 3, et dont les commandes (re)définies à l'aide de :
  • \DeclareDocumentCommand
  • \NewDocumentCommand
  • \RenewDocumentCommand
  • \ProvideDocumentCommand
sont robustes (§ 5 de la documentation).

B. A.
balf
Zetta-utilisateur
 
Messages: 3568
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Rendre une commande robuste?

Messagepar josephtux » Lundi 12 Décembre 2016, 16:26

Merci Balf

j'ai trouvé une solution qui a l'air de fonctionner: utiliser \protect dans une \renewcommand de ma commande (qui ne réagissait pas lors de sa 1ère définition, mais fonctionne avec son appel secondaire)

Je ne suis pas très sûr de ma solution, aussi je vais me pencher sur vos suggestions d'extensions que je ne connaissais pas.
Debian GNU/Linux 8.5 (jessie)
pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian)

1 % d'inspiration, 99% de transpiration (A.Einstein)
josephtux
Déca-utilisateur
 
Messages: 32
Inscription: Mardi 25 Octobre 2011, 11:06
Localisation: Picardie
Statut actuel: Actif et salarié


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 11 invités