O token \jobname
divertidamente produz uma sequência de caracteres cujo código de categoria é 12 (‘outros’), independentemente de quais sejam os caracteres. Como a comparação de uma macro com o conteúdo de outra macro (usando \ifx
, em algum lugar) é inevitável, é necessário que se crie uma macro cuja expansão pareça igual à expansão de
\jobname
. Achamos que podemos fazer isso com \meaning
, se removermos o prefixo do “comando \show
command”.
O comando completo se parece com:
E ele é usado como:\def\StripPrefix#1>{} \def\jobis#1{FF\fi \def\predicate{#1}% \edef\predicate{\expandafter\StripPrefix\meaning\predicate}% \edef\job{\jobname}% \ifx\job\predicate }
Note que o comando\if\jobis{mainfile}% \message{YES}% \else \message{NO}% \fi
\StripPrefix
não precisa ser definido se você estiver usando LaTeX — já existe um
comando interno \strip@prefix
que pode ser usado.
This question on the Web: http://latex.net.br/faq/FAQ-compjobnam.html
Do you have any question? Ask on: latex.net.br - we love qood questions!