Produção de Livros

Um livro, dois arquivos: o boneco que o autor lê e o miolo que a gráfica imprime

O mesmo livro precisa de um arquivo para o autor ler e de outro para a gráfica imprimir. Uma chave no próprio arquivo liga o modo de impressão. O que muda, e como provar que o digital não mudou.

JonathanJonathan
7 min de leitura1.227 palavras
Capa do artigo: Um livro, dois arquivos: o boneco que o autor lê e o miolo que a gráfica imprime (eBuz, Produção de Livros)

Um livro tem dois leitores técnicos: o autor, que lê na tela, e a máquina da gráfica, que imprime em papel. Eles precisam de arquivos diferentes. O erro é fazê-los em dois projetos separados, que depois divergem.

A nossa solução é um arquivo só, com uma chave. Sem a chave, o arquivo gera o boneco, a versão digital que o autor lê. Com a chave, gera o miolo para a gráfica. O desenho não muda. Mudam os ajustes de impressão.

Este artigo mostra o que muda, como a chave funciona e como provar, com um teste, que ligar o modo de impressão não alterou o digital.

O que é cada um

Boneco é o esboço diagramado do livro, feito para o autor ler. Cada página diz o que ainda falta. Não é o livro: tem o seu próprio nome de arquivo, é marcado como prévia, e a ficha catalográfica sai completa, mas com a marca ‹A PREENCHER› em todo campo sem dado. Campo omitido é registro mentindo, e campo com pendência é registro honesto.

Miolo para a gráfica é o interior do livro, pronto para imprimir. A capa é outro arquivo.

O que muda do digital para a impressão

O modo de impressão de um livro técnico nosso faz estes ajustes. O desenho não muda:

AjusteO que acontece
Sangria de 3 mmA página cresce 6 mm por dimensão e toda margem cresce 3 mm, então a mancha de texto fica onde estava. Painéis e faixas sangram.
Margens espelhadasA margem interna é a da lombada, e a coluna lateral fica sempre do lado de fora.
Capítulo em página ímpar, Parte em página parA quebra nativa do compilador cuida da paridade. A página que sobra vira página de anotações: nenhuma fica em branco.
Folha de rosto e fichaPáginas 1 e 2. Campo que não existe (ISBN, editora, CDD) fica como ‹a definir›.
Colação da fichaO número de páginas é medido no próprio PDF, em duas passadas.
Caderno fechadoO total de páginas termina em múltiplo de 4, com páginas de anotações no fim.
CorTexto e cinzas em K puro, nenhum preto de quatro cores.
PDF/X-1aFechamento com perfil de cor provisório até a gráfica informar o dela. Sem link e sem transparência.
LegibilidadeRodapé e linhas de anotação mais escuros, porque 15% de tinta a 0,45 pontos some no papel.

Num livro técnico de teste nosso, o boneco digital tinha 158 páginas e o miolo para a gráfica, 169. A diferença vem desses ajustes, e o número de páginas do miolo só fica conhecido depois que eles rodam. É por isso que o número precisa ser medido no PDF final.

A chave

O mecanismo central é uma entrada de linha de comando que o próprio arquivo lê:

#let grafica = sys.inputs.at("grafica", default: "0") == "1"
#let sg = if grafica { 3mm } else { 0mm }
#let tinta = if grafica { cmyk(0%, 0%, 0%, 100%) } else { rgb("#1c1c1c") }

Compilando:

typst compile --font-path fontes livro.typ boneco.pdf
typst compile --font-path fontes --input grafica=1 livro.typ miolo-cru.pdf

Sem a chave, grafica é falso, a sangria é zero e a cor é a da tela. Com a chave, tudo que depende de grafica muda de uma vez. Não há dois arquivos para manter: há um arquivo e um interruptor.

A colação em duas passadas

A ficha catalográfica declara o número de páginas, mas esse número só existe depois que o PDF está pronto. A saída é compilar duas vezes. Na primeira, a ficha não sabe o total. Você conta as páginas do PDF e recompila passando o número:

typst compile --font-path fontes --input grafica=1 livro.typ passada1.pdf
n=$(pdfinfo passada1.pdf | awk '/^Pages/{print $2}')
typst compile --font-path fontes --input grafica=1 --input total=$n livro.typ passada2.pdf

No arquivo, a ficha usa o valor recebido:

