Comment détecter un argument vide ?

L'argument vraiment vide

Si vous avez besoin de savoir quand l'argument de votre commande est vide, autrement dit distinguer \commande{} de \commande{truc}, voici une solution relativement simple :

\def\commande#1{%
  \def\tempa{}%
  \def\tempb{#1}%
  \ifx\tempa\tempb
    <Cas où l'argument est vide>
  \else
    <Cas où l'argument est non vide>
  \fi
}

L'argument uniquement composé d'espaces

Le cas où vous voulez ignorer un argument qui ne consiste en rien d'autre que des espaces est plus délicat. Il est résolu dans l'extension ifmtarg qui définit les commandes \@ifmtarg et \@ifnotmtarg, qui examinent leur premier argument et, selon sa valeur, sélectionnent (dans des directions opposées) leur second ou troisième argument. La documentation de l'extension, en anglais, propose des exemples simples et visuels de ce fonctionnement. Par ailleurs, le code de cette extension apparaît également dans la classe \LaTeX memoir.

Around the bend de Michael Downes développe un plus ce sujet dans sa section 2.


Source: Detecting that something is empty

composition/macros/detecter_que_quelque_chose_est_vide.txt · Dernière modification: 2020/11/30 13:40 par yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0