Formatação

  1. Espaços
  2. Quebras de linha
  3. Entrelinhas
  4. Fontes
  5. Cores
  6. Ligaduras
  7. Reticências
  8. O pacote parskip

Esse tutorial é dedicado à formatação em LaTeX. Você vai ver como o LaTeX lida com espaços, como trabalhar com fontes, cores e outras coisas. O LaTeX tem muitos recursos nativos para formatar o seu documento. Quando você estiver escrevendo os seus próprios documentos, considere usar os seus próprios comandos para facilitar mudanças de formatação do seu documento.

Espaços

Compile e veja o documento abaixo:

\documentclass[a4paper,10pt]{article}

\begin{document}
    Um texto    qualquer. Colocando uma
    quebra de linha para mostrar o que acontece.

    Segundo parágrafo.




    Terceiro parágrafo.
\end{document}

Documento compilado:

Documento que mostra o comportamento do LaTeX em relação aos espaços

Note que:

  • Mesmo colocando vários espaços entre as palavras texto e qualquer, apenas um espaço foi impresso. Isso mostra que o LaTeX desconsidera espaços extras, tratando-os como se fosse um só.
  • A primeira quebra de linha inserida no documento não foi impressa. Isso aconteceu porque o LaTeX considera uma quebra de linha única como um espaço. Se você quiser realmente pular uma linha, é necessário recorrer a outro recurso, que vai ser visto daqui a pouco.
  • Quando são colocadas duas quebras de linha em sequência, o LaTeX quebra a linha e também cria um novo parágrafo. Portanto, não é só uma simples quebra de linha.
  • Quando são colocadas mais de duas quebras de linha, o LaTeX vai criar apenas um parágrafo, desconsiderando as quebras de linha extras.

Quebras de linha

Para quebrar uma linha, use duas barras invertidas:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    Quebrando a linha \\
    Essa é a segunda linha \\
    Essa é a terceira linha
\end{document}

Uma alternativa é usar \newline. Faça um teste: altere o exemplo acima substituindo as barras invertidas por esse comando. Os dois métodos produzem o mesmo efeito. A diferença é que o primeiro é mais difundido porque é mais curto.

Tem também o \linebreak, só que esse causa um efeito diferente. Ele quebra a linha mantendo a justificação, e geralmente esse não é o comportamento desejado, especialmente quando há pouca coisa escrita na linha. Exemplo:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    Quebrando a linha \linebreak
    Essa é a segunda linha \linebreak
    Essa é a terceira linha
\end{document}

Documento compilado:

Documento que mostra como as quebras de linha funcionam com o comando \linebreak

Ficou bem feio, né? Um detalhe importante é que não há garantias que a linha será quebrada com esse comando. É apenas uma recomendação. Há um argumento opcional, que representa a importância dessa recomendação, que vai de 0 a 4, em ordem crescente de importância. Basicamente, é uma forma de dizer ao LaTeX o quanto a quebra de linha é importante. Se nenhum valor for fornecido, o valor 4 é usado por padrão.

Há também o comando \nolinebreak, que recomenda que a linha não seja quebrada. Ele também tem um argumento opcional que representa a importância da recomendação com os mesmos valores. Considere o documento abaixo:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    Essa é uma linha muito grande. Ela é realmente uma linha enorme. Mas até agora ela não está tão grande. Agora é que a linha está realmente grande.
\end{document}

Se você compilar e ver o documento, verá que a linha foi quebrada no Mas. Use o \nolinebreak após o Mas. Após compilar e ver o documento gerado, você verá que a linha deixou de ser quebrada, mas o espaço entre o Mas e o até foi retirado. Para evitar isso, coloque uma barra invertida após o \nolinebreak:

\begin{document}
    Essa é uma linha muito grande. Ela é realmente uma linha enorme. Mas\nolinebreak\ até agora ela não está tão grande. Agora é que a linha está realmente grande.
\end{document}

Entrelinhas

