Lição 13

Estruturando documentos longos

Esta lição mostra como o LaTeX permite dividir seu código em arquivos menores, mais fáceis de editar, e como isso pode tornar a produção de um documento longo mais fácil e rápido.

Quando você está escrevendo um documento longo, você provavelmente vai querer dividir o código fonte em múltiplos arquivos. Por exemplo, é muito comum ter um arquivo ‘principal’, e um arquivo fonte por capítulo (para um livro ou tese), ou por seção (para um artigo longo).

Estruturando seu código fonte

O LaTeX nos permite dividir arquivos fonte de uma forma controlada. Há dois comandos importantes aqui, \input e \include. Nós podemos usar \input para incluir um arquivo como se seu conteúdo estivesse escrito no lugar do comando \input, então esse comando pode ser usado para (essencialmente) qualquer material. O comando \include funciona para capítulos somente: ele inicia uma nova página e faz alguns ajustes internos. Mas ele tem uma grande vantagem: ele nos permite incluir arquivos seletivamente, então você pode trabalhar em apenas uma parte do seu documento, ao invés dele todo.

Um documento longo pode, então, ter essa aparência:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\title{Um livro de exemplo}
\author{John Doe \and Joe Bloggs}

\IfFileExists{\jobname.run.xml}
{
\includeonly{
  front,
%  chap1,
  chap2,
%  append
  }
}
{
% Inicialmente compilar o documento inteiro
% para gerar todos os arquivos .aux
}

\begin{document}
\frontmatter
\include{front}

% =========================
\mainmatter
\include{chap1}
\include{chap2}
\appendix
\include{append}

% ========================
\backmatter
\printbibliography
\newpage
\input{backcover}
\end{document}

Vamos ver os vários aspectos desse arquivo a seguir. (Os vários arquivos de suporte estão no final desta página.)

Usando \input

O comando \input é bom para partes de um longo arquivo que não são capítulos separados. No exemplo, nós o usamos para separar a capa e contracapa, mantendo o arquivo principal curto e claro, e isso significa que poderíamos reusar as capas em outro documento. Nós também usamos \input para as partes ‘não-capítulo’ no início do nosso ‘livro’: coisas como o prefácio. Novamente, isso é para manter o arquivo principal limpo.

Usando \include e \includeonly

O comando \include é bom para capítulos, então usamos ele para capítulos completos; ele sempre inicia uma nova página. Escolhemos quais capítulos serão de fato compilados usando \includeonly, que como você pode ver recebe uma lista separada por vírgula de nomes de arquivo. Ao usar o \includeonly, você pode encurtar o tempo total de execução do seu documento e produzir um PDF ‘seletivo’ para revisão. Adicionalmente, a principal vantagem de \includeonly é que o LaTeX vai usar todas as referências cruzadas dos arquivos .aux de outros arquivos incluídos.

Criando um sumário

O comando \tableofcontents usa as informações dos comandos de secionamento para preencher o sumário. Ele tem seu próprio arquivo auxiliar com extensão .toc, então você pode precisar executar o LaTeX duas vezes para resolver toda a informação. O sumário é gerado automaticamente dos títulos das seções. Há comandos simlares para lista de figuras (\listoffigures) e de tabelas (\listoftables), que obtém as legendas das figuras do comando \caption nos ambientes float figure e table, e usa arquivos com extensão .lof e .lot, respectivamente.

Dividindo o documento em partes

Os comandos \frontmatter, \mainmatter, e \backmatter afetam a formatação. Por exemplo, \frontmatter muda a numeração das páginas para algarismos Romanos O comando \appendix muda a numeração dos capítulos para A, B, etc., então o primeiro comando \chapter depois de \appendix imprime Appendix A.

Exercícios

Experimente com a estrutura básica do documento de exemplo, e tente adicionar e remover itens em \includeonly para ver o efeito.

Adicione alguns floats para produzir uma lista de figuras e tabelas. Se estiver usando uma instalação local de LaTeX, você consegue ver quantas execuções do LaTeX são necessárias? (Os sistemas online executam o LaTeX quantas vezes forem necessárias automaticamente, então não fica claro quantas vezes são necessárias.)


front.tex

\input{frontcover}
\maketitle
\input{dedication}
\input{copyright}
\tableofcontents
\input{pref}

pref.tex

\chapter{Preface}
The preface text. See \cite{doody}.

chap1.tex

\chapter{Introduction}
The first chapter text.

chap2.tex

\chapter{Something}
The second chapter text.

append.tex

\chapter*{Appendix}
The first appendix text.

frontcover.tex

\begin{center}
The front cover
\end{center}

dedication.tex

\begin{center}
\large
For \ldots
\end{center}

copyright.tex

\begin{center}
Copyright 2020 learnlatex.
\end{center}

backcover.tex

\begin{center}
The back cover
\end{center}