# Konfiguration: Überschriften

> Standardwerte für Überschriften, Überschreibungen pro Ebene, Seitenumbrüche vor einer Überschrift, Kapitelauftakte über die ganze Seitenbreite und ausgeschriebene Zahlen

- HTML-Fassung: https://postext.dev/de/docs/configuration-headings
- Zuletzt aktualisiert: 2026-10-16
- Lesezeit: 31 min
- Andere Sprachen: [en](https://postext.dev/en/docs/configuration-headings.md), [es](https://postext.dev/es/docs/configuration-headings.md), [ca](https://postext.dev/ca/docs/configuration-headings.md), [fr](https://postext.dev/fr/docs/configuration-headings.md), [it](https://postext.dev/it/docs/configuration-headings.md), [pt](https://postext.dev/pt/docs/configuration-headings.md), [zh](https://postext.dev/zh/docs/configuration-headings.md), [ja](https://postext.dev/ja/docs/configuration-headings.md), [ar](https://postext.dev/ar/docs/configuration-headings.md)

## Kurz gesagt

Diese Seite behandelt die Einstellungen für Überschriften. Sie legen für alle eine Schrift, eine Größe und eine Farbe fest und können jede davon für eine einzelne Ebene ändern, etwa für Kapiteltitel. Sie entscheiden, ob eine Überschrift eine neue Seite beginnt und ob diese Seite links oder rechts liegen muss. Ein Kapitel kann mit einem Titel über die ganze Seitenbreite und einer eigenen Gestaltung beginnen. Die Nummern von Überschriften lassen sich in Worten schreiben, etwa „Erstes Kapitel“.

## Überschriften

Die Eigenschaft `headings` steuert die Typografie aller Überschriftenebenen (H1–H6). Sie können allgemeine Standardwerte setzen, die für alle Ebenen gelten, und dann einzelne Eigenschaften pro Ebene überschreiben.

### Allgemeine Standardwerte

| Eigenschaft | Typ | Standard | Beschreibung |
| --- | --- | --- | --- |
| `fontFamily` | `string` | `'Open Sans'` | Schriftfamilie aller Überschriften. |
| `lineHeight` | `Dimension` | `1.2 em` | Zeilenabstand der Überschriften. Enger als beim Fließtext. |
| `color` | `ColorValue` | Hauptfarbe (`#295AA3`) | Textfarbe der Überschriften. An den Eintrag `main-color` der Standardpalette gebunden; tauschen Sie die Palettenfarbe aus, färbt sich jede Überschrift neu. |
| `textAlign` | `'left' \| 'justify' \| 'center' \| 'right' \| 'start' \| 'end'` | `'left'` | Ausrichtung aller Überschriftenebenen (einen Wert pro Ebene gibt es nicht): linksbündiger Flattersatz, Blocksatz, zentriert oder rechtsbündiger Flattersatz. Eine Überschrift im Blocksatz setzt ihre letzte Zeile linksbündig, wie ein Absatz, sodass eine einzeilige Überschrift wie `'left'` aussieht. Canvas, HTML und PDF platzieren die Zeilen gleich, ein Nummernpräfix eingeschlossen. Der Standardauftakt einer Überschrift mit `span: 'page'` ohne erweiterte Gestaltung folgt ihr ebenfalls (Blocksatz wird linksbündig gesetzt); eine erweiterte Gestaltung richtet ihre eigenen Textelemente mit deren `align` aus. |
| `fontWeight` | `number` | `700` | Schriftstärke der Überschriften (100–900). |
| `marginTop` | `Dimension` | `1.5 em` | Abstand über Überschriften. Entfällt bei einer Überschrift, die eine Spalte eröffnet (siehe `columnHeadSpace`). |
| `marginBottom` | `Dimension` | `0.5 em` | Abstand unter Überschriften. |
| `keepWithNext` | `boolean` | `true` | Mit `true` steht eine Überschrift nie als letztes Element einer Spalte oder Seite. Hätte der folgende Block nach der Überschrift nicht mindestens `bodyText.widowMinLines` Zeilen Platz (oder eine Zeile, wenn `bodyText.avoidWidows` `false` ist), wird die Überschrift weitergeschoben, damit sie mit ihrem Text verbunden bleibt. Wirkt mit `bodyText.keepColonWithList` zusammen: Muss diese Regel einen Doppelpunktabsatz ganz verschieben, wandern Überschriften am Ende der Spalte mit, statt gestrandet zurückzubleiben. |
| `keepWithNextSpread` | `boolean` | `false` | Lässt mit `keepWithNext` eine Überschrift dennoch die letzte Textspalte einer geraden Seite schließen, da ihr Text dann die gegenüberliegende ungerade Seite derselben Doppelseite eröffnet (JLReq §4.1.7). Die Doppelseiten sind Seite 1 allein, dann 2–3, 4–5 …, gezählt mit `pageIndexOffset`, in links wie rechts gebundenen Büchern. Seit postext 1.16. |
| `keepWithNextSplit` | `'rules' \| 'fill'` | `'rules'` | Wie der Absatz unter einer Überschrift geteilt wird, wenn die Überschrift am Fuß einer Spalte landet und das Verschieben des ganzen Absatzes die Überschrift zurücklassen würde. `'rules'`: so viele Zeilen, wie passen, sofern mindestens `bodyText.widowMinLines` unter der Überschrift bleiben und mindestens `bodyText.orphanMinLines` in die nächste Spalte weitergehen; erfüllt keine Teilung beides, rückt die Überschrift mit ihrem Absatz weiter, und der Spaltenausgleich füllt den Raum, den sie hinterlässt. `'fill'`: so viele Zeilen, wie passen, wie wenige auch weitergehen, sodass ein vierzeiliger Absatz mit Platz für drei als 3 + 1 geteilt wird. Bis postext 1.4 wurde jede Überschrift so geteilt, und vor `configVersion` 8 gespeicherte Konfigurationen behalten das bei (siehe [Pakete, die postext 1.4 oder früher geschrieben hat](https://postext.dev/de/docs/configuration-bundles.md#pakete-die-postext-14-oder-früher-geschrieben-hat)). Ist `avoidWidows` oder `avoidOrphans` aus, entfällt diese Seite der Regel. |
| `snapToGrid` | `boolean` | `true` | Ob der Textfluss unter einer Überschrift wieder auf das Grundlinienraster einrastet. Mit `true` wird das `marginBottom` der Überschrift auf ganze Rasterzeilen aufgerundet; mit `false` bleibt der genaue Rand erhalten, und der Text unter der Überschrift darf bis zum nächsten Einrastpunkt (dem Ende einer Liste, dem Ende eines `:::paragraphs`, abgesetzter Mathematik) neben dem Raster stehen – so, wie viele Bücher anderthalb Zeilen unter eine Überschrift setzen. Eine Ebene (`levels[].snapToGrid`) oder ein Überschriftenformat kann einen eigenen Wert setzen; dieser hier ist der, den sie erben. |
| `columnHeadSpace` | `'none' \| 'remainder'` | `'none'` | Was eine auf das Raster einrastende Überschrift von ihrem Abstand darüber behält, wenn sie eine Spalte eröffnet, am Kopf der Seite oder unter einer Abbildung oder Tabelle, die die Spalte anführt. `'none'`: Der ganze Abstand entfällt, und die Überschrift steht auf der ersten Zeile der Spalte, auf gleicher Höhe mit der Spalte daneben; das Einrasten setzt dann den nötigen Zeilenbruchteil unter die Überschrift, sodass ihr Text weiter von ihr entfernt stehen kann als nach einem Absatz. `'remainder'`: Der Abstand entfällt nur in ganzen Rasterzeilen, und der verbleibende Zeilenbruchteil bleibt über der Überschrift, sodass der Text darunter im selben Abstand beginnt wie nach einem Absatz; die Überschrift beginnt etwas tiefer als der Kopf der Spalte, und keine Zeile des Fließtexts verschiebt sich. Das passt zu einem einspaltigen Buch, in dem kein Spaltenkopf daneben den Unterschied zeigt. Jeder andere Wert wird als `'none'` gelesen. Nicht unter einem Auftakt über die ganze Seitenbreite und nicht für eine Überschrift mit `span: 'page'`, `lineSpan`, eine verborgene oder eine gestaltete (`advancedDesign`). Seit postext 1.28. |
| `inlineMarks` | `boolean` | `true` | Ob eine Überschrift ihre Inline-Auszeichnungen wie ein Absatz liest: `*italic*`, `**bold**`, `^superscript^`, `~subscript~`, `:smallcaps[…]` und Links. Ein kursiver Abschnitt kehrt die Neigung der Überschrift um, sodass er in einer kursiven Überschrift aufrecht erscheint; ein fetter Abschnitt nimmt `bodyText.boldFontWeight` an oder die eigene Schriftstärke der Überschrift, wenn diese kräftiger ist. Das Inhaltsverzeichnis übernimmt die fetten und kursiven Abschnitte ebenfalls; die lebenden Kolumnentitel und die PDF-Lesezeichen drucken nur den Text. Mit `false` werden die Auszeichnungen entfernt, und die Wörter erscheinen im eigenen Stil der Überschrift, wie bis postext 1.4. Der Standardauftakt einer Überschrift mit `span: 'page'` ohne Gestaltung setzt die fetten, kursiven, hoch- und tiefgestellten Abschnitte ebenfalls; eine Überschriftengestaltung (ein gestaltetes Auftaktband oder ein `advancedDesign` in der Spalte) druckt `{titleText}` in jedem Fall als reinen Text, es sei denn, ihr Textelement liest Inline-Auszeichnungen (`inlineMarks: true`): Dort behält `{titleText}` die fetten, kursiven, hoch- und tiefgestellten Abschnitte der Überschrift (seit postext 1.19). Früher gespeicherte Konfigurationen, deren Überschriften Auszeichnungen tragen, werden mit `false` gelesen (siehe [Pakete, die postext 1.4 oder früher geschrieben hat](https://postext.dev/de/docs/configuration-bundles.md#pakete-die-postext-14-oder-früher-geschrieben-hat)). |
| `balancing` | `ColumnBalancingConfig` | aktiviert | Vertikaler Spaltenausgleich – zusätzlicher Abstand über Überschriften, damit Spalten bündig mit dem Seitenfuß enden. Siehe unten. |

Zentrierte Überschriften für Gedichte oder die Akte eines Theaterstücks, ohne Gestaltungsfeld:

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

Übergeben Sie ein Objekt `headings`, bleibt jeder Standardwert einer Ebene erhalten, den Sie nicht erneut angeben, der Seitenumbruch vor der H1 eingeschlossen (siehe [Überschreibungen pro Ebene](https://postext.dev/de/docs/configuration-headings.md#überschreibungen-pro-ebene)).

### Überschreibungen pro Ebene

Jede Überschriftenebene kann die allgemeinen Standardwerte über das Array `levels` überschreiben. Standardmäßig unterscheidet sich nur `fontSize` (dazu `breakBefore` der H1, siehe unten) – alle anderen Eigenschaften werden von den allgemeinen Überschrifteneinstellungen geerbt.

| Ebene | Standard-Schriftgröße | Standard für `breakBefore` |
| --- | --- | --- |
| H1 | `18 pt` | `{ enabled: true, parity: 'always-odd' }` |
| H2 | `15 pt` | `{ enabled: false, parity: 'any' }` |
| H3 | `12 pt` | `{ enabled: false, parity: 'any' }` |
| H4 | `10 pt` | `{ enabled: false, parity: 'any' }` |
| H5 | `9 pt` | `{ enabled: false, parity: 'any' }` |
| H6 | `8 pt` | `{ enabled: false, parity: 'any' }` |

Der Standard der H1 bildet den Kapitelaufbau eines Buchs nach: Jede Überschrift der obersten Ebene beginnt auf einer neuen rechten (ungeraden) Seite, mit einer zwingenden leeren Trennseite nach dem vorigen Kapitel. Überschreiben Sie ihn über `levels[0].breakBefore`, wenn Ihr Dokument flacher gegliedert ist als ein Buch.

Das `breakBefore` einer Ebene wird Feld für Feld über diesen Standard gelegt, und ein Objekt `headings`, das es nicht erwähnt, behält ihn. `{ parity: 'odd' }` auf der H1 behält den Umbruch und ändert nur die Parität; `{ enabled: false }` lässt die Kapitel fortlaufend weiterlaufen:

```ts
headings: {
  fontFamily: 'Merriweather',                               // H1 still breaks to a fresh recto (always-odd)
  levels: [{ level: 1, breakBefore: { parity: 'odd' } }],    // …or: a recto, with no mandatory blank
}

headings: { levels: [{ level: 1, breakBefore: { enabled: false } }] } // chapters run on
```

**Geändert in postext 1.5.** Bis postext 1.4 schaltete jedes Objekt `headings` den Umbruch der H1 aus, sofern `levels[0].breakBefore` nicht erneut angegeben wurde, und ein unvollständiges `breakBefore` füllte sein fehlendes Feld aus dem Standard ohne Umbruch. Eine für 1.4 im Code geschriebene Konfiguration mit einem Objekt `headings` und ohne Umbruch der H1 eröffnet daher jetzt jedes Kapitel auf einer neuen rechten Seite, mit leeren linken Seiten, wo nötig. Damit die Kapitel fortlaufend weiterlaufen, geben Sie dem Eintrag der H1 in `levels` ein Feld:

```ts
headings: { fontFamily: 'Merriweather', levels: [{ level: 1, breakBefore: { enabled: false } }] } // as 1.4 laid it out
```

Wo die Konfiguration gespeichert wurde, erkennt die Engine das und erledigt es für Sie: die Sandbox für die Bücher und Konfigurationen, die sie damals gespeichert hat (siehe **Sandbox → Persistenz**), und `openBundle` / `readBundle` für ein `.postext`-Paket, das postext 1.4 oder älter geschrieben hat (siehe [Pakete, die postext 1.4 oder früher geschrieben hat](https://postext.dev/de/docs/configuration-bundles.md#pakete-die-postext-14-oder-früher-geschrieben-hat)). Eine Konfiguration, die Sie selbst gespeichert haben, können Sie durch `migrateConfig(config)` aus `postext/bundle` schicken, das die Umbrüche ausschreibt, die 1.4 gesetzt hat (`pinLegacyHeadingBreaks`): `enabled: false` auf einer H1, die keinen Umbruch hatte, und `parity: 'any'` neben einem `enabled: true` ohne Parität, auf der H1 und auf Überschriftenformaten. Es fixiert außerdem, wie 1.4 sie setzte, die Größe der Mathematik, den Abstand um Inline-Abbildungen (auch in Kästen), die Inline-Auszeichnungen der Überschriften, die Größen der Initialen, den Raum unter einer Doppelpunktzeile, die eine Liste einleitet, die Zeilen, die ein Kastenschnitt von einem Absatz oder Listenpunkt übrig lässt, die Zeilenumbrüche an Strichen, den zeilenweisen Umbruch von Flattersatz, die Teilung eines Absatzes unter einer Überschrift, die Zeilenumbrüche am Bindestrich eines Kompositums und den Abstand unter Containern `:::paragraphs`. Übergeben Sie das Markdown des Buchs als drittes Argument, `{ content }`, dann lässt es die Mathematik-Fixierung weg, wenn der Text kein `$` enthält, die Abstandsfixierungen, wenn keine Zeile eine Ressource einbettet (die Fixierung des Kastenabstands, wenn keine es in einem Kasten tut), die Fixierung der Überschriftenauszeichnungen, wenn keine Überschrift eine Auszeichnung trägt, die Fixierung der Doppelpunktzeile, wenn keine Liste auf eine Zeile mit Doppelpunkt am Ende folgt, die Fixierung des Kastenschnitts, wenn der Text kein `:::callout` öffnet, die Strich-Fixierung, wenn kein Strich ohne Abstand zwischen Wörtern steht, die Fixierung der Teilung unter Überschriften, wenn der Text keine Überschrift hat, die Container-Fixierung, wenn der Text keinen Container `:::paragraphs` öffnet, und die Kompositum-Fixierung, wenn kein Bindestrich zwischen zwei Buchstaben steht; die Fixierung des Flattersatzumbruchs erhält nur eine Konfiguration, die laufenden Text im Flattersatz setzt, und die Container-Fixierung nur eine, die ein Absatzformat deklariert (siehe [Pakete, die postext 1.4 oder früher geschrieben hat](https://postext.dev/de/docs/configuration-bundles.md#pakete-die-postext-14-oder-früher-geschrieben-hat)). Nur für die Umbrüche rufen Sie `pinLegacyHeadingBreaks(config)` auf.

Überschreibungen pro Ebene unterstützen dieselben Eigenschaften wie die allgemeinen Standardwerte – `fontSize`, `lineHeight`, `fontFamily`, `color`, `fontWeight`, `marginTop`, `marginBottom`, `snapToGrid` – sowie diese nur für Ebenen vorhandenen Felder (ein [Überschriftenstil](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) nimmt sie ebenfalls an):

| Eigenschaft | Typ | Standard | Beschreibung |
| --- | --- | --- | --- |
| `italic` | `boolean` | `false` | Setzt die Überschrift kursiv. Wird zusätzlich zu `fontWeight` angewandt. |
| `textTransform` | `'none' \| 'uppercase'` | `'none'` | Setzt den Titel der Überschrift in Versalien (ein Nummernpräfix bleibt wie geschrieben, ebenso ein Chip und die Bezeichnung eines `:ref` darin). Längenerhaltend, damit die Source-Map des Editors 1:1 bleibt: Zeichen, deren Großform länger ist (`ß` → `SS`), bleiben, wie sie sind. Der umgewandelte Titel speist auch den Platzhalter `{titleText}` erweiterter Gestaltungen und Kapitelauftakte. Die PDF-Lesezeichen behalten den Titel wie geschrieben – *Author contributions*, nicht *AUTHOR CONTRIBUTIONS* –, so wie CSS-`text-transform` den Text selbst unberührt lässt (bis postext 1.4 übernahmen sie die Versalien). |
| `letterSpacing` | `Dimension` | `0` | Laufweite nach jeder Glyphe der Überschrift – Leerzeichen und Nummernpräfix eingeschlossen –, wie CSS-`letter-spacing`. Positive Werte sperren die Buchstaben (mit `textTransform: 'uppercase'` gesetzte Versalien brauchen meist etwas: `{ value: 0.12, unit: 'em' }`), negative ziehen einen Schaugrad enger. Ein Wert in `em` bezieht sich auf die `fontSize` der Ebene. Die Zeilen der Überschrift werden damit gemessen, sodass sie dort umbrechen, wo der gesperrte Text endet, und Canvas, HTML und PDF malen sie gleich. Sperrung ändert nie die Glyphen: Die Ligaturen der Schrift (fi, fl) bleiben, in jeder Ausgabe. Eine zentrierte oder rechtsbündige Zeile wird nach ihren Buchstaben platziert: Die Laufweite nach ihrer letzten Glyphe entfällt, wie in Gestaltungstexten, sodass eine zentrierte Überschrift mit dem Standardauftakt einer Überschrift mit `span: 'page'` fluchtet. Eine Ebene, die aus ihrem `advancedDesign` gezeichnet wird, ignoriert sie, wie die übrigen typografischen Felder hier: Jedes Textelement einer Gestaltung hat sein eigenes `letterSpacing`. Ein [Überschriftenstil](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) setzt sie ebenfalls, für die Überschriften, die es verwenden. Bis postext 1.4 hatten Überschriften keine Laufweite, und der Schlüssel wurde stillschweigend verworfen. |
| `lineSpan` | `number` | nicht gesetzt | Belegte Zeilen (行取り, JLReq §4.1.6): Die Überschrift wird in einem Band von so vielen Fließtextzeilen gesetzt, ihre Zeichen darin zentriert, anstelle von `marginTop` und `marginBottom`; `3` ist eine 3行取り-Überschrift. Das Band beginnt auf einer Fließtextzeile, wenn die Überschrift auf das Raster einrastet, und der Text danach bleibt auf dem Raster, in beiden Schreibrichtungen und mit `cjk.grid`; eine Überschrift, deren Zeilen mehr brauchen, nimmt die nächste ganze Zahl. Die Mitte ist die der Zeichen (die Grundlinie abzüglich der ideografischen Mitte der Schrift), wie JLReq sie misst, nicht die der Zeilenrahmen. Nicht angewandt auf Auftakte (`span: 'page'`), aus einem `advancedDesign` gezeichnete Überschriften, verborgene Überschriften oder Überschriften in Kästen. Ein Überschriftenformat kann `0` setzen, um den Wert seiner Ebene abzuschalten. Seit postext 1.16. |
| `indent` | `Dimension` | `0` | Einzug der Überschrift vom Zeilenanfang (字下げ), wobei `em` die Größe des **Fließtexts** ist, da japanische Bücher Einzüge von Überschriften in Zeichen des Fließtexts zählen (JLReq §4.1.3): `{ value: 6, unit: 'em' }` ist 6字下げ, gleich wie groß die Überschrift ist. Die Satzbreite verringert sich darum, und eine zentrierte Überschrift zentriert sich im Rest. Seit postext 1.16. |
| `firstLineIndent` | `Dimension` | `0` | Einzug nur der ersten Zeile der Überschrift, gemessen ab `indent` und wie dieser in Geviert des **Fließtexts**: Die Zeilen, auf die eine lange Überschrift umbricht, beginnen bei `indent` (am Zeilenanfang, wenn es nicht gesetzt ist), so wie GB/T 9704 jede Überschriftenebene zwei Zellen eingerückt setzt, mit dem Umbruch am Rand: `{ value: 2, unit: 'em' }`. Mit eingeschaltetem `cjk.grid` sind zwei Geviert des Fließtexts zwei Zellen des Rasters. Eine nummerierte Überschrift druckt ihre Nummer nach dem Einzug, sodass die Nummerierungsvorlage keine ideografischen Leerzeichen braucht, die auch im Inhaltsverzeichnis und in den PDF-Lesezeichen erscheinen würden. Funktioniert in vertikalem Text (ab dem Zeilenanfang oben), mit dem CJK-Setzer (eine öffnende Klammer am Anfang der Überschrift folgt wie in einem Absatz den Regeln für den Zeilenanfang) und mit Knuth-Plass. Eine zentrierte Überschrift nimmt ihn wie ein zentrierter Absatz: Ihre erste Zeile zentriert sich im Raum nach dem Einzug. `{firstLineIndent=N}` nach dem Titel einer Überschrift setzt ihn für eine Überschrift, und `{firstLineIndent=0}` schaltet den Wert ihrer Ebene ab. Seit postext 1.24. |
| `jidori` | `number` | nicht gesetzt | Gleichmäßige Verteilung (字取り): Eine einzeilige Überschrift, die schmaler als so viele ihrer **eigenen** Geviert ist, wird gleichmäßig auf genau diese Breite verteilt, sodass `3` 序章 als 序　章 setzt. Breitere Titel und mehrzeilige Überschriften bleiben, wie sie sind. `{jidori=N}` nach dem Titel einer Überschrift setzt eine Überschrift, und `{jidori=0}` schaltet den Wert ihrer Ebene ab. Seit postext 1.16. |
| `dropCap` | `ParagraphDropCap \| false` | keine | Eine Initiale, die den ersten Absatz des Fließtexts nach einer Überschrift dieser Ebene eröffnet (siehe [Initialen](https://postext.dev/de/docs/configuration-text.md#initialen)): Eine Einstellung gibt jedem Kapitel seine Initiale. Eine Überschrift schaltet sie mit `{dropcap=false}` ab oder setzt ihre Zeilenzahl mit `{dropcap=2}`. Seit postext 1.23. |
| `numberingTemplate` | `string` | `''` | Vorlage der automatischen Nummer der Ebene. Ein Token `{1}` … `{6}` druckt den laufenden Zähler dieser Überschriftenebene, optional mit einem Suffix formatiert – `{1:I}` große römische Ziffern, `{1:i}` kleine römische Ziffern, `{1:A}` / `{1:a}` alphabetisch, `{1:01}` mit führenden Nullen, `{1:words}` ausgeschrieben (*einundzwanzig*), `{1:ordinal}` als Ordinalzahl (*einundzwanzigste*), `{1:一}` in chinesischen Zahlzeichen (in einem japanischen Dokument in japanischen: 第百一章), `{1:〇}` Ziffer für Ziffer, `{1:壹}` in Finanzzahlzeichen und `{1:①}` eingekreist, oder ein beliebiger Name aus [Schreibweisen der Nummernformate](https://postext.dev/de/docs/configuration-page-layout.md#schreibweisen-der-nummernformate) –, und jeder andere Text ist wörtlich (`'Chapter {1}. '`, `'{1}.{2}'`, `'第{1:一}回'` für 第一百二十回; ein Backslash maskiert eine wörtliche geschweifte Klammer). Ein Token, dessen Zähler noch leer ist, entfällt zusammen mit seinem angrenzenden Trenner. Leer (der Standard) bedeutet keine automatische Nummer. Die gesetzte Nummer wird dem Titel im Textfluss vorangestellt, speist den Platzhalter `{number}` eines Felds der erweiterten Gestaltung (wo das Präfix selbst nicht vorangestellt wird) und erscheint im Inhaltsverzeichnis. Siehe [Ausgeschriebene Zahlen](https://postext.dev/de/docs/configuration-headings.md#ausgeschriebene-zahlen) für die Wörter und [Überschriftenstile](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) für eine eigene Vorlage bei einigen Überschriften einer Ebene. |
| `numberSeparator` | `string` | `' '` | Was zwischen Nummer und Titel steht: in der Spalte, im Standardauftakt einer Ebene mit `span: 'page'`, in den lebenden Kolumnentiteln, die die Überschriftenzeile drucken, und in den PDF-Lesezeichen. Der Trenner der Ebene 1 verbindet auch Nummer und Titel eines Teils auf der Standard-Teiltitelseite und in der Standardzeile für Teile im Inhaltsverzeichnis. Chinesische Kapitelköpfe nehmen ein ideografisches Leerzeichen oder nichts (`'　'`: 第一回　甄士隱夢幻識通靈). Das Inhaltsverzeichnis behält seine eigene Nummernspalte (`toc.levels[].numberGap`). Ein [Überschriftenstil](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) kann einen eigenen setzen. Wird ein Titel mit `\\` zweigeteilt, wie die Verspaartitel chinesischer Romane, verbinden die einzeiligen Formen (die Spalte, das Inhaltsverzeichnis, die lebenden Kolumnentitel) die Hälften mit einem ideografischen Leerzeichen, wenn beide Seiten chinesische oder japanische Zeichen sind, und sonst mit einem Leerzeichen. |
| `numberPosition` | `'before' \| 'replace'` | `'before'` | Wo die erzeugte Nummer steht. `'before'`: vor dem Titel, verbunden durch `numberSeparator`. `'replace'`: Die Nummer ist der ganze Titel, und der in der Quelle geschriebene Titel wird nicht gedruckt, sodass `# Night` unter `numberingTemplate: 'الليلة {1:ordinal-feminine}'` الليلة الثانية druckt. Das Inhaltsverzeichnis führt die Nummer als Titel des Eintrags (ohne Nummernspalte), und die lebenden Kolumnentitel (`{chapterTitle}`, `{titleText}`) und die PDF-Lesezeichen lesen sie ebenfalls; `{number}` ist für eine solche Überschrift leer. Nur für nummerierte Überschriften mit Vorlage (der der Ebene oder ihres Formats); jede andere behält ihren Titel. Ein [Überschriftenstil](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) kann einen eigenen Wert setzen, `'before'`, um die Titel zu behalten, die seine Ebene ersetzen würde. |
| `breakBefore` | `HeadingBreakBeforeConfig` | H1: `{ enabled: true, parity: 'always-odd' }` H2–H6: `{ enabled: false, parity: 'any' }` | Erzwingt einen Seitenumbruch vor jeder Überschrift dieser Ebene. `parity: 'odd'` / `'even'` legt zusätzlich fest, auf welcher Seite der Doppelseite die Überschrift beginnt – bei Bedarf wird eine leere Füllseite eingefügt (die in der Seitenzählung mitzählt). `'always-odd'` / `'always-even'` garantieren zusätzlich mindestens eine zwingende leere Trennseite zwischen dem vorigen Inhalt und der neuen Überschrift (die Trennseite gehört zum vorigen Kapitel; jede weitere Füllseite für die Parität gehört zum neuen). Ist die Überschrift der allererste Block des Dokuments und die erste Seite noch leer, wird die Parität nicht erzwungen – die Überschrift landet wie geschrieben auf Seite 1. Ein nicht gesetztes Feld behält den Standard der Ebene: `{ parity: 'odd' }` auf der H1 bricht weiterhin um. |
| `hidden` | `boolean` | `false` | Eine strukturelle Überschrift: Sie druckt nichts und nimmt in der Spalte oder in einem Kasten keinen Raum ein – kein Text, keine Ränder, kein Auftaktband –, tut aber alles andere, was eine Überschrift tut. Ihr `breakBefore` eröffnet weiterhin eine Seite, sie eröffnet den Abschnitt ihres Formats, sie zählt (es sei denn, ihr Format sagt `numbered: false`), und sie wird von `:::toc` aufgeführt, von lebenden Kolumnentiteln mit `{chapterTitle}` genannt und im PDF als Lesezeichen geführt. Für eine Widmung, eine Mottoseite oder ein Impressum, die das Inhaltsverzeichnis und die Lesezeichen des Lesers brauchen, die Seite aber nicht zeigt. Setzen Sie sie lieber auf ein [Überschriftenstil](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) als auf eine ganze Ebene; eine Überschrift überschreibt sie mit `{hidden="true"}` / `{hidden="false"}`. |

```ts
headings: {
  fontFamily: 'Merriweather',
  levels: [
    // Canonical book preset: chapters on a right-hand (odd) page.
    { level: 1, fontSize: { value: 24, unit: 'pt' }, breakBefore: { enabled: true, parity: 'odd' } },
    { level: 2, fontSize: { value: 18, unit: 'pt' }, italic: true },
  ]
}
```

`snapToGrid` funktioniert auch pro Ebene. Ohne Wert folgt eine Ebene `headings.snapToGrid`; mit Wert überschreibt sie es – so kann ein Dokument seine H2 anderthalb Zeilen über ihren Text setzen, bis zum nächsten Einrastpunkt neben dem Raster, während seine H3 den Abstand unter sich auf ganze Rasterzeilen aufrunden. Ein Überschriftenformat kann es ebenfalls setzen, für die Überschriften, die es verwenden.

```ts
headings: {
  marginBottom: { value: 1.5, unit: 'em' },
  levels: [
    { level: 2, snapToGrid: false }, // exactly 1.5 em under every H2
    { level: 3 },                    // inherits headings.snapToGrid: true
  ],
}
```

### Umbruch davor

`breakBefore` ist unabhängig von den Nummerierungseinstellungen: Ist es eingeschaltet, erzwingt es einen Seitenumbruch, aber der Zähler wird nur zurückgesetzt, wenn Sie ausdrücklich eine Direktive `:::numbering` einfügen. Leere Paritätsseiten zählen als echte Seiten der Folge und erhalten Kopf- und Fußzeilen nach ihren normalen Regeln für ungerade und gerade Seiten.

Ein `:::pagebreak` direkt vor einer solchen Überschrift ersetzt ihren Umbruch nicht: Die Überschrift wendet ihre Parität nach der Seite an, die die Direktive eröffnet hat, was eine leere Seite hinzufügen kann. Siehe [Überschriftenstile](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile) für eine Überschrift, die direkt nach einem manuellen Umbruch beginnen soll.

#### Paritätswerte

| Wert | Verhalten |
| --- | --- |
| `'any'` (Standard) | Keine Paritätsbedingung. Die Überschrift beginnt einfach auf der nächsten Seite. |
| `'odd'` | Stellt sicher, dass die Überschrift auf einer ungeraden (rechten) Seite beginnt. Eine einzelne leere Seite wird nur eingefügt, wenn die natürliche nächste Seite gerade ist. |
| `'even'` | Dasselbe für eine gerade (linke) Seite. |
| `'always-odd'` | Garantiert **mindestens eine zwingende leere Trennseite** zwischen dem vorigen Inhalt und der neuen Überschrift und stellt dann die ungerade Parität sicher. Nützlich, wenn jedes Kapitel auf einer neuen Doppelseite beginnen muss. |
| `'always-even'` | Dasselbe für eine gerade Seite. |

#### Zugehörigkeit leerer Seiten

Leere Seiten, die `breakBefore` einfügt, tragen Kopfzeilen mit Kapiteltitel danach, *warum* sie eingefügt wurden:

- Seiten, die eingefügt werden, um eine Paritätsbedingung zu erfüllen (`'odd'`, `'even'` oder das Paritätsende von `'always-*'`), gehören zum **kommenden** Kapitel. Ihr Platzhalter `{chapterTitle}` in der Kopfzeile wird zum Titel des neuen Kapitels aufgelöst – denn die leere Seite existiert nur, um das neue Kapitel auf die richtige Parität zu schieben.
- Die zwingende vorangehende Trennseite, die `'always-odd'` / `'always-even'` einfügen, gehört zum **vorigen** Kapitel. Sie ist ein bewusstes Atemholen am Kapitelende, daher zeigt die Kopfzeile mit `{chapterTitle}` weiterhin den Titel des alten Kapitels.

Lebende Kolumnentitel und Palette eines gestalteten Abschnitts (siehe [Überschriftenstile](https://postext.dev/de/docs/configuration-styles.md#überschriftenstile)) folgen auf leeren Seiten denselben beiden Regeln.

#### Ausnahme am Dokumentanfang

Ist der allererste Block des Dokuments eine Überschrift mit eingeschaltetem `breakBefore` – oder beginnt die Quelle mit `:::pagebreak` –, wird die Parität nicht erzwungen, solange die erste Seite noch leer ist. Die Überschrift landet wie geschrieben auf Seite 1, unabhängig von der eingestellten Parität, sodass ein Dokument, das mit einem auf `parity: 'odd'` eingestellten `# Chapter 1` beginnt, keine unnötige leere Seite am Anfang erbt. Sobald Inhalt platziert wurde, verhält sich die Parität normal.

### Seitenbreite und erweiterte Gestaltung

Jede Überschriftenebene nimmt zwei weitere Felder an, die steuern, wie die Überschrift als Kapitelauftakt über die ganze Seitenbreite dargestellt wird.

| Eigenschaft | Typ | Standard | Beschreibung |
| --- | --- | --- | --- |
| `span` | `'column' \| 'page'` | `'column'` | Mit `'page'` wird die Überschrift als Kapitelauftakt behandelt, und ihre erweiterte Gestaltung (sofern aktiviert) wird der Seite als Auftaktband über dem Fließtext angefügt. Kombinieren Sie das mit `breakBefore.enabled: true`, damit der Auftakt zuverlässig eine neue Seite beginnt. Ohne eigene Gestaltung wird der Titel von einem Standardauftakt über den ganzen Inhaltsbereich gemalt, in Typografie und Zeilenabstand der Ebene, mit seinen fetten, kursiven, hoch- und tiefgestellten Abschnitten (`headings.inlineMarks`), und das Band wird in dieser Breite gemessen. Das Band fasst jede Zeile, die der Auftakt malt: Wo der Auftakt mehr Zeilen braucht als die eigene Satzbreite der Überschrift (ein Titel im Blocksatz, dessen Leerzeichen sich auf eine Zeile stauchen würden, ein erzwungener Umbruch `\\`), nimmt das Band sie ebenfalls auf. Bis postext 1.4 wurde das Band mit dem in Spaltenbreite umbrochenen Titel gemessen, sodass ein Titel, der auf einer Zeile in den Inhaltsbereich passt, ein zwei Zeilen hohes Band mit der Zeile in seiner Mitte erhielt. Die übrigen Spalten beginnen unter dem Band wie die eigene Spalte der Überschrift. Text, der eine von ihnen eröffnet, beginnt dort, wo Text direkt unter dem Auftakt beginnen würde, gleich was in dessen eigener Spalte auf den Auftakt folgt: das `marginBottom` des Auftakts unter seinem Titel oder seiner Gestaltung, bis zur nächsten Rasterzeile, wenn die Ebene einrastet. Eine Überschrift, eine abgesetzte Formel oder eine Zeile des Inhaltsverzeichnisses, die eine von ihnen eröffnet, wird auf gleicher Höhe mit der ersten Überschrift oder abgesetzten Formel unter dem Auftakt gesetzt, Ränder wie dort eingeschlossen; läuft die Spalte des Auftakts mit etwas anderem weiter, beginnt sie dort, wo dieser Text beginnt. Eine verborgene Überschrift unter dem Auftakt zählt nicht, und der Abstand, den der [Spaltenausgleich](https://postext.dev/de/docs/configuration-page-flow.md#spaltenausgleich) über der Überschrift unter dem Auftakt einfügt, wird in den anderen Spalten nicht wiederholt. Was diese Spalten auf das Raster einrasten, landet auf dem Raster der Seite. Bis postext 1.4 stand ihr erster Block am Fuß des Bands: neben dem Raster, wenn das Band zwischen zwei Zeilen endete, und direkt am Band, ohne Rand, wenn eine Überschrift auf den Auftakt folgte (eine Zeile höher als jetzt, wenn das Band auf dem Raster endete); eine Überschrift dort verlor auch den oberen Rand, den die Überschrift der ersten Spalte behielt. |
| `spanBreak` | `boolean` | `true` | Ob eine Überschrift mit `span: 'page'` eine neue Seite beginnt. `true` eröffnet die nächste Seite (deren Seite `breakBefore` wählt). `false` eröffnet sie zusammen mit `breakBefore.enabled: false` dort, wo der Text hinreicht, wie ein Kasten über die ganze Seitenbreite: Die Spalten darüber enden auf gleicher Höhe (das Band wird ausgeglichen, wenn `headings.balancing.trailing` an ist), die Gestaltung oder der Standardauftakt der Überschrift wird darunter über den Inhaltsbereich gesetzt, und der Text läuft darunter in jeder Spalte weiter: ein zweiter Artikel eines Mitteilungsblatts unter dem Ende des ersten. Fasst der verbleibende Raum die Überschrift und die Mindestzeilen gegen Witwen darunter nicht, eröffnet sie wie mit `true` die nächste Seite. Die Rolle der Seite bleibt die, die ihr erster Block ihr gibt. Ohne Wirkung auf eine Überschrift mit `span: 'column'`. Auch für ein Überschriftenformat. Seit postext 1.19. |
| `advancedDesign` | `HeadingAdvancedDesignConfig` | `{ enabled: false, slot: { elements: [] } }` | Gestaltungsfeld mit freier Komposition für diese Ebene. Mit `enabled` bilden die Elemente des Felds den Auftakt. Verwenden Sie `{titleText}` in einem Textelement, um den Titeltext der Überschrift zu setzen; verwenden Sie `{number}`, `{numberRoman}` usw., um die formatierte Überschriftennummer einzufügen. |
| `advancedDesign.minHeight` | `Dimension` | — | Mindesthöhe, die im Spaltenfluss für die Überschrift reserviert wird. Die Überschrift nimmt `max(design content bottom, minHeight)`, darunter das `marginBottom` der Überschrift (aus ihrem Überschriftenformat, ihrer Ebene oder `headings.marginBottom`; standardmäßig 0,5 em der Überschriftengröße), und die Summe wird auf das Grundlinienraster aufgerundet, wenn Überschriften einrasten. So kann ein Auftakt den Fließtext nach unten schieben (oder die ganze Seite beanspruchen), auch wenn seine Elemente kurz sind oder über der Überschrift an Seiten- oder Anschnittrahmen verankert sind. Für ein Band von genau `minHeight` Höhe setzen Sie dieses `marginBottom` auf 0 und machen `minHeight` zu einer ganzen Zahl von Rasterzeilen. Gilt immer, wenn `enabled` true ist, auch bei leerem Feld. Was die Unterkante des Gestaltungsinhalts zählt, steht unter [Reservierte Höhe](https://postext.dev/de/docs/configuration-headings.md#reservierte-höhe). |

**Ein Auftakt so hoch wie die Seite.** Reicht die reservierte Höhe über den Fuß der Spalte hinaus – ein Umschlag, dessen `minHeight` die Seitenhöhe ist, ein Bild oder ein Kasten, der an der Seite oder am Anschnitt verankert ist und bis zum Beschnitt hinabreicht –, beansprucht der Auftakt den Rest der Seite: Der Text danach beginnt auf der nächsten Seite, in jeder Spalte eines zweispaltigen wie eines Anderthalb-Spalten-Layouts. Ein Umschlag braucht daher kein `:::pagebreak` danach (eines schadet nicht: Es fügt keine leere Seite hinzu). Eine Überschrift in der Spalte (`span: 'column'`), deren Gestaltung höher als ihre Spalte ist, beansprucht diese Spalte, und der Text beginnt am Kopf der nächsten. Der Block der Überschrift reicht dann bis zum Fuß der beanspruchten Spalte, und ihre Gestaltung wird an diesem Band ausgelegt: Oben verankerte Elemente bleiben, wo sie verankert sind, und die, die dem Band folgen – an seiner Mitte oder seinem Fuß verankert oder mit Höhe `'fill'` –, halten sich an den Raum, den die Überschrift beansprucht, wie sie sich an die reservierte Höhe halten, wenn sie passt (bis postext 1.4 behielt der Block die Höhe seines Texts, sodass diese Elemente an einem Band von einer Titelhöhe ausgelegt wurden und der Text danach unter der Gestaltung weiterlief). Seitenausstattung, die die Seite nicht beanspruchen soll – ein Streifen am Vorderschnitt über die ganze Seite, ein Ornament am Seitenfuß –, gehört stattdessen in die Gestaltung von Kopf- oder Fußzeile: An `'page'` oder `'bleed'` verankert und mit `pages: 'opener'` angezeigt, wird sie auf der Auftaktseite gemalt und reserviert keinen Raum im Fließtext.

Beispiel – ein minimalistischer Kapitelauftakt, der „Chapter N“ über dem Titel zeigt:

```json
{
  "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
              }
            ]
          }
        }
      }
    ]
  }
}
```

Platzhalter für Überschriften im Gestaltungsfeld einer Ebene:

- `{titleText}` – der reine Text der Überschrift (ohne Nummernpräfix). Ein erzwungener Umbruch im Titel (`\\`) ist hier ein Zeilenumbruch, in einem Auftaktband wie in einer Gestaltung in der Spalte (bis postext 1.4 druckte eine Gestaltung in der Spalte dort ein Leerzeichen, während ihre Höhe mit dem Umbruch gemessen wurde). Die Zeilen, auf die die verborgene Überschrift in ihrer Spalte umbricht, werden wieder zum Titel wie geschrieben verbunden: Ein nach seinem eigenen Bindestrich umbrochenes Wort behält den Bindestrich ohne Leerzeichen danach, ein Wort, das die Spalte getrennt hat, ist wieder ganz, ohne den Trennstrich, den der Umbruch hinzufügte, eine durch ein geschütztes Leerzeichen verbundene Gruppe, die breiter als die Spalte war und an diesem Leerzeichen geteilt wurde, erhält ihr geschütztes Leerzeichen zurück (`Capítulo XVIII`, nicht `CapítuloXVIII`), und jeder andere Umbruch gibt sein eines Leerzeichen zurück. Bis postext 1.4 wurde jeder Zeilenumbruch zu einem Leerzeichen, sodass ein Titel, der an einem Bindestrich umbrach, `Word- Book` druckte, und ein erzwungener Umbruch in einem solchen Titel entfiel.
- `{number}` – die formatierte Nummer nach dem `numberingTemplate` der Ebene.
- `{numberDecimal}`, `{numberRoman}`, `{numberRomanLower}`, `{numberAlpha}`, `{numberAlphaLower}` – der Zähler der Überschrift (die laufende Zählung ihrer Ebene, gleich was die Vorlage druckt) in anderen Zahlformaten: Das dritte Kapitel ergibt `3`, `III`, `iii`, `C`, `c`, mit oder ohne `numberingTemplate`. Eine nicht nummerierte Überschrift (ein Format mit `numbered: false`) lässt sie leer.
- `{numberWords}`, `{numberWordsLower}`, `{numberOrdinalWords}`, `{numberOrdinalWordsLower}` – derselbe Zähler ausgeschrieben, mit großem Anfangsbuchstaben oder klein: *Drei* / *drei*, *Dritte* / *dritte* (siehe [Ausgeschriebene Zahlen](https://postext.dev/de/docs/configuration-headings.md#ausgeschriebene-zahlen)).
- `{numberHan}` – derselbe Zähler in chinesischen Zahlzeichen, in der Schrift des `locale` des Dokuments: Ein mit `第{numberHan}回` gesetzter Auftakt druckt für das zwölfte Kapitel 第十二回, während das Inhaltsverzeichnis `12` aufführt.
- `{chapterNumber}`, `{chapterTitle}`, `{pageNumber}`, `{totalPages}`, `{bookTotalPages}`, `{title}`, `{subtitle}`, `{author}`, `{publishDate}` – gemeinsame Metadaten-Platzhalter.
- `{attr.<key>}` – ein Attribut, das auf der Überschriftenzeile selbst steht (`# Title {author="I. Zango Martín"}`), ersatzweise das Attribut der H1 des aktuellen Kapitels. Fehlende Attribute werden ohne Warnung zu einer leeren Zeichenkette aufgelöst.

`{chapterNumber}` druckt, was die lebenden Kolumnentitel für das Kapitel drucken: die Nummer der H1, wenn ihre Ebene (oder ihr Format) ein `numberingTemplate` hat, sonst die Ordnungszahl des Kapitels – `1`, `2` …, fortgesetzt über die vor diesem gesetzten Kapitel hinaus – und nichts für ein nicht nummeriertes Kapitel oder ein Format, dessen Vorlage `''` ist. Eine Überschriftengestaltung liest das Kapitel, zu dem ihre Überschrift gehört: eine Überschrift der Ebene 1 ihr eigenes, eine tiefere Überschrift die letzte Überschrift der Ebene 1 vor ihr. Das gilt auch, wo zwei Kapitel auf einer Seite aufeinandertreffen, während die lebenden Kolumnentitel dieser Seite das spätere Kapitel drucken. Die Höhe, die ein Auftakt reserviert, wird mit demselben Wert gemessen. Bis postext 1.4 wurde sie mit dem Nummernpräfix der Überschrift gemessen (ohne Vorlage leer), sodass eine Gestaltung, deren Höhe von `{chapterNumber}` abhängt, höher malen konnte als der Raum, den sie nahm; und die Gestaltung druckte das Kapitel der Seite, sodass das erste von zwei Kapiteln, die sich eine Seite teilen, die Nummer des zweiten zeigte.

Die Zähler-Platzhalter folgen dem Buch über Kapitel hinweg, die einzeln gesetzt werden (die Zähler, die `continuationAfter()` weitergibt), und das Attribut `startAt` einer Überschrift setzt sie neu (siehe **Dokumentformat → Attribute von Überschriften**). Ein Auftakt, der *Chapter III* über einem Titel sagt, der im Textfluss und im Inhaltsverzeichnis mit `3.` nummeriert ist:

```ts
{
  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' } } },
    ] },
  },
}
```

#### Reservierte Höhe

Eine Überschrift mit erweiterter Gestaltung nimmt in der Spalte Raum ein wie jeder Block: Der Fließtext danach beginnt unter diesem Raum. Der Raum ist die größte von drei Höhen, alle von der Oberkante der Überschrift abwärts gemessen (bei einem Auftakt, der seine Seite beginnt, von der Oberkante des Inhaltsbereichs):

1. der eigene Text der Überschrift, in der Typografie der Ebene gesetzt (er ist unter der Gestaltung verborgen, behält aber seine Zeilen);
2. die Unterkante des Gestaltungsinhalts – die tiefste Unterkante unter den Elementen, die zählen (siehe unten);
3. `advancedDesign.minHeight`.

Danach kommt das `marginBottom` der Überschrift hinzu (aus ihrem Überschriftenformat, ihrer Ebene oder `headings.marginBottom`; standardmäßig 0,5 em), und das Ergebnis wird auf das Grundlinienraster aufgerundet, wenn Überschriften einrasten. Bei einem Auftakt (`span: 'page'`) wird dasselbe Band in jeder Spalte der Seite freigehalten. Bei einer Überschrift in der Spalte, die in ihre Spalte passt, wird die Gestaltung im Rahmen der Überschrift ausgelegt, der genau so hoch ist.

**Welche Elemente zählen.** Jedes Element der Gestaltung zählt – Text, Linien, Kästen und Bilder gleichermaßen (bis postext 1.4 zählte ein Element `image` nie, sodass der Text über einem Bild im Band beginnen konnte, wenn `minHeight` ihn nicht fernhielt) –, außer:

- **Elementen mit `reserve: false`** – Dekoration, die unter dem Text liegen darf;
- **Elementen, die dem Band selbst folgen** – an der mittleren Reihe (`left`, `center`, `right`) oder der unteren Reihe (`bottom-left`, `bottom`, `bottom-right`) des Containers verankert, mit einer Höhe `'fill'` gegenüber dem Container (ein Kasten oder eine senkrechte Linie ohne Höhe füllt ihn standardmäßig), und jedem Element, das an einem davon verankert ist. Der Container ist das reservierte Band, daher sitzen diese auf seinem Fuß oder überspannen es: eine Linie unter dem Band, eine getönte Fläche hinter dem Titel. Sie folgen der Höhe; sie legen sie nie fest. Ein Text darunter, der seine eigene Höhe behält, braucht dennoch Platz: Ein am Fuß des Bands verankerter Titel macht das Band mindestens so hoch wie den Titel, sodass der Titel nie über der Oberkante der Überschrift beginnt. Mit `minHeight: 36mm` und dem Titel an `bottom-left` verankert ist der Rahmen der Überschrift 36 mm plus ihr `marginBottom` hoch, auf das Raster aufgerundet, und der Titel sitzt am Fuß dieses Rahmens, direkt über dem folgenden Text; ohne `minHeight` macht ein Titel, der mehr Zeilen braucht als der eigene Text der Überschrift, das Band so tief wie den Titel. Bis postext 1.4 wurde ein solcher Titel nach oben über den Text über der Überschrift gemalt. Kästen, Linien und Bilder, die dem Band folgen, setzen keine solche Untergrenze, sodass eine am Fuß verankerte Fläche über die Überschrift hinausreichen kann.

An Seite und Anschnitt verankerte Elemente zählen danach, wie weit sie unter die Oberkante der Überschrift reichen. Ein Band oben über die Seite, das über der Überschrift endet, zählt nichts; ein randabfallendes Bild, das darüber hinausläuft, schiebt den Text bis zu seiner Unterkante hinunter. Ebenso alles, was tief auf der Seite steht: Ein Siegel 25 mm über dem Seitenfuß, ein Seitenband in voller Höhe oder ein Rahmen reserviert die Seite bis zu seiner Unterkante, und der Text beginnt meist auf der nächsten Seite. Kennzeichnen Sie solche Dekoration mit `reserve: false` – sie wird weiterhin gemalt, und Elemente können weiterhin an ihr verankert werden – und geben Sie der Überschrift den nötigen Raum mit ihren Textelementen oder `minHeight`:

```json
{
  "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" } }
  }
}
```

Ein Element, das an einem nicht reservierenden verankert ist, zählt weiterhin, sofern es nicht ebenfalls gekennzeichnet ist (eine auf das Siegel gesetzte Legende braucht ihr eigenes `reserve: false`).

**Wo sie malt.** Die Gestaltung eines Auftakts (`span: 'page'`) wird vor dem Fließtext gezeichnet, sodass Dekoration, die nichts reserviert, unter dem Text liegt. Die Gestaltung einer Überschrift in der Spalte wird mit dem Block der Überschrift gezeichnet – über den Blöcken darüber in der Spalte, unter denen danach –, wo immer sie oberhalb des Fußes ihrer Spalte platziert ist: auch in den Seitenrändern, im Kopfsteg, im Anschnitt und in den benachbarten Spalten. Der Fuß der Spalte schneidet sie ab, auf dem Canvas und im PDF, da der Textfluss dort endet (siehe **Höher als die Spalte** unten). Bis postext 1.4 schnitten Canvas und PDF sie auch am Kopf ihrer Spalte ab, sodass ein oben an Seite oder Anschnitt verankertes Band in die Seitenränder lief, aber am Kopfsteg aufhörte. Dekoration, die am Seitenfuß verankert ist, gehört in einen Auftakt oder in die Gestaltung der Fußzeile mit `pages: 'opener'`.

**Höher als die Spalte.** Reicht der Raum über den Fuß der Spalte hinaus – ein `minHeight` so hoch wie die Seite, ein Bild oder Rahmen, das bzw. der bis zum Beschnitt hinabreicht –, beansprucht die Überschrift den Rest ihrer Seite (ein Auftakt, in jeder Spalte) oder ihrer Spalte (eine Überschrift in der Spalte), und der Text danach beginnt auf der nächsten Seite oder in der nächsten Spalte. Ihr Block reicht dann bis zum Fuß der Spalte und wird nie auf die Höhe ihres Texts zurückgeschnitten, sodass das Band, an dem ihre Gestaltung ausgelegt wird, der beanspruchte Raum ist (`minHeight` eingeschlossen, bis zum Fuß). Eine Gestaltung, die höher als die Seite selbst ist – ein langer Vorspann auf einer kleinen Bildschirmseite –, wird weiterhin am Seitenfuß abgeschnitten (eine Gestaltung in der Spalte am Fuß ihrer Spalte): Die Sandbox führt das im Bedienfeld **Prüfungen** als *Überschriftengestaltung abgeschnitten* auf. Das Layout gibt dafür keine Warnung aus – ein Umschlag, der seine Seite beansprucht, ist der übliche Fall und verliert nichts –, aber jeder Host kann dieselbe Prüfung am fertigen Layout ausführen: `collectHeadingDesignCuts(doc)` liefert ein `{ kind: 'headingDesignCut', pageIndex, level, where, overflowPx, sourceStart, sourceEnd }` für jede Überschrift, deren Gestaltungstext über den Fuß des Seitenbeschnitts (`where: 'page'`, ein Auftakt) oder ihrer Spalte (`where: 'column'`) hinausreicht, und `formatWarning` beschreibt jede. Siehe **Ein Auftakt so hoch wie die Seite** unter [Seitenbreite und erweiterte Gestaltung](https://postext.dev/de/docs/configuration-headings.md#seitenbreite-und-erweiterte-gestaltung).

**Die Seitenspalte.** In einem Anderthalb-Spalten-Layout, dessen Seitenspalte Gleitobjekte aufnimmt (`sideColumnRole: 'floats'`), hält ein Element der Gestaltung einer Überschrift in der Spalte, das in der Seitenspalte steht – eine an der Seite verankerte Kapitelziffer in der äußeren Randspalte eines Lehrbuchauftakts –, den Stapel der Seitenspalte von sich fern. Jede Abbildung, Tabelle oder jeder Kasten mit `span: 'side'`, den die Seite nach der Überschrift setzt, hält einen Gleitobjektabstand zu jedem solchen Element frei: Er bleibt, wo der Stapel ihn hinsetzt, wenn er über dem Element passt, und geht sonst darunter – oder wartet auf die nächste Seite, wenn der Rest der Seitenspalte ihn dort nicht fassen kann. Eine Ziffer am Kopf des Kanals hält also den ganzen Stapel unter sich, während eine Abschnittsnummer, die neben einer weiter unten stehenden Überschrift im Rand hängt, den Kopf des Kanals den Abbildungen überlässt, die die Seite zitiert (die Randabbildung sitzt weiterhin oben auf ihrer Seite). Was die Seitenspalte schon enthält, wenn die Überschrift platziert wird, wird nicht bewegt: Eine früher auf der Seite gestapelte Abbildung, die bis zum Element der Überschrift hinabreicht, bleibt, wo sie ist, unter dem Element; eine Gestaltung, deren Element mitten auf der Seite in der Seitenspalte steht, braucht ihre Abbildungen also nach der Überschrift zitiert. Elemente mit `reserve: false` lassen die Seitenspalte frei, wie sie den Text freilassen. Ein Auftakt (`span: 'page'`) braucht nichts dergleichen: Sein Band ist in jeder Spalte reserviert, die Seitenspalte eingeschlossen. Bis postext 1.4 wurde eine auf einem solchen Auftakt zitierte Seitenabbildung am Kopf der Seitenspalte über die Ziffer gesetzt.

**Umschläge.** Eine Umschlagüberschrift, die ihre Seite füllt – `minHeight` so hoch wie die Seite oder ein ganzseitiges Bild in ihrer Gestaltung –, schickt den Text danach daher von selbst auf die nächste Seite, in ein- wie mehrspaltigen Layouts. Ein `:::pagebreak` direkt danach ist optional und schadet nicht: Ein Seitenumbruch auf einer noch leeren Seite bewirkt nichts und fügt daher nie eine leere Seite hinzu. Er wird nur gebraucht, wenn die Gestaltung des Umschlags vor dem Seitenfuß aufhört und der Text dennoch auf einer neuen Seite beginnen soll.

```md
# Annual report 2026 {style="cover"}

:::pagebreak

# Letter from the chair
```

### Ausgeschriebene Zahlen

Zwei Suffixe der Nummerierungsvorlage schreiben einen Zähler in Worten, in der Dokumentsprache (dem `locale` der obersten Ebene, sonst der Sprache der Silbentrennung – siehe [Dokumentsprache](https://postext.dev/de/docs/configuration-language.md#dokumentsprache)): `words` für die Grundzahl und `ordinal` für die Ordnungszahl. Die Schreibung des Suffixes legt die Schreibung der Wörter fest, wie `A` / `a` es für Buchstaben tut:

| Token | Englisch (21) | Spanisch (21) | Chinesisch (21) |
| --- | --- | --- | --- |
| `{1:words}` | twenty-one | veintiuno | 二十一 |
| `{1:Words}` | Twenty-one | Veintiuno | 二十一 |
| `{1:WORDS}` | TWENTY-ONE | VEINTIUNO | 二十一 |
| `{1:ordinal}` | twenty-first | vigesimoprimero | 第二十一 |
| `{1:Ordinal}` | Twenty-first | Vigesimoprimero | 第二十一 |
| `{1:ORDINAL}` | TWENTY-FIRST | VIGESIMOPRIMERO | 第二十一 |

Englisch, Spanisch, Französisch, Italienisch, Deutsch, Katalanisch, Portugiesisch, Chinesisch, Japanisch und Arabisch werden ausgeschrieben; jede andere Sprache erhält die englischen Wörter, wie bei den eingebauten Fortsetzungstexten von Tabellen. Chinesisch schreibt die informellen Zahlzeichen von `simp-chinese-informal` oder `trad-chinese-informal`, je nach Schrift von `locale` (一万 / 一萬), mit 第 vor einer Ordnungszahl; Han-Zeichen kennen keine Groß- und Kleinschreibung, daher drucken die drei Schreibungen eines Suffixes gleich. Englisch folgt dem amerikanischen Gebrauch (*one hundred five*, ohne *and*). Spanisch verwendet standardmäßig männliche Formen, wie ein *capítulo* oder ein *libro* nummeriert wird (*capítulo primero*, *tercero*, *veintiuno*), und schreibt die Ordnungszahlen von 13 bis 29 in einem Wort, wie es die RAE bevorzugt (*decimotercero*, *vigesimoprimero*). Grundzahlen werden bis 999 999 ausgeschrieben und spanische, katalanische und portugiesische Ordnungszahlen bis 999; größere Zahlen erscheinen in Ziffern.

Französisch folgt der traditionellen Schreibung (*vingt et un*, *soixante et onze*, *quatre-vingts*, *deux cent un*) und schreibt *premier* für eins (*Chapitre premier*, aber *vingt et unième*); Italienisch schreibt jede Zahl in einem Wort (*ventuno*, *ventitré*, *duemilaventiquattro*; *primo*, *ventunesimo*), Deutsch ebenso (*einundzwanzig*, *hunderteins*; *erste*, *einundzwanzigste*), mit *ss* statt *ß* im Schweizer Hochdeutsch (`de-CH`); Katalanisch folgt dem IEC (*vint-i-u*, *dos-cents*; *primer*, *cinquè*, *vint-i-unè*), und Portugiesisch ist das brasilianische (*dezesseis*), sofern `locale` keine andere Region nennt (`pt-PT`: *dezasseis*), mit den lateinischen Ordnungszahlen (*vigésimo primeiro*). Katalanische und portugiesische Ordnungszahlen werden wie die spanischen bis 999 ausgeschrieben.

Die romanischen Sprachen lesen den Genus-Modifikator: `-feminine` (oder `-f`) gleicht die Wörter an ein weibliches Substantiv an (`Parte {1:ordinal-f}` ergibt auf Italienisch *Parte prima*, `{1:Ordinal-f} partie` auf Französisch *Première partie*; ebenso *veintiuna*, *vint-i-una*, *duzentas*), `-masculine` (`-m`) ist der Standard. Im Deutschen bleibt die Grundzahl unverändert (*Kapitel eins*), die Ordnungszahl nicht: Ohne Modifikator erhält sie die Endung nach dem Artikel, die in allen drei Genera gleich ist (`Das {1:ordinal} Kapitel` ergibt *Das erste Kapitel*); vor einem Substantiv ohne Artikel ergibt `-masculine` *Erster Teil*, `-feminine` *Erste Lektion* und `-neuter` (`-n`) *Erstes Kapitel*. Zahlwörter schreibt das Deutsche klein (`Kapitel {1:words}` ergibt *Kapitel eins*); `{1:Words}` setzt einen Großbuchstaben an den Anfang, für ein Wort, mit dem die Überschrift beginnt, und `{1:WORDS}` schreibt ß als SS.

Arabische Zahlen richten sich im Genus nach dem gezählten Substantiv, daher nimmt das Suffix einen Modifikator an: `-feminine` (oder `-f`) für ein weibliches Substantiv, `-masculine` (`-m`, der Standard) für ein männliches; `-classical` schreibt die Hunderter مائة, wie es Bulaq und die meisten ägyptischen Drucke tun, statt des modernen مئة. `{1:ordinal}` schreibt die bestimmte Ordnungszahl im Nominativ, die eine Überschrift verwendet: `الفصل {1:ordinal}` ergibt *الفصل الأول*, *الفصل الحادي عشر*, *الفصل الحادي والعشرون*; `الليلة {1:ordinal-feminine}` ergibt *الليلة الأولى*, *الليلة الحادية عشرة*, *الليلة الحادية والعشرون*, *الليلة المئتان* und über hundert die klassische „Nach“-Formel: *الليلة الخامسة والأربعون بعد الثلاثمئة*, *الليلة الحادية بعد الألف*. `{1:words}` schreibt die Grundzahl (واحد وعشرون; weiblich إحدى عشرة, واحدة وعشرون). Ordnungszahlen werden bis 9 999 und Grundzahlen bis 99 999 ausgeschrieben; die Modifikatoren lassen sich kombinieren (`{1:ordinal-f-classical}`); die romanischen Sprachen und Deutsch lesen nur das Genus (siehe oben), und andere Sprachen ignorieren sie. Arabisch kennt keine Großbuchstaben, daher ändert die Schreibung des Suffixes nichts. Die Gestaltungsplatzhalter `{numberWords}` und `{numberOrdinalWords}` schreiben die männlichen Formen; für einen weiblichen Auftakt setzen Sie die Ordnungszahl in die Vorlage der Ebene und drucken sie mit `{number}`.

In einer Überschriftengestaltung schreiben `{numberWords}` / `{numberWordsLower}` und `{numberOrdinalWords}` / `{numberOrdinalWordsLower}` den Zähler der Überschrift auf dieselbe Weise aus, sodass der Auftakt *Chapter One* sagen kann, während das Inhaltsverzeichnis `1` aufführt. `textTransform: 'uppercase'` eines Textelements liefert die Versalien:

```ts
// Spanish novel: "CAPÍTULO PRIMERO" above the title, "1." in the contents.
{ 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}', /* … */ },
  ] } } }
```
