Documentação com LaTeX

Ricardo Dias
Contexto Delimitado
8 min readApr 30, 2019

Criado em 1985 por Leslie Lamport, o LaTeX (abreviação de Lamport TeX) é um sistema de composição de alta qualidade, incluindo recursos projetados para a produção de documentação técnica e científica.

Distribuído como software livre o LaTeX se tornou um padrão para a publicação de documentos científicos em muitas universidades no mundo todo.

Leslie Lamport. Fonte: Microsoft Research

Neste artigo, você descobrirá o “caminho das pedras” para fazer seu primeiro documento e conhecer várias dicas básicas que o ajudarão a usufruir desta incrível ferramenta.

Instalando

Para instalar o LaTeX no Ubuntu linux, abra o terminal e execute o seguinte comando:

sudo apt-get install -y texlive \
texlive-lang-portuguese \
texlive-fonts-recommended \
texlive-extra-utils \
texlive-latex-extra \
texlive-generic-extra \
texlive-plain-extra \
texlive-pictures \
texlive-publishers \
texlive-science-doc \
texlive-science;

Após a instalação terminar, o LaTeX e diversos pacotes adicionais estarão prontos para usar. Deixo também os links para que usuários do Windows e do MacOS possam instalar o LaTeX em seus respectivos sistemas operacionais:

Criando o primeiro documento

Sobre a edição de arquivos LaTeX

A primeira coisa a se saber é que no LaTex (diferente do Word, LibreOffice ou aplicações do gênero) é preciso digitar o conteúdo em um editor que seja capaz de gerar um arquivo de “texto puro” (plain text).

Por exemplo, quando edita-se um documento no Word o arquivo .docx resultante não possui um conteúdo limpo. O .docx contém uma série de instruções que determinam os estilos de formatação dos títulos, parágrafos, etc. Portanto, o Word não é adequado para fazer um documento LaTeX.

Praticamente quaisquer editores que possam ser usados para programação serão também compatíveis com LaTeX, pois geram textos puros, sem formatação. Alguns bons editores são:

  • NotePad++;
  • Atom;
  • VisualStudio Code;
  • NotePad do Windows;
  • Gedit do Ubuntu

Se preferir, também existem editores específicos para LaTeX, dentre eles, cito os mais interessantes:

Como criar um documento

Abra seu editor de textos favorito e crie um novo arquivo. Os arquivos reconhecidos pelo LaTeX possuem a extensão .tex, sendo assim, chame seu arquivo de “meu-documento.tex” e salve-o em algum lugar.

No documento, coloque o seguinte conteúdo:

\documentclass{article} \begin{document}    Este é meu primeiro documento escrito com Latex!! \end{document}

Salve as alterações, abra o terminal e digite:

pdflatex meu-documento.tex 
ou
pdflatex /caminho/para/meu-documento.tex

O processo de compilação será executado e várias mensagens serão exibidas na tela. Durante este processo, alguns arquivos serão gerados:

  • meu-documento.log: é um arquivo com o histórico de tudo o que foi feito pelo compilador enquanto gerava o documento;
  • meu-documento.aux: são informações auxiliares geradas pelo compilador e usadas para finalizar o processo;
  • meu-documento.pdf: o documento resultante, em formato PDF.

Pronto, o arquivo chamado “meu-documento.pdf” é o seu primeiro documento criado somente com LaTeX. Os dois primeiros arquivos (.log e .aux) não servirão para nada após a finalização da compilação e podem ser descartados.

Conteúdo do arquivo PDF gerado pelo LaTeX

Entendendo a estrutura básica

As informações para a montagem do documento são agrupadas em dois blocos que são chamados de preâmbulo e o corpo do documento.

1. O Preâmbulo

Como o nome já diz, é o “conteúdo introdutório” do documento, que fica antes da declaração do conteúdo textual. O preâmbulo não contém textos, pois destina-se às configurações preliminares. Abaixo, um exemplo da estrutura do preâmbulo:

\documentclass[opções]{classe}\usepackage[opções]{pacote}
\usepackage[opções]{pacote}
\usepackage[opções]{pacote}

Existem várias declarações possíveis e que podem ser adicionadas. No exemplo acima, para facilitar o entendimento, apenas os dois tipos mais comuns foram usados: a classe e os pacotes.

Classes de documentos:

A notação \documentclass define uma classe de documento a ser usada. Dependendo da classe, mais funções estarão disponíveis para facilitar a formação ou prover configurações predefinidas.

