Penalidade máxima!

Julho 6, 2008

Uma das coisas mais incompreensíveis para mim são as penalidades possíveis no TeX. Editamos os primeiros livros sem pensar nisso, e quando descobrimos esse recurso, foi pura mágica. Atualmente temos as seguintes regras:


\widowpenalty=9999
\clubpenalty=4000
\brokenpenalty=3000

Inacreditável, mas acabo e descobrir mais uma dessas penalidades máximas! O \hypenpenalty. E há ainda o comando \exhyphenpenalty, que está descrito no exercício 14.6 do TeXbook, que regula a quebra perto de travessões (Bruno, é esse!). Por isso nossos livros estão cheios de hífens! Enfim, vivendo e aprendendo.

Não sei muito bem a razão para os números acima, mas é extremamente importante que os números das penalidades não sejam iguais, porque senão o TeX não saberá para onde correr, pois é preciso escolher entre um hífen, buracos no texto ou viúvas… Ossos do ofício de qualquer tipógrafo.

Lendo o capítulo 14 do TeXbook, topei com um uso curioso do “~”. Estamos todos acostumados a usar o til para evitar o espaço maior depois do ponto, como em “Sr.~Fulano”. Mas o til evita também uma quebra de linha. Logo, se não quisermos que uma linha comece um número, por exemplo, basta colocar o til. Ex: “blabla bla veja a fig.~12.” Não seria legal o 12 aparecer no começo de uma linha, certo

Mas o que é o til?

Uma descoberta incrível que fiz lendo o TeXbook foi o comando \show. Com ele é possível, ao menos em TeX, saber o que são os comandos. Basta digitar “tex” no console e em seguida “\show\blabla”. O programa lhe dirá então a verdadeira essência das coisas. O til, por exemplo, é

jorge@jorge-laptop:~$ tex
This is TeX, Version 3.141592 (Web2C 7.5.6)
**\show~
> ~=macro:
->\penalty \@M \ .
<*> \show~


?

O til é então uma macro, cuja penalidade é \@M.

Outra dica importante. Quando um comando é igual a ele mesmo estamos diante de um comando primitivo do TeX. Veja por exemplo, \vskip.

*\show\vskip10pt
> \vskip=\vskip.
<*> \show\vskip
10pt
?

Acho que estrapolei a questão do til…

Segui o conselho do Roberto Maluhy e comprei o TeXbook. A sensação é a de que agora vamos abrir e ver máquina por dentro. Afinal, o LaTeX é… TeX. Bem, lendo as primeiras páginas percebi que antes dos códigos vêm os conceitos, conceitos BEM básicos (e que não sabia). Vamos lá:

  • escape caracter: É o que vemos no teclado.
  • control sequences: É um comando (\comando), que para funcionar precisa de um espaço. Podemos colar números nele. Ex: \hskip23 é igual a \hskip 23. Assim, quando digitamos \ldots Bla o resultado é …Bla. Erro crasso! Fizemos isso em muitos livros. Saquei isso quando precisei usar uma ligatura \ae e ao digitar qu\ae novum as palavras se colaram (quaenovum). Para termos o espaço é preciso qu\ae\ novum e incluir um espaço para separ a palavra.
  • control symbol. Bom, esse são comandos que podem ser colados a palavras, como \, que gera um espaço fino. Enfim, podemos fazer assim: Bla\,bla e teremos duas palavras separadinhas.