Pular para o conteúdo principal

Capítulo 3.5 · Parte II · O ofício

Configuração: títulos

Os padrões dos títulos, as sobrescritas de cada nível, as quebras de página antes de um título, as aberturas de capítulo na largura da página e os números por extenso

Atualizado 2026-10-1634 minNo capítulo 3 Configuraçãoenescadefritptzhjaar

Em poucas palavras

Esta página reúne os ajustes dos títulos. Você define uma fonte, um tamanho e uma cor para todos eles, e muda qualquer um desses valores para um só nível, como os títulos de capítulo. Decide se um título começa uma página nova e se essa página deve ficar à esquerda ou à direita. Um título de capítulo pode abrir ocupando toda a largura da página, com um design próprio. Os números dos títulos podem ser escritos por extenso, como em Capítulo três.

#Títulos

A propriedade headings controla a tipografia de todos os níveis de título (H1–H6). Você pode definir padrões gerais que valem para todos os níveis e depois sobrescrever propriedades específicas por nível.

#Padrões gerais

PropriedadeTipoPadrãoDescrição
fontFamilystring'Open Sans'Família tipográfica de todos os títulos.
lineHeightDimension1.2 emEntrelinha dos títulos. Mais apertada que a do texto do corpo.
colorColorValueCor principal (#295AA3)Cor do texto dos títulos. Vinculada à entrada main-color da paleta padrão, então trocar a cor da paleta muda a cor de todos os títulos.
textAlign'left' | 'justify' | 'center' | 'right' | 'start' | 'end''left'Alinhamento de todos os níveis de título (não há valor por nível): alinhado à esquerda, justificado, centralizado ou alinhado à direita. Um título justificado põe a última linha alinhada à esquerda, como um parágrafo, então um título de uma linha fica como 'left'. Canvas, HTML e PDF posicionam as linhas da mesma forma, inclusive o prefixo numérico. A abertura padrão de um título span: 'page' sem design avançado também segue este valor (justificado fica alinhado à esquerda); um design avançado alinha os próprios elementos de texto com o align deles.
fontWeightnumber700Peso da fonte dos títulos (100–900).
marginTopDimension1.5 emEspaço acima dos títulos. É retirado em um título que abre uma coluna (veja columnHeadSpace).
marginBottomDimension0.5 emEspaço abaixo dos títulos.
keepWithNextbooleantrueCom true, um título nunca é o último elemento de uma coluna ou página. Se o bloco seguinte não tiver espaço para pelo menos bodyText.widowMinLines linhas depois do título (ou uma linha quando bodyText.avoidWidows é false), o título é levado adiante para continuar junto do seu texto. Interage com bodyText.keepColonWithList: se essa regra precisar empurrar inteiro um parágrafo com dois-pontos, os títulos que o antecedem no fim da coluna vão junto em vez de ficarem isolados.
keepWithNextSpreadbooleanfalseCom keepWithNext, ainda permite que um título feche a última coluna de texto de uma página par, já que o texto dele abre então a página ímpar em frente, da mesma página dupla (JLReq §4.1.7). As páginas duplas são a página 1 sozinha, depois 2–3, 4–5…, contadas com pageIndexOffset, em livros encadernados pela esquerda e pela direita. Desde o postext 1.16.
keepWithNextSplit'rules' | 'fill''rules'Como o parágrafo sob um título se divide quando o título acaba no pé de uma coluna e empurrar o parágrafo inteiro deixaria o título para trás. 'rules': o máximo de linhas que cabem, desde que fiquem pelo menos bodyText.widowMinLines sob o título e pelo menos bodyText.orphanMinLines passem para a coluna seguinte; quando nenhuma divisão respeita as duas, o título segue com o parágrafo, e o equilíbrio de colunas preenche o espaço que ele deixa. 'fill': tantas linhas quantas couberem, por menos que passem adiante, então um parágrafo de quatro linhas com espaço para três se divide em 3 + 1. Até o postext 1.4 todo título se dividia assim, e as configurações salvas antes do configVersion 8 mantêm esse comportamento (veja Pacotes gravados pelo postext 1.4 ou anterior). Com avoidWidows ou avoidOrphans desligado, esse lado da regra deixa de valer.
snapToGridbooleantrueSe o fluxo volta a se ajustar à grade de linhas de base sob um título. Com true, o marginBottom do título é arredondado para cima até linhas inteiras da grade; com false, a margem exata é mantida e o texto sob o título pode ficar fora da grade até o próximo ponto de ajuste (o fim de uma lista, a cauda de um :::paragraphs, uma fórmula em destaque), como muitos livros fazem com uma linha e meia sob um título. Um nível (levels[].snapToGrid) ou um estilo de título pode definir o próprio valor; este é o que eles herdam.
columnHeadSpace'none' | 'remainder''none'O que um título que se ajusta à grade conserva do espaço acima dele quando abre uma coluna, no alto da página ou sob uma figura ou tabela que encabeça a coluna. 'none': o espaço todo é retirado e o título fica na primeira linha da coluna, nivelado com a coluna vizinha; o ajuste à grade põe então sob o título a fração de linha de que ele precisa, de modo que o texto pode ficar mais longe dele do que depois de um parágrafo. 'remainder': o espaço é retirado só em linhas inteiras da grade e a fração de linha que sobra fica acima do título, de modo que o texto começa sob ele à distância em que começa depois de um parágrafo; o título começa um pouco abaixo do alto da coluna e nenhuma linha de texto se move. Convém a um livro em uma coluna, onde nenhuma cabeça de coluna vizinha mostra a diferença. Qualquer outro valor é lido como 'none'. Não se aplica sob uma abertura na largura da página nem a um título span: 'page', com lineSpan, oculto ou com design (advancedDesign). Desde o postext 1.28.
inlineMarksbooleantrueSe um título lê as marcas na linha como um parágrafo lê: italic, bold, ^superscript^, ~subscript~, :smallcaps[…] e links. Um trecho em itálico inverte a inclinação do título, então sai em redondo num título em itálico; um trecho em negrito usa bodyText.boldFontWeight, ou o peso do próprio título quando este for mais pesado. O sumário também mostra os trechos em negrito e itálico; os cabeços e os marcadores do PDF imprimem só o texto. Com false, os marcadores são descartados e as palavras saem no estilo do próprio título, como até o postext 1.4. A abertura padrão de um título span: 'page' sem design também compõe os trechos em negrito, itálico, sobrescrito e subscrito; um design de título (uma faixa de abertura com design ou um advancedDesign na coluna) imprime como texto simples de qualquer forma, a não ser que o elemento de texto leia marcas na linha (inlineMarks: true): aí mantém os trechos em negrito, itálico, sobrescrito e subscrito do título (desde o postext 1.19). As configurações salvas antes disso cujos títulos têm marcas são lidas com false (veja Pacotes gravados pelo postext 1.4 ou anterior).
balancingColumnBalancingConfigativadoEquilíbrio vertical de colunas: espaço extra acima dos títulos para que as colunas terminem alinhadas com o pé da página. Veja abaixo.

Títulos centralizados para poemas ou os atos de uma peça, sem posição de design:

headings: {
  textAlign: 'center',
  levels: [{ level: 2, textTransform: 'uppercase' }],
}

Passar um objeto headings mantém todo padrão de nível que você não repetir, inclusive a quebra de página do H1 (veja Sobrescritas por nível).

#Sobrescritas por nível

Cada nível de título pode sobrescrever os padrões gerais pelo array levels. Só fontSize (além do breakBefore do H1, comentado abaixo) muda por padrão; todas as outras propriedades herdam dos ajustes gerais de título.

NívelCorpo padrãobreakBefore padrão
H118 pt{ enabled: true, parity: 'always-odd' }
H215 pt{ enabled: false, parity: 'any' }
H312 pt{ enabled: false, parity: 'any' }
H410 pt{ enabled: false, parity: 'any' }
H59 pt{ enabled: false, parity: 'any' }
H68 pt{ enabled: false, parity: 'any' }

O padrão do H1 reproduz a diagramação de capítulos de um livro: todo título de nível superior abre numa página nova à direita (ímpar), com uma página em branco separadora obrigatória depois do capítulo anterior. Sobrescreva-o em levels[0].breakBefore se o seu documento for mais simples que um livro.

O breakBefore de um nível é mesclado campo a campo sobre esse padrão, e um objeto headings que não o menciona o mantém. { parity: 'odd' } no H1 mantém a quebra e muda só a paridade; { enabled: false } deixa os capítulos seguirem em sequência:

headings: {
  fontFamily: 'Merriweather',                               // o H1 continua quebrando para um recto novo (always-odd)
  levels: [{ level: 1, breakBefore: { parity: 'odd' } }],    // …ou: um recto, sem página em branco obrigatória
}
 
headings: { levels: [{ level: 1, breakBefore: { enabled: false } }] } // capítulos em sequência

Mudou no postext 1.5. Até o postext 1.4, qualquer objeto headings desligava a quebra do H1 a menos que levels[0].breakBefore fosse repetido, e um breakBefore parcial completava o campo que faltava com o padrão sem quebra. Por isso, uma configuração escrita em código para a 1.4 com um objeto headings e sem quebra no H1 agora abre todo capítulo num recto novo, com versos em branco onde for preciso. Para manter os capítulos em sequência, dê um campo à entrada H1 de levels:

headings: { fontFamily: 'Merriweather', levels: [{ level: 1, breakBefore: { enabled: false } }] } // como a 1.4 diagramava

Onde a configuração ficou salva, o motor consegue perceber e faz isso por você: o Sandbox, nos livros e configurações que salvou na época (veja Sandbox → Persistência), e openBundle / readBundle, num pacote .postext gravado pelo postext 1.4 ou anterior (veja Pacotes gravados pelo postext 1.4 ou anterior). Uma configuração que você mesmo salvou pode passar por migrateConfig(config) de postext/bundle, que grava as quebras como a 1.4 as diagramava (pinLegacyHeadingBreaks): enabled: false num H1 que não tinha quebra, e parity: 'any' ao lado de um enabled: true que não indicava paridade, no H1 e nos estilos de título. Ele também fixa o tamanho das fórmulas, o espaço em volta das figuras na linha (também nos boxes), as marcas na linha dos títulos, o tamanho das capitulares, o espaço sob uma linha com dois-pontos que introduz uma lista, as linhas que o corte de um boxe deixa de um parágrafo ou de um item de lista, as quebras de linha em travessões, a quebra linha a linha do texto alinhado à esquerda, a divisão de um parágrafo sob um título, as quebras de linha no hífen de uma palavra composta e o espaço sob os contêineres :::paragraphs, como a 1.4 os compunha. Passe o markdown do livro como terceiro argumento, { content }, e ele deixa de fora a fixação das fórmulas quando o texto não tem nenhum $, as das lacunas quando nenhuma linha insere um recurso (a da lacuna nos boxes quando nenhuma o faz dentro de um boxe), a das marcas quando nenhum título tem marcas, a dos dois-pontos quando nenhuma lista vem depois de uma linha terminada em dois-pontos, a do corte de boxes quando o texto não abre nenhum :::callout, a dos travessões quando nenhum travessão está colado entre palavras, a da divisão sob título quando o texto não tem títulos, a dos contêineres quando o texto não abre nenhum contêiner :::paragraphs, e a das palavras compostas quando nenhum hífen está entre duas letras; a da quebra do texto alinhado à esquerda só vai para uma configuração que deixa algum texto corrido alinhado à esquerda, e a dos contêineres só para uma que declara um estilo de parágrafo (veja Pacotes gravados pelo postext 1.4 ou anterior). Para fixar só as quebras, chame pinLegacyHeadingBreaks(config).

As sobrescritas por nível aceitam as mesmas propriedades que os padrões gerais (fontSize, lineHeight, fontFamily, color, fontWeight, marginTop, marginBottom, snapToGrid) e mais estes campos exclusivos de nível (um estilo de título também os aceita):

PropriedadeTipoPadrãoDescrição
italicbooleanfalseCompõe o título em itálico. Aplicado por cima de fontWeight.
textTransform'none' | 'uppercase''none'Põe o título em maiúsculas (um prefixo de numeração fica como foi escrito, assim como um chip e o rótulo de um :ref nele). Preserva o comprimento para que o mapa de origem do editor continue 1:1: caracteres cuja forma maiúscula se expande (ß → SS) ficam como estão. O título transformado também alimenta o marcador {titleText} dos designs avançados e das aberturas de capítulo. Os marcadores do PDF mantêm o título como foi escrito (Author contributions, não AUTHOR CONTRIBUTIONS), do jeito que o text-transform do CSS não mexe no próprio texto (até o postext 1.4 eles pegavam as maiúsculas).
letterSpacingDimension0Tracking depois de cada glifo do título, inclusive os espaços e o prefixo de numeração, como o letter-spacing do CSS. Um valor positivo espaça as letras (maiúsculas compostas com textTransform: 'uppercase' costumam pedir um pouco: { value: 0.12, unit: 'em' }), um negativo aperta um corpo de destaque. Um valor em em é relativo ao fontSize do nível. As linhas do título são medidas com ele, então quebram onde termina o texto espaçado, e canvas, HTML e PDF o pintam igual. O tracking nunca muda os glifos: as ligaduras da fonte (fi, fl) ficam, em todas as saídas. Uma linha centralizada ou alinhada à direita é posicionada pelas letras: o tracking depois do último glifo fica de fora, como no texto de design, para que um título centralizado se alinhe com a abertura padrão de um título span: 'page'. Um nível desenhado pelo seu advancedDesign o ignora, como os outros campos tipográficos daqui: cada elemento de texto do design tem o próprio letterSpacing. Um estilo de título também o define, para os títulos que o usam. Até o postext 1.4 os títulos não tinham tracking, e a chave era descartada sem aviso.
lineSpannumbernão definidoLinhas ocupadas (行取り, JLReq §4.1.6): o título é composto numa faixa com esse número de linhas do corpo, com os caracteres centralizados nela, no lugar de marginTop e marginBottom; 3 é um título 3行取り. A faixa começa numa linha do corpo quando o título se ajusta à grade, e o texto depois dele continua na grade, nos dois modos de escrita e com cjk.grid; um título cujas linhas precisem de mais ocupa o número inteiro seguinte. O centro é o dos caracteres (a linha de base menos o centro ideográfico da fonte), como a JLReq o mede, não o das caixas de linha. Não se aplica a aberturas (span: 'page'), títulos desenhados por um advancedDesign, títulos ocultos nem títulos dentro de boxes. Um estilo de título pode definir 0 para desligar o do seu nível. Desde o postext 1.16.
indentDimension0Recuo do título a partir do início da linha (字下げ), sendo em o corpo do texto, como os livros japoneses contam os recuos de títulos em caracteres do corpo (JLReq §4.1.3): { value: 6, unit: 'em' } é 6字下げ qualquer que seja o corpo do título. A medida diminui na mesma quantidade, e um título centralizado se centraliza no restante. Desde o postext 1.16.
firstLineIndentDimension0Recuo apenas da primeira linha do título, contado a partir de indent e, como ele, em ems do corpo: as linhas seguintes de um título longo começam em indent (no início da linha quando não está definido), como a GB/T 9704 compõe todos os níveis de título dois caracteres para dentro com as linhas seguintes na margem: { value: 2, unit: 'em' }. Com cjk.grid ativado, dois ems do corpo são duas células da grade. Um título numerado imprime o número depois do recuo, então o modelo de numeração não precisa de espaços ideográficos, que também sairiam no sumário e nos marcadores do PDF. Funciona em texto vertical (a partir do topo da linha), com o compositor CJK (um parêntese de abertura no início do título segue as regras de início de linha, como num parágrafo) e com Knuth–Plass. Um título centralizado o recebe como um parágrafo centralizado: a primeira linha se centraliza no espaço que sobra depois do recuo. {firstLineIndent=N} depois do texto de um título define o recuo desse título, e {firstLineIndent=0} tira o do seu nível. Desde o postext 1.24.
jidorinumbernão definidoEspaçamento uniforme (字取り): um título de uma linha mais estreito que esse número de emes do próprio corpo é espaçado por igual até exatamente essa largura, então 3 compõe 序章 como 序 章. Títulos mais largos e títulos de várias linhas ficam como estão. {jidori=N} depois do texto de um título define um título só, e {jidori=0} desliga o do seu nível. Desde o postext 1.16.
dropCapParagraphDropCap | falsenenhumaUma capitular que abre o primeiro parágrafo do corpo depois de um título deste nível (veja Capitulares): uma só configuração dá a cada capítulo a sua inicial. Um título a desliga com {dropcap=false} ou define as suas linhas com {dropcap=2}. Desde o postext 1.23.
numberingTemplatestring''Modelo do número automático do nível. Um token … imprime o contador corrente desse nível de título, opcionalmente formatado por um sufixo ( romano maiúsculo, romano minúsculo, / alfabético, com zeros à esquerda, por extenso (vinte e um), como ordinal (vigésimo primeiro), em numerais chineses (japoneses num documento em japonês: 第百一章), algarismo por algarismo, em numerais financeiros e circulado, ou qualquer nome de Grafias dos formatos de numeração), e qualquer outro texto é literal ('Chapter . ', '.', '第回' para 第一百二十回; uma barra invertida escapa uma chave literal). Um token cujo contador ainda está vazio desaparece junto com o separador vizinho. Vazio (o padrão) significa sem número automático. O número gerado é anteposto ao título no fluxo, alimenta o marcador de uma posição de design avançado (onde o prefixo em si não é anteposto) e é impresso no sumário. Veja Números por extenso para as palavras, e Estilos de título para um modelo próprio em alguns títulos de um nível.
numberSeparatorstring' 'O que fica entre o número e o título: na coluna, na abertura padrão de um nível span: 'page', nos cabeços que imprimem a linha do título e nos marcadores do PDF. O separador do nível 1 também une o número e o título de uma parte na página de parte padrão e na linha de parte padrão do sumário. Os títulos de capítulo chineses usam um espaço ideográfico ou nada (' ': 第一回 甄士隱夢幻識通靈). O sumário mantém a própria coluna de número (toc.levels[].numberGap). Um estilo de título pode definir o seu. Quando um título é partido em dois com , como os títulos em dístico dos romances chineses, as formas de uma linha só (a coluna, o sumário, os cabeços) unem as metades com um espaço ideográfico quando os dois lados são caracteres chineses ou japoneses, e com um espaço nos demais casos.
numberPosition'before' | 'replace''before'Onde fica o número gerado. 'before': antes do título, unido por numberSeparator. 'replace': o número é o título inteiro e o título escrito na fonte não é impresso, então # Night com numberingTemplate: 'الليلة {1:ordinal-feminine}' imprime الليلة الثانية. O sumário lista o número como título da entrada (sem coluna de número), e os cabeços (, ) e os marcadores do PDF também o leem; fica vazio num título assim. Só para títulos numerados com modelo (o do nível ou o do estilo deles); qualquer outro mantém o título. Um estilo de título pode definir o seu, 'before' para manter os títulos que o nível substituiria.
breakBeforeHeadingBreakBeforeConfigH1: { enabled: true, parity: 'always-odd' }
H2–H6: { enabled: false, parity: 'any' }
Força uma quebra de página antes de todo título deste nível. parity: 'odd' / 'even' restringe também o lado da página dupla em que o título abre: uma página em branco de preenchimento é inserida quando necessário (e continua contando na numeração das páginas). 'always-odd' / 'always-even' garantem além disso pelo menos uma página em branco separadora obrigatória entre o conteúdo anterior e o novo título (a separadora pertence ao capítulo anterior; qualquer preenchimento de paridade a mais pertence ao novo). Quando o título é o primeiríssimo bloco do documento e a primeira página ainda está vazia, a paridade não é aplicada: o título cai na página 1, como escrito. Um campo não definido mantém o padrão do nível: o { parity: 'odd' } do H1 continua quebrando.
hiddenbooleanfalseUm título estrutural: não imprime nada nem ocupa espaço na coluna ou num boxe (nem texto, nem margens, nem faixa de abertura), mas faz todo o resto que um título faz. O breakBefore dele continua abrindo página, ele abre a seção do seu estilo, conta (a menos que o estilo diga numbered: false) e é listado por :::toc, nomeado pelos cabeços e vira marcador no PDF. Serve para uma dedicatória, uma página de epígrafe ou um colofão de que o sumário e os marcadores do leitor precisam, mas que a página não mostra. Defina-o num estilo de título em vez de num nível inteiro; um título o sobrescreve com / .
headings: {
  fontFamily: 'Merriweather',
  levels: [
    // Predefinição canônica de livro: capítulos numa página à direita (ímpar).
    { level: 1, fontSize: { value: 24, unit: 'pt' }, breakBefore: { enabled: true, parity: 'odd' } },
    { level: 2, fontSize: { value: 18, unit: 'pt' }, italic: true },
  ]
}

snapToGrid também funciona por nível. Sem definição, um nível segue headings.snapToGrid; definido, o sobrescreve. Assim, um documento pode pôr os H2 a uma linha e meia do texto, fora da grade até o próximo ponto de ajuste, enquanto os H3 arredondam o espaço sob eles para linhas inteiras da grade. Um estilo de título também pode defini-lo, para os títulos que o usam.

headings: {
  marginBottom: { value: 1.5, unit: 'em' },
  levels: [
    { level: 2, snapToGrid: false }, // exatamente 1,5 em sob cada H2
    { level: 3 },                    // herda headings.snapToGrid: true
  ],
}

#Quebra antes

breakBefore é independente dos controles de numeração: ativá-lo força uma quebra de página, mas o contador numérico só recomeça quando você insere explicitamente uma diretiva :::numbering. As páginas em branco de paridade contam como páginas reais na sequência e recebem cabeçalhos e rodapés segundo as regras normais de par e ímpar.

Um :::pagebreak logo antes de um título assim não substitui a quebra dele: o título continua aplicando a paridade depois da página que a diretiva abriu, o que pode somar uma página em branco. Veja Estilos de título para um título que deve começar logo depois de uma quebra manual.

Valores de paridade

ValorComportamento
'any' (padrão)Sem restrição de paridade. O título simplesmente abre na página seguinte.
'odd'Garante que o título abra numa página ímpar (à direita). Uma única página em branco só é inserida quando a página seguinte natural é par.
'even'O mesmo, mas para uma página par (à esquerda).
'always-odd'Garante pelo menos uma página em branco separadora obrigatória entre o conteúdo anterior e o novo título e depois garante a paridade ímpar. Útil quando todo capítulo deve começar numa página dupla nova.
'always-even'O mesmo, mas para uma página par.

A quem pertencem as páginas em branco

As páginas em branco inseridas por breakBefore levam cabeçalhos com o título do capítulo conforme o motivo pelo qual foram inseridas:

  • As páginas inseridas para cumprir uma restrição de paridade ('odd', 'even' ou a parte de paridade de 'always-*') pertencem ao capítulo seguinte. O marcador {chapterTitle} do cabeçalho delas resolve para o título do novo capítulo, porque a página em branco só existe para levar o novo capítulo à paridade certa.
  • A separadora obrigatória inicial inserida por 'always-odd' / 'always-even' pertence ao capítulo anterior. É uma pausa deliberada de fim de capítulo, então o cabeçalho {chapterTitle} ainda mostra o título do capítulo antigo.

Os cabeços e a paleta de uma seção com estilo (veja Estilos de título) seguem as mesmas duas regras nas páginas em branco.

Exceção do início do documento

Quando o primeiríssimo bloco do documento é um título com breakBefore ativado (ou a fonte abre com :::pagebreak), a paridade não é aplicada enquanto a primeira página ainda está vazia. O título cai na página 1, como escrito, qualquer que seja a paridade configurada, de modo que um documento que começa com um # Chapter 1 configurado com parity: 'odd' não herda uma página em branco inicial espúria. Depois que algum conteúdo foi colocado, a paridade é aplicada normalmente.

#Largura e design avançado

Cada nível de título aceita dois campos adicionais que controlam como o título é renderizado como abertura de capítulo na largura da página inteira.

PropriedadeTipoPadrãoDescrição
span'column' | 'page''column'Com 'page', o título é tratado como abertura de capítulo, e seu design avançado (se ativado) é ligado à página como uma faixa de abertura acima do corpo. Combine com breakBefore.enabled: true para que a abertura sempre comece uma página nova. Sem um design próprio, o título é pintado por uma abertura padrão em toda a área de conteúdo, na tipografia e na entrelinha do nível, com seus trechos em negrito, itálico e sobrescrito ou subscrito (headings.inlineMarks), e a faixa é medida nessa largura. A faixa comporta todas as linhas que a abertura pinta: quando a abertura ocupa mais linhas que a medida do próprio título (um título justificado cujos espaços se encolheriam para caber numa linha, uma quebra forçada ), a faixa também as ocupa. Até o postext 1.4 a faixa era medida com o título quebrado na largura da coluna, de modo que um título que cabe numa linha da área de conteúdo ocupava uma faixa de duas linhas de altura, com a linha centralizada nela. As outras colunas começam abaixo da faixa, como a coluna do próprio título. O texto que abre uma delas começa onde começaria o texto logo abaixo da abertura, seja o que for que siga a abertura na sua própria coluna: a marginBottom da abertura abaixo do seu título ou do seu design, levada à próxima linha da grade quando o nível se ajusta a ela. Um título, uma fórmula em destaque ou uma linha do sumário que abre uma delas fica alinhado com o primeiro título ou a primeira fórmula em destaque abaixo da abertura, margens incluídas como lá; quando a coluna da abertura continua com outra coisa, começa onde começa esse texto. Um título oculto abaixo da abertura não conta, e o espaço que o balanceamento de colunas acrescenta acima do título abaixo da abertura não se repete nas outras colunas. O que essas colunas ajustam à grade cai na grade da página. Até o postext 1.4 o primeiro bloco delas ficava no pé da faixa: fora da grade quando a faixa terminava entre duas linhas, e colado à faixa, sem margem, quando um título seguia a abertura (uma linha mais alto que agora quando a faixa terminava na grade); um título ali também perdia a margem superior que o título da primeira coluna mantinha.
spanBreakbooleantrueSe um título span: 'page' começa uma página nova. true abre a página seguinte (o lado é escolhido por breakBefore). false, com breakBefore.enabled: false, abre o título onde o texto chega, como faz um boxe na largura da página: as colunas acima dele terminam niveladas (a faixa é balanceada quando headings.balancing.trailing está ligado), o design do título ou a abertura padrão é composto na área de conteúdo abaixo delas, e o texto continua em todas as colunas abaixo: um segundo artigo de um boletim sob o fim do primeiro. Quando o espaço restante não comporta o título e o mínimo de linhas contra viúvas abaixo dele, o título abre a página seguinte, como com true. O papel da página continua sendo o que lhe dá o seu primeiro bloco. Sem efeito sobre um título span: 'column'. Também num estilo de título. Desde o postext 1.19.
advancedDesignHeadingAdvancedDesignConfigEspaço de composição livre para este nível. Com enabled, os elementos do espaço compõem a abertura. Use dentro de um elemento de texto para renderizar o texto do título; use , etc. para inserir o número formatado do título.
advancedDesign.minHeightDimension—Altura mínima reservada para o título no fluxo da coluna. O título ocupa max(design content bottom, minHeight), depois a marginBottom do título abaixo dele (do seu estilo de título, do seu nível ou de headings.marginBottom; 0,5 em do tamanho do título por padrão), e a soma é arredondada para cima até a grade de linhas de base quando os títulos se ajustam a ela. Assim, uma abertura pode empurrar o texto do corpo para baixo (ou tomar a página inteira) mesmo quando seus elementos são baixos ou estão ancorados nos quadros da página ou da sangria acima do título. Para uma faixa com exatamente minHeight de altura, defina essa marginBottom como 0 e faça de minHeight um número inteiro de linhas da grade. Vale sempre que enabled for true, mesmo com o espaço vazio. Veja em Altura reservada o que conta como base do conteúdo do design.

Uma abertura tão alta quanto a página. Quando a altura reservada passa do pé da coluna (uma capa cuja minHeight é a altura da página, uma imagem ou um boxe ancorado na página ou na sangria que desce até o refile), a abertura toma o resto da página: o texto que vem depois dela começa na página seguinte, em todas as colunas, tanto num layout de duas colunas quanto num de coluna e meia. Por isso uma capa não precisa de um :::pagebreak depois dela (um não faz mal: não acrescenta página em branco). Um título de coluna (span: 'column') cujo design é mais alto que sua coluna toma essa coluna, e o texto começa no topo da seguinte. O bloco do título desce então até o pé da coluna que ele toma, e seu design é composto contra essa faixa: os elementos ancorados no topo ficam onde estão ancorados, e os que acompanham a faixa (ancorados no meio ou no pé dela, ou com altura 'fill') se limitam ao espaço que o título toma, como se limitam à altura reservada quando ela cabe (até o postext 1.4 o bloco mantinha a altura do seu texto, de modo que esses elementos eram compostos contra uma faixa da altura de um título, e o texto seguinte continuava por baixo do design). Elementos fixos da página que não devem tomar a página (uma tarja na margem externa ao longo de toda a página, um ornamento no pé da página) ficam melhor no design do cabeço ou do rodapé: ancorados em 'page' ou 'bleed' e exibidos com pages: 'opener', são pintados na página de abertura e não reservam espaço no corpo.

Exemplo: uma abertura de capítulo minimalista que mostra “Chapter N” acima do título:

{
  "headings": {
    "levels": [
      {
        "level": 1,
        "span": "page",
        "breakBefore": { "enabled": true, "parity": "always-odd" },
        "advancedDesign": {
          "enabled": true,
          "slot": {
            "elements": [
              {
                "kind": "text",
                "id": "chapterLabel",
                "placement": {
                  "anchor": { "to": "container", "edge": "top" },
                  "offset": { "y": { "value": 48, "unit": "pt" } },
                  "size": { "width": "fill" }
                },
                "content": "Chapter {numberRoman}",
                "fontSize": { "value": 10, "unit": "pt" },
                "align": "center",
                "overflow": "ellipsis-end"
              },
              {
                "kind": "text",
                "id": "chapterTitle",
                "placement": {
                  "anchor": { "to": "#chapterLabel", "edge": "below" },
                  "offset": { "y": { "value": 12, "unit": "pt" } },
                  "size": { "width": "fill" }
                },
                "content": "{titleText}",
                "fontSize": { "value": 24, "unit": "pt" },
                "fontWeight": 700,
                "align": "center",
                "overflow": "wrap",
                "hyphenate": true
              }
            ]
          }
        }
      }
    ]
  }
}

Marcadores de título disponíveis dentro do espaço de design de um nível:

  • {titleText}: o texto simples do título (sem o prefixo de numeração). Uma quebra forçada no título (\\) é aqui uma quebra de linha, tanto numa faixa de abertura quanto num design de coluna (até o postext 1.4 um design de coluna imprimia um espaço ali, embora sua altura fosse medida com a quebra). As linhas em que o título oculto se quebra na sua coluna são reunidas de novo no título tal como foi escrito: uma palavra quebrada depois do seu próprio hífen mantém o hífen, sem espaço depois dele; uma palavra que a coluna dividiu volta a ficar inteira, sem o hífen que a quebra acrescentou; um grupo unido por um espaço inseparável que era mais largo que a coluna e foi separado nesse espaço recupera o espaço inseparável (Capítulo XVIII, não CapítuloXVIII); e cada uma das outras quebras devolve o seu espaço. Até o postext 1.4 toda quebra de linha virava um espaço, de modo que um título quebrado num hífen imprimia Word- Book, e uma quebra forçada num título assim se perdia.
  • {number}: o número formatado segundo o numberingTemplate do nível.
  • {numberDecimal}, {numberRoman}, {numberRomanLower}, {numberAlpha}, {numberAlphaLower}: o contador do título (a contagem corrente do seu nível, seja o que for que o modelo imprima) em outros formatos de numeral: o terceiro capítulo dá 3, III, iii, C, c, com ou sem numberingTemplate. Um título não numerado (um estilo com numbered: false) os deixa vazios.
  • {numberWords}, {numberWordsLower}, {numberOrdinalWords}, {numberOrdinalWordsLower}: o mesmo contador por extenso, com maiúscula inicial ou em minúsculas: Três / três, Terceiro / terceiro (veja Números por extenso).
  • {numberHan}: o mesmo contador em numerais chineses, na escrita do locale do documento: uma abertura composta com 第{numberHan}回 imprime 第十二回 no décimo segundo capítulo, enquanto o sumário mostra 12.
  • {chapterNumber}, {chapterTitle}, {pageNumber}, {totalPages}, {bookTotalPages}, {title}, {subtitle}, {author}, {publishDate}: marcadores de metadados compartilhados.
  • {attr.<key>}: um atributo escrito na própria linha do título (# Title {author="I. Zango Martín"}), que recorre ao atributo do H1 do capítulo atual. Atributos ausentes resultam numa string vazia, sem aviso.

{chapterNumber} imprime o que os cabeços imprimem para o capítulo: o número do H1 quando o seu nível (ou estilo) tem um numberingTemplate; caso contrário, o ordinal do capítulo (1, 2…, continuando depois dos capítulos diagramados antes deste); e nada num capítulo não numerado ou num estilo cujo modelo é ''. O design de um título lê o capítulo ao qual o título pertence: um título de nível 1, o seu próprio; um título inferior, o último título de nível 1 antes dele. Isso vale também quando dois capítulos se encontram numa mesma página, embora os cabeços dessa página imprimam o capítulo posterior. A altura que uma abertura reserva é medida com esse mesmo valor. Até o postext 1.4 ela era medida com o prefixo de número do título (vazio sem modelo), de modo que um design cuja altura dependesse de {chapterNumber} podia ser pintado mais alto que o espaço que ocupava; e o design imprimia o capítulo da página, de modo que o primeiro de dois capítulos que dividiam uma página mostrava o número do segundo.

Os marcadores de contador acompanham o livro através de capítulos diagramados um de cada vez (os contadores que continuationAfter() repassa), e o atributo startAt de um título os reinicia (veja Formato do documento → Atributos de título). Uma abertura que diz Chapter III acima de um título numerado 3. no fluxo e no sumário:

{
  level: 1,
  span: 'page',
  numberingTemplate: '{1}.',
  advancedDesign: {
    enabled: true,
    slot: { elements: [
      { kind: 'text', id: 'label', content: 'Chapter {numberRoman}', fontSize: { value: 10, unit: 'pt' }, overflow: 'ellipsis-end',
        placement: { anchor: { to: 'container', edge: 'top-left' }, size: { width: 'fill', height: 'auto' } } },
      { kind: 'text', id: 'title', content: '{titleText}', fontSize: { value: 24, unit: 'pt' }, overflow: 'wrap',
        placement: { anchor: { to: '#label', edge: 'below' }, size: { width: 'fill', height: 'auto' } } },
    ] },
  },
}

Altura reservada

Um título com design avançado ocupa espaço na coluna como qualquer bloco: o texto do corpo que vem depois dele começa abaixo desse espaço. O espaço é a maior de três alturas, todas medidas para baixo a partir do topo do título (o topo da área de conteúdo, numa abertura que começa a sua página):

  1. o próprio texto do título, composto na tipografia do nível (fica oculto sob o design, mas mantém suas linhas);
  2. a base do conteúdo do design: a borda inferior mais baixa entre os elementos que contam (veja abaixo);
  3. advancedDesign.minHeight.

A marginBottom do título é somada depois (do seu estilo de título, do seu nível ou de headings.marginBottom; 0,5 em por padrão), e o resultado é arredondado para cima até a grade de linhas de base quando os títulos se ajustam a ela. Numa abertura (span: 'page'), a mesma faixa fica livre em todas as colunas da página. Num título de coluna que cabe na sua coluna, o design é composto na caixa do título, que tem exatamente essa altura.

Quais elementos contam. Todos os elementos do design contam (textos, fios, caixas e imagens; até o postext 1.4 um elemento image nunca contava, de modo que o texto podia começar por cima de uma imagem da faixa, a menos que minHeight o afastasse), exceto:

  • os elementos com reserve: false: decoração que pode ficar sob o texto;
  • os elementos que acompanham a própria faixa: ancorados na linha do meio do contêiner (left, center, right) ou na linha de baixo (bottom-left, bottom, bottom-right), com altura 'fill' em relação ao contêiner (uma caixa ou um fio vertical sem altura o preenche por padrão), e qualquer elemento ancorado num deles. O contêiner é a faixa reservada, então esses elementos ficam no pé dela ou a atravessam: um fio sob a faixa, um painel colorido atrás do título. Eles acompanham a altura; nunca a definem. Um texto entre eles que mantém sua própria altura ainda precisa de espaço: um título ancorado no pé da faixa deixa a faixa pelo menos tão alta quanto o título, de modo que o título nunca começa acima do topo do título oculto. Com minHeight: 36mm e o título ancorado em bottom-left, a caixa do título tem 36 mm mais a sua marginBottom, arredondada para cima até a grade, e o título fica no pé dessa caixa, logo acima do texto que vem depois; sem minHeight, um título que ocupa mais linhas que o texto oculto deixa a faixa tão funda quanto o título. Até o postext 1.4 um título assim era pintado para cima, sobre o texto acima do título oculto. Caixas, fios e imagens que acompanham a faixa não impõem esse piso, então um painel ancorado no pé pode subir acima do título.

Os elementos ancorados na página e na sangria contam pelo quanto descem abaixo do topo do título. Uma faixa no alto da página que termina acima do título não conta nada; uma imagem sangrada que passa dele empurra o texto até a sua borda inferior. O mesmo acontece com tudo o que fica baixo na página: um selo a 25 mm do pé da página, uma faixa lateral de altura inteira ou uma moldura reservam a página até a sua borda inferior, e o texto em geral começa na página seguinte. Marque essa decoração com reserve: false (ela continua sendo pintada e outros elementos ainda podem se ancorar nela) e dê ao título o espaço de que ele precisa com os seus elementos de texto ou com minHeight:

{
  "kind": "image", "id": "seal", "resourceId": "seal", "reserve": false,
  "placement": {
    "anchor": { "to": "page", "edge": "bottom-right" },
    "offset": { "x": { "value": -25, "unit": "mm" }, "y": { "value": -25, "unit": "mm" } },
    "size": { "width": { "value": 30, "unit": "mm" } }
  }
}

Um elemento ancorado num elemento que não reserva espaço continua contando, a menos que também seja marcado (uma legenda posta no selo precisa do seu próprio reserve: false).

Onde é pintado. O design de uma abertura (span: 'page') é desenhado antes do corpo, então a decoração que não reserva nada fica sob o texto. O design de um título de coluna é desenhado junto com o bloco do título (por cima dos blocos acima dele na coluna, por baixo dos que vêm depois) onde quer que esteja posicionado acima do pé da sua coluna: também nas margens laterais, na margem superior, na sangria e nas colunas vizinhas. O pé da coluna o corta, no canvas e no PDF, porque o fluxo termina ali (veja Mais alto que a coluna, abaixo). Até o postext 1.4 o canvas e o PDF também o cortavam no topo da sua coluna, de modo que uma faixa ancorada no topo da página ou da sangria entrava nas margens laterais, mas parava na margem superior. Decoração ancorada no pé da página fica melhor numa abertura, ou no design do rodapé com pages: 'opener'.

Mais alto que a coluna. Quando o espaço passa do pé da coluna (uma minHeight tão alta quanto a página, uma imagem ou uma moldura que desce até o refile), o título toma o resto da sua página (uma abertura, em todas as colunas) ou da sua coluna (um título de coluna), e o texto que vem depois dele começa na página ou na coluna seguinte. Seu bloco vai então até o pé da coluna, nunca reduzido à altura do seu texto, de modo que a faixa contra a qual o design é composto é o espaço que ele toma (minHeight incluída, até o pé). Um design mais alto que a própria página (uma linha fina longa numa página de tela pequena) continua sendo cortado no pé da página (um design de coluna, no da sua coluna): o Sandbox o lista no painel Verificações como Design do título cortado. A diagramação não emite aviso por isso (uma capa que toma a sua página é o caso comum e não perde nada), mas qualquer aplicação pode fazer a mesma verificação no layout pronto: collectHeadingDesignCuts(doc) devolve um { kind: 'headingDesignCut', pageIndex, level, where, overflowPx, sourceStart, sourceEnd } para cada título cujo texto de design fica além do pé do refile da página (where: 'page', uma abertura) ou da sua coluna (where: 'column'), e formatWarning descreve cada um. Veja Uma abertura tão alta quanto a página em Largura e design avançado.

A coluna lateral. Num layout de coluna e meia cuja coluna lateral recebe flutuantes (sideColumnRole: 'floats'), um elemento do design de um título de coluna que fica na coluna lateral (um numeral de capítulo ancorado na página, na coluna da margem externa da abertura de um livro didático) mantém a pilha lateral longe dele. Cada figura, tabela ou boxe span: 'side' que a página compõe depois do título mantém um espaço entre flutuantes livre em relação a cada um desses elementos: fica onde a pilha o coloca quando cabe acima do elemento e, caso contrário, vai para baixo dele, ou espera a página seguinte quando o resto da coluna lateral não o comporta ali. Assim, um numeral no alto do canal mantém a pilha inteira abaixo dele, enquanto um número de seção pendurado na margem ao lado de um título mais abaixo na página deixa o alto do canal para as figuras que a página cita (a figura marginal continua no topo da sua página). O que a coluna lateral já contém quando o título é posicionado não se move: uma figura empilhada antes na página que desce até o elemento do título fica onde está, sob o elemento, então um design cujo elemento fica na coluna lateral no meio da página pede que as suas figuras sejam citadas depois do título. Os elementos com reserve: false deixam a coluna lateral livre, como deixam o texto. Uma abertura (span: 'page') não precisa de nada disso: a sua faixa é reservada em todas as colunas, inclusive na lateral. Até o postext 1.4 uma figura lateral citada numa abertura assim era composta no alto da coluna lateral, por cima do numeral.

Capas. Um título de capa que preenche a sua página (minHeight tão alta quanto a página, ou uma imagem de página inteira no seu design) manda, portanto, o texto que vem depois dele para a página seguinte por si só, em layouts de uma ou de várias colunas. Um :::pagebreak logo depois dele é opcional e não faz mal: uma quebra de página numa página ainda vazia não faz nada, então nunca acrescenta uma página em branco. Ele só é necessário quando o design da capa para antes do pé da página e o texto ainda assim deve começar numa página nova.

# Annual report 2026 {style="cover"}
 
:::pagebreak
 
# Letter from the chair

#Números por extenso

Dois sufixos de modelo de numeração escrevem um contador por extenso, no idioma do documento (o locale de nível superior ou, na falta dele, o idioma de hifenização; veja Idioma do documento): words para o cardinal e ordinal para o ordinal. A caixa do sufixo define a caixa das palavras, como A / a faz com as letras:

TokenInglês (21)Espanhol (21)Chinês (21)
twenty-oneveintiuno二十一
Twenty-oneVeintiuno二十一
TWENTY-ONEVEINTIUNO二十一
twenty-firstvigesimoprimero第二十一
Twenty-firstVigesimoprimero第二十一
TWENTY-FIRSTVIGESIMOPRIMERO第二十一

Inglês, espanhol, francês, italiano, alemão, catalão, português, chinês, japonês e árabe são escritos por extenso; qualquer outro idioma usa as palavras em inglês, como fazem as strings de continuação de tabela embutidas. O chinês escreve os numerais informais de simp-chinese-informal ou trad-chinese-informal, conforme a escrita do locale (一万 / 一萬), com 第 antes de um ordinal; os caracteres Han não têm caixa, então as três grafias de um sufixo imprimem o mesmo. O inglês segue o uso americano (one hundred five, sem and). O espanhol usa por padrão formas masculinas, como se numera um capítulo ou um libro (capítulo primero, tercero, veintiuno), e escreve os ordinais de 13 a 29 numa só palavra, como prefere a RAE (decimotercero, vigesimoprimero). Os cardinais são escritos por extenso até 999 999, e os ordinais em espanhol, catalão e português até 999; números maiores saem em algarismos.

O francês segue a grafia tradicional (vingt et un, soixante et onze, quatre-vingts, deux cent un) e escreve premier para o um (Chapitre premier, mas vingt et unième); o italiano escreve cada número numa só palavra (ventuno, ventitré, duemilaventiquattro; primo, ventunesimo), e o alemão também (einundzwanzig, hunderteins; erste, einundzwanzigste), com ss no lugar de ß no alemão da Suíça (de-CH); o catalão segue o IEC (vint-i-u, dos-cents; primer, cinquè, vint-i-unè), e o português é o do Brasil (dezesseis, mil duzentos e trinta), a menos que o locale indique outra região (pt-PT: dezasseis), com os ordinais latinos (vigésimo primeiro). Os ordinais em catalão e em português, como os em espanhol, são escritos até 999.

As línguas românicas leem o modificador de gênero: -feminine (ou -f) faz as palavras concordarem com um substantivo feminino (Lição {1:ordinal-f} dá Lição primeira, {1:Ordinal-f} partie dá em francês Première partie; e assim vinte e uma, duzentas, veintiuna, vint-i-una), e -masculine (-m) é o padrão. Em alemão o cardinal não muda (Kapitel eins), mas o ordinal muda: sem modificador, leva a terminação que tem depois do artigo, igual nos três gêneros (Das {1:ordinal} Kapitel dá Das erste Kapitel); antes de um substantivo sem artigo, -masculine dá Erster Teil, -feminine Erste Lektion e -neuter (-n) Erstes Kapitel. Os números em alemão são escritos em minúsculas, como a língua os escreve (Kapitel {1:words} dá Kapitel eins); {1:Words} põe a inicial em maiúscula, para a palavra que abre o título, e {1:WORDS} escreve ß como SS.

Os números em árabe concordam em gênero com o substantivo que contam, então o sufixo aceita um modificador: -feminine (ou -f) para um substantivo feminino, -masculine (-m, o padrão) para um masculino; -classical escreve as centenas مائة, como fazem Bulaq e a maioria das edições egípcias, em vez do moderno مئة. {1:ordinal} escreve o ordinal definido no nominativo que um título usa: الفصل {1:ordinal} dá الفصل الأول, الفصل الحادي عشر, الفصل الحادي والعشرون; الليلة {1:ordinal-feminine} dá الليلة الأولى, الليلة الحادية عشرة, الليلة الحادية والعشرون, الليلة المئتان, e acima de cem a fórmula clássica de “depois”: الليلة الخامسة والأربعون بعد الثلاثمئة, الليلة الحادية بعد الألف. {1:words} escreve o cardinal (واحد وعشرون; feminino إحدى عشرة, واحدة وعشرون). Os ordinais são escritos por extenso até 9 999 e os cardinais até 99 999; os modificadores se combinam ({1:ordinal-f-classical}); as línguas românicas e o alemão leem só o gênero (veja acima), e os outros idiomas os ignoram. O árabe não tem maiúsculas, então a caixa do sufixo não muda nada. Os marcadores de design {numberWords} e {numberOrdinalWords} escrevem as formas masculinas; para uma abertura no feminino, ponha o ordinal no modelo do nível e imprima-o com {number}.

Num design de título, {numberWords} / {numberWordsLower} e {numberOrdinalWords} / {numberOrdinalWordsLower} escrevem o contador do título da mesma forma, de modo que a abertura pode dizer Chapter One enquanto o sumário mostra 1. O textTransform: 'uppercase' de um elemento de texto dá as maiúsculas:

// Romance em espanhol: "CAPÍTULO PRIMERO" acima do título, "1." no sumário.
{ level: 1, numberingTemplate: '{1}.', span: 'page',
  advancedDesign: { enabled: true, slot: { elements: [
    { kind: 'text', id: 'n', content: 'Capítulo {numberOrdinalWordsLower}', textTransform: 'uppercase', /* … */ },
    { kind: 'text', id: 't', content: '{titleText}', /* … */ },
  ] } } }