O que são (TeX) macros?

TeX é um processador de macro: este é um termo pseudocientífico que significa “expansor de texto” (mais ou menos); O TeX tipografa texto à medida que avança, mas expande cada macro que encontra. Macros de TeX podem incluir instruções para o próprio TeX, além da simples geração de texto que se poderia esperar.

Macros são um coisa boa, uma vez que permitem ao usuário manipular documentos de acordo com o contexto. Por exemplo, a macro \TeX usualmente está definida para produzir “TEX” com o ‘E’ rebaixado (a ideia original foi de Knuth), mas nestas FAQs a definição padrão da macro é sobrepujada, e ela simplesmente se expande para as letras “TeX”. (Você pode não achar que isso seja uma coisa boa, mas o autor das macros tem seus motivos – veja Logos relacionados ao TeX.)

Nomes de macro são convencionalmente construídos a partir de uma \ seguida de uma sequência de letras, que podem ser maiúsculas ou minúsculas (como em \TeX, mencionada acima). Eles também podem ser \ ‹qualquer caractere, o que permite todo tipo de esquisitice (muitas incorporadas à maioria dos conjuntos de macro de TeX, desde a aparentemente simples ‘\ ’ que significa “insira um espaço aqui”).

A programação de macro pode ser um negócio complicado, mas, no nível mais simples, elas precisam de pouca introdução — você dificilmente precisará ser informado de que:

\def\foo{bar}
substitui cada ocorrência de \foo pelo texto “bar”. O comando \def é a sintaxe do Plain TeX para definir comandos; LaTeX oferece uma macro \newcommand que de certa forma protege os usuários de si mesmos, mas faz basicamente a mesma coisa:
\newcommand{\foo}{bar}
Macros podem ter “argumentos” , que são usados para substituir trechos marcados da expansão de macro:
\def\foo#1{This is a #1 bar}
...
\foo{2/4}.
que produz:
This is a 2/4 bar.
Ou, no jargão do LaTeX:
\newcommand{\foo}[1]{This is a #1 bar}
...
\foo{3/4}.
que produz:
This is 3/4 bar.
(Usuários deLaTeX valsam pela vida, talvez?)

Você deve ter notado, acima, que os argumentos estavam entre chaves ({…}); esta é a maneira normal de digitar argumentos, embora o TeX seja extremamente flexível e você possa encontrar todo tipo de outras formas de passar argumentos (se você permanecer com ele).

A escrita de macros pode ficar muito complicada muito rapidamente. Se você é um programador iniciante de (La)TeX , é muito aconselhável que leia algo das linhas do TeXbook; uma vez que esteja avançando, o TeX by Topic talvez seja uma escolha mais satisfatória. Muitas das respostas nestas FAQs tratam de várias questões de como escrever macros.

This answer last edited: 2011-10-12


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