Detectar que algo está vazio

Suponha que você precise saber que o argumento de seu comando está vazio: isto é, distinguir entre \cmd{} e \cmd{blah}. É muito simples:

\def\cmd#1{%
  \def\tempa{}%
  \def\tempb{#1}%
  \ifx\tempa\tempb
    
  \else
    
  \fi
}
O caso em que você queira ignorar um argumento que consista em nada além de espaços, em vez de algo completamente vazio, é mais complicado. Ele é solucionado pelo fragmento de código ifmtarg, que define comandos \@ifmtarg e \@ifnotmtarg, que examinam o primeiro argumento deles e selecionam (em direções opostas) o segundo ou terceiro argumento. O código do pacote também aparece na classe memoir do LaTeX class.

O Ifmtarg torna a leitura desafiadora; há também uma discussão sobre a questão no número dois dos artigos “around the bend” do falecido Mike Downes.

Around the bend series
aro-bend
ifmtarg.sty
ifmtarg
memoir.cls
memoir


Do you have any question? Ask on: latex.net.br - we love qood questions!