> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/formatacao/04-articles-how-to-change-paragraph-spacing-in-latex.md).

# Formatação de parágrafos

## Introdução

Este artigo explora dois métodos para fazer alterações em vários aspetos do espaçamento entre parágrafos:

* o método de boas práticas, e recomendado, de usar pacotes LaTeX como [`setspace`](https://ctan.org/pkg/setspace) e [`parskip`](https://ctan.org/pkg/parskip) que fornecem opções e comandos de nível de utilizador para alterar o espaçamento dos seus documentos LaTeX;
* uso de comandos TeX/LaTeX de baixo nível *comandos de parâmetros* para modificar o espaçamento entre parágrafos. O uso direto de comandos de parâmetros pode contornar verificações ou controlos fornecidos por pacotes LaTeX cuidadosamente concebidos, potencialmente resultando em consequências/efeitos secundários inesperados noutros locais do seu documento LaTeX, por isso use-os com cuidado...

### Ir para secções de interesse

Leitores que procuram soluções rápidas:

* vá para a secção [*Usar pacotes LaTeX: setspace e parskip*](#using-latex-packages-setspace-and-parskip)

Leitores interessados em comandos de baixo nível:

* vá para as secções [*Comandos de parâmetros TeX/LaTeX*](#using-texlatex-parameter-commands) e [*Os fundamentos: comandos de parâmetros e exemplos*](#the-fundamentals-parameter-commands-and-examples)

Leitores interessados nos detalhes finos dos cálculos do espaçamento entre linhas e da estrutura dos parágrafos:

* vá para a secção [*Estrutura dos parágrafos e cálculos do espaçamento entre linhas*](#paragraph-structure-and-line-space-calculations)

## Usar pacotes LaTeX: setspace e parskip

* [O pacote parskip](#the-parskip-package)
* [O pacote setspace](#the-setspace-package)

### O pacote parskip

O [`parskip` pacote](https://ctan.org/pkg/parskip?lang=en) ajuda-o a alterar em segurança o espaço inserido entre parágrafos no seu documento. Foi concebido para garantir que estruturas do documento como o índice, ambientes de listas e títulos destacados não sejam afetados negativamente por um valor diferente de zero de the [`\parskip` comando](#parskip-tex-primitive), que é usado para definir a quantidade de espaço que o TeX/LaTeX insere entre parágrafos.

O `parskip` o pacote não fornece quaisquer comandos de nível de utilizador; em vez disso, usa opções do pacote para configurar as suas ações. O [`parskip` documentação](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/parskip/parskip.pdf) é breve, apenas três páginas, mas aqui está um breve resumo das opções do pacote:

* **`skip`**: especifica `\parskip`, o espaço vertical entre parágrafos;
* **`tocskip`**: especifica um valor diferente de zero `\parskip` valor para uso em `\tableofcontents` e listas semelhantes;
* **`indent`**: define o valor de `\parindent`, a indentação do parágrafo;
* **`parfill`**: ajusta o valor de `\parfillskip`, a cola adicionada ao final da última linha de um parágrafo.

Por predefinição, o `parskip` o pacote define `\parindent` para `0pt` e fornece um valor diferente de zero de `\parskip` valor de `.5[\baselineskip](#baselineskip-tex-primitive) mais 2pt`.

#### Exemplos do pacote parskip

Os exemplos seguintes demonstram algumas utilizações do `parskip` Selecione as ligações “Abrir no Overleaf” para abrir e compilar os exemplos usando o Overleaf.

**Exemplo mínimo do pacote parskip**

O exemplo mínimo seguinte carrega o `parskip` pacote e compõe dois parágrafos criados usando o [`blindtext` pacote](https://ctan.org/pkg/blindtext?lang=en). O exemplo também compõe os valores predefinidos de `\baselineskip`, `\parskip` e `\parindent`. A quantidade de espaço entre os dois parágrafos é determinada pelo valor de `\parskip`:

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carregue o pacote blindtext para texto de teste
\usepackage{blindtext}
% Carregue o pacote parskip sem opções
\usepackage{parskip}
\begin{document}

\blindtext[1]\par %Use \par para forçar um novo parágrafo
\blindtext[1]

O valor de \verb|\parindent| é \texttt{\the\parindent}. Aqui estão os outros valores:

\begin{itemize}
\item O valor de \verb|\baselineskip| é \texttt{\the\baselineskip}
\item O valor de \verb|\parskip| é \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+without+options%0A%5Cusepackage%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+is+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+Here+are+the+other+values%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+The+value+of+%5Cverb%7C%5Cparskip%7C+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo de utilização do pacote LaTeX parskip](/files/a452f12150cbdc33036332a6cdb6e964795b0591)

Note que `\parskip` a cola normalmente contém um componente extensível [componente de cola](#a-few-notes-on-glue) porque isso ajuda o LaTeX a ajustar o conteúdo à página e a produzir as melhores quebras de página (ótimas).

**Usando opções do pacote parskip**

O exemplo seguinte carrega e configura as `parskip` pacote usando a `skip` e `indent` opções. Também compõe dois parágrafos, através do [`blindtext` pacote](https://ctan.org/pkg/blindtext?lang=en), e compõe os valores de `\baselineskip`, `\parskip` e `\parindent`.

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carregue o pacote blindtext para texto de teste
\usepackage{blindtext}
% Carregue o pacote parskip com as opções skip e indent
\usepackage[skip=10pt plus1pt, indent=40pt]{parskip}
\begin{document}

\blindtext[1]\par % Use \par para forçar um novo parágrafo
\blindtext[1]

O valor de \verb|\parindent| foi definido através da opção \texttt{indent}, por isso agora é \texttt{\the\parindent}. Os outros valores são:

\begin{itemize}
\item \verb|\baselineskip| é \texttt{\the\baselineskip}
\item \verb|\parskip| foi definido através da opção \texttt{skip}, por isso o seu valor é \texttt{\the\parskip}
\end{itemize}
\end{document}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+parskip+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+parskip+package+with+skip+and+indent+options%0A%5Cusepackage%5Bskip%3D10pt+plus1pt%2C+indent%3D40pt%5D%7Bparskip%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cblindtext%5B1%5D%5Cpar+%25+Use+%5Cpar+to+force+a+new+paragraph%0A%5Cblindtext%5B1%5D%0A%0AThe+value+of+%5Cverb%7C%5Cparindent%7C+was+set+via+the+%5Ctexttt%7Bindent%7D+option%2C+so+it+is+now+%5Ctexttt%7B%5Cthe%5Cparindent%7D.+The+other+values+are%3A%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D%0A%5Citem+%5Cverb%7C%5Cparskip%7C+was+set+via+the+%5Ctexttt%7Bskip%7D+option%2C+so+its+value+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Uma segunda utilização de exemplo do pacote LaTeX parskip](/files/ab4f371c073e864c5d5e4a92f3e198435768dee7)

### O pacote setspace

O [`setspace` pacote](https://ctan.org/pkg/setspace?lang=en) fornece comandos e ambientes para alterar o espaçamento das linhas de texto do seu documento. Aqui está um breve resumo dos principais comandos e ambientes fornecidos por `setspace`:

* os comandos **`\singlespacing`**, **`\onehalfspacing`** e **`\doublespacing`** podem ser usados no preâmbulo do documento, ou no corpo do documento, para alterar o espaçamento em parte, ou em todo, o documento;
* o **`\setstretch{*baselinestretch amount*}`** o comando define um espaçamento personalizado (através de alterações a [`\baselinestretch`](#demonstrating-baselinestretch))—também pode ser usado no preâmbulo do documento;
* os ambientes **`singlespace`**, **`singlespace*`** **`onehalfspace`** e **`doublespace`** permitem alterar o espaçamento entre linhas para partes selecionadas do texto do documento;
* o **`\SetSinglespace{*value*}`** o comando usa `*value*` para ajustar o espaçamento de linha simples para acomodar o espaçamento de texto composto com tipos de letra cujas formas dos caracteres (“glifos”) são relativamente pequenas, ou grandes, para o tamanho de ponto dado. Veja a secção [*Notas breves sobre tipos de letra e tamanho de ponto*](#brief-notes-on-fonts-and-point-size) para uma ilustração que demonstra a variação do tamanho dos glifos do tipo de letra para um dado tamanho de ponto;
* o **`spacing`** o ambiente fornece espaçamento personalizado e requer um argumento: o [`\baselinestretch` valor](#demonstrating-baselinestretch) a usar; por exemplo:

```latex
\begin{spacing}{2.5}
...
...
\end{spacing}
```

#### Exemplos do pacote setspace

Os exemplos seguintes demonstram algumas utilizações do `setspace` pacote: clique nas ligações “Abrir no Overleaf” para abrir e compilar os exemplos usando o Overleaf.

**Usar \doublespacing no preâmbulo do documento**

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carregue o pacote blindtext para texto de teste
\usepackage{blindtext}
% Carregue o pacote setspace
\usepackage{setspace}
% Usando \doublespacing no preâmbulo
% altera o texto para espaçamento entre linhas duplo
\doublespacing
\begin{document}
\blindtext[1]
\end{document}
```

&#x20;[Abra este `setspace` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+doublespacing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do comando \doublespacing do setspace](/files/f1ba0bffe2bbd7427a22032afd942d8a51c4a8a5)

**Usando o ambiente spacing**

Como o código seguinte compõe 3 páginas, é preferível ver a saída no Overleaf selecionando a ligação “Abrir no Overleaf” fornecida abaixo.

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carregue o pacote blindtext para texto de teste
\usepackage{blindtext}
% Carregue o pacote setspace
\usepackage{setspace}
% Usando \doublespacing no preâmbulo
% altera o texto para espaçamento entre linhas duplo
\doublespacing
\begin{document}
\blindtext[1]

Agora, aplique um espaçamento maior (personalizado) aplicando um valor de \verb|\baselinestretch| de 3:

\begin{verbatim}
\begin{spacing}{3}
\blindtext[1]
\end{spacing}
\end{verbatim}

\begin{spacing}{2.5}
\blindtext[1]
\end{spacing}
Agora, volte a \verb|\singlespacing|\singlespacing\blindtext[1]
\end{document}
```

&#x20;[Abra este `setspace` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+various+setspace+commands\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%25+Using+%5Cdoublespacing+in+the+preamble+%0A%25+changes+text+to+double+line+spacing%0A%5Cdoublespacing%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D%0A%0ANow%2C+apply+a+larger+%28custom%29+spacing+by+applying+a+%5Cverb%7C%5Cbaselinestretch%7C+value+of+3%3A%0A%0A%5Cbegin%7Bverbatim%7D%0A%5Cbegin%7Bspacing%7D%7B3%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bverbatim%7D%0A%0A%5Cbegin%7Bspacing%7D%7B2.5%7D%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0ANow%2C+revert+to+%5Cverb%7C%5Csinglespacing%7C%5Csinglespacing%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

**Usando o ambiente singlespace\***

Como referido no artigo [*Nota rápida sobre o espaçamento entre linhas*](https://texblog.org/2011/09/30/quick-note-on-line-spacing/), a `setspace` o pacote fornece versões com estrela (`singlespace*`) e sem estrela do `singlespace` ambiente. Os comentários no código do `setspace` o pacote observam que o `singlespace*` ambiente foi concebido para “... proporcionar melhor espaçamento vertical em torno dos ambientes itemize e quote”.

O exemplo seguinte usa listas com itens contidas em dois `minipage` ambientes, colocados lado a lado, para demonstrar o diferente espaçamento produzido pelo `singlespace` e `singlespace*` ambientes.

```latex
\doublespacing
\blindtext[1]

\begin{minipage}{.4\textwidth}
\begin{singlespace}
Aqui está uma lista com marcadores\par (ambiente \texttt{singlespace}).
\begin{itemize}
\item Um
\item Dois
\item Três
\end{itemize}
\end{singlespace}%
A lista terminou.
\end{minipage}\kern10pt%
\begin{minipage}{.4\textwidth}
\begin{singlespace*}
Aqui está uma lista com marcadores\par (ambiente \texttt{singlespace*}).
\begin{itemize}
\item Um
\item Dois
\item Três
\end{itemize}
\end{singlespace*}
A lista terminou.
\end{minipage}
```

&#x20;[Abra este `setspace` exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+starred+singlespace+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cdoublespacing+%0A%5Cblindtext%5B1%5D%0A%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%7D%25%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%5Ckern10pt%25%0A%5Cbegin%7Bminipage%7D%7B.4%5Ctextwidth%7D%0A%5Cbegin%7Bsinglespace%2A%7D%0AHere+is+a+bulleted+list%5Cpar+%28%5Ctexttt%7Bsinglespace%2A%7D+environment%29.%0A%5Cbegin%7Bitemize%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bsinglespace%2A%7D%0AThe+list+has+ended.%0A%5Cend%7Bminipage%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do ambiente singlespace\* do LaTeX](/files/c3cfaf8a53092bb36f1c417ac3efbb1eeb7e5070)

**Usar o comando \setstretch**

`\setstretch{*value*}` define o valor de `\baselinestretch` para *valor* e desencadeia uma *imediata* alteração em `\baselineslip` causada por `\baselinestretch`. O exemplo seguinte usa `\setstretch{1.618}`—o estranho valor 1.618 é [explicado mais adiante no artigo](#understanding-and-calculating-values-for-baselinestretch)...

```latex
% A estranha cifra de 1.618 é explicada mais adiante no artigo.
\setstretch{1.618}
Escrevemos \verb|\setstretch{1.618}| para provocar uma alteração imediata no espaçamento entre linhas. Se escrevêssemos \verb|\renewcommand{\baselinestretch}{1.618}|, o espaçamento entre linhas não seria modificado até ser usado um comando de alteração de tipo de letra, como \verb|\selectfont|.

\blindtext[1]
```

&#x20;[Abra este `setspace` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+setstretch+command\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Load+the+setspace+package%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%25+The+strange+figure+of+1.618+is+explained+later+in+the+article.%0A%5Csetstretch%7B1.618%7D%0AWe+write+%5Cverb%7C%5Csetstretch%7B1.618%7D%7C+to+cause+an+immediate+change+to+the+line+spacing.+If+we+wrote+%5Cverb%7C%5Crenewcommand%7B%5Cbaselinestretch%7D%7B1.618%7D%7C+the+line+spacing+would+not+be+modified+until+a+font-changing+command%2C+such+as+%5Cverb%7C%5Cselectfont%7C%2C+is+used.%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo do comando \setstretch](/files/fd07eb3e6c1ad91baf00350124f36cc2f22f20bf)

**Usar o comando \SetSinglespace**

O projeto seguinte é compilado via LuaLaTeX e usa o `fontspec` pacote para aceder aos tipos de letra TeX Gyre Pagella. Compara dois parágrafos de texto composto em TeX Gyre Pagella: o primeiro parágrafo usa o espaçamento simples predefinido e o segundo tem um espaçamento simples maior devido à aplicação de `\SetSinglespace{1.1}`. Algumas pessoas poderão preferir o segundo parágrafo, ligeiramente mais “aberto”, achando que melhora o conforto de leitura, mas isso é, naturalmente, uma questão de preferência pessoal.

```latex
\section*{Computer Modern default single spacing}
Algum texto normal. \blindtext[1]
\setmainfont{TeX Gyre Pagella}
\section*{TeX Gyre Pagella default single line spacing}
Aqui está algum texto normal. \blindtext[1]
\section*{TeX Gyre Pagella adjusted single line spacing}
Nota: precisamos de emitir \verb|\singlespacing| depois de escrever
\verb|\SetSinglespace{1.1}|\SetSinglespace{1.1}\singlespacing
\begin{singlespace*}
Aqui está algum texto normal. \blindtext[1]
\end{singlespace*}
```

&#x20;[Abra este `setspace` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Example+use+of+the+SetSinglespace+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%2A%7BComputer+Modern+default+single+spacing%7D%0ASome+regular+text.+%5Cblindtext%5B1%5D%0A%5Csetmainfont%7BTeX+Gyre+Pagella%7D%0A%5Csection%2A%7BTeX+Gyre+Pagella+default+single+line+spacing%7D%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Csection%2A%7BTeX+Gyre+Pagella+adjusted+single+line+spacing%7D%0ANote%3A+we+need+to+issue+%5Cverb%7C%5Csinglespacing%7C+after+writing++%0A%5Cverb%7C%5CSetSinglespace%7B1.1%7D%7C%5CSetSinglespace%7B1.1%7D%5Csinglespacing%0A%5Cbegin%7Bsinglespace%2A%7D+%0AHere+is+some+regular+text.+%5Cblindtext%5B1%5D%0A%5Cend%7Bsinglespace%2A%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Demonstração do comando \SetSinglespace do LaTeX](/files/f60bb5d174485dc341004b1f1bc24dec7d6b5451)

Na próxima secção analisamos os comandos `\baselinestretch` e `\linespread`.

#### Compreender \baselinestretch e \linespread

Parte do design do LaTeX para tratar o espaçamento entre linhas e as alterações de tipo de letra (tamanho da fonte, família de fontes, codificação de fonte, etc.) faz uso de dois comandos com que se poderá deparar:

* **`\baselinestretch`**: este comando armazena um fator de escala usado para multiplicar (dimensionar) o valor atual de [`\baselineskip`](#baselineskip-tex-primitive). Esse dimensionamento é tipicamente aplicado quando *da próxima vez* é usado um comando de seleção de tipo de letra—como `\selectfont`. Para alterar o valor armazenado por `\baselinestretch` deverá escrever `\renewcommand{\baselinestretch}{*scale*}`
  * **Nota**: Se escrever `\renewcommand{\baselinestretch}{*scale*}` no corpo do documento, o novo valor de `\baselinestretch` [não produzirá efeito imediato](https://tex.stackexchange.com/questions/241120/why-does-changing-baselinestretch-not-change-line-spacing): o novo `*scale*` fator é armazenado para utilização futura. Para usar/aplicar imediatamente o novo`*scale*` valor, escreva `\selectfont` como demonstrado no [excerto de código abaixo](#demonstrating-baselinestretch).
* **`\linespread{*scale*}`**: pode ser usado para alterar [`\baselineskip`](#baselineskip-tex-primitive) sem afetar o tamanho atual da fonte. Este comando define `\baselinestretch` para `*scale*` o que subsequentemente altera `\baselineskip` para `*scale* × [\baselineskip](#baselineskip-tex-primitive)`. No entanto, esse dimensionamento também não ocorre imediatamente a menos que o `\linespread` comando seja usado no preâmbulo do documento. Se `\linespread` for usado no corpo do documento, entra em vigor após o próximo comando de dimensionamento/seleção de fonte ser usado.

Com base no exposto acima, ou:

* `\renewcommand{\baselinestretch}{*scale*}\selectfont` ou,
* `\linespread{*scale*}\selectfont`

poderiam ser usados para alterar o espaçamento entre linhas, e ambos funcionarão através de alterações ao tamanho da fonte, como demonstrado no exemplo abaixo. Então, qual deve usar? Consulte [esta breve discussão no tex.stackexchange](https://tex.stackexchange.com/a/241121).

**Demonstração de \linespread**

O exemplo seguinte usa `\linespread{2.5}` no preâmbulo do documento, o que altera o espaçamento entre linhas sem exigir comandos adicionais de seleção de fonte:

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=18cm,paperwidth=14cm,textwidth=12cm]{geometry}
% Carregue o pacote blindtext para texto de teste
\usepackage{blindtext}
% Usar \linespread no preâmbulo altera
% o espaçamento entre linhas sem exigir
% comandos adicionais de seleção de fonte, como \selectfont
\linespread{2.5}
\begin{document}
\blindtext[1] % As linhas são afetadas por \linespread{2.5}
\end{document}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+use+of+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%25+Using+%5Clinespread+in+the+preamble+changes+%0A%25+line+spacing+without+requiring+additional%0A%25+font-selection+commands%2C+such+as+%5Cselectfont%0A%5Clinespread%7B2.5%7D+%0A%5Cbegin%7Bdocument%7D%0A%5Cblindtext%5B1%5D+%25+The+lines+are+affected+by+%5Clinespread%7B2.5%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Usar o comando linespread](/files/f2a75b93650324be0812382f79be7acb23e35da8)

Usando `\linespread{2.5}` no corpo do documento (após `\begin{document}`) *iria* exigir comandos de seleção de fonte para desencadear a alteração no espaçamento entre linhas. Abra o código seguinte no Overleaf e compare a saída com o exemplo anterior:

```latex
Como o seguinte comando \verb|\linespread| é usado no corpo do documento, é necessário um comando de seleção de fonte para alterar o espaçamento entre linhas. Descomente \verb|\selectfont| para ver a diferença:

\linespread{2.5}%\selectfont

% Sem \selectfont, as linhas do parágrafo seguinte ficam
% não afetadas por \linespread{2.5}:
\blindtext[1]
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Second+example+using+the+linestretch+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D14cm%2Ctextwidth%3D12cm%5D%7Bgeometry%7D%0A%25+Load+blindtext+package+for+dummy+text%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0ABecause+the+following+%5Cverb%7C%5Clinespread%7C+command+is+used+in+the+document+body%2C+a+font-selection+command+is+required+to+change+the+line+spacing.+Un-comment+%5Cverb%7C%5Cselectfont%7C+to+see+the+difference%3A%0A%0A%5Clinespread%7B2.5%7D%25%5Cselectfont%0A+%0A%25+Without+%5Cselectfont+the+following+paragraph+lines+are+%0A%25+unaffected+affected+by+%5Clinespread%7B2.5%7D%3A+%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![usar o comando \linespread do LaTeX no documento](/files/a0fb839143beedc3f319c01fb6559525f72d3791)

**Demonstração de \baselinestretch**

O exemplo seguinte demonstra `\baselinestretch` e `\selectfont` para mostrar o(s) efeito(s) correspondente(s) em [`\baselineskip`](#baselineskip-tex-primitive):

```latex
O valor predefinido de \verb|\baselineskip|=\the\baselineskip. Agora atualize \verb|\baselinestretch|\renewcommand\baselinestretch{2.5}. No entanto, embora tenhamos executado

\vspace{5pt}
\verb|\renewcommand\baselinestretch{2.5}|
\vspace{5pt}

\noindent isso \textit{ainda não} teve qualquer efeito: o novo valor de \verb|\baselinestretch| é armazenado, mas não é aplicado. Podemos emitir um comando \verb|\selectfont| para fazer com que a alteração produza efeito; mas, por agora, o valor de \verb|\baselineskip| continua a ser \the\baselineskip{} (inalterado).

Se agora executarmos \verb|\selectfont|, a alteração a \verb|\baselinestretch|, definindo-o para 2.5, passará agora a produzir efeito---\selectfont mesmo estando a meio de um parágrafo. Agora, o valor de \verb|\baselineskip| é \the\baselineskip{} (= \(2.5 \times 12=30\mathrm{pt}\)).

O que acontece se alterarmos o tamanho da fonte para 14pt e \verb|\baselineskip| para 16pt usando os comandos \verb|\fontsize{14}{16}\selectfont|?

\fontsize{14}{16}\selectfont Agora, \verb|\baselineskip| \textit{não} é 16pt, mas \the\baselineskip{} porque o valor de  \verb|\baselinestretch| (2.5) foi preservado e aplicado, dando \verb|\baselineskip| = \(2.5 \times 16=40\mathrm{pt}\).

\section{\texttt{\bfseries\string\linespread}}
O comando \verb|\linespread| pode ser usado para modificar \verb|\baselineskip| sem alterar o tamanho da fonte.
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D18cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cbegin%7Bdocument%7D%0AThe+default+value+of+%5Cverb%7C%5Cbaselineskip%7C%3D%5Cthe%5Cbaselineskip.+Now+update+%5Cverb%7C%5Cbaselinestretch%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D.+However%2C+although+we+have+executed%0A%0A%5Cvspace%7B5pt%7D%0A%5Cverb%7C%5Crenewcommand%5Cbaselinestretch%7B2.5%7D%7C+%0A%5Cvspace%7B5pt%7D%0A%0A%5Cnoindent+it+%5Ctextit%7Bhas+not%7D+%28yet%29+had+any+effect%3A+the+new+value+of+%5Cverb%7C%5Cbaselinestretch%7C+is+stored%2C+but+not+actioned.+We+can+issue+a+%5Cverb%7C%5Cselectfont%7C+command+to+make+the+change+take+effect%3B+but%2C+for+now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+still+%5Cthe%5Cbaselineskip%7B%7D+%28unchanged%29.+%0A%0AIf+we+now+execute+%5Cverb%7C%5Cselectfont%7C+the+change+to+%5Cverb%7C%5Cbaselinestretch%7C%2C+setting+it+to+2.5%2C+will+now+take+effect---%5Cselectfont+even+though+we+are+in+the+middle+of+a+paragraph.+Now%2C+the+value+of+%5Cverb%7C%5Cbaselineskip%7C+is+%5Cthe%5Cbaselineskip%7B%7D+%28%3D+%5C%282.5+%5Ctimes+12%3D30%5Cmathrm%7Bpt%7D%5C%29%29.%0A%0AWhat+happens+if+we+change+the+font+size+to+14pt+and+%5Cverb%7C%5Cbaselineskip%7C+to+16pt+using+the+commands+%5Cverb%7C%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont%7C%3F+%0A%0A%5Cfontsize%7B14%7D%7B16%7D%5Cselectfont+Now%2C+%5Cverb%7C%5Cbaselineskip%7C+is+%5Ctextit%7Bnot%7D+16pt+but+%5Cthe%5Cbaselineskip%7B%7D+because+the+value+of++%5Cverb%7C%5Cbaselinestretch%7C+%282.5%29+has+been+preserved+and+applied%2C+giving+%5Cverb%7C%5Cbaselineskip%7C+%3D+%5C%282.5+%5Ctimes+16%3D40%5Cmathrm%7Bpt%7D%5C%29.%0A%0A%5Csection%7B%5Ctexttt%7B%5Cbfseries%5Cstring%5Clinespread%7D%7D%0AThe+%5Cverb%7C%5Clinespread%7C+command+can+be+used+to+modify+%5Cverb%7C%5Cbaselineskip%7C+without+changing+the+font+size.%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Demonstração de baselinestretch](/files/76d2b60d2abb761706c3d8226ed7674e7b0b45cf)

#### Como é definido e alterado o “espaçamento entre linhas” no pacote setspace?

O *precisa* definição e *medição* de, “espaçamento entre linhas” está aberto a interpretação, o que pode resultar em várias implementações em sistemas/aplicações de software. Claramente, o `setspace` pacote tem de assumir uma definição operacional de espaçamento entre linhas para poder fornecer suporte para composição tipográfica de linhas “simples” e “duplas”, ou qualquer outro múltiplo de espaçamento entre linhas. Mas que variáveis são modificadas por `setspace` para produzir linhas com diferentes níveis de espaço em branco entre elas?

Felizmente, [discussões no tex.stackexchange](https://tex.stackexchange.com/a/30106) e [os comentários no código do pacote](https://tex.stackexchange.com/a/632830) esclarecem como `setspace` implementa o espaçamento entre linhas: define o valor de `\baselineskip` usando um múltiplo do tamanho de ponto do tipo de letra.

**Notas breves sobre tipos de letra e tamanho de ponto**

Usar tipos de letra num tamanho de ponto particular significa aplicar um *fator de escala* às formas dos caracteres (glifos) desses tipos de letra; uma vez escalados de acordo com o tamanho de ponto, o tamanho visível do caractere é função do design do tipo de letra (família tipográfica). O tamanho de ponto não tem uma relação universal e rígida com o tamanho real de apresentação das formas dos caracteres dentro dos tipos de letra.

A imagem seguinte mostra letras minúsculas “abc” estilizadas usando 4 tipos de letra diferentes e todas *apresentadas com o mesmo tamanho de ponto*. Note como o “tamanho” destas letras minúsculas varia de acordo com o design do tipo de letra (família tipográfica), apesar de todas estarem compostas com o *mesmo* tamanho de ponto:

![Vários tipos de letra no mesmo tamanho de ponto](/files/086936204acf0a53d98705d06f50fff689c64bc3)

#### Espaçamento de linha simples no pacote setspace

Podemos usar [discussões no tex.stackexchange](https://tex.stackexchange.com/a/30106) como base para algumas explicações adicionais.

Um documento básico usando a `article` tem um tamanho de fonte de texto predefinido de 10pt com um `\baselineskip` de 12pt. Com a opção \[11pt] ou \[12pt], a classe article usa um tamanho de texto maior e um valor correspondentemente maior para `\baselineskip` como mostrado na tabela seguinte:

| opção                 | tamanho da fonte            | $$\texttt{\baselineskip}$$ | $$\displaystyle\frac{\texttt{\baselineskip}}{\text{font size}}$$ |
| --------------------- | --------------------------- | -------------------------- | ---------------------------------------------------------------- |
| \[10pt] (predefinido) | 10pt                        | 12pt                       | 1.2                                                              |
| \[11pt]               | 10.95pt$${}^{\textbf{\*}}$$ | 13.6pt                     | 1.24                                                             |
| \[12pt]               | 12pt                        | 14.5                       | 1.21                                                             |

$${}^{\textbf{\*}}$$A razão para o valor anómalo de `10.95pt`, e não exatamente `11pt`, é bem explicada neste [publicação no Reddit](https://www.reddit.com/r/LaTeX/comments/ihle9h/why_does_latex_use_1095pt_text_when_the_11pt/).

Como mostrado na tabela, para cada combinação de tamanho de ponto do texto, e o correspondente valor predefinido (isto é, espaçamento simples) de `\baselineskip`, a razão

$$\frac{\texttt{\baselineskip}}{\text{font size}}$$

é próxima de 1.2. Esse valor de razão designa o espaçamento simples e fornece a base para os cálculos de espaçamento entre linhas usados pelo `setspace` pacote.

**Compreender e calcular valores para \baselinestretch**

Para alcançar um múltiplo específico de espaçamento entre linhas, como 1.5, 2, 3, etc., o `\baselinestretch` comando tem de ser definido para valores aparentemente [“estranhos”](https://tex.stackexchange.com/a/30106); por exemplo, por [usando o `\linespread` comando](https://texblog.org/2011/09/30/quick-note-on-line-spacing/). Nesta secção vamos analisar mais de perto `\baselinestretch` para ver como surgem esses valores “estranhos”.

Escolhamos um documento com tamanho de fonte predefinido de $$f$$ e predefinido `\baselineskip` de $$\text{dbls}\_1$$, em que o subscrito $${}\_1$$ indica o valor predefinido `\baselineskip` para espaçamento simples no tamanho de fonte $$f$$.

Vamos ***definir*** o espaçamento simples como a seguinte razão, à qual nos referiremos como $$\alpha\_f$$:

$$\frac{\text{dbls}\_1}{f}=\alpha\_f$$

Para um dado tamanho de fonte $$f$$, vamos também *definir* os seguintes valores de espaçamento entre linhas:

* um múltiplo de 1.5 do espaçamento entre linhas é *definido* como

$$\frac{\text{dbls}\_{1.5}}{f}=1.5$$

* um múltiplo de 2.0 do espaçamento entre linhas é *definido* como

$$\frac{\text{dbls}\_{2.0}}{f}=2.0$$

* um múltiplo, $$m$$, de espaçamento entre linhas é *definido* como

$$\frac{\text{dbls}\_{m}}{f}=m$$

Usando o nosso espaçamento simples, definido pela razão $$\alpha\_f$$, podemos escrever o seguinte “pseudocódigo” para determinar um `\baselinestretch` valor correspondente a qualquer múltiplo de espaçamento entre linhas $$m$$:

$$\begin{align\*} \texttt{multi spacing } (m) &= \text{a constant } (\lambda) \times \texttt{single spacing}\ \frac{\text{dbls}\_{m}}{f}&=\lambda \times \alpha\_f\ m&=\lambda\alpha\_f\ \lambda&=\frac{m}{\alpha\_f}\kern5pt(\text{refer to }\lambda\text{ as }\texttt{\baselinestretch})\ \implies \texttt{\baselinestretch}&=\frac{m}{\alpha\_f} \end{align\*}$$

Vamos usar `11pt` texto (na verdade `10.95pt`e o padrão `\baselineskip` valor de `13.6pt` calcular `\baselinestretch` para *duplo* espaçamento entre linhas:

$$\begin{align\*} m&=2.0\ \texttt{\baselinestretch}&=\frac{2.0}{\alpha\_f}\ &=\frac{2.0}{\frac{\text{dbls}\_1}{f}}\ &=\frac{2.0}{\frac{13.6}{11}}\ &=2.0 \times \frac{11}{13.6}\ &=1.618\ \end{align\*}$$

O seguinte fragmento de código é usado no `setspace` pacote para atingir `\doublespacing` quando o tamanho da fonte é 11pt. Repare como o valor de `1.618`, tal como calculado acima, é armazenado no comando `\baselinestretch`:

```latex
\newcommand{\doublespacing}{%
  \setstretch {1.667}%  padrão
  \ifcase \@ptsize \relax % 10pt
    \setstretch {1.667}%
  \or % 11pt
    \setstretch {1.618}%
  \or % 12pt
    \setstretch {1.655}%
  \fi
}
```

Usando um `article` document class com a opção de fonte 11pt, o exemplo seguinte compara `\doublespacing` com um `spacing` ambiente usando o nosso valor calculado de `1.618` para `\baselinestretch`. Sem surpresa, os `\baselineskip` valores são idênticos (`22.00475pt`):

```latex
\begingroup
\doublespacing
\verb|\baselineskip|=\texttt{\the\baselineskip} (via \verb|\doublespacing|)

\blindtext[1]

\endgroup

\begin{spacing}{1.618}
\verb|\baselineskip|=\texttt{\the\baselineskip} (via \verb|\begin{spacing}{1.618})|

\blindtext[1]
\end{spacing}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demonstrating+baselinestretch+calculations\&snip=%5Cdocumentclass%5B11pt%5D%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D25cm%2Cpaperwidth%3D16cm%2Ctextwidth%3D14cm%5D%7Bgeometry%7D%0A%5Cusepackage%7Bsetspace%7D%0A%5Cusepackage%7Bblindtext%7D+%25+For+dummy+text.%0A%5Cbegin%7Bdocument%7D%0A%5Cbegingroup%0A%5Cdoublespacing%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cdoublespacing%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%0A%5Cendgroup%0A%0A%5Cbegin%7Bspacing%7D%7B1.618%7D%0A%5Cverb%7C%5Cbaselineskip%7C%3D%5Ctexttt%7B%5Cthe%5Cbaselineskip%7D+%28via+%5Cverb%7C%5Cbegin%7Bspacing%7D%7B1.618%7D%29%7C%0A%0A%5Cblindtext%5B1%5D%0A%5Cend%7Bspacing%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![demonstração de \baselinestretch](/files/fef2f45be1edb5261247acb055fa784b979cc441)

Cálculos semelhantes de `\baselinestretch` valores aplicam-se a outros tamanhos de fonte e combinações de espaçamento entre linhas, como listado nas tabelas seguintes:

![parâmetros do setspace](/files/52f895d8e1d969a3dacaf4bcdc87a24f534ee585)

## Usando comandos de parâmetros TeX/LaTeX

As secções seguintes exploram vários comandos relacionados com espaçamento/formatamento de parágrafos: alguns desses comandos são *incorporados no* motores de composição tipográfica TeX, outros são macros TeX/LaTeX. Os comandos incorporados nos motores TeX são conhecidos como *primitivos*, o que significa que são *aspeto* e *irredutíveis* porque, ao contrário das macros, os primitivos não são construídos a partir de sequências de outros comandos.

Em particular, consideraremos vários *comandos de parâmetros* primitivos suportados por todos os motores TeX, incluindo pdfTeX, XeTeX e LuaTeX. Os comandos de parâmetros, sejam relacionados com parágrafos ou não, são usados para *obter o valor atual* do parâmetro correspondente, ou *definir esse parâmetro para um novo valor*. Por exemplo, o `\parskip` comando, um primitivo, determina o valor de um parâmetro que controla a quantidade de espaço em branco inserida entre dois parágrafos compostos tipograficamente.

Para *obter* (aqui, para compor tipograficamente) o valor atual de `\parskip` escreveria:

```latex
\the\parskip
```

Para *set* o valor atual de `\parskip` para `1pt plus2pt` (uma cola flexível) poderia escrever algo assim:

```latex
\setlength{\parskip}{1pt plus2pt}
```

Também discutimos alguns úteis *macros*, comandos de nível superior escritos e construídos usando uma sequência de comandos constituintes.

### Comandos usados para espaçamento de parágrafos

Os seguintes comandos (primitivos e macros) podem ser usados para afetar o espaçamento dos parágrafos. Alguns são explorados com mais detalhe e podem ser acedidos seguindo a ligação a partir do nome do comando.

#### Comandos primitivos

* [`**\parindent**`](#parindent-tex-primitive): a quantidade de recuo (espaço em branco) adicionada à primeira linha de um parágrafo.
* [`**\parskip**`](#parskip-tex-primitive): a quantidade de espaço em branco flexível (“cola”) colocada entre parágrafos.
* [`**\rightskip**`](#leftskip-and-rightskip-tex-primitives): espaçamento flexível (cola) inserido à direita de cada linha num parágrafo.
* [`**\leftskip**`](#leftskip-and-rightskip-tex-primitives): espaçamento flexível (cola) inserido à esquerda de cada linha num parágrafo.
* [`**\baselineskip**`](#baselineskip-tex-primitive): o valor deste parâmetro serve dois propósitos:
  * define a distância desejada entre as linhas de base do texto num parágrafo;
  * é usado para calcular a quantidade (variável) de espaço (cola) adicionada entre linhas de modo a atingir a distância desejada entre linhas de base ([veja mais adiante no artigo](#how-the-space-glue-between-paragraph-lines-is-calculated)).
* [`**\lineskiplimit**`](#lineskip-and-lineskiplimit-tex-primitives): um parâmetro cujo valor define a distância mínima aceitável entre duas linhas adjacentes de um parágrafo.
* [`**\lineskip**`](#lineskip-and-lineskiplimit-tex-primitives): a quantidade de espaço (cola) inserida entre duas linhas num parágrafo se a cola calculada `\baselineskip` resultasse em linhas demasiado próximas umas das outras.
* `**\parfillskip**`: cola muito flexível adicionada no fim da última linha de um parágrafo para a “preencher” com espaço em branco; para um exemplo visual, consulte a ilustração na secção [*Visualizar outros tipos de cola de parágrafo*](#visualizing-other-types-of-paragraph-glue).

#### Comandos macro

Os seguintes comandos macro TeX/LaTeX são frequentemente usados para modificar o espaçamento de parágrafos:

* [`**\offinterlineskip**` e `**\nointerlineskip**`](#offinterlineskipandnointerlineskip): comandos que podem ser usados para desativar o cálculo e a inserção de `\baselineskip` cola;
* [`**\baselinestretch**`](#understanding-and-calculating-values-for-baselinestretch): um comando que armazena um fator numérico usado para calcular o valor de `\baselineskip` quando uma fonte é selecionada. Tem um valor predefinido de 1;
* [`**\linespread**`](#demonstrating-linespread): este comando pode ser usado para alterar o valor atual de `\baselinestretch`.

### Espaçamento flexível (cola)

Os motores TeX conseguem efeitos de espaçamento, incluindo dentro ou entre parágrafos, através da utilização de um espaço em branco flexível chamado *cola* que pode ser esticada ou encolhida de acordo com a quantidade de espaço necessária. Se quiser aprender sobre o conceito de cola do TeX, pode encontrar mais detalhes nos seguintes artigos do Overleaf:

* [Explorando caixas subpreenchidas ou sobrepreenchidas e cálculos de badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv)
* [Como o TeX calcula as definições de cola numa \hbox](/latex/overleaf-learn-latex-pt/artigos-aprofundados/24-how-tex-calculates-glue-settings-in-an-hbox.md)
* [Compreender avisos de caixas subpreenchidas e sobrepreenchidas](/latex/overleaf-learn-latex-pt/base-de-conhecimento/138-understanding-underfull-and-overfull-box-warnings.md).

## Os fundamentos: comandos de parâmetros e exemplos

Nesta secção explicamos vários comandos de parâmetros relacionados com parágrafos e fornecemos exemplos da sua utilização.

### \parindent (primitivo TeX)

Este comando de parâmetro define a quantidade de recuo (espaço em branco) adicionada à primeira linha de um parágrafo. Pode ser alterado usando o comando do LaTeX `\setlength` ; por exemplo, para indentar parágrafos em `15pt` set `\parindent` para `15pt` escrever:

```latex
\setlength{\parindent}{15pt}
```

Note que:

* pode alterar `\parindent` dentro de um grupo, garantindo que o seu efeito fica localizado aos parágrafos desse grupo;
* `\parindent` pode ser negativo, produzindo um “recuo para fora” em vez de um recuo;
* por predefinição, o LaTeX não indenta o primeiro parágrafo a seguir a um título de secção de um documento (`\section{...}` etc).

O exemplo seguinte demonstra a utilização de `\parindent`.

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Criar um comando para guardar um parágrafo de texto
\newcommand{\testpar}{\texttt{\string\parindent=\the\parindent\ }Quando o \TeX{} compõe tipograficamente um parágrafo, trata cada caractere individual como uma ``caixa'' 2D com uma largura, altura e profundidade específicas.\par}
\begin{document}

% Definir \parskip para colocar 10pt entre parágrafos
\setlength{\parskip}{10pt}

% Definir o valor de \parindent para 0pt
\setlength{\parindent}{0pt}
\testpar

% Definir o valor de \parindent para 10pt
\setlength{\parindent}{10pt}
\testpar

% Definir \parindent num grupo
{\setlength{\parindent}{50pt}\testpar}

% Agora \parindent volta a ser 10pt
\testpar

% Sim, pode ter um \parindent negativo
\setlength{\parindent}{-20pt}
\testpar
\end{document}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+paragraph+indentation\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Ctexttt%7B%5Cstring%5Cparindent%3D%5Cthe%5Cparindent%5C+%7DWhen+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D+%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%25+Set+%5Cparskip+to+put+10pt+between+paragraphs%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%0A%0A%25+Set+the+value+of+%5Cparindent+to+0pt%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%5Ctestpar%0A%0A%25+Set+the+value+of+%5Cparindent+to+10pt%0A%5Csetlength%7B%5Cparindent%7D%7B10pt%7D%0A%5Ctestpar%0A%0A%25+Set+%5Cparindent+in+a+group%0A%7B%5Csetlength%7B%5Cparindent%7D%7B50pt%7D%5Ctestpar%7D%0A%0A%25+Now+%5Cparindent+is+again+10pt%0A%5Ctestpar%0A%0A%25+Yes%2C+you+can+have+a+negative+%5Cparindent%0A%5Csetlength%7B%5Cparindent%7D%7B-20pt%7D%0A%5Ctestpar%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Usando vários valores de recuo de parágrafo no LaTeX](/files/e8a79c72b7ab490d5554b3da49258906a4a9700b)

### \parskip (primitivo TeX)

A legibilidade do texto pode ser melhorada separando parágrafos com uma quantidade de espaço em branco que varia de acordo com alguma estética de design. O TeX/LaTeX permite aos utilizadores controlar esse espaçamento entre parágrafos através do comando de parâmetro `\parskip` de parâmetro.

* **Conselho do `parskip` pacote**: O [pacote parskip](https://ctan.org/pkg/parskip) aconselha que modificar diretamente `\parskip` pode “resultar em espaços verticais em locais inesperados” (num documento LaTeX). O `parskip` pacote tenta corrigir problemas de espaçamento que possam surgir de alterações ao valor de `\parskip`—como dentro do índice e de ambientes de listas. Veja também a secção do pacote deste artigo [`parskip` secção do pacote deste artigo](#the-parskip-package).

Para definir manualmente o valor atual de `\parskip` use o comando do LaTeX `\setlength` ; por exemplo, para separar parágrafos por 3pt pode escrever:

```latex
\setlength{\parskip}{3pt}
```

O exemplo seguinte demonstra a utilização de `\parskip`:

```latex
\documentclass{article}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Criar um comando para guardar um parágrafo de texto
\newcommand{\testpar}{\noindent O valor atual de \texttt{\string\parskip} é \texttt{\the\parskip}. Quando o \TeX{} compõe tipograficamente um parágrafo, trata cada caractere individual como uma ``caixa'' 2D~com uma largura, altura e profundidade específicas.\par}
\begin{document}
\testpar
% Definir \parskip para 5pt
\setlength{\parskip}{5pt}\testpar
% Definir parskip para 10pt
\setlength{\parskip}{10pt}\testpar
% Definir \parskip para 25pt (mas num grupo)
{\setlength{\parskip}{25pt}\testpar}
% O grupo termina, agora \parskip volta a ser 10pt
\testpar
% Sim, pode ter um \parskip negativo
\setlength{\parskip}{-20pt}\testpar
\end{document}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+parskip+settings\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Create+a+command+to+hold+a+paragraph+of+text%0A%5Cnewcommand%7B%5Ctestpar%7D%7B%5Cnoindent+The+current+value+of+%5Ctexttt%7B%5Cstring%5Cparskip%7D+is+%5Ctexttt%7B%5Cthe%5Cparskip%7D.+When+%5CTeX%7B%7D+typesets+a+paragraph+it+treats+each+individual+character+as+a+2D%7E%60%60box%27%27+with+a+specific+width%2C+height+and+depth.%5Cpar%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar%0A%25+Set+%5Cparskip+to+5pt+%0A%5Csetlength%7B%5Cparskip%7D%7B5pt%7D%5Ctestpar%0A%25+Set+parskip+to+10pt%0A%5Csetlength%7B%5Cparskip%7D%7B10pt%7D%5Ctestpar%0A%25+Set+%5Cparskip+to+25pt+%28but+in+a+group%29%0A%7B%5Csetlength%7B%5Cparskip%7D%7B25pt%7D%5Ctestpar%7D%0A%25+Group+ends%2C+now+%5Cparskip+is+again+10pt%0A%5Ctestpar%0A%25+Yes%2C+you+can+have+a+negative+%5Cparskip%0A%5Csetlength%7B%5Cparskip%7D%7B-20pt%7D%5Ctestpar%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Demonstrando a utilização de \parskip no LaTeX](/files/c1dfab62db3debd44d3f0c7288a3a442223e78fc)

#### \parskip flexível

Tradicionalmente, `\parskip` não é um *valor* fixo, o que resultaria na mesma quantidade de espaço entre todos os parágrafos. Em vez disso, `\parskip` é normalmente definido como um “espaço flexível” (chamado cola) que permite ao TeX esticar ou encolher o espaço entre parágrafos, ajudando a ajustar o conteúdo à página e a encontrar um ponto “bom” para uma quebra de página.

Para tornar `\parskip` flexível, escreveria-o na forma de uma especificação de cola:

`\setlength{\parskip}{*quantidade fixa* **mais** *quantidade a esticar* **menos** *quantidade a encolher*}`

onde `**mais**` e `**menos**` estiver *keywords* usado pelo TeX/LaTeX para identificar a *quantidade a esticar* ou *quantidade a encolher* contida numa especificação de cola. O artigo do Overleaf [*Explorando caixas subpreenchidas ou sobrepreenchidas e cálculos de badness*](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv) contém uma discussão mais aprofundada sobre cola.

Por exemplo, para permitir que `\parskip` varie entre `3 + 1 = 4pt` e `3 — 1 = 2pt` poderia escrever

```latex
\setlength{\parskip}{3pt plus1pt minus1pt}
```

### \leftskip e \rightskip (primitivos TeX)

Os motores TeX fornecem dois comandos de parâmetros que adicionam espaço (cola) à esquerda e à direita de cada linha no parágrafo composto tipograficamente. Como os seus nomes sugerem:

* `\leftskip` insere espaço (cola) à esquerda de cada linha num parágrafo;
* `\rightskip` insere espaço (cola) à direita de cada linha num parágrafo.

Os exemplos seguintes usam `\leftskip` e `\rightskip` para modificar diretamente o alinhamento do parágrafo; no entanto... as alterações ao alinhamento do texto são normalmente melhor obtidas através de ambientes ou pacotes LaTeX adequados — por exemplo, veja o [artigo do Overleaf sobre alinhamento de texto](/latex/overleaf-learn-latex-pt/formatacao/06-text-alignment.md). Embora demonstremos o comportamento de alguns comandos de parâmetros de baixo nível (primitivos) fornecidos pelos motores TeX, é geralmente aconselhável usar pacotes LaTeX apropriados sempre que possível.

#### Tornar \leftskip fixo e \rightskip flexível

O exemplo seguinte produz dois parágrafos: o primeiro usa os valores predefinidos do LaTeX para `\leftskip` e `\rightskip` e o segundo parágrafo é composto tipograficamente usando as seguintes definições:

```latex
\leftskip 10pt
\rightskip 0pt plus 1 fill
```

Abra o seguinte projeto do Overleaf para ver a saída:

```latex
\documentclass{article}
\title{Segundo exemplo de leftskip e rightskip}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Definir o valor de alguns parâmetros relacionados com parágrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Um ficheiro TeX gerado que define as macros
% \mytextA e \mytextB, cada uma contendo o texto para um parágrafo.
% Compor tipograficamente um parágrafo com os valores predefinidos de \leftskip e \rightskip

\mytextB

% Definir \leftskip e \rightskip para novos valores
\leftskip 10pt
\rightskip 0pt plus 1fill
\vspace{8pt}

% Agora voltar a compor tipograficamente o mesmo parágrafo
\mytextB

\end{document}
```

&#x20;Abra este exemplo como um projeto LaTeX do Overleaf

Este exemplo gera a seguinte saída:

![Definir a cola \leftskip no LaTeX](/files/29904e992301c60f7af98d2b018fb1098721ddd1)

O gráfico seguinte é uma versão anotada do segundo parágrafo produzido pelo exemplo acima. Foi concebido para realçar e mostrar a quantidade de `\leftskip` e `\rightskip` colas inseridas nas linhas do parágrafo, juntamente com o `\parindent` espaço para a primeira linha:

![Definir a cola \leftskip no LaTeX](/files/1e3583fefb05f9cd2f6cc393c5e9106193adc7c4)

Note que `\leftskip` cola tem um tamanho fixo (10pt) mas `\rightskip` cola esticou-se para fornecer a quantidade de espaço em branco necessária para preencher o lado direito de cada linha. Esta “flexibilidade” deve-se à especificação de `\rightskip` que contém `mais 1 fill`—fornecendo uma forma de cola “infinitamente esticável”.

#### Tornar \rightskip fixo e \leftskip flexível

O exemplo seguinte produz dois parágrafos: o primeiro usa os valores predefinidos do LaTeX para `\leftskip` e `\rightskip` e o segundo parágrafo é composto tipograficamente usando as seguintes definições:

```latex
\leftskip 0pt plus 1 fill
\rightskip 10pt
```

Abra o seguinte projeto do Overleaf para ver a saída:

```latex
\documentclass{article}
\title{Exemplos de leftskip e rightskip}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Definir o valor de alguns parâmetros relacionados com parágrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Um ficheiro TeX gerado que define as macros
% \mytextA e \mytextB, cada uma contendo o texto para um parágrafo.
% Compor tipograficamente um parágrafo com os valores predefinidos de \leftskip e \rightskip

\mytextB

% Definir \leftskip e \rightskip para novos valores
\rightskip 10pt
\leftskip 0pt plus 1fill
\vspace{8pt}

% Agora voltar a compor tipograficamente o mesmo parágrafo
\mytextB

\end{document}
```

&#x20;Abra este exemplo como um projeto LaTeX do Overleaf

Este exemplo gera a seguinte saída:

![Definir a cola \rightskip no LaTeX](/files/8397689b44837536c867566bb134ea9ab84fe781)

O gráfico seguinte é uma versão anotada do segundo parágrafo produzido pelo exemplo acima. Foi concebido para realçar e mostrar a quantidade de `\leftskip` e `\rightskip` colas inseridas nas linhas do parágrafo, juntamente com o `\parindent` espaço para a primeira linha:

![Definir a cola \rightskip no LaTeX](/files/bc23564d03be2b0a41fe17d0291e2abae6f6ba8a)

Note que `\rightskip` cola tem um tamanho fixo (10pt) mas `\leftskip` cola esticou-se para fornecer a quantidade de espaço em branco necessária para preencher o lado esquerdo de cada linha. Esta “flexibilidade” deve-se à especificação de `\leftskip` que contém `mais 1 fill`—fornecendo uma forma de cola “infinitamente esticável”.

#### Definir \leftskip e \rightskip para valores flexíveis

O exemplo seguinte produz dois parágrafos: o primeiro usa os valores predefinidos do LaTeX para `\leftskip` e `\rightskip` e o segundo usa as seguintes definições de cola flexíveis:

```latex
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
```

Estas definições resultam em linhas de parágrafo centradas:

```latex
\documentclass{article}
\title{Exemplos de leftskip e rightskip}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight==16cm,paperwidth==12cm,textwidth=8cm]{geometry}
% Definir o valor de alguns parâmetros relacionados com parágrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Um ficheiro TeX gerado que define as macros
% \mytextA e \mytextB que definem texto para dois parágrafos
% Compor tipograficamente um parágrafo com os valores predefinidos de \leftskip e \rightskip

\mytextB

% Definir \leftskip e \rightskip para definições de cola "extremamente flexíveis"
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\vspace{20pt}

% Agora voltar a compor tipograficamente o mesmo parágrafo
\mytextB

\end{document}
```

&#x20;Abra este exemplo como um projeto LaTeX do Overleaf

Este exemplo gera a seguinte saída:

![Exemplo que mostra \leftskip e \rightskip](/files/f7963b9cba0ce096bbe59598765a984968a35979)

O gráfico seguinte é uma versão anotada do segundo parágrafo produzido pelo exemplo acima. Foi concebido para realçar e mostrar a quantidade de `\leftskip` e `\rightskip` colas inseridas nas linhas do parágrafo, juntamente com o `\parindent` espaço para a primeira linha:

![Exemplo que mostra \leftskip e \rightskip](/files/b2a7765918bc13e3fe22ce0486bad34610e57a40)

Note que ambos `\leftskip` e `\rightskip` são especificados como `0pt plus 1fill` tornando-os igualmente “infinitamente flexíveis”; consequentemente, esticam-se pela mesma quantidade, o que faz com que as linhas compostas tipograficamente fiquem centradas.

#### Definir \leftskip e \rightskip num grupo

O exemplo seguinte mostra como fazer alterações temporárias a `\leftskip` e `\rightskip` enclausurando-as dentro de um grupo. No nosso exemplo, o grupo é criado por `\begingroup`... `\endgroup`, como mostrado no seguinte fragmento de código:

```latex
\begingroup
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\mytextB
\endgroup
```

O primeiro parágrafo é composto tipograficamente usando cola “extremamente flexível” para `\leftskip` e `\rightskip`:

```latex
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
```

mas o segundo parágrafo usa os valores predefinidos do LaTeX:

```latex
\documentclass{article}
\title{Outro exemplo de leftskip e rightskip}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Definir o valor de alguns parâmetros relacionados com parágrafos
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Um ficheiro TeX gerado que define as macros
% \mytextA e \mytextB que definem texto para dois parágrafos
% Aqui alteramos \leftskip e \rightskip para definições de cola "extremamente flexíveis"
% dentro de um grupo criado por \begingroup ... \endgroup

\begingroup
\leftskip 0pt plus 1fill
\rightskip 0pt plus 1fill
\mytextB
\endgroup

% Agora voltar a compor tipograficamente o mesmo parágrafo após o grupo ter sido fechado
% fazendo com que \leftskip e \rightskip regressem aos seus valores anteriores

\vspace{20pt}
\mytextB

\end{document}
```

&#x20;Abra este exemplo como um projeto LaTeX do Overleaf

Este exemplo gera a seguinte saída:

![Usando \leftskip e \rightskip num grupo](/files/8fe4c177606a46a773dfae3f4d7df36762034098)

**Nota**: As definições para (efeitos de) `\leftskip` e `\rightskip` estão restringidas ao parágrafo dentro do grupo criado por `\begingroup`... `\endgroup`. Depois de o grupo ter sido fechado, o parágrafo seguinte é composto tipograficamente usando os valores predefinidos do LaTeX para `\leftskip` e `\rightskip`.

### \baselineskip (primitivo TeX)

É geralmente prática tipográfica aceite que as linhas de texto dentro dos parágrafos devem ter espaçamento igual, exceto quando certas linhas contêm elementos grandes, como matemática ou uma imagem, o que torna impossível preservar um espaçamento entre linhas constante para essas linhas.

O TeX/LaTeX fornece comandos e mecanismos que permitem aos utilizadores exercer algum grau de controlo sobre o espaçamento entre linhas. Um desses comandos é `\baselineskip` que obtém, ou define, o valor de um parâmetro que determina o espaçamento entre linhas preferido (distância entre linhas de base) num parágrafo composto tipograficamente.

Para compor tipograficamente o valor atual de `\baselineskip` pode escrever

```latex
\the\baselineskip
```

Para definir `\baselineskip` para algum `valor` (um comprimento LaTeX como `pt`) pode escrever

```latex
\setlength{\baselineskip}{value}
```

Por exemplo, para definir `\baselineskip` para `12pt` pode escrever

```latex
\setlength{\baselineskip}{12pt}
```

Podemos demonstrar o papel de `\baselineskip` usando o seguinte parágrafo (típico):

![Um parágrafo de exemplo em LaTeX](/files/ced515c97fd2b443539e2c6561e08caa9cf4d634)

e adicionando anotações que mostram a distância entre linhas de base controlada por `\baselineskip`:

![Um parágrafo de exemplo em LaTeX anotado para mostrar as distâncias entre linhas de base](/files/9e7373fb91e5b360b2bfa99ee3229d0a81df7e98)

O diagrama também mostra a “cola” entre linhas: uma quantidade calculada de espaço em branco adicionada entre linhas — discutiremos isso mais adiante no artigo.

#### \baselineskip e outros parâmetros

`\baselineskip` é um de quatro parâmetros principais que controlam a quantidade de espaço inserida entre linhas de um parágrafo; os outros são:

* `\lineskip`
* `\lineskiplimit`
* `\prevdepth`

Mais adiante no artigo exploraremos [*como estes quatro parâmetros são usados*](#paragraph-structure-and-line-space-calculations) para calcular valores de cola entre linhas.

#### exemplo de \baselineskip (espaço fixo)

O exemplo seguinte abre no Overleaf para criar um projeto que contém um ficheiro chamado `text.tex` que define os comandos `\mytextA` e `\mytextB`—ambos os comandos compõem tipograficamente um parágrafo. Por conveniência, o projeto do Overleaf usa um tamanho de página pequeno porque isso ajuda na preparação de gráficos e imagens para esta página de ajuda.

```latex
\documentclass{article}
\title{Demonstrando baselineskip}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Definir o valor de alguns parâmetros relacionados com parágrafos (vamos discutir estes)
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Definir o valor de \baselineskip—alterar o valor para ver o efeito
\setlength{\baselineskip}{12pt}

\begin{document}
\input text.tex % Um ficheiro TeX gerado que define as macros
% \mytextA e \mytextB, cada uma das quais compõe tipograficamente um parágrafo

% Primeiro, compor tipograficamente dois parágrafos com o \baselineskip predefinido
\mytextA\mytextB

% Agora alterar \baselineskip para um valor maior e compor tipograficamente
% outro parágrafo
\setlength{\baselineskip}{24pt}
\mytextA

\end{document}
```

&#x20;Abra este exemplo como um projeto LaTeX do Overleaf

Este exemplo gera a seguinte saída:

![Explorando baselineskip em TeX ou LaTeX](/files/2d92b64680a5117f1e7061b0b6f646ed77ef7783)

O parágrafo na página 2 tem linhas com espaçamento amplo porque `\baselineskip` foi definido para 24pt.

#### exemplo de \baselineskip (espaço flexível)

O exemplo seguinte especifica um `\baselineskip` valor que tem um componente de expansão extremamente flexível (o chamado “infinito”):

```latex
\baselineskip=12pt plus1fil
```

Devido a esta flexibilidade, o espaço em branco entre as linhas dos parágrafos pode esticar-se pela quantidade necessária para preencher a página. Tal flexibilidade resultaria em parágrafos com quantidades muito diferentes de espaço entre as suas linhas de texto constituintes, o que pode não ser esteticamente agradável ou fácil de ler.

```latex
\documentclass{article}
\usepackage{blindtext}
\title{Demonstração flexível de \texttt{\string\baselineskip}}
\author{Overleaf}
\date{Janeiro de 2022}

\begin{document}

\maketitle
Vamos dar a \verb|\baselineskip| um componente de ``stretch'' muito flexível, atribuindo o valor \texttt{12pt plus1fil}: \verb|\baselineskip=12pt plus1fil|.\baselineskip=12pt plus1fil
\section{Introdução}
Adicione um parágrafo que agora se estenderá para preencher a página. \blindtext

\end{document}
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Flexible+baselineskip+demo\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bblindtext%7D%0A%5Ctitle%7BFlexible+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+demo%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7BJanuary+2022%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0AWe%E2%80%99ll+provide+%5Cverb%7C%5Cbaselineskip%7C+with+a+very+flexible+%60%60stretch%27%27+component+by+assigning+the+value+%5Ctexttt%7B12pt+plus1fil%7D%3A+%5Cverb%7C%5Cbaselineskip%3D12pt+plus1fil%7C.%5Cbaselineskip%3D12pt+plus1fil+%0A%5Csection%7BIntroduction%7D%0AAdd+a+paragraph+that+will+now+stretch+to+fill+the+page.+%5Cblindtext%0A%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Demonstrando cola baselineskip com flexibilidade infinita](/files/b21ec892a202753e79fbd5f180b079a0e1964539)

**Algumas notas sobre cola**

Algumas das notas seguintes foram retiradas do artigo do Overleaf [explorando caixas subcheias ou sobrecheias e cálculos de mau ajustamento](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv), reproduzido aqui para conveniência.

O espaço em branco que o TeX insere entre linhas de um parágrafo, `\baselineskip`, é uma forma de espaçamento flexível chamada *cola*. Um valor de cola pode ser especificado por três componentes:

* a *valor* quantidade;
* uma quantidade que pode *alongar*;
* uma quantidade que pode *encolher*,

Consequentemente, um `\baselineskip` valor pode ser especificado assim:

`\baselineskip`=*quantidade fixa* **mais** *quantidade a esticar* **menos** *quantidade a encolher*

onde

* **mais** e **menos** são palavras-chave que os motores TeX entendem;
* *quantidade fixa* é designado como o *componente normal* da cola (também chamado o *largura natural* da cola);
* *quantidade a esticar* é designado como o *componente de alongamento* da cola;
* *quantidade a encolher* é designado como o *componente de encolhimento* da cola.

O *quantidade fixa* é obrigatório para todos os valores de cola, mas *quantidade a esticar* e *quantidade a encolher* são ambos opcionais — se um deles, ou ambos, estiverem em falta, são definidos com o valor 0.

Normalmente, `\baselineskip` a cola é especificada com um *quantidade fixa* apenas, os componentes de alongamento e encolhimento são zero; caso contrário, as linhas do parágrafo teriam espaçamento irregular (variável), o que talvez não fosse esteticamente agradável.

### \offinterlineskip e \nointerlineskip (macros)

Estas macros são frequentemente usadas para impedir a inserção de cola interlinha entre linhas de um parágrafo. Os leitores interessados em mais detalhes podem avançar para as secções relevantes do artigo, que explicam como estas macros funcionam.

* **`\offinterlineskip`**: Ver a secção do artigo [*Cola interlinha de tamanho zero: \offinterlineskip*](#zero-sized-interline-glue-offinterlineskip).
* **`\nointerlineskip`**: Ver a secção do artigo [*Impedir a cola interlinha: \prevdepth e \nointerlineskip*](#preventing-interline-glue-prevdepth-and-nointerlineskip).

## Estrutura dos parágrafos e cálculos do espaçamento entre linhas

Usando as capacidades do LuaTeX, é possível [pós-processar um parágrafo composto](https://www.overleaf.com/latex/examples/luatex-parsing-typeset-paragraphs/mzbpwxtjshsj) para visualizar os limites dos caracteres constituintes (glifos), linhas e colas a partir dos quais é construído. Começaremos com uma curta sequência de gráficos para ajudar a visualizar o modelo de “caixas e cola” que os motores TeX usam para compor texto contido num parágrafo.

### Estrutura do parágrafo

Quando o TeX compõe um parágrafo, trata os caracteres individuais como pequenas caixas, cada uma com a sua própria largura, altura e profundidade, e as larguras dessas caixas de caracteres são usadas para calcular as localizações ótimas para as quebras de linha. Além disso, os caracteres de espaço contidos no texto, e usados para separar palavras individuais, são convertidos numa forma de espaço flexível (cola) que fornece o espaçamento necessário para obter cada quebra de linha.

A seguinte sequência de 7 gráficos mostra os componentes principais de um parágrafo composto: vários tipos de caixas e cola. O primeiro gráfico mostra um parágrafo composto juntamente com uma versão anotada que destaca vários elementos no parágrafo. No entanto, o parágrafo anotado contém muita informação, por isso os gráficos subsequentes isolam vários componentes para, esperemos, torná-los mais fáceis de compreender.

![Paragraphanatomy1b.png](/files/d4aac815693cebcec2126da530974d5204014a50)

* O gráfico seguinte representa as linhas do parágrafo como caixas cinzentas separadas por cola, representada por faixas horizontais verdes. Essa cola é calculada para garantir que a distância de linha de base a linha de base seja igual a (ou seja, ao valor de) `\baselineskip`:

![Paragraphanatomy2b.png](/files/b8f5ac9b182c8cbaab04780d704568cfa89e92ca)

* A imagem seguinte representa os caracteres compostos como caixas: para visualizar como os motores TeX processam caracteres com o objetivo de produzir quebras de linha:

![Paragraphanatomy3.png](/files/16c424c4bfb1bf8b1c7351304b2b1e915bdd0d70)

* A imagem seguinte mostra caixas dentro de caixas: as linhas maiores do parágrafo (caixas) contendo caixas menores (caracteres individuais):

![Paragraphanatomy5.png](/files/83a732dc0e3eb615663dacef46aeffaf9f773b5f)

* A imagem seguinte mostra a quantidade de espaço entre palavras em cada linha: estes espaços entre palavras são produzidos convertendo caracteres de espaço em colas flexíveis que são esticadas ou encolhidas para produzir o comprimento correto para cada linha de texto. Note cuidadosamente que o tamanho destes espaços varia de linha para linha:

![Paragraphanatomy4.png](/files/669125895af3fcefda8b6852d4536d8139864099)

* A imagem seguinte combina as caixas de caracteres e as colas correspondentes (espaço) colocadas entre palavras individuais:

![Paragraphanatomy6.png](/files/835a9cb3e6197dbb8a6bfcee46b89ab341c40cb9)

### Visualizar outros tipos de cola de parágrafo

Os parágrafos seguintes também foram compostos e processados usando LuaTeX para mostrar outros tipos de cola no interior e entre um par de parágrafos. Note que `\rightskip` e `\leftskip` estão ambos definidos para 0pt, por isso não são mostrados:

* **`\parskip`** cola (azul-claro) colocada entre os dois parágrafos compostos;
* as palavras individuais são separadas por ***cola entre palavras*** (amarelo) criada pela conversão de caracteres de espaço na entrada em espaço em branco de tamanho variável (cola) na saída composta. A cola proveniente de espaços entre palavras é esticada ou encolhida para obter quebras de linha visualmente agradáveis;
* **`\baselineskip`** cola (verde-claro) colocada entre linhas — a quantidade exata de `\baselineskip` cola é calculada usando o mecanismo discutido abaixo;
* **`\lineskip`** cola (vermelha) a ser usada no segundo parágrafo — devido à caixa baixa contida na penúltima linha;
* **`\parfillskip`** cola (verde-escuro) colocada no fim da última linha em cada parágrafo.

![](/files/448b3979f5309805ce54b0167e04a752ef2a0dd8)

### Lidar com linhas mais profundas (ou mais altas) (caixas)

Como mostrado pelos gráficos no [secção anterior](#paragraph-structure), um parágrafo composto é uma pilha vertical de “caixas”, separadas por algum espaço em branco, a que o TeX chama “cola”. À medida que o parágrafo é processado, e as linhas individuais (caixas) são empilhadas, a lista vertical (pilha) cresce numa direção *para baixo* direção, em direção ao fundo da página. Embora o TeX/LaTeX tentem garantir que as linhas do parágrafo sejam empilhadas com as linhas de base separadas por uma distância constante de `\baselineskip`, nem sempre é possível conseguir isso porque certas linhas podem ter uma altura ou profundidade superiores ao habitual.

A altura e a profundidade de cada linha do parágrafo são determinadas pela distância máxima a que o conteúdo dessa linha se estende acima ou abaixo da linha de base; consequentemente, parágrafos que contenham material com uma altura ou profundidade relativamente grande, como matemática em linha ou gráficos, são suscetíveis de produzir linhas individuais com alturas e/ou profundidades correspondentemente grandes. Para tais linhas, o TeX/LaTeX pode ser incapaz de as empilhar de modo que as suas linhas de base fiquem separadas das outras linhas pela `\baselineskip` quantidade. Claramente, o TeX/LaTeX precisam de um “mecanismo de recurso” para lidar com tais linhas, calculando *calculando* uma quantidade adequada de espaço a inserir entre cada par de linhas afetado por grandes alturas e/ou profundidades.

#### \lineskip e \lineskiplimit (primitivas do TeX)

Esse mecanismo de recurso envolve os comandos de parâmetro `\lineskip` e `\lineskiplimit` juntamente com um terceiro parâmetro chamado `\prevdepth`. Os leitores interessados em mais detalhes podem avançar para a secção do artigo [*Como o espaço (cola) entre linhas de parágrafo é calculado*](#how-the-space-glue-between-paragraph-lines-is-calculated).

O projeto de exemplo abaixo compõe um único parágrafo cuja última linha tem uma profundidade relativamente grande devido a uma caixa de texto deslocada (`\hbox`). O parágrafo é composto usando estas definições:

```latex
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
```

Use a ligação abaixo do código seguinte para abrir um projeto Overleaf:

```latex
\documentclass{article}
% Use um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
% Definir alguns parâmetros importantes
\setlength{\baselineskip}{12pt}
\setlength{\lineskip}{3.5pt}
\setlength{\lineskiplimit}{2pt}
\setlength{\parindent}{20pt}
% Ficheiro de entrada que define \testpar
\input testpar.tex
\title{Um parágrafo de exemplo para lineskip}
\begin{document}
\testpar % Uma macro criada no projeto Overleaf
\end{document}
```

&#x20;[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%25+Use+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D8cm%5D%7Bgeometry%7D%0A%25+Set+some+important+parameters%0A%5Csetlength%7B%5Cbaselineskip%7D%7B12pt%7D%0A%5Csetlength%7B%5Clineskip%7D%7B3.5pt%7D%0A%5Csetlength%7B%5Clineskiplimit%7D%7B2pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B20pt%7D%0A%25+Input+file+defining+%5Ctestpar+%0A%5Cinput+testpar.tex%0A%5Ctitle%7BA+sample+paragraph+for+lineskip%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctestpar+%25+A+macro+created+in+the+Overleaf+project%0A%5Cend%7Bdocument%7D\&snip_name\[]=testpar.tex\&snip\[]=%5Cnewcommand%7B%5Ctestpar%7D%7B%5CTeX%7B%7D+uses+the+name+%60%60glue%27%27+to+describe+%60%60flexible+white+space%27%27+used+to+separate+any+typeset+item+which+can+appear+on+the+page.+For+example%2C+individual+words%2C+and+whole+lines%2C+within+a+typeset+paragraph+are+seperated+by+%60%60glue%27%27.+%5CTeX%7B%7D+engines+identify+%28give+a+name+to%29+different+types+of+glue+according+to+where+it+is+being+used.+For+example%2C+each+line+is+separated+by+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue+or%2C+occasionally%2C+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue%2C+depending+on+%5CTeX%27s+calculations.+Let%27s+trigger+use+of+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+by+adding+an+%5Ctexttt%7B%5Cstring%5Chbox%7D+which+has+a+large+depth+due+to+the+%5Ctexttt%7B%5Cstring%5Clower%7D+command%3B+for+example%2C+the+box%0A+%5Clower5pt%5Chbox%7BLOW+BOX%7D+will+cause+%5CTeX%7B%7D+to+insert+%5Ctexttt%7B%5Cstring%5Clineskip%7D+glue+instead+of+%5Ctexttt%7B%5Cstring%5Cbaselineskip%7D+glue.%5Cpar%7D\&main_document=main.tex)

Este exemplo produz a seguinte saída:

![Exemplo para demonstrar a cola \lineskip](/files/8c4ba00609e32c3157c80d3a96f0a1ee3cbb0479)

O gráfico seguinte usa uma versão anotada do parágrafo produzido pelo projeto Overleaf anterior. Aqui, ampliamos para nos concentrarmos na última linha do parágrafo, indicando o uso de `\lineskip` cola (mostrada a vermelho) causada pela profundidade da caixa de texto deslocada:

![Imagem que mostra a cola \lineskip do TeX](/files/dc393f07af8eaabad3f83113a35af7a70db62472)

A linha final do texto do parágrafo tem uma profundidade superior ao habitual, impedindo o TeX de manter a distância constante de linha de base a linha de base especificada pelo valor `\baselineskip` (12pt). Como indicado pelas setas no lado direito do gráfico, o TeX/LaTeX tentam garantir uma distância fixa (12pt) entre pares de linhas — o valor de `\baselineskip`. Contudo, para o último par de linhas, o TeX separou-as por uma quantidade superior a 12pt e usa o valor de `\lineskip` para a cola interlinha em vez de um valor calculado usando `\baselineskip`.

As secções seguintes exploram e explicam os detalhes dos cálculos do TeX para os valores de cola interlinha.

### Como o espaço (cola) entre linhas de parágrafo é calculado

Para os propósitos atuais, vamos *muito brevemente* mencionar o processo de construção de páginas do TeX, embora de forma muito simplificada! Assim que o TeX termina de compor um parágrafo, ao concluir a hifenização e determinar as quebras de linha, pode pensar-se nesses dados do parágrafo como estando armazenados numa localização temporária de memória. O TeX precisa então de mover esses dados do parágrafo, linha por linha, para uma nova localização de memória que armazena material destinado à página de saída atual.

Quando o TeX move os dados do parágrafo, linha por linha, está, na prática, a construir uma pilha vertical de linhas (caixas TeX) que cresce *para baixo* em direção ao fundo da página. À medida que move as linhas do parágrafo para a página atual, o TeX tenta garantir que essas linhas fiquem espaçadas igualmente, tendo um espaçamento vertical consistente (linha de base a linha de base) igual ao valor `\baselineskip`. Quando uma nova linha é transferida para a página atual, o motor TeX regista temporariamente a *profundidade* porque será usada para calcular a quantidade de cola interlinha (espaço em branco) entre essa linha e a linha colocada depois dela.

#### Cálculos do tamanho da cola

Comecemos por resumir as funcionalidades de espaçamento interlinha fornecidas pelos motores TeX:

* manter uma distância constante entre linhas de base, uma distância igual a `\baselineskip`;
* fornecer espaçamento para quaisquer linhas com uma altura ou profundidade relativamente grandes;
* uma capacidade para desligar a inserção de cola interlinha — automaticamente ou sob controlo do utilizador. Por exemplo:
  * Os motores TeX desativam automaticamente a inserção de cola interlinha após uma regra em modo vertical;
  * as macros `\offinterlineskip` e `\nointerlineskip` permitem aos utilizadores desligar temporariamente a inserção de cola interlinha — essas macros têm efeitos diferentes, como veremos abaixo.

A decisão sobre se deve adicionar cola interlinha e, em caso afirmativo, quanta e de que tipo, é a seguinte:

* Deve ser adicionada cola interlinha? O TeX decide isto testando se a *profundidade da última linha adicionada* à lista é inferior ao valor especial de `–1000pt` (pontos). Note que `–1000pt` é um valor “sentinela” arbitrário usado internamente pelos motores TeX.
  * **Nota**: O valor de “profundidade da última linha adicionada”, que o TeX regista internamente, também é conhecido como “profundidade anterior”. Os motores TeX fornecem o comando de parâmetro `\prevdepth`— que, em certas circunstâncias, pode ser usado para *obter* ou *set* o valor de “profundidade anterior”. A macro `\nointerlineskip` faz uso de `\prevdepth`.
* O TeX testa se `a profundidade da linha anterior é maior do que –1000pt`?
  * ***Sim, é*** (é necessário adicionar cola):
    * calcular o valor Δ, onde Δ = \baselineskip – (profundidade da linha anterior) – (altura da linha seguinte)
    * comparar Δ com o valor de `\lineskiplimit`, um parâmetro usado para definir a distância mínima aceitável entre duas linhas, medida pela distância entre a base da linha superior e o topo da linha inferior.
    * Se Δ < `\lineskiplimit`:
      * as linhas estão demasiado próximas, por isso insira o espaçamento mínimo aceitável que é `\lineskip`
    * Se Δ >= `\lineskiplimit`:
      * as linhas não estão demasiado próximas, por isso use Δ como a quantidade de cola a inserir
  * ***Não, não é*** (não adicionar cola):
    * Adicionar a linha seguinte (caixa) sem inserir qualquer cola

O gráfico seguinte resume o processo de cola interlinha:

![Como o TeX determina os valores de cola interlinha](/files/e123b8a0eeb0fbd1ee78560aa10ffa437b90a4e0)

### Um exemplo de cálculos de cola interlinha

No exemplo seguinte, assumimos que o TeX/LaTeX está a usar os seguintes valores de parâmetros de comando:

```latex
\baselineskip=12pt
\lineskip=3.5pt
\lineskiplimit=2pt
```

Vamos analisar o cálculo da cola interlinha para as duas primeiras linhas deste parágrafo:

![OLV2glue-calcs-step0.png](/files/42c8301a994ad2653a6f5bc579ed7aee16785029)

Na imagem seguinte, o motor TeX processou a primeira linha do parágrafo e moveu-a para a lista vertical que está a construir. Mantém o registo da profundidade dessa linha (`d<sub>1</sub>`) que é `2.1528` (pontos):

![OLV2glue-calcs-step1.png](/files/fac927839eee87362618fd34d3a756dc1c55285f)

De seguida, o TeX está pronto para adicionar uma segunda linha à lista que está a construir: essa linha tem uma altura (`h<sub>2</sub>`) que é `6.9444` (pontos) e, incidentalmente, uma profundidade, `d<sub>2</sub>` de `0` (pontos):

![OLV2glue-calcs-step2.png](/files/1aa5038f1b39f7ad965adcf4488114e2f0e4f24b)

Neste ponto, o TeX precisa de calcular a quantidade de espaço (cola, `g<sub>1</sub>`) a inserir entre estas duas linhas:

![OLV2glue-calcs-step3.png](/files/529c5092a89455b5f03489be294b54607e1946bd)

A imagem seguinte mostra os cálculos de cola para este par de linhas:

![OLV2glue-calcs-stepA3.png](/files/494ec889fb8e63ac2e47d501221c6288bdb6fa56)

A imagem final mostra as duas linhas movidas para a página atual com a quantidade calculada de cola interlinha colocada entre elas:

![OLV2glue-calcs-step5.png](/files/e6800bfa3eab5d8f4477a3f0823e097c58f79bce)

### Mais um parâmetro: \prevdepth

Como referido acima, quando o TeX está a criar uma pilha vertical (lista) de caixas, armazena a profundidade da última caixa adicionada a essa lista. Esse valor de profundidade armazenado é conhecido como “profundidade anterior” e pode ser acedido através do comando de parâmetro `\prevdepth`.

O `\prevdepth` o comando pode ser usado ***apenas*** quando o TeX está num modo vertical; isto é, entre parágrafos ou dentro de caixas verticais: `\vbox`, `\vtop` ou `\vcenter` (nota: `\vcenter` as caixas só podem ser usadas em modo matemático).

`\prevdepth` fornece acesso de leitura e escrita ao valor de “profundidade anterior”:

* para aceder em leitura ao valor atual de `\prevdepth` pode escrever:

```latex
\the\prevdepth
```

* para definir o valor atual de `\prevdepth` para `algum valor`, um comprimento em pontos, mm, etc., pode escrever:

```latex
\setlength{\prevdepth}{some value}
```

Se tentar usar \verb`\prevdepth` em circunstâncias para as quais não foi concebido, como dentro de um parágrafo ou dentro de um `\hbox` irá obter um erro

```latex
Uso incorreto de \prevdepth.
```

com informação adicional a indicar que só pode ser usado em modo vertical.

#### Impedir a cola interlinha: \prevdepth e \nointerlineskip

Uma utilização de `\prevdepth` é *impedir* que o TeX faça os cálculos da linha de base usados para adicionar cola interlinha entre itens numa lista vertical, como as linhas de um parágrafo. Usando `\prevdepth` para representar `profundidade da linha anterior` podemos reformular os cálculos da cola (mostrados acima) da seguinte forma:

```latex
se(\prevdepth > –1000pt)
{
     Δ = \baselineskip — \prevdepth — (altura da linha atual)

     se(Δ < \lineskiplimit)
       cola interlinha = \lineskip
     senão
       cola interlinha = Δ
}
senão
{
     Empilhe a caixa sem adicionar
     qualquer cola interlinha
}
```

Internamente, os motores TeX reconhecem um chamado valor “sentinela” de `\prevdepth` que pode ser usado para desativar o cálculo e a adição de cola interlinha. Esse valor sentinela é `–1000pt`, que pode ser visto na primeira linha do pseudocódigo acima:

```latex
se(\prevdepth > –1000pt)
```

O TeX não adicionará cola interlinha a menos que `\prevdepth` seja maior do que `–1000pt`— o que fornece o mecanismo usado pela `\nointerlineskip` macro para impedir que cola de linha de base seja adicionada entre o próximo par de caixas numa lista vertical.

`\nointerlineskip` tem uma definição equivalente a:

```latex
\def\nointerlineskip{
\prevdepth–1000pt
}
```

Note que `\nointerlineskip` fornece uma *desativação pontual* dos cálculos de cola interlinha porque o valor de `\prevdepth` é continuamente atualizado à medida que novas caixas são adicionadas à lista vertical atual, como demonstrado no exemplo seguinte:

```latex
\noindent As seguintes \verb|\hbox|es são processadas quando \TeX{} está no chamado \textit{modo vertical externo}. Após o processamento (composição), estas caixas são anexadas à página atual e empilhadas verticalmente com cola interlinha inserida entre elas:

\hbox{j}
\hbox{p}
\hbox{g}

Agora, imediatamente depois da caixa \verb|\hbox{j}|, definimos \verb|\prevdepth| para \texttt{-1000pt}, o que impede que cola interlinha seja colocada entre as caixas \verb|\hbox{j}| e \verb|\hbox{p}|:

\hbox{j}\setlength{\prevdepth}{-1000pt}
\hbox{p}
\hbox{g}

Observe que a cola interlinha \textit{é} colocada entre as caixas \verb|\hbox{p}| e \verb|\hbox{g}| porque o valor de \verb|\prevdepth| é atualizado depois de \verb|\hbox{p}| ser processada e adicionada à lista: o valor de \verb|\prevdepth| torna-se a profundidade da caixa \verb|\hbox{p}|. Quando \verb|\hbox{g}| é adicionada à lista vertical, o valor de \verb|\prevdepth| já não é \texttt{-1000pt}; consequentemente, a cola interlinha pode agora ser adicionada.
```

&#x20;[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One-shot+use+of+nointerlineskip\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Choose+a+conveniently+small+page+size%0A%5Cusepackage%5Bpaperheight%3D16cm%2Cpaperwidth%3D12cm%2Ctextwidth%3D10cm%5D%7Bgeometry%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cbaselineskip%7D%7B14pt%7D%0A%5Csetlength%7B%5Cparskip%7D%7B1pt%7D%0A%5Csetlength%7B%5Cparindent%7D%7B0pt%7D%0A%25+A+convenience+macro+to+typeset+%5Cprevdepth+in+an+%5Chbox%2C+although+TeX+has+to+be%0A%25+in+a+vertical+mode+when+this+macro+is+used.%0A%5Cnoindent+The+following+%5Cverb%7C%5Chbox%7Ces+are+processed+when+%5CTeX%7B%7D+is+in+so-called+%5Ctextit%7Bouter+vertical+mode%7D.+After+processing+%28typesetting%29%2C+these+boxes+are+appended+to+the+current+page+and+stacked+vertically+with+interline+glue+inserted+between+them%3A%0A%0A%5Chbox%7Bj%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0ANow%2C+immediately+after+after+the+box+%5Cverb%7C%5Chbox%7Bj%7D%7C%2C+we+set+%5Cverb%7C%5Cprevdepth%7C+to+%5Ctexttt%7B-1000pt%7D+which+prevents+interline+glue+being+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bj%7D%7C+and+%5Cverb%7C%5Chbox%7Bp%7D%7C%3A+%0A%0A%5Chbox%7Bj%7D%5Csetlength%7B%5Cprevdepth%7D%7B-1000pt%7D%0A%5Chbox%7Bp%7D%0A%5Chbox%7Bg%7D%0A%0AObserve+that+interline+glue+%5Ctextit%7Bis%7D+placed+between+the+boxes+%5Cverb%7C%5Chbox%7Bp%7D%7C+and+%5Cverb%7C%5Chbox%7Bg%7D%7C+because+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+updated+after+%5Cverb%7C%5Chbox%7Bp%7D%7C+is+processed+and+added+to+the+list%3A+the+value+of+%5Cverb%7C%5Cprevdepth%7C+becomes+the+depth+of+the+box+%5Cverb%7C%5Chbox%7Bp%7D%7C.+When+%5Cverb%7C%5Chbox%7Bg%7D%7C+is+added+to+the+vertical+list+the+value+of+%5Cverb%7C%5Cprevdepth%7C+is+no+longer+%5Ctexttt%7B-1000pt%7D%3B+consequently%2C+interline+glue+can+now+be+added.%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo a demonstrar o parâmetro \prevdepth do TeX](/files/9e923f51b5d13daed72eb7d03405d6b0f5fa8de4)

#### Cola interlinha de tamanho zero: \offinterlineskip

É possível remover todo o espaçamento interlinha através do comando de macro `\nointerlineskip`, que tem uma definição equivalente a:

```latex
\def\offinterlineskip{%
\baselineskip=-1000pt
\lineskip=0pt
\lineskiplimit=\maxdimen
}
```

Note que `\maxdimen` é `16383.99998pt`, o maior comprimento que o TeX pode usar.

O gráfico seguinte mostra os cálculos principais de cola interlinha e os vários valores de parâmetros usados pela macro `\nointerlineskip`:

![offinterlineskip](/files/4c4d181792bb6f60c718456cba73c0cac7ec0ceb)

O gráfico seguinte mostra o fragmento de pseudocódigo resultante da substituição dos `\nointerlineskip` valores da macro nos cálculos de cola. Demonstra como a `\nointerlineskip` macro funciona definindo valores para `\baselineskip` e `\lineskiplimit` de modo que a cola interlinha seja sempre `\lineskip` cola de `0pt`.

![offinterlineskip](/files/a3d02299dd441f131b6cfee130e8a12c2fe81e26)

#### \offinterlineskip e \lineskip não nulo

O `\nointerlineskip` macro define `\lineskip` para zero, mas, como o seguinte projeto Overleaf demonstra, pode combinar `\nointerlineskip` com valores não nulos de `\lineskip` para obter efeitos de espaçamento entre linhas.

```latex
\documentclass{article}
\title{Demonstrando lineskip não nulo}
% Escolha um tamanho de página convenientemente pequeno
\usepackage[paperheight=16cm,paperwidth=12cm,textwidth=8cm]{geometry}
\begin{document}

\offinterlineskip % Isto define \lineskip para 0pt

\setlength{\lineskip}{5pt} % Queremos \lineskip não nulo

\input text.tex % Um ficheiro TeX gerado que define as macros
% \mytextA e \mytextB, cada uma das quais compõe um parágrafo

\mytextA % Compõe um parágrafo

% Agora altere \lineskip para um valor de cola flexível e componha
% outro parágrafo

\setlength{\lineskip}{5pt plus5pt minus5pt}

\mytextA

\end{document}
```

&#x20;Abra este exemplo como um projeto LaTeX do Overleaf

Este exemplo gera a seguinte saída:

![Demonstrar a macro \offinterlineskip do LaTeX](/files/91d404ee8b2ca9ed361ff656722d080f55d3cb67)

Pode localizar o(s) efeito(s) de usar `\offinterlineskip` e `\lineskip` (e outros comandos de espaçamento) envolvendo-os num grupo:

```latex
\begingroup
\offinterlineskip
\setlength{\lineskip}{5pt}
...o(s) seu(s) parágrafo(s) aqui

\endgroup
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/formatacao/04-articles-how-to-change-paragraph-spacing-in-latex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
