Apresentação


Este é o terceiro artigo da série sobre LaTeX. No primeiro, LaTeX: conceito e acessibilidade, a gente entendeu o que é a linguagem e por que ela combina tão bem com leitores de tela. No segundo, LaTeX: criando documentos na prática, aprendemos a escrever um documento do zero, com matemática simples e complexa, além de entender como gerar um PDF acessível.

A ideia deste artigo é ampliar o repertório de conhecimentos com recursos que deixam o documento mais completo e mais organizado. São aquelas peças que aparecem em textos mais “sérios”, como trabalhos, monografias e artigos: glossários, referências cruzadas, bibliografia, teoremas, tabelas, listas, figuras com legenda e índice remissivo.

Não é preciso memorizar tudo agora. Use este artigo como consulta: volte a ele sempre que precisar de um recurso específico. Vamos avançar aos poucos.

Antes de começar, uma observação que vale para vários recursos daqui: alguns deles (como glossário, bibliografia, índice e as referências cruzadas) só ficam prontos depois de compilar o documento mais de uma vez, e às vezes rodando um programa auxiliar. Isso é normal, e eu aviso em cada caso. Se na primeira tentativa aparecer um ponto de interrogação ou um número estranho no lugar da informação, quase sempre é só compilar de novo.

E mais uma coisa: este artigo usa vários pacotes que você talvez ainda não tenha instalado. Se você usa o TinyTeX e a compilação parar com o erro “File … not found”, é só instalar o pacote que falta com o tlmgr, do jeito que a gente viu na seção sobre esse erro, no segundo artigo.

Glossários e listas de siglas


Um glossário é uma lista de termos técnicos com suas explicações, normalmente colocada no fim do documento. No LaTeX, você cadastra cada termo uma única vez, usa esse termo no texto e deixa o sistema montar a lista final em ordem alfabética, sem duplicações.

Quem faz isso é o pacote glossaries. O caminho tem três momentos. Primeiro, no preâmbulo, você carrega o pacote e avisa que vai criar um glossário:

\usepackage{glossaries}
\makeglossaries

Depois, ainda no preâmbulo, você define os termos, com um nome curto (que serve de apelido), o nome que aparece e a descrição:

\newglossaryentry{latex}{
  name={LaTeX},
  description={sistema de preparação de documentos voltado a textos técnicos}
}

Aí, no corpo do texto, em vez de escrever o termo na mão, você o chama pelo apelido com o comando \gls:

O \gls{latex} é muito usado na matemática.

Por fim, no lugar onde você quer que a lista apareça, normalmente perto do fim, você manda imprimir o glossário:

\printglossaries

A grande vantagem é a consistência: se você decidir mudar a descrição de um termo, muda num lugar só, e todo o documento acompanha.

Dica: para siglas (como NVDA ou PDF), o mesmo pacote tem um atalho próprio, o \newacronym, que cuida de escrever a sigla por extenso na primeira vez e abreviada nas seguintes. É exatamente o comportamento que a gente espera de um texto bem cuidado.

Observação: o glossário é um daqueles recursos que precisam de uma etapa a mais. Quem monta a lista é um programa auxiliar chamado makeglossaries, que vem junto com a distribuição. Então, se o glossário não aparecer nem depois de compilar de novo, é só abrir o terminal, digitar makeglossaries seguido do nome do seu arquivo sem a extensão .tex (por exemplo, makeglossaries meu_documento) e compilar mais uma vez.

Referências cruzadas e bibliografia


Nesta seção, vamos ver dois recursos que parecem diferentes, mas funcionam com a mesma ideia: deixar que o LaTeX controle as numerações e as referências, em vez de você fazer essas contas na mão.

Referências cruzadas: nunca mais “veja a figura acima”

Sabe quando um texto diz “como mostra a figura ao lado” ou “veja a tabela acima”? Para quem usa leitor de tela, isso é um problema, porque “ao lado” e “acima” são posições visuais que não dizem nada. O jeito certo é referir as coisas pelo número delas, e é aí que o LaTeX brilha.

Funciona com um par de comandos. Você marca o ponto que quer referenciar com \label, dando a ele um apelido, e depois cita esse ponto com \ref, que escreve o número automaticamente:

\section{Introdução}\label{sec:intro}

Como veremos na Seção~\ref{sec:intro}, o tema é importante.

O melhor é que a numeração é automática. Se você inverter a ordem das seções ou acrescentar uma no meio, o LaTeX refaz todas as contas sozinho, e a referência continua certa. Para equações, existe a versão \eqref, que já coloca o número entre parênteses, do jeito que se espera de uma equação.

Observação: assim como o glossário, as referências cruzadas precisam de duas compilações para acertar os números. Na primeira, o LaTeX anota onde está cada coisa; na segunda, ele preenche os números certos.

Bibliografia: as citações e a lista de referências

O LaTeX também pode montar automaticamente a lista de referências quando você cita fontes. A lógica é semelhante à do glossário: os dados de cada obra ficam em um arquivo separado, com extensão .bib, e cada fonte é chamada no texto por um apelido.

Existem dois caminhos. O clássico é o BibTeX, usado há muitos anos. O mais moderno e flexível é o biblatex, que costuma ser a recomendação de hoje, principalmente para quem escreve em português, porque lida melhor com as normas da ABNT. De forma simplificada, com o biblatex o esqueleto é assim:

% no preâmbulo:
\usepackage[backend=biber]{biblatex}
\addbibresource{referencias.bib}

% no texto:
Segundo \textcite{knuth1984}, o TeX nasceu nos anos 1970.

% onde a lista deve aparecer:
\printbibliography

Você cita com \cite (ou \textcite, que escreve o nome da autoria na frase), e o LaTeX monta a lista final, formatada e em ordem. Cada obra fica guardada no arquivo .bib num formato padrão.

Observação: a bibliografia também tem o seu programa auxiliar: com o backend=biber do exemplo, quem monta a lista é o biber. Compilando pelo LaTeX Workshop, você nem percebe, porque ele roda o biber sozinho. Se um dia você compilar na mão e a citação aparecer como um ponto de interrogação, é só rodar biber seguido do nome do arquivo sem a extensão (por exemplo, biber meu_documento) e compilar de novo.

A bibliografia é um assunto grande, que rende um artigo só dele. Aqui a ideia é você sair sabendo que ela existe, que é automática e que vale a pena usar desde cedo.

Ambientes de teorema, definição e prova


Em textos matemáticos mais formais, é comum usar teoremas, definições, lemas e demonstrações com numeração e formatação próprias. Para isso, usamos o pacote amsthm, da mesma família do amsmath, apresentado no segundo artigo.

Primeiro, no preâmbulo, você carrega o pacote e cria os tipos de ambiente que vai querer:

\usepackage{amsthm}
\newtheorem{teorema}{Teorema}
\newtheorem{definicao}{Definição}

A linha \newtheorem{teorema}{Teorema} está dizendo: “crie um ambiente chamado teorema, e, quando ele aparecer, escreva a palavra Teorema na frente, com a numeração”. Depois, é só usar como qualquer ambiente, com \begin e \end:

\begin{teorema}
Em todo triângulo retângulo, o quadrado da hipotenusa é igual à soma dos quadrados dos catetos.
\end{teorema}

\begin{proof}
A demonstração segue do cálculo das áreas.
\end{proof}

O ambiente proof já vem pronto no pacote e serve para as demonstrações. Um detalhe bom para nós: como no segundo artigo carregamos o babel com a opção brazilian, esse ambiente aparece em português, escrito “Demonstração”. A numeração dos teoremas, como sempre no LaTeX, é automática.

Tabelas e listas


Tabelas e listas organizam informações, e o LaTeX tem recursos específicos para criar ambas.

Tabelas

A tabela é montada com o ambiente tabular. A lógica vai parecer familiar, porque usa os mesmos dois símbolos que a gente viu nas matrizes e no align, lá no segundo artigo: o & separa as colunas, e o \\ termina cada linha.

A novidade é que, logo no começo, você descreve as colunas: l para alinhar à esquerda (do inglês left), c para centralizar (center) e r para a direita (right).

\begin{tabular}{l c r}
  Nome  & Idade & Nota \\
  Ana   & 20    & 9,5  \\
  Bruno & 22    & 8,0  \\
\end{tabular}

Esse código cria uma tabela de três colunas: a primeira alinhada à esquerda, a segunda no centro e a terceira à direita.

Dica de acessibilidade: sempre deixe claro qual é a linha de cabeçalho da tabela (aqui, “Nome, Idade, Nota”). O cabeçalho é o que dá sentido aos dados, e é ele que ajuda o leitor de tela a anunciar “na coluna Nota, valor 9,5”. Vale também conhecer o pacote booktabs, que melhora bastante o espaçamento e a aparência das tabelas.

Listas

Para listas, existem três ambientes. O itemize faz listas com marcadores, o enumerate faz listas numeradas, e o description faz listas em que cada item tem um rótulo em destaque. Em todos, cada item começa com \item:

\begin{itemize}
  \item primeiro ponto
  \item segundo ponto
\end{itemize}

\begin{enumerate}
  \item primeiro passo
  \item segundo passo
\end{enumerate}

As listas, além de organizarem o texto visualmente, são marcadas como listas na estrutura do documento, o que ajuda o leitor de tela a anunciar quantos itens existem e a navegar entre eles.

Figuras, legendas e índice remissivo


Para fechar, vamos ver dois recursos que deixam o documento mais completo e bem acabado.

Figuras com legenda

No segundo artigo, a gente já viu como inserir uma imagem e como dar a ela um texto alternativo (a descrição em palavras, com a opção alt). Agora vamos colocar essa imagem dentro de uma figura de verdade, com legenda numerada:

\begin{figure}
  \centering
  \includegraphics[width=6cm, alt={Triângulo retângulo com catetos a e b}]{triangulo.png}
  \caption{Um triângulo retângulo.}
  \label{fig:triangulo}
\end{figure}

O comando \caption cria a legenda, já numerada automaticamente. E repare no \label: com ele, dá para citar essa figura lá no texto com o \ref, exatamente como vimos nas referências cruzadas. Assim, você escreve “a Figura 1” sem nunca precisar contar as figuras na mão.

Vale reforçar: o alt (a descrição da imagem) e a \caption (a legenda) são coisas diferentes e complementares. A legenda aparece para todo mundo, embaixo da figura; o texto alternativo é a descrição que o leitor de tela lê no lugar da imagem.

Índice remissivo

O índice remissivo é aquela lista, no fim de livros mais longos, que mostra em que página cada assunto aparece. O LaTeX monta isso para você com o pacote makeidx. No preâmbulo:

\usepackage{makeidx}
\makeindex

No texto, você marca as palavras que quer indexar com \index, bem ao lado da palavra:

A fração\index{fração} é uma divisão.

E, no fim, manda imprimir o índice:

\printindex

Observação: como o glossário e a bibliografia, o índice precisa de uma etapa a mais para ser montado, e quem faz isso é o programa makeindex. A boa notícia: o LaTeX Workshop roda esse programa sozinho, então aqui é só compilar o documento mais de uma vez.

Resumo


Neste terceiro artigo, a gente ampliou bastante a caixa de ferramentas. Vimos como criar glossários e listas de siglas com o glossaries, como deixar o LaTeX cuidar das numerações com as referências cruzadas (\label e \ref) e como montar a bibliografia de forma automática. Conhecemos os ambientes de teorema e demonstração do amsthm, aprendemos a fazer tabelas e listas, e fechamos com figuras com legenda e o índice remissivo.

Quase todos esses recursos têm algo em comum: o LaTeX pode gerenciar numerações e referências internas automaticamente. Você identifica os elementos, e ele faz os cálculos. Além de facilitar o trabalho, isso melhora a acessibilidade, pois referências por número são mais claras do que indicações baseadas na posição da página, tanto para quem enxerga quanto para quem usa leitor de tela.

E não desanime se algum recurso precisar de duas ou três compilações para aparecer direito. Faz parte, e logo vira automático. Continue praticando, continue testando. É tentando que se aprende.

Referências


  • CTAN. Package: glossaries (glossários e listas de siglas). Disponível em: https://ctan.org/pkg/glossaries
  • CTAN. Package: amsthm (ambientes de teorema, definição e prova, da AMS). Disponível em: https://ctan.org/pkg/amsthm
  • CTAN. Package: biblatex (sistema moderno de bibliografia). Disponível em: https://ctan.org/pkg/biblatex
  • CTAN. BibTeX (sistema clássico de bibliografia). Disponível em: https://ctan.org/pkg/bibtex
  • CTAN. Package: graphicx (inserção de imagens). Disponível em: https://ctan.org/pkg/graphicx
  • CTAN. Package: caption (legendas de figuras e tabelas). Disponível em: https://ctan.org/pkg/caption
  • CTAN. Package: booktabs (tabelas com melhor espaçamento). Disponível em: https://ctan.org/pkg/booktabs
  • CTAN. Package: makeidx (índice remissivo). Disponível em: https://ctan.org/pkg/makeidx