Você pode mudar o tamanho das entrelinhas usando o pacote setspace. A maneira como você quer alterar o tamanho das entrelinhas é definida no argumento opcional do pacote. Exemplo:

\usepackage[onehalfspacing]{setspace}

Passar onehalfspacing como valor ao argumento opcional do pacote aumenta o tamanho das entrelinhas em 50%. Já usar o valor doublespacing dobra o tamanho das entrelinhas em relação ao tamanho padrão.

Fontes

Estilos das fontes

O LaTeX dispõe de vários comandos para trocar o estilo das fontes. Veja os principais no documento abaixo:

\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    Aplicando vários estilos à uma fonte:
    \begin{itemize}
        \item \textit{itálico}
        \item \textbf{negrito}
        \item \textit{\textbf{Itálico e negrito}}
        \item \textsl{deitado}
        \item \textsc{Small Caps}
        \item \emph{enfatizado}                
    \end{itemize}
\end{document}

Note que é possível aplicar mais de um estilo ao mesmo tempo, como foi feito no item Itálico e negrito, desde que os estilos não sejam conflitantes. Note também o uso do comando \emph. Apesar de, por padrão, ele produzir o mesmo resultado que o comando \textit, ele é muito mais semântico do que ele.

O \emph é uma marcação lógica, enquanto o \textit é uma marcação física. Se algum autor quiser mudar a formatação padrão do \emph para enfatizar o texto de uma forma diferente (sublinhando o texto, por exemplo), a marcação continuará fazendo sentido. O mesmo não acontece se essa alteração for feita no \textit, porque mudar a formatação dele causa uma contradição com o próprio nome do comando. Por conta disso, é mais recomendado usar o \emph.

Tipos das fontes

Também é possível usar comandos para mudar o tipo da fonte. Insira os comandos abaixo na lista do exemplo anterior. Eles servem para inserir textos sem serifa, monoespaçados e com serifa, respectivamente:

\item \textsf{Sem serifa}
\item \texttt{Monoespaçado (estilo máquina de escrever)}
\item \textrm{Com serifa}

Perceba que o texto sem serifa não tem pequenos detalhes nas letras dele. Serifas são aqueles detalhes na fonte. Não ter esses detalhes torna as fontes sem serifa mais limpas. A fonte monoespaçada é essencial para código ou marcação, pois todos os caracteres desse tipo de fonte ocupam o mesmo espaço (por isso, ela é chamada de monoespaçada).

Declarações

Também é possível mudar os estilos e os tipos da fonte de outra maneira: usando declarações, que são comandos que não produzem nenhuma saída. Porém, elas afetam o texto ou mudam a execução de comandos que vem depois delas, exceto quando chaves são usadas. Nesse caso, o texto fora das chaves não é afetado, mesmo que esteja após a declaração. Se a explicação ficou confusa, compile e veja o documento abaixo:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    Texto com serifa. {\sffamily Texto sem serifa.}
\end{document}

Chaves delimitam o escopo da declaração. O que fica dentro delas é chamado de grupo. Assim, declarações tem um grupo, que é delimitado pelas chaves. As chaves são opcionais. Quando elas não estão presentes, todo o texto após a declaração é afetado, a não ser que seja usada alguma declaração que anule o efeito da declaração anterior. Compile e veja o documento abaixo:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    \sffamily Esse texto é sem serifa, \rmfamily já esse não é mais. {\ttfamily Esse é monoespaçado} e esse já não é
    mais.
\end{document}

Detalhe: como a fonte padrão é com serifa, o comando \normalfont poderia ser usado no lugar do \rmfamily. Inclusive, isso é o mais indicado, já que o objetivo é voltar à fonte padrão. Atenção: \normalfont é marcação lógica e \rmfamily é marcação física.

Também é possível aninhar declarações, da mesma forma que já foi feito com comandos. Exemplo:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    \rmfamily \itshape Sem serifa e em itálico
\end{document}

