Skip to content

Latest commit

 

History

History
40 lines (37 loc) · 1.04 KB

FAQ-compjobnam.md

File metadata and controls

40 lines (37 loc) · 1.04 KB
title category tags permalink
Comparing the "job name"
programming
macros
/FAQ-compjobnam

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.