Comparer "\jobname" à quelque chose
La commande
\jobname
, qui donne le nom du job en cours, basé sur le nom du fichier,
produit une séquence de caractères dont le catcode
est 12 (« autre »), indépendamment de la nature réelle des caractères.
Comme on ne peut comparer une macro qu'avec le contenu d'une autre macro
(utilisant \ifx
quelque part), si on veut comparer le \jobname
à quelque chose,
on doit créer une macro dont l'expansion ressemble à celle de \jobname
.
On peut le faire avec \meaning
, si on retire le préfixe ajouté par \show
.
Voici le code complet de la commande :
\def\StripPrefix#1>{} \def\jobis#1{FF\fi \def\predicate{#1}% \edef\predicate{\expandafter\StripPrefix\meaning\predicate}% \edef\job{\jobname}% \ifx\job\predicate }
qui s'utilise ainsi :
\if\jobis{mainfile}% \message{YES}% \else \message{NO}% \fi
La commande
:
il existe déjà une commande interne
\StripPrefix
n'a pas besoin d'être définie si vous utilisez

\strip@prefix
que vous pouvez utiliser.
Sources: