Formatação

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

O LaTeX tem muitos recursos nativos para formatar o seu documento. Esse tutorial fala sobre esses recursos. Você vai ver como o LaTeX lida com espaços, como trabalhar com fontes, cores e outras coisas.

Espaços

Compile e veja o documento abaixo:

\documentclass[a4paper,10pt]{article}

\begin{document}
  Um texto    qualquer. Colocando uma % (1)
  quebra de linha para mostrar o que acontece. % (2)

  Segundo parágrafo. % (3)




  Terceiro parágrafo. % (4)
\end{document}
Documento que mostra o comportamento do LaTeX em relação aos espaços

Note que:

  1. 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.
  2. 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.
  3. 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.
  4. 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 ou o comando \newline. Os dois métodos produzem o mesmo efeito. A diferença é que o primeiro é mais difundido porque é mais curto.

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

\begin{document}
  Quebrando a linha \\
  Essa é a segunda linha \newline
  Essa é a terceira linha
\end{document}
Documento que mostra o comportamento do LaTeX em relação às quebras de linha

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 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.

O exemplo abaixo usa um valor de importância para o primeiro \linebreak:

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

\begin{document}
  Quebrando a linha \linebreak[2]
  Essa é a segunda linha \linebreak
  Essa é a terceira linha
\end{document}
Documento que mostra como o efeito do argumento opcional do \linebreak

Agora a linha não foi quebrada no primeiro \linebreak porque foi usado um valor de importância mais baixo do que o 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. Nem sei mais o que escrever nessa linha.
\end{document}

Note que a linha foi quebrada no Nem. Isso pode ser evitado com o \nolinebreak:

Essa é uma linha muito grande. Ela é realmente uma linha enorme. Nem\nolinebreak sei mais o que escrever nessa linha.

A linha deixou de ser quebrada no Nem, mas o espaço entre ele e a próxima palavra foi retirado. Pra resolver esse problema, é só colocar uma barra invertida após o \nolinebreak.

Essa é uma linha muito grande. Ela é realmente uma linha enorme. Nem\nolinebreak\ sei mais o que escrever nessa linha.

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:

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

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

O valor onehalfspacing aumenta o tamanho das entrelinhas em 50%. Já usar o valor doublespacing dobra o tamanho das entrelinhas em relação ao tamanho padrão. Veja como é um documento com tamanho normal das entrelinhas:

Agora veja um documento com onehalfspacing:

Agora veja um documento com doublespacing:

Fontes

Estilos das fontes

O LaTeX dispõe de vários comandos para trocar o estilo das fontes:

\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 desde que os estilos não sejam conflitantes, como foi feito no item Itálico e negrito. Note também o 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.

A mesma alteração feita no \textit deixa esse comando sem sentido, porque mudar a formatação dele causa uma contradição com o próprio nome do comando. Por isso, é mais recomendado usar o \emph.

Tipos das fontes

Também é possível usar comandos para mudar o tipo da fonte:

Tipos das fontes:

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

Serifas são aqueles detalhes nos caracteres da fonte. A fonte monoespaçada é essencial para mostrar 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:

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

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

É possível delimitar o escopo de uma declaração, ou seja, o local onde ela será aplicada. Basta usar chaves. O texto fora das chaves não é afetado, mesmo se estiver após a declaração:

Texto com serifa. {\sffamily Texto sem serifa.} Texto com serifa.

O que fica dentro das chaves é chamado de grupo.

Quando as chaves 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:

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

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

\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.

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:

\documentclass[a4paper,10pt]{article} % os tamanhos são relativos à fonte base, que nesse documento é de 10 pt.
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
	\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}
\end{document}

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. Pacotes mais gerais fornecem fontes para vários estilos, como itálico, negrito, com serifa e sem serifa, entre outros estilos. Há também 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 ou o \sffamily para mudar para uma fonte sem serifa, ou mudar a família de fonte padrão do LaTeX para sem serifa incluindo esse comando no preâmbulo:

\renewcommand{\familydefault}{\sfdefault}

Veja um exemplo completo abaixo:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lipsum}
\usepackage{helvet}
% \renewcommand{\familydefault}{\sfdefault} Muda a fonte padrão para sem serifa

\begin{document}
	\sffamily \lipsum % Como o comando renewcommand está comentado, é necessário usar \sffamily ou \textsf
\end{document}

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 e usar o comando \textcolor:

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

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

O comando \textcolor recebe uma cor e o texto que se quer colorir como argumentos.

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

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

A saída é a mesma do documento anterior. 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 (laranja). O segundo é o modelo de definição dela (RGB) e o terceiro é a especificação da cor (255, 127, 0).

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.

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 é a tonalidade mais forte.

Há também o modelo HTML:

\definecolor{laranja}{HTML}{FF7F00} % FF = 255 Red; 7F = 127 Green; 00 = 0 Blue

Esse modelo usa código hexadecimal. Ele tem seis dígitos hexadecimais. Cada dígito 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. Exemplos:

RGB Hexadecimal
15 0F
16 10
36 24
255 FF

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
Ligadura no LaTeX

Veja que as letras ficaram "grudadas". Para resolver esse problema, basta colocar uma barra invertida e uma normal entre as duas letras da ligadura:

Eu gosto de strogonof\/f
Solução de ligadura no LaTeX

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}

A fonte foi aumentada para facilitar a visualização dos travessões.

Se o efeito não for o desejado, a solução é a mesma adotada em outras ligaduras, que já foi feita no exemplo 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}