Logicamente, não dá para aninhar declarações conflitantes, como por exemplo \sffamily e \rmfamily. Uma fonte não pode ter serifa e não ter serifa ao mesmo tempo. Além disso, nem todas as fontes suportam todas as combinações, mesmo quando elas não são conflitantes. Por exemplo, você pode querer colocar um texto em itálico e negrito, mas pode não ser possível porque a fonte pode não ter essa combinação.

Também é possível aninhar grupos:

{\sffamily Texto sem serifa {\itshape e agora em itálico também}, e novamente
apenas sem serifa.}

Tamanhos das fontes

O LaTeX disponibiliza várias declarações para mudar os tamanhos das fontes. Todas elas alteram a fonte de forma relativa ao tamanho base da fonte. A lista abaixo mostra essas declarações, em ordem crescente de tamanho:

\begin{itemize}
    \item \tiny Tiny
    \item \scriptsize Scriptsize
    \item \footnotesize FootnoteSize
    \item \small Small
    \item \normalsize Normal Size
    \item \large large
    \item \Large Large
    \item \LARGE LARGE
    \item \huge huge
    \item \Huge Huge 
\end{itemize}

Quando queremos usar um tamanho de fonte em grandes trechos de texto, pode ser útil usar um ambiente ao invés de uma declaração. Isso também vale para estilos de fontes e outras declarações. O nome do ambiente é o mesmo da declaração. Exemplo:

\begin{Large}
    Texto grande 
\end{Large}

Também é possível aninhar ambientes:

\begin{Large}
    \begin{scshape}
        Fonte grande e em small caps
    \end{scshape}

    Texto apenas grande
\end{Large}

Fontes personalizadas

O LaTeX também permite que sejam usadas fontes personalizadas. Você pode usar outras fontes apenas usando pacotes. Há pacotes mais gerais, que fornecem fontes para vários estilos, como itálico, negrito, com serifa e sem serifa, entre outros estilos. Também existem pacotes mais específicos.

Alguns exemplos de fontes mais gerais são a Latin Modern (incluída no pacote lmodern), e a Kp-fonts (pacote kpfonts). Veja um exemplo usando a Kp-fonts:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{kpfonts}

\begin{document}
    \lipsum
\end{document}

Algumas fontes mais específicas são a Bookman (pacote bookman), que é uma fonte com serifa e a Helvetica (pacote helvet), que é uma fonte sem serifa popular. Você pode ver mais fontes no catálogo de fontes do LaTeX.

Por padrão, o LaTeX usa uma fonte com serifa. Assim, se você quiser usar uma fonte sem serifa, como a Helvetica, você precisa usar o comando \textsf para mudar para uma fonte sem serifa, ou mudar a família de fonte padrão do LaTeX para sem serifa:

\renewcommand{\familydefault}{\sfdefault}

Cores

Até agora, os textos dos documentos sempre usaram a mesma cor: preta, que é a cor padrão. Chegou a hora de você aprender a usar outras cores. Para isso, é necessário usar o pacote xcolor. Uma vez que esse pacote é incluído, pode-se usar o comando \textcolor passando uma cor e o texto que se quer afetar como argumentos. Exemplo:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}

\begin{document}
    Esse texto é preto. \textcolor{blue}{Esse texto é azul.}
\end{document}

Alternativamente, também pode-se usar a declaração \color, passando apenas a cor como argumento:

Esse texto é preto. \color{blue} Esse texto é azul.

Existem dezesseis cores pré-definidas:

\begin{itemize}
    \item \textcolor{black}{black}
    \item \textcolor{blue}{blue}
    \item \textcolor{brown}{brown}
    \item \textcolor{cyan}{cyan}
    \item \textcolor{darkgray}{darkgray}
    \item \textcolor{gray}{gray}
    \item \textcolor{green}{green}
    \item \textcolor{lightgray}{lightgray}
    \item \textcolor{lime}{lime}
    \item \textcolor{magenta}{magenta}
    \item \textcolor{olive}{olive}
    \item \textcolor{orange}{orange}
    \item \textcolor{pink}{pink}
    \item \textcolor{purple}{purple}
    \item \textcolor{red}{red}
    \item \textcolor{teal}{teal}
    \item \textcolor{violet}{violet}
    \item \textcolor{white}{white}
    \item \textcolor{yellow}{yellow}
