Por que os parâmetros de parágrafo são ignorados?

Quando o TeX está exibindo um texto, ele não o faz palavra por palavra ou linha a linha; a menor unidade que ele formata é o parágrafo. O parágrafo é armazenado em um buffer enquanto é exibido, e não é mais tocado até que o marcador de fim de parágrafo seja processado. É nesse momento que os parâmetros de parágrafo começam a ter efeito; e é por conta dessa sequência que as pessoas cometem erros que fazem com que os parâmetros de parágrafo não funcionem como esperado.

Considere a seguinte sequência do LaTeX:

{\raggedright % declaration for ragged text
Here's text to be ranged left in our output,
but it's the only such paragraph, so we now
end the group.}

Here's more that needn't be ragged...
O TeX vai abrir um grupo e impor os parâmetros de alinhamento (alinhado à esquerda e irregular à direita) dentro desse grupo; depois, ele vai salvar algumas frases e fechar o grupo (restaurando, assim, os valores anteriores dos parâmetros que o \raggedright definiram). Depois, o TeX encontra uma linha em branco, que ele sabe tratar como uma marca de \par , e, então, ele compõe as duas frases; mas, como o grupo agora está fechado, as definições dos parâmetros foram perdidas e o parágrafo será composto normalmente.

A solução é simples: feche o parágrafo dentro do grupo para que os parâmetros não sofram mudanças. Uma forma adequada de fazer isso é substituir as três últimas linhas acima por:

end the group.\par}
Here's more that needn't be ragged...
Dessa forma, o parágrafo é completado enquanto os parâmetros do \raggedright ainda estão em vigor dentro o grupo.

Outra alternativa é definir um ambiente que faça o trabalho adequado para você. Para o exemplo acima, o LaTeX já definiu um apropriado:

\begin{flushleft}
Here's text to be ranged left...
\end{flushleft}

Na verdade, há vários parâmetros para os quais o TeX mantém apenas um valor por parágrafo. Um muito aborrecido é o conjunto de traduções de maiúsculas/minúsculas, que (muito estranhamente) restringe a hifenização de textos multilíngues. Outro que causa confusão com frequência é o \baselineskip.


Do you have any question? Ask on: latex.net.br - we love qood questions!