---
myst:
html_meta:
keywords: LaTeX,programmation,nom de la tâche,job,compilation conditonnelle"
---
# Comment comparer `\jobname` à quelque chose ?
La commande `\jobname`, [qui donne le nom de la tâche en cours](/3_composition/document/document_metadonnee/utiliser_le_nom_de_fichier_dans_le_document) (*job* en anglais) basé sur le nom du fichier, produit une séquence de caractères dont le [catcode](/2_programmation/syntaxe/catcodes/que_sont_les_catcodes) est 12 (« autre »), indépendamment de la nature réelle des caractères.
Comme une comparaison d'une commande ne peut se faire qu'avec le contenu d'une autre commande (utilisant `\ifx` quelque part), pour comparer le `\jobname` à quelque chose, il faut créer une commande dont le développement ressemble à celle de `\jobname`. Ceci peut s'obtenir avec `\meaning`, en retirant le préfixe ajouté par `\show`.
Voici le code complet de la commande :
```{noedit}
\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 :
```{noedit}
\if\jobis{mainfile}%
\message{YES}%
\else
\message{NO}%
\fi
```
:::{note}
La commande `\StripPrefix` n'a pas besoin d'être définie si vous utilisez LaTeX : il existe déjà une [commande interne](/2_programmation/macros/makeatletter_et_makeatother) `\strip@prefix` que vous pouvez utiliser.
:::
:::{sources}
- [Comparing the "job name"](faquk:FAQ-compjobnam),
- [Compilation conditionnelle en LaTeX](https://lespetitesnotesdecamille.wordpress.com/2016/01/14/latex-compilation-conditionnelle/),
- [Conditional formatting based upon filename (`\jobname`)](https://latex.org/forum/viewtopic.php?t=3155),
- [What is the meaning of "`\meaning`?](https://tex.stackexchange.com/questions/338302/what-is-the-meaning-of-meaning).
:::