\end{itemize}

E se você quiser usar uma cor diferente dessas cores? Use o comando \definecolor:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\definecolor{laranja}{RGB}{255, 127, 0}

\begin{document}
    \textcolor{laranja}{laranja}
\end{document}

O primeiro argumento é o nome da cor. O segundo é o modelo de definição dela e o terceiro é a especificação da cor. No caso, o modelo usado foi o RGB. Observe que RGB foi escrito em letras maiúsculas. É necessário escrever dessa forma. Lembre-se que o LaTeX é case-sensitive, o que quer dizer que ele diferencia letras minúsculas de maiúsculas. Como o nome desse modelo é RGB com todas as letras maiúsculas, é necessário escrever dessa forma para usar esse modelo.

Veja que na especificação foram colocados três valores separados por vírgula. Os valores podem ir de 0 a 255 para tons de vermelho, verde e azul, respectivamente, sendo que 0 não usa nada do tom e 255 usa o tom da forma mais forte possível.

Vou falar agora de um outro modelo: HTML. Nesse modelo, você define a cor usando um código hexadecimal. Um código hexadecimal de HTML é composto de seis dígitos hexadecimais. Cada dígito hexadecimal pode ter 16 valores diferentes, que vão de 0-F. As letras A-F são usadas para representar os valores de 10 a 15.

Cada grupo de dois dígitos representa uma cor. Cada cor pode ser representada por 256 (16²) valores diferentes, assim como o RGB. O primeiro grupo representa a cor vermelha, o segundo representa a cor verde, e o último grupo representa a cor azul.

Converter um valor de uma cor em RGB para o formato hexadecimal é simples: primeiro, divida o valor por 16. O resultado é o primeiro dígito hexadecimal. O resto da divisão é o segundo dígito hexadecimal. Exemplo: 15 equivale a 0F no modelo HTML, enquanto 16 equivale a 10 no modelo HTML. Já o número 36 equivale a 24, enquanto o número 255 equivale a FF.

O exemplo abaixo representa a cor laranja no modelo HTML:

\definecolor{laranja}{HTML}{FF7F00}

Ligaduras

Tem algumas letras, que quando são digitadas uma após a outra, causam um efeito esteticamente deselegante. É o caso, por exemplo, de duas letras f colocadas em sequência:

Eu gosto de strogonoff

Para resolver esse problema, basta colocar uma barra invertida e uma normal entre as duas letras da ligadura:

Eu gosto de strogonof\/f

Outro caso de ligadura ocorre quando dois hífens são colocados juntos. Nesse caso, às vezes o efeito pode ser desejado, pois é possível que se queira exibir um travessão. Se três hífens são colocados juntos, é exibido um travessão maior. Veja o exemplo abaixo:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
	Hífen: -
	
	Travessão pequeno: --
	
	Travessão grande: ---
\end{document}

Se o efeito não for o desejado, a solução é a mesma adotada em outras ligaduras, que já foi feita entre as duas letras f do strognoff: colocar uma barra invertida e uma barra entre as duas letras da ligadura.

Reticências

Uma outra maneira de exibir reticências ao invés de apenas digitar três pontos na tela, é usar o comando \ldots. Esse comando dá um espaço maior entre os pontos.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
    Essas são reticências impressas sem nenhum comando: ...

    E essas são reticências impressas com o comando \verb|\ldots|: \ldots
\end{document}

O pacote parskip

Por padrão, o LaTeX distingue novos parágrafos por meio da indentação. É possível distinguir novos parágrafos de outra forma: dando um espaço entre um parágrafo e outro. Para fazer isso, basta usar o pacote parskip:

\documentclass{article}
\usepackage{lipsum}
\usepackage{parskip}

\begin{document}
    \lipsum[1-3]
\end{document}