#let total = sys.inputs.at("total", default: "‹total›")

No nosso teste, as duas passadas deram 13 páginas, e a ficha da segunda passou a declarar "13 p. ;". Sem a segunda passada, ela mostrava a marca ‹total›: ao menos a pendência aparece, e o arquivo não mente. E quando o número de páginas muda entre as passadas, a conferência reprova: a ficha estaria declarando um total errado.

Neste exemplo, 13 não é múltiplo de 4. O fechamento de caderno é outra conferência, em outro passo.

Provar que o digital não mudou

Ao acrescentar o modo de impressão a um arquivo, a pergunta é: o boneco digital continua igual? A resposta se mede. Guarde um PDF de referência do digital, antes da mudança, e compare página a página, em imagem, depois dela:

pdftoppm -r 40 -png referencia.pdf ref
pdftoppm -r 40 -png boneco.pdf novo
for f in ref-*.png; do cmp -s "$f" "${f/ref/novo}" || echo "diferente: $f"; done

No nosso teste, o arquivo com a chave e o arquivo antigo, sem ela, deram 0 páginas diferentes em 16. Na produção, repetimos a conferência contra um boneco de referência de 158 páginas a cada mudança no modelo. O digital segue idêntico, pixel a pixel.

Passo a passo

  1. Escreva o livro uma vez, com as regras de estilo no arquivo principal.
  2. Ligue o modo de impressão pela chave grafica, em tudo que muda: sangria, margens, cor, paridade.
  3. Compile o boneco e entregue ao autor, com as marcas de pendência visíveis.
  4. Compile o miolo em duas passadas, e feche o PDF para a gráfica (veja PDF/X-1a com Ghostscript).
  5. Rode a conferência do miolo, com o checklist de preflight.
  6. Compare o boneco com a referência sempre que mexer no modelo.

O erro que custa caro

Manter dois projetos. Quando o boneco e o miolo são arquivos separados, uma correção entra em um e esquece do outro. Em um livro, isso significa que o autor aprova uma coisa e a gráfica imprime outra. Com uma chave só, a correção vale para os dois, e a comparação com a referência prova que o digital não escorregou.

Quando NÃO usar a chave única

Se a gráfica exigir um arquivo de layout nativo, a chave não resolve, e o caminho é outro. Outro caso: o aplicativo web do Typst talvez não aceite entradas por linha de comando. A documentação consultada descreve o --input só para o compilador local. Nesse caso, fixe o valor da chave dentro do arquivo, com uma cópia para cada modo.

Alternativa sem o nosso ambiente

A ideia de um arquivo com um interruptor vale em qualquer ferramenta que aceite uma variável de entrada. Em programas de layout visual, o equivalente são duas camadas ou dois estilos de página. A conferência de comparação pixel a pixel é feita no PDF final, e por isso independe do programa.

O que o Claude faz hoje, e como fazer sem ele

Hoje o Claude compila os dois modos, roda a colação em duas passadas e compara o digital com a referência. Sem ele, os comandos deste artigo fazem o mesmo trabalho.

Onde entra na operação

O boneco é o passo 6 do procedimento, e o miolo é o passo 15. O guia completo está em Como produzimos o miolo de um livro profissional sem InDesign. O modelo de livro-texto que usa esse mecanismo está em livro-texto científico com coluna de margem, e a regra de sangria em sangria, corte e zona de segurança.

Versões usadas neste artigo: veja a matriz de versões.

Perguntas frequentes

O que é um boneco de livro?

É o esboço diagramado do livro, feito para o autor ler. Cada página diz o que ainda falta, e campos sem dado, como o ISBN, aparecem com uma marca de pendência. Ele não é o livro final.

Boneco e miolo precisam ser dois arquivos diferentes?

Podem ser gerados do mesmo arquivo, com uma chave de entrada que liga o modo de impressão. Assim, uma correção vale para os dois, e o desenho não diverge.

Como a ficha catalográfica sabe o número de páginas?

Compilando em duas passadas. Na primeira, você conta as páginas do PDF. Na segunda, recompila passando o número como entrada. Se o total mudar entre as passadas, a conferência reprova.

Como provar que o modo de impressão não alterou o digital?

Guarde um PDF de referência do digital, compile de novo depois da mudança e compare as páginas como imagem. No nosso teste, 0 páginas diferiram em 16.