Ajustar a geometria de papel correta no(La)TeX

Se sua saída estiver do tamanho errado, e você já tiver verificado que não são os to the cuidados do Adobe Reader que estão causando isto, é provável que seu sistema (La)TeX esteja produzindo uma saída com a especificação de tamanho de papel errada. Tamanhos de papel podem ser um aborrecimento: eles são como água estagnada — Knuth parece não ter considerado o tamanho do papel como algo que o mecanismo do TeX precisasse conhecer. O resultado é que não há um comando DVI para especificar o papel no qual o documento deve ser impresso, o que levou a uma dicotomia em que as macros moldam o texto de acordo com as necessidades do tamanho de papel escolhido pelo autor e a escolha dos drivers de dispositivo ocorre independentemente das ideias das macros.

Na prática, é comum que os pacotes de macro (como o Plain TeX e o LaTeX) presumam, por padrão, que o tamanho de papel seja o “letter” (Americano); e, como a maioria das distribuições atuais tem sua origem na Europa, os drivers normalmente assumem que o tamanho de papel é o ISO “A4”.

Isto é (evidentemente) bem insatisfatório. Os usuários podem, muito facilmente, selecionar um tamanho de papel diferente para seu documento (o LaTeX atual oferece uma variedade de tamanhos como opções nas classes padrão). Entretanto, o usuário também tem que ter certeza de que cada vez que o xdvi, o dvips (ou o que for) rodar, ele use o tamanho de papel para o qual o documento foi elaborado.

O tamanho de papel padrão para os drivers DVI pode ser alterado por um comando de gerenciamento de distribuição (o texconfig para texlive, e a aplicação Options para MiKTeX), mas isso ainda não é a solução para as pessoas que estejam usando o tipo de papel “errado” por algum motivo.

Um problema diferente surge para os usuários do PDFTeX — o formato PDF tem os meios para expressar o tamanho do papel, e o PDFTeX tem as variáveis de sistema \pdfpagewidth e \pdfpageheight, que são gravadas no arquivo PDF de saída. Infelizmente, muito da parte central do software é anterior ao PDFTeX; nem mesmo o PDFLaTeX atribui os valores corretos a essas variáveis, para corresponder ao tamanho de papel especificado em uma opção de \documentclass.

Os drivers de DVI dvips e dvipdfm , e suas extensões (dvipdfmx e xdvipdfmx) definem comandos \special para que o próprio documento especifique seu tamanho de papel; então, nesses casos, assim como quando o PDFTeX esteja sendo usado, o tamanho do papel pode ser programado pelo documento. Os usuários que desejarem, podem, é claro, consultar os manuais dos vários programas para escreverem o código necessário.

Os pacote geometry e zwpagelayout (cuja atribuição principal inclui definir as áreas de impressão das páginas) também reconhecem o tamanho do papel no qual o documento será impresso e podem emitir os comandos necessários para garantir que o tamanho de papel correto seja usado. Se o geometry for usado quando um documento estiver sendo processado pelo PDFLaTeX, ele poderá definir as dimensões necessárias “na saída”. Se o documento está sendo processado pelo LaTeX em um mecanismo TeX ou e-TeX existem opções de pacote que instruem o geometry sobre quais comandos \special devem ser usados. (Observe que as opções serão ignoradas se você estiver usando o PDFLaTeX.)

Então, uma solução para o problema, quando você estiver usando LaTeX, é adicionar

\usepackage[processor-option,...]{geometry}
onde processor-option informa ao pacote o que produzirá sua saída (PostScript ou PDF — o geometry sabe a respeito do dvips e do dvipdfm (dvipdfm também atende à extensão dvipdfmx e xdvipdfmx).

Se você estiver usando PDFLaTeX ou XeTeX, carregue com

\usepackage[program-option,...]{geometry}
onde program-option é pdftex, xetex.

A alternativa, o zwpagelayout requer uma opção de driver:

\usepackage[driver=value,...]{zwpagelayout}
(os ‹valores› permitidos são pdftex, xetex e dvips; o valor padrão é unknown).

Seria desnecessário dizer que as duas “grandes” classes (koma-script and memoir) possuem maneiras próprias de definir o tamanho de papel “certo”.

O pacote typearea é a forma da distribuição Koma-script de fornecer funcionalidade de layout de página. Carregue-o com a opção pagesize e ele garantirá que o papel correto seja selecionado, para saída PDF a partir do PDFLaTeX, e para saída PostScript a partir do LaTeX via dvips.

A Memoir tem as seleções de tamanho de papel das classes padrão (a4paper, letterpaper e assim por diante), mas também permite que o usuário escolha um tamanho de papel arbitrário pela definição dos registros de comprimento \stockheight e \stockwidth. Os comandos \fixdvipslayout (para processamento em LaTeX processing), e \fixpdflayout (para processamento em PDFLaTeX) dá instruções para o processador produzir uma saída que especifique o tamanho de papel necessário.

geometry.sty
geometry
memoir.cls
memoir
typearea.sty
Distributed as part of koma-script
zwpagelayout.sty
zwpagelayout

This answer last edited: 2011-12-12


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