Existem várias classes disponíveis e, além disso, é possível criar suas próprias classes com comandos e formatações pessoais. Para este artigo inicial, vamos nos limitar as classes que já existem. As mais comuns são:

  • minimal: contém apenas a formatação para o tamanho da página e a fonte tipográfica padrão;
  • letter: para fazer cartas;
  • beamer: para escrever apresentações;
  • article: para fazer artigos em revistas científicas, apresentações, pequenos relatórios, documentações, etc;
  • report: para longos relatórios contendo muitos capítulos, pequenos livros, teses, etc;
  • book: para criar livros de verdade;
  • slides: para fazer slides, usando letras grandes;
  • memoir: para grandes personalizações. É baseado na classe book mas é possível criar qualquer tipo de documento com esta classe;
  • abntex2: para formatar trabalhos acadêmicos de acordo com as regras da ABNT.

Cada classe possui configurações especiais que podem ser usadas para personalizar o conteúdo do documento e formatar suas informações padrões. Abaixo, um exemplo de declaração para a classe abntex2:

\documentclass[
12pt,oneside,a4paper,
sumario=tradicional
brazil
]{abntex2}

Na declaração acima, estamos dizendo para o LaTeX que o documento deverá ter a fonte tipográfica com o tamanho padrão de 12pt, com páginas de um lado único (sem diferenciar páginas pares e impares), com o papel em tamanho A4, formatando o sumário de forma tradicional e com idioma padrão português brasileiro.

Pacotes de funcionalidades:

A notação \usepackage notifica o compilador do LaTeX sobre quais funcionalidades incorporar no documento, aumentando o “poder de fogo” e permitindo fazer muito além do que a classe pode oferecer.

Existem pacotes de funcionalidades para centenas de tarefas, tais como:

  • criar tabelas;
  • autoformatar referências bibliográficas;
  • colorir textos e tabelas;
  • formatar códigos de programação;
  • escrever fórmulas matemáticas;
  • desenhar gráficos

Enfim, o que você precisar, provavelmente pode ser disponibilizado usando algum pacote. Os mais comuns são:

  • \usepackage{listings}: para formatação de codigo fonte;
  • \usepackage[utf8]{inputenc}: para definir a codificação do documento;
  • \usepackage{color}: para permitir a coloração de textos;
  • \usepackage{graphicx}: para incluir imagens e fotos;
  • \usepackage{longtable}: para inserir tabelas maiores que uma página;
  • \usepackage{colortbl}: para colorir tabelas;
  • \usepackage{lipsum}: para gerar texto aleatório;

2. O corpo do documento

O corpo do documento é onde deve ser alocada toda a estrutura com o conteúdo, seja textual ou visual. Elementos como capítulos, seções, parágrafos, gráficos, fotos, etc, tudo isso deve ser adicionado no corpo do documento:

\begin{document}   \chapter{Conteúdo textual}   Textos, imagens, tabelas, etc, são adicionados aqui.\end{document}

Um exemplo de uso

Para entender melhor o funcionamento do LaTeX, observe o exemplo abaixo. Neste documento são implementados vários elementos, incluindo a configuração do preâmbulo e a formatação das seções e parágrafos.

\documentclass[14pt,oneside,a4paper,brazil]{abntex2}% pacotes
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{graphicx}
\usepackage[sfdefault]{roboto}
\usepackage[T1]{fontenc}
% cores
\definecolor{normal}{RGB}{ 50, 50, 50 }
\definecolor{green}{RGB}{ 43, 180, 54 }
\definecolor{blue}{RGB}{ 2, 69, 156 }
\definecolor{red}{RGB}{ 255, 60, 0 }
\begin{document} \color{red}
\part{ABC do Latex}

\color{blue}
\chapter{Capítulo}
\color{normal}
Donec vehicula augue eu neque.
Pellentesque habitant morbi {\color{red}tristique senectus}
et netus et malesuada fames ac turpis egestas.
Mauris ut leo. Cras viverra metus rhoncus sem.
\textbf{Nulla et lectus} vestibulum urna fringilla ultrices.
\begin{center}
\includegraphics[width=\textwidth/2]{assets/figura.jpg}
\end{center}
\color{blue}
\section{Seção}
\color{normal}
Lorem ipsum dolor sit amet, \textit{consectetuer adipiscing}
elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis.
Curabitur {\color{red}tristique senectus} mauris.
Nam arcu libero, nonummy eget, consectetuer id,
vulputate a, magna.
\color{blue}
\subsection{Subseção}
\color{normal}
Donec vehicula augue eu neque.
Pellentesque habitant morbi tristique senectus et
netus et malesuada fames ac turpis egestas.
Mauris {\color{green}tristique senectus} metus
rhoncus sem. Nulla et lectus vestibulum urna
fringilla ultrices.
\color{blue}
\subsubsection{Subsubseção}
\color{normal}
Lorem ipsum dolor sit amet, consectetuer adipiscing
elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis.
Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id,
vulputate a, magna.
\end{document}

