### Comparing the “job name”

The token `\``jobname` amusingly produces a sequence of characters whose category code is 12 (‘other’), regardless of what the characters actually are. Since one inevitably has to compare a macro with the contents of another macro (using `\``ifx`, somewhere) one needs to create a macro whose expansion looks the same as the expansion of `\``jobname`. We find we can do this with `\``meaning`, if we strip the “`\``show` command” prefix.

The full command looks like:

>     \def\StripPrefix#1>{}
>     \def\jobis#1{FF\fi
>       \def\predicate{#1}%
>       \edef\predicate{\expandafter\StripPrefix\meaning\predicate}%
>       \edef\job{\jobname}%
>       \ifx\job\predicate
>     }

And it’s used as:

>     \if\jobis{mainfile}%
>       \message{YES}%
>     \else
>       \message{NO}%
>     \fi

Note that the command `\``StripPrefix` need not be defined if you’re using LaTeX — there’s already an internal command `\``strip@prefix` that you can use.

This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=compjobnam