Após a compilação, o documento resultante conterá 2 páginas, como na imagem abaixo:

Explicando passo a passo cada elemento do documento:

\documentclass[14pt,oneside,a4paper,brazil]{abntex2}
  • 14pt: define o tamanho fonte padrão do documento;
  • oneside: determina que o documento terá todas as páginas com o mesmo lado, sem páginas pares e impares;
  • a4paper: determina o tamanho do papel;
  • brazil: o idioma do documento, no caso, português brasileiro.
% pacotes
\usepackage[utf8]{inputenc}
\usepackage{color}
\usepackage{graphicx}
\usepackage[sfdefault]{roboto}
\usepackage[T1]{fontenc}
  • % pacotes: todos os textos precedidos por um % são ignorados pelo compilador do LaTeX. São os chamados “comentários”, muito úteis para fazer anotações no documento;
  • inputenc: determina a codificação de caracteres para aceitar acentos em “utf8”;
  • color: possibilita a coloração de textos;
  • graphicx: possibilita adicionar imagens no documento;
  • roboto: define a fonte padrão do documento para Roboto;
  • fontenc: determina o tipo de fonte a ser usada, no caso, uma fonte Type1.
% cores
\definecolor{normal}{RGB}{ 50, 50, 50 }
\definecolor{green}{RGB}{ 43, 180, 54 }
\definecolor{blue}{RGB}{ 2, 69, 156 }
\definecolor{red}{RGB}{ 255, 60, 0 }
  • % cores: mais um comentário apenas para anotação.
  • \definecolor: define as cores a serem usadas no conteúdo do documento.
\begin{document}   \color{red}
\part{ABC do Latex}
  • \begin{document}: abre o bloco para o conteúdo do documento;
  • \color: define cor vermelha para a seção;
  • \part: especifica o nome para a parte. Este tipo de seção abrange uma página inteira e é geralmente utilizado em livros.
\color{blue}
\chapter{Capítulo}
\color{normal}
Donec vehicula augue eu neque.
Pellentesque habitant morbi {\color{red}tristique senectus} et netus et malesuada fames ac turpis
egestas. Mauris ut leo. Cras viverra metus rhoncus sem. \textbf{Nulla et lectus} vestibulum urna
fringilla ultrices.
  • \color{blue}: define cor azul para a seção;
  • \chapter: especifica o nome para a capítulo.
  • \color{normal}: define cor “normal” {RGB}{ 50, 50, 50 } para o texto do parágrafo;
  • {\color{red}…}: pinta o trecho de vermelho;
  • \textbf{…}: estiliza o trecho com negrito;
\begin{center}
\includegraphics[width=\textwidth/2]{assets/figura.jpg}
\end{center}
  • \begin{center}: adiciona um bloco centralizado;
  • \includegraphics: adiciona uma imagem com a largura ajustada para metade da largura da área de texto;

Outras notações ao longo do conteúdo são:

  • \textit{…}: estiliza o trecho com itálico ;
  • {\color{green}…}: pinta o trecho de verde.

Conclusão

O uso do LaTeX para gerar documentos possibilita várias vantagens, principalmente se for utilizado para engenharia e documentação de software. Entre as vantagens estão:

  • Possibilidade de criar modelos pré-formatados (como as cores da empresa, logotipo, etc);
  • Remover a responsabilidade de diagramação, focando apenas no conteúdo;
  • Possibilidade de versionar o documento (usando git, por exemplo) e usufruir dos recursos de versionadores, como a possibilidade de encontrar facilmente o conteúdo que foi alterado, acrescido ou excluído a partir do commit efetuado;
  • Gerar uma marcação programada e de fácil manutenção;
  • Permitir que o resultado possa ser compilado para vários formatos diferentes (com o auxílio de ferramentas adicionais que interpretam LaTeX, como o Pandoc, por exemplo).

Concluindo, este artigo abordou de uma maneira macro os recursos básicos do LaTeX para que o leitor possa entender seu funcionamento e ser iniciado neste universo. É importante reforçar que, para manter uma leitura simples, muitas funcionalidades do LaTeX foram ignoradas.

Espero que este conteúdo seja de grande valia e que de fato ajude o leitor a ganhar produtividade e profissionalismo na geração de documentos.

--

--

Ricardo Dias
Contexto Delimitado

Apaixonado por padrões, programação clara, elegante e principalmente manutenível. Trabalha como desenvolvedor deste 2000, incrementando a cada ano este loop…