# Konfiguration: Anmerkungen und Verweise

> Fußnoten, Zeilennummern, Querverweise und Zitationen, das Inhaltsverzeichnis und das Register

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

## Kurz gesagt

Diese Seite behandelt die Einstellungen für die Teile eines Buchs, die auf etwas anderes verweisen. Fußnoten stehen unten auf der Seite, Zeilennummern am Rand. Querverweise nennen eine Abbildung, einen Abschnitt oder eine Seite, Zitationen nennen die Werke, aus denen Sie zitieren. Das Inhaltsverzeichnis führt die Kapitel auf, das Register am Ende des Buchs die Begriffe mit ihren Seiten. Jeder Abschnitt erklärt, wie diese Teile aussehen und wie sie nummeriert werden.

## Fußnoten

Die Eigenschaft `footnotes` legt fest, wohin die mit `[^id]` zitierten Anmerkungen kommen, wie sie nummeriert werden und wie sie aussehen. Das Markup ist unter [Dokumentformat](https://postext.dev/de/docs/document-format.md#fußnoten) beschrieben.

```ts
interface FootnotesConfig {
  placement?: 'column' | 'chapterEnd' | 'spread'; // Foot of the citing column, after the chapter, or beside the text of a spread.
  numbering?: 'chapter' | 'document' | 'page' | 'column' | 'spread'; // Start again at each chapter, run on, or start again on each page / column / spread.
  numberFormat?: string;      // decimal, lower-roman, circled-decimal (①)…
  symbols?: string[];         // The note symbols of numberFormat: 'symbols'.
  markerPosition?: 'auto' | 'superscript' | 'inline' | 'side' | 'right'; // Raised, on the baseline, beside the word, or right of a vertical line.
  markerSize?: Dimension;     // Inline, side or right marker size; em is the text around it.
  numberGap?: 'en' | 'em';    // Space after the note's own number.
  chapterEndAlign?: 'foot' | 'text';   // chapterEnd: notes at the column foot, or under the text.
  fontSize?: Dimension;       // Note size; em is the body size.
  lineHeight?: Dimension;     // Note leading; em is the note size.
  color?: ColorValue;         // Note colour; the body colour when unset.
  textAlign?: TextAlign;      // The body alignment when unset.
  wordBreak?: 'normal' | 'keep-all'; // The document's cjk.wordBreak when unset.
  hangingIndent?: Dimension;  // Indent of a note's turnover lines.
  spaceBetween?: Dimension;   // Space between two notes.
  spaceAbove?: Dimension;     // Space between the text and the rule; em is the body size.
  spaceBelowRule?: Dimension; // Space between the rule and the first note.
  separator?: {
    enabled?: boolean;        // Draw the rule.
    width?: number;           // Rule length, a fraction of the column width.
    lineWidth?: Dimension;    // Rule thickness.
    color?: ColorValue;       // The note colour when unset.
  };
}
```

| Eigenschaft | Typ | Standardwert | Beschreibung |
| --- | --- | --- | --- |
| `placement` | `'column' \| 'chapterEnd' \| 'spread'` | `'column'` (japanische Bücher in vertikaler Schrift: `'chapterEnd'`) | `'column'` setzt jede Anmerkung unter einer kurzen Linie an den Fuß der Spalte, die die zitierende Zeile enthält; in einem einspaltigen Layout ist das der Fuß der Seite. `'chapterEnd'` setzt alle Anmerkungen eines Kapitels in der Reihenfolge ihrer Zitierung hinter dessen letzten Block. `'spread'` (傍注, nur vertikale Schrift) setzt die auf beiden Seiten einer Doppelseite zitierten Anmerkungen unter der Linie ans Ende ihrer ungeraden Seite, also der linken Seite eines rechts gebundenen Buchs: Anmerkungen, die auf der geraden Seite zitiert werden, warten auf sie; eine Anmerkung, die auf der ungeraden Seite weniger als eine Textzeile übrig ließe, bleibt mit den folgenden am Fuß der geraden Seite, und ein Kapitel, das auf einer geraden Seite endet, behält dort seine wartenden Anmerkungen. In horizontaler Schrift fällt die Einstellung auf `'column'` zurück, mit einer Warnung `unknownConfigValue`. Seit postext 1.16. |
| `numbering` | `'chapter' \| 'document' \| 'page' \| 'column' \| 'spread'` | `'chapter'` (japanische Bücher in horizontaler Schrift: `'page'`; mit `placement: 'spread'`: `'spread'`; mit `numberFormat: 'symbols'` am Spaltenfuß: `'page'`) | `'chapter'` beginnt unter jeder Überschrift der Ebene 1 und am Anfang jedes Dokuments wieder bei 1. `'document'` zählt durch das ganze Dokument weiter und, in einem Buch, das Kapitel für Kapitel umbrochen wird, von einem Kapitel zum nächsten (`continuationAfter` übergibt die letzte Nummer als `continuation.footnoteNumber`). `'page'` beginnt auf jeder Seite wieder bei 1 und `'column'` in jeder Spalte; gezählt werden die Anmerkungen dort, wo das Layout sie setzt (die Spalten einer Seite in Lesereihenfolge): die übliche 页下注 eines chinesischen Buchs. Das Dokument wird umbrochen, nach den Stellen nummeriert, an denen seine Anmerkungen gelandet sind, und erneut umbrochen, bis die Nummern feststehen (höchstens drei weitere Builds). Beide gelten für Anmerkungen am Spaltenfuß: Mit `placement: 'chapterEnd'` werden die Anmerkungen kapitelweise nummeriert. `'spread'` beginnt auf jeder Doppelseite (Seiten 2–3, 4–5 …) neu, in der Reihenfolge der Zitierung, für `placement: 'spread'`. |
| `numberFormat` | `string` | `'decimal'` | Wie die Nummern geschrieben werden, in jeder Schreibweise, die die Nummerierungseinstellungen annehmen: `'decimal'`, `'lower-roman'`, `'lower-alpha'`, `'circled-decimal'` (oder `'①'`), `'cjk-decimal'`, `'一'` … Das Fußnotenzeichen im Text und die Nummer, mit der die Anmerkung beginnt, verwenden es beide. `circled-decimal` schreibt Nummern über 50 dezimal. Ein unbekannter Name nummeriert dezimal, mit einer Warnung `unknownNumberFormat`. `'symbols'` (oder `'*'`) kennzeichnet die Anmerkungen mit Verweiszeichen, der Reihe nach aus `symbols`: * † ‡ § ‖ ¶, dann doppelt (** †† ‡‡ …) und dreifach; die Anmerkungen werden dann auf jeder Seite neu gezählt, sofern `numbering` nicht gesetzt ist. Seit postext 1.19. |
| `symbols` | `string[]` | `['*', '†', '‡', '§', '‖', '¶']` | Die Folge, die `numberFormat: 'symbols'` schreibt, doppelt und dann dreifach, sobald sie aufgebraucht ist. Die lateinischen Dateien von Google Fonts und Fontsource enthalten * † § ¶ (das Kreuz in `latin-ext`), aber weder ‡ noch ‖, die das PDF dann als Glyphe `.notdef` der Schrift zeichnet, mit einer Warnung `missingGlyph`: Lassen Sie sie bei einer solchen Schrift weg (`['*', '†', '§', '¶']`) oder setzen Sie die Anmerkungen in einer Schrift, die sie enthält. Leere Zeichenketten werden verworfen, und eine leere Liste behält den Standardwert. Seit postext 1.19. |
| `markerPosition` | `'auto' \| 'superscript' \| 'inline' \| 'side' \| 'right'` | `'auto'` | `'superscript'` stellt das Fußnotenzeichen im Text und die Nummer, mit der die Anmerkung beginnt, verkleinert hoch. `'inline'` setzt sie auf die Grundlinie: das Zeichen in `markerSize`, die Nummer der Anmerkung in deren Schriftgröße; in vertikaler Schrift steht ein eingekreistes Zeichen auf der Zeile aufrecht in einer eigenen Zelle. `'right'` setzt ein verkleinertes Zeichen bündig an die rechte Seite einer vertikalen Zeile, wie japanische Bücher in vertikaler Schrift （1） setzen; in horizontaler Schrift ist es hochgestellt. `'side'` (合印) setzt ein kleines Zeichen neben das markierte Wort, auf die Seite seiner Ruby, dort endend, wo das letzte Zeichen des Worts endet; es nimmt keinen Platz in der Zeile ein, die so umbrochen und ausgeschlossen wird, als wäre es nicht da, und ein Zeilenzwischenraum, der dafür zu schmal ist, wird als `rubyExceedsLeading` gemeldet. `'auto'` bedeutet auf der Zeile für `circled-decimal`, `'right'` in einem japanischen Buch in vertikaler Schrift und sonst hochgestellt. In jedem Fall bleibt das Zeichen beim vorangehenden Zeichen und eröffnet nie eine Zeile. |
| `markerSize` | `Dimension` | `1em`; `0.6em` für `'side'`, `0.7em` für `'right'` | Größe eines Fußnotenzeichens auf der Zeile, an der Seite oder rechts; `em` ist die Größe des umgebenden Texts (`0.75em` ist eine übliche Verkleinerung). Keine Wirkung auf ein hochgestelltes Zeichen. |
| `numberGap` | `'en' \| 'em'` | `'en'` (japanische Anmerkungen nach dem Kapitel: `'em'`) | Der Abstand nach der Nummer, mit der eine Anmerkung beginnt: ein Halbgeviert oder ein volles Geviert der Anmerkungsschrift (ein ideografisches Leerzeichen, wenn die Nummer oder die Anmerkung CJK-Text enthält), nie gedehnt oder umbrochen. Seit postext 1.16. |
| `markerTemplate` | `string` | `'{n}'` (japanische Bücher in vertikaler Schrift: `'（{n}）'`) | Wie die Nummer einer Anmerkung geschrieben wird; `{n}` steht für sie im Nummernformat und in den Ziffern des Dokuments: `'({n})'` ergibt die eingeklammerten Zeichen arabischer Bücher, «(١)». Die Vorlage schreibt das Zeichen im Text und die Nummer, mit der die Anmerkung beginnt, gleichermaßen. Eine Vorlage ohne `{n}` gilt als Standardwert. |
| `noteNumberPosition` | `'auto' \| 'superscript' \| 'inline'` | `'auto'` | Wo die Nummer steht, mit der die Anmerkung beginnt: hochgestellt oder auf der Zeile in der Anmerkungsgröße. `'auto'` folgt `markerPosition`. Arabische Bücher stellen das Zeichen im Text hoch und setzen die Nummer der Anmerkung selbst auf die Zeile. |
| `chapterEndAlign` | `'foot' \| 'text'` | `'foot'` | Mit `placement: 'chapterEnd'`: `'foot'` setzt die Anmerkungen, die eine Spalte abschließen, an ihren Fuß; die übrig gebliebenen Zeilen bleiben zwischen Text und Anmerkungen frei, so wie Anmerkungen am Spaltenfuß stehen. `'text'` setzt sie direkt unter den Text. |
| `fontSize` | `Dimension` | `0.8em` | Schriftgröße des Anmerkungstexts. `em` und `rem` sind die Grundschriftgröße. Die Anmerkungen verwenden Schriftfamilie und Schriftstärken des Fließtexts. |
| `lineHeight` | `Dimension` | `1.25em` | Zeilenabstand des Anmerkungstexts; `em` ist die Anmerkungsgröße. Die Anmerkungen liegen nicht auf dem Grundlinienraster: Sie stapeln sich vom Spaltenfuß nach oben, und der Text darüber bleibt im Raster. |
| `color` | `ColorValue` | Farbe des Fließtexts | Farbe des Anmerkungstexts. |
| `textAlign` | `TextAlign` | Ausrichtung des Fließtexts | Ausrichtung des Anmerkungstexts. |
| `wordBreak` | `'normal' \| 'keep-all'` | `cjk.wordBreak` | Wo die Anmerkungen zwischen chinesischen, japanischen und koreanischen Zeichen umbrechen, unabhängig vom Fließtext (siehe [`cjk.wordBreak`](https://postext.dev/de/docs/configuration-east-asian.md#ostasiatische-typografie)). `'keep-all'` hält eine Folge solcher Zeichen zusammen: Die Lesungen, die eine englische Anmerkung zitiert (`看月光`), brauchen dann keinen Wortverbinder mehr zwischen je zwei Zeichen, während die Gedichte der Seite weiterhin zwischen beliebigen zwei Zeichen umbrechen. `'normal'` bewirkt das Gegenteil in einem Dokument, das `'keep-all'` setzt. Anmerkungen am Spaltenfuß, am Kapitelende und neben einer Doppelseite übernehmen die Einstellung. Seit postext 1.28. |
| `hangingIndent` | `Dimension` | `0` | Einzug der zweiten und aller weiteren Zeilen einer Anmerkung, damit sie hinter deren Nummer fluchten. |
| `spaceBetween` | `Dimension` | `0` | Abstand zwischen zwei Anmerkungen. |
| `spaceAbove` | `Dimension` | `0.5em` | Abstand zwischen der letzten Textzeile und der Linie; `em` ist die Grundschriftgröße. Mit `'chapterEnd'` und `chapterEndAlign: 'text'` ist `spaceAbove` + `spaceBelowRule` der Abstand zwischen dem Text und der ersten Anmerkung. |
| `spaceBelowRule` | `Dimension` | `0.4em` | Abstand zwischen der Linie und der ersten Anmerkung. |
| `separator.enabled` | `boolean` | `true` | Zeichnet die Linie über den Anmerkungen jeder Spalte. Mit `false` bleiben die Abstände darüber erhalten. |
| `separator.width` | `number` | `0.3` | Länge der Linie als Anteil der Spaltenbreite (0–1), ab dem linken Rand der Spalte. |
| `separator.lineWidth` | `Dimension` | `0.5pt` | Stärke der Linie. |
| `separator.color` | `ColorValue` | Farbe der Anmerkungen | Farbe der Linie. |

```ts
footnotes: {
  fontSize: { value: 7.5, unit: 'pt' },
  lineHeight: { value: 9.5, unit: 'pt' },
  hangingIndent: { value: 0.8, unit: 'em' },
  separator: { width: 0.25, lineWidth: { value: 0.4, unit: 'pt' } },
}
```

**Japanische Bücher.** Ein japanisches Dokument (`locale: 'ja'`, seit postext 1.16) gibt den Feldern, die es nicht setzt, die Werte aus JLReq §4.2. Ein Buch in vertikaler Schrift setzt seine Anmerkungen nach dem Kapitel (`placement: 'chapterEnd'`, 後注), kapitelweise nummeriert, mit den Zeichen `（{n}）` rechts der Zeile (`markerPosition: 'right'`, Ziffern aufrecht durch `cjk.uprightDigits`); ein Buch in horizontaler Schrift setzt sie an den Fuß der Seite, seitenweise nummeriert, mit hochgestellten Zeichen. Beide zeichnen die Linie mit einem Drittel der Satzbreite (`separator.width: 1/3`), und Anmerkungen nach dem Kapitel erhalten `numberGap: 'em'` und einen hängenden Einzug von zwei Geviert. Ein ausdrücklich gesetzter Wert hat Vorrang und wird beim Speichern beibehalten (`stripFootnotesDefaults` vergleicht mit den Standardwerten des jeweiligen Dokuments); chinesische, arabische und lateinische Dokumente werden wie bisher aufgelöst. `footnoteDocumentDefaults(locale, writingMode, placement?)` gibt diese Werte zurück. Setzen Sie ein Zeichen vor ein satzschließendes 。 (`先生[^1]。`): Es bleibt beim vorangehenden Zeichen, und 。 eröffnet nie eine Zeile. Siehe [Japanischer Satz › Anmerkungen](https://postext.dev/de/docs/japanese-layout.md#anmerkungen).

So werden die Anmerkungen am Spaltenfuß gesetzt:

- **Anmerkung und Zitierstelle teilen sich eine Spalte.** Bevor das Layout eine Zeile platziert, addiert es die Höhe der Anmerkungen, die diese Zeile zum ersten Mal zitiert (und die Linie, bei der ersten Anmerkung der Spalte). Eine Zeile, deren Anmerkungen nicht darunter passen, wandert mit dem Rest ihres Absatzes in die nächste Spalte, nach den Regeln für Waisen und Witwen. Der Textbereich der Spalte verkleinert sich um die Höhe der Anmerkungen, sodass Spaltenausgleich und Schlussband eines Kapitels nur den Text zählen.
- **Mehrere Anmerkungen** in einer Spalte stapeln sich in der Reihenfolge der Zitierung unter einer Linie. Eine Anmerkung, die später erneut zitiert wird, behält ihre Nummer und wird nicht noch einmal gesetzt.
- **Gleitobjekte unten.** Eine Abbildung, die den Fuß einer Spalte einnimmt, nachdem deren Anmerkungen gesetzt wurden, kommt über sie; Anmerkungen, die nach der Abbildung gesetzt werden, kommen über die Abbildung.
- **Kästen.** Eine Anmerkung, die in einem Kasten zitiert wird (im Textfluss, gleitend oder fest platziert), kommt an den Fuß der Spalte, in der der Text nach dem Kasten weitergeht, meist dieselbe Spalte. Ein Kasten, der das Dokument abschließt, lässt seine Anmerkungen am Fuß der Spalte, in der der Text endete.
- **Grenzen.** Eine Anmerkung wird nie geteilt: Eine, die höher als eine Spalte ist, läuft über sie hinaus. Zeichen in Legenden, Tabellenzellen und Überschriften werden nicht ausgewertet (sie werden so gedruckt, wie sie geschrieben sind).
- **Ausgabe.** Canvas, HTML und PDF zeichnen die Anmerkungen, die Zeichen (eine hochgestellte Nummer) und die Linie. Im PDF verlinkt jedes Zeichen auf seine Anmerkung, und ein getaggtes PDF legt jede Anmerkung als Element `Note` mit einer eindeutigen `/ID` an, die im `/IDTree` des Strukturbaums aufgeführt ist (PDF/UA-1). Die Anmerkungen sind `VDTBlock`s mit gesetztem `footnoteNote` in `page.floats`; die Linien liegen in `page.footnoteAreas`.
- **Warnungen.** `undefinedFootnote` (ein Zeichen ohne Definition: Die Nummer wird über einer leeren Anmerkung gedruckt) und `unusedFootnote` (eine Definition, die kein Zeichen zitiert: Sie wird nicht gesetzt).

Resolver und Stripper entsprechen denen der anderen Abschnitte:

```ts
import { DEFAULT_FOOTNOTES_CONFIG, resolveFootnotesConfig, stripFootnotesDefaults, footnoteDocumentDefaults } from 'postext';

resolveFootnotesConfig(config.footnotes, 'ja', 'vertical-rl'); // unset fields take the Japanese vertical defaults
```

## Zeilennummern

Die Eigenschaft `lineNumbers` druckt die Nummer jeder fünften (oder jeder n-ten) Zeile daneben auf den Rand, wie es kritische Ausgaben, Gedichtanthologien, Gesetzestexte und Schulausgaben tun. Sie zählt die Zeilen von Gedichten in `:::verse` oder jede Zeile des Texts. Standardmäßig ist sie ausgeschaltet. Jede Nummer wird auf die Grundlinie ihrer Zeile gesetzt, in einer eigenen Größe, und verschiebt nie eine Zeile: Die Seite wird genau so umbrochen, wie sie es ohne Nummern würde. Seit postext 1.23.

```ts
interface LineNumbersConfig {
  enabled?: boolean;        // Off by default.
  count?: 'verse' | 'all';  // The lines of poems, or every line of the text.
  interval?: number;        // Print the multiples of N.
  numberFirst?: boolean;    // Also print the first line after each restart.
  restart?: 'document' | 'chapter' | 'section' | 'page' | 'poem'; // Where the count starts again.
  startAt?: number;         // The number of the first line after a restart.
  position?: 'outer' | 'inner' | 'left' | 'right' | 'start' | 'end' | 'side';
  multiColumn?: 'each' | 'gutter' | 'outer-edges'; // Pages of two or more columns.
  gap?: Dimension;          // From the text to the number; em is the number's size.
  align?: 'auto' | 'left' | 'right';
  fontFamily?: string;      // The body family when unset.
  fontSize?: Dimension;     // em is the body size.
  fontWeight?: number;      // The body weight when unset.
  italic?: boolean;
  color?: ColorValue;       // The body colour when unset.
  format?: string;          // decimal, lower-roman, arabic-indic, 一…
}
```

| Eigenschaft | Typ | Standardwert | Beschreibung |
| --- | --- | --- | --- |
| `enabled` | `boolean` | `false` | Druckt Zeilennummern. Ein Dokument in vertikaler Schrift (`layout.writingMode: 'vertical-rl'`) erhält keine, und `true` wird dort als `lineNumbersUnsupported` gemeldet. |
| `count` | `'verse' \| 'all'` | `'verse'` | `'verse'` zählt die Zeilen von Gedichten in `:::verse`, jeden Vers einmal: Ein Überlauf (der Rest eines Verses, der für die Satzbreite zu lang ist und in der nächsten Zeile steht) erhält keine Nummer, und der Abstand zwischen Strophen wird nicht gezählt. Ein Gedicht im klassischen arabischen Layout zählt eine Zeile pro Bait; die zweite Zeile eines versetzten Baits wird nicht gezählt. `'all'` zählt jede Zeile von Absätzen des Fließtexts, Listenpunkten, Blockzitaten und Versen in Lesereihenfolge: Seite für Seite, Spalte für Spalte, von oben nach unten. |
| `interval` | `number` | `5` | Druckt die Nummer jeder Zeile, die ein Vielfaches dieses Werts ist (5, 10, 15 …). Ein Gedicht, dessen erste Zeile die 37 ist, druckt 40, 45 … Der Zaun eines Gedichts kann einen eigenen Wert setzen (`interval=N`). |
| `numberFirst` | `boolean` | `false` | Druckt zusätzlich die Nummer der ersten gezählten Zeile nach jedem Neubeginn. |
| `restart` | `'document' \| 'chapter' \| 'section' \| 'page' \| 'poem'` | `'poem'` mit `count: 'verse'`, `'page'` mit `count: 'all'` | Wo die Zählung neu beginnt: nie (`'document'`, das durch die Kapitel eines Buchs weiterzählt), bei jeder Überschrift der Ebene 1 (`'chapter'`), bei jeder Überschrift der Ebene 1 oder 2 (`'section'`), auf jeder Seite (`'page'`) oder bei jedem Gedicht in `:::verse` (`'poem'`). `lineStart=N` eines Gedichts und `lines=N` der Direktive `:::numbering` lassen sie an beliebiger Stelle und in jedem Modus neu beginnen. |
| `startAt` | `number` | `1` | Die Nummer der ersten Zeile nach einem Neubeginn. |
| `position` | `'outer' \| 'inner' \| 'left' \| 'right' \| 'start' \| 'end' \| 'side'` | `'outer'` | Die Seite, auf der die Nummern stehen. `'outer'` liegt vom Bund abgewandt: rechts auf einer ungeraden Seite und links auf einer geraden, in einem rechts gebundenen Buch umgekehrt. `'inner'` ist die Bundseite. `'left'` und `'right'` sind auf jeder Seite gleich. `'start'` und `'end'` folgen der Schreibrichtung des Dokuments: `'start'` ist in einem Buch mit Schrift von rechts nach links die rechte Seite. `'side'` setzt sie in die Seitenspalte eines Layouts `'oneAndHalf'` mit `layout.sideColumnRole: 'floats'`, bündig an den Rand der Seitenspalte neben dem Text (`gap` wird nicht verwendet); auf einer Seite ohne Seitenspalte fällt die Einstellung auf `'outer'` zurück. |
| `multiColumn` | `'each' \| 'gutter' \| 'outer-edges'` | `'outer-edges'` | Seiten mit zwei oder mehr nebeneinanderliegenden Textspalten. `'outer-edges'` setzt die Nummern der ersten Spalte links von ihr und die der letzten Spalte rechts von ihr; die Spalten dazwischen folgen `'each'`. `'gutter'` setzt sie in die Spaltenzwischenräume: die der ersten Spalte rechts von ihr, die der übrigen links von ihnen. `'each'` setzt die Nummern jeder Spalte auf die Seite, die `position` angibt. |
| `gap` | `Dimension` | `1em` | Der Abstand vom Rand der Spalte bis zur Nummer; `em` ist die eigene Größe der Nummer. |
| `align` | `'auto' \| 'left' \| 'right'` | `'auto'` | `'auto'` setzt jede Nummer bündig zum Text hin: rechtsbündig in einem linken Rand, linksbündig in einem rechten. `'left'` und `'right'` richten die Nummern innerhalb der Breite der breitesten Nummer der Seite aus. |
| `fontFamily` | `string` | Schriftfamilie des Fließtexts | Schriftart der Nummern. Sie wird wie jede andere Schriftfamilie geladen und eingebettet. |
| `fontSize` | `Dimension` | `0.8em` | Größe der Nummern; `em` ist die Grundschriftgröße. |
| `fontWeight` | `number` | Schriftstärke des Fließtexts | Schriftstärke der Nummern. |
| `italic` | `boolean` | `false` | Setzt die Nummern kursiv. |
| `color` | `ColorValue` | Farbe des Fließtexts | Farbe der Nummern. Eine mit der Palette verknüpfte Farbe folgt den Paletten von Teilen und Abschnitten. |
| `format` | `string` | dezimal | Wie die Nummern geschrieben werden, in jeder der [Schreibweisen der Nummernformate](https://postext.dev/de/docs/configuration-page-layout.md#schreibweisen-der-nummernformate) (`'lower-roman'`, `'arabic-indic'`, `'一'` …). Dezimalzahlen werden in den Ziffern des Dokuments geschrieben (`numerals`). Ein unbekannter Name nummeriert dezimal, mit einer Warnung `unknownNumberFormat`. |

```ts
lineNumbers: {
  enabled: true,
  count: 'verse',
  interval: 5,
  restart: 'document',          // one count through the whole book
  position: 'outer',
  fontSize: { value: 0.75, unit: 'em' },
  italic: true,
}
```

Was gezählt wird und was nicht:

- **Nie gezählt** werden Überschriften, Legenden, Tabellen und Bilder, abgesetzte Formeln, Gestaltungstext (Kapitelauftakte, Kolumnentitel), Fußnoten und Anmerkungen am Kapitelende, das Inhaltsverzeichnis, die Einträge von Register und Literaturverzeichnis sowie Vakatseiten.
- **Kästen und Prosa.** Der Text eines Kastens wird nicht gezählt, und unter `count: 'verse'` auch keine Prosa, es sei denn, das Absatzformat, in dem sie gesetzt ist, gibt `lineNumbers: true` an; ein Format mit `lineNumbers: false` wird nie gezählt (siehe [Absatzformate](https://postext.dev/de/docs/configuration-styles.md#absatzformate)).
- **Ein einzelnes Gedicht.** Der Zaun eines Gedichts nimmt `numbered=false` (seine Zeilen werden nicht gezählt), `lineStart=N` (seine erste Zeile ist N, und die Zählung beginnt dort neu) und `interval=N` an. `:::numbering{lines=N}` gibt der nächsten gezählten Zeile die Nummer N, wo immer sie steht. Siehe [Dokumentformat › `:::verse`](https://postext.dev/de/docs/document-format.md#verse) und [`:::numbering`](https://postext.dev/de/docs/document-format.md#numbering).

In einem Buch, das Kapitel für Kapitel umbrochen wird, trägt `restart: 'document'` die Zählung über `continuation.lineNumber` von einem Kapitel ins nächste. `continuationAfter` zählt die Verse aus dem Text; mit `count: 'all'` hängt die Zählung vom Layout ab, deshalb gibt die Host-Anwendung das `lastLineNumber` aus dem Dokument des vorigen Kapitels weiter, wie es die Sandbox tut.

Mit `position: 'side'` teilen sich die Nummern die Seitenspalte mit seitlichen Kästen, seitlichen Legenden und seitlichen Abbildungen. Eine Nummer, die eines dieser Elemente überlappt, wird trotzdem gezeichnet, keines von beiden verschiebt sich, und der Build meldet eine Inhaltswarnung `lineNumberOverlap`, die auf die nummerierte Zeile zeigt.

**Ausgabe.** Canvas, PDF, HTML-Betrachter und EPUB mit festem Layout zeichnen die Nummern. In einem getaggten PDF sind sie Layout-Artefakte, und jede trägt ein leeres `/ActualText`, sodass kopierter oder extrahierter Text ohne sie von Zeile zu Zeile läuft. Die HTML-Ausgabe verbirgt sie vor assistiven Technologien (`aria-hidden`), vor der Auswahl und vor kopiertem Text. Das umfließende EPUB, dessen Zeilen das Lesesystem setzt, behält nur die Nummern von Versen: ein `pt-line-number`-Span (ebenfalls `aria-hidden`) im Anfangsrand der Strophe neben jeder Zeile, die im Druck eine Nummer trägt. Im VDT sind die Nummern ein Gestaltungsplatz jeder Seite (`page.lineNumbers`, ihre Textblöcke mit `artifact` gekennzeichnet) und eine Liste von Markierungen (`page.lineNumberMarks`: `number`, `label`, `columnIndex`, `blockId`, `lineIndex`); das Dokument verzeichnet `lastLineNumber`.

**Nicht unterstützt** werden Zeilennummern in vertikaler Schrift, ein Querverweis, der die Nummer einer Zeile druckt, Anmerkungen, die sich auf Zeilennummern beziehen, und Nummern für die Zeilen von Tabellenzellen, Legenden oder Codelistings.

In der Sandbox bilden diese Einstellungen den Abschnitt **Zeilennummern** im Bedienfeld Gestaltung. Resolver und Stripper entsprechen denen der anderen Abschnitte; Schrift, Schriftstärke und Farbe kommen vom Fließtext:

```ts
import { DEFAULT_LINE_NUMBERS_CONFIG, resolveLineNumbersConfig, stripLineNumbersDefaults } from 'postext';

resolveLineNumbersConfig(config.lineNumbers, resolvedBodyText); // unset font, weight and colour follow the body
```

## Querverweise

Die Eigenschaft `crossRefs` legt die Wörter fest, die ein [Querverweis](https://postext.dev/de/docs/document-format.md#querverweise-und-anker) um eine Nummer oder eine Seite herum druckt, sowie den Stil, den ein `:ref` ohne eigenen Stil erhält. Jede Vorlage enthält `{n}` an der Stelle der Nummer; eine Vorlage ohne `{n}` erhält die Nummer nach einem geschützten Leerzeichen (`"§"` druckt *§ 3.2*). Eine nicht gesetzte Vorlage folgt der Sprache des Dokuments: *chapter / section / p.* im Englischen, *capítulo / sección / pág.* im Spanischen, `第{n}章` / `第{n}节` / `第{n}页` im Chinesischen und entsprechend im Französischen, Deutschen, Italienischen, Portugiesischen, Katalanischen und Niederländischen.

```ts
interface CrossRefsConfig {
  chapter?: string;  // Words around a level-1 heading's number: "chapter {n}".
  section?: string;  // Around any other heading's number: "section {n}".
  page?: string;     // Around a page number: "p. {n}".
  defaultStyle?: 'default' | 'number' | 'title' | 'page'; // A :ref without style=.
  breakLabels?: boolean; // A label of words breaks at its spaces.
}
```

| Eigenschaft | Typ | Standardwert | Beschreibung |
| --- | --- | --- | --- |
| `chapter` | `string` | je nach Sprache | Ein Verweis auf eine Überschrift der Ebene 1: `"chapter {n}"`. Eine Überschriftennummer, deren Vorlage das Wort bereits enthält (`Chapter {1}`, `第{1:一}章`), wird unverändert gedruckt. |
| `section` | `string` | je nach Sprache | Ein Verweis auf eine Überschrift der Ebenen 2 bis 6: `"section {n}"`, `"§ {n}"`. |
| `page` | `string` | je nach Sprache | Ein Seitenverweis (`style=page`): `"p. {n}"`, `"page {n}"`. |
| `defaultStyle` | `'default' \| 'number' \| 'title' \| 'page'` | `'default'` | Was ein `:ref` auf eine Überschrift oder einen Anker ohne `style=` druckt. `'default'`: eine nummerierte Überschrift mit ihrem Wort und ihrer Nummer, eine nicht nummerierte mit ihrem Titel, einen Anker mit seinem Text. Ein Verweis, der `style` setzt, behält diesen Stil, und Verweise auf Abbildungen und Tabellen sind nicht betroffen. |
| `breakLabels` | `boolean` | `true` | Erlaubt einen Zeilenumbruch an den Leerzeichen eines Verweises, dessen Beschriftung aus Wörtern besteht: der Text eines Ankers `[words]{#id}`, der Titel einer Überschrift oder eines Kastens, eine Überschreibung mit `text="…"` (auch bei einem Verweis auf eine Abbildung oder Tabelle). Die Leerzeichen der Beschriftung dehnen und stauchen sich dann mit der Zeile, und der Verweis bleibt ein einziger Link; seine Wörter werden nicht getrennt. Eine Zahl, eine römische Zahl oder ein einzelner Buchstabe in einer solchen Beschriftung bleibt beim vorangehenden Wort (`Fig. 1a`, `plate IV`). Eine Beschriftung mit einer Nummer oder einer Seite (*section 3.2*, *p. 112*, *Fig. 1.7*, *Theorem 2*) bricht nie um, auch wenn ihre Vorlage ein gewöhnliches Leerzeichen enthält. `false` setzt jede Beschriftung als ein Wort, in dem keine Zeile umbricht, wie bis postext 1.27. Eine Konfiguration, die vor `configVersion` 12 gespeichert wurde und deren Text einen Verweis enthält, wird mit `false` gelesen, damit ihre Zeilen bleiben, wo sie waren (siehe [Pakete, die postext 1.4 oder früher geschrieben hat](https://postext.dev/de/docs/configuration-programmatic-usage.md#pakete-die-postext-14-oder-früher-geschrieben-hat)). |

Verweise erhalten Farbe, Schriftstärke und Neigung, die für alle Verweise gelten (`bodyText.referenceColor`, `referenceBold`, `referenceItalic`).

## Zitationen

Die Eigenschaft `citations` wählt den Zitierstil und bestimmt, wie Zitationen und Literaturverzeichnis aussehen. Das Markup ist unter [Zitate und Literaturverzeichnis](https://postext.dev/de/docs/document-format.md#zitate-und-literaturverzeichnis) beschrieben; den Stil wendet das Paket `postext-citeproc` an.

```ts
interface CitationsConfig {
  style?: string;          // 'apa', 'ieee', 'chicago-notes-bibliography'… or 'custom'
  customStyle?: string;    // a whole CSL style (.csl XML), used with style: 'custom'
  locale?: string;         // CSL locale; the document language when unset
  link?: boolean;          // citations link to their entries
  marker?: 'style' | 'brackets' | 'parentheses' | 'superscript' | 'corner';
  collapseRanges?: boolean;
  notes?: 'footnote' | 'warichu';
  numbering?: 'book' | 'chapter';
  hyphenateNames?: boolean; // false: the cited authors' names are never divided
  bibliography?: {
    title?: string;        // unset: the document language's word; '' or ' ': none
    scope?: 'book' | 'chapter';
    auto?: boolean;
    fontSize?: Dimension;
    lineHeight?: Dimension;
    hangingIndent?: Dimension;
    entrySpacing?: Dimension;
    labelWidth?: Dimension;
    labelAlign?: 'left' | 'right';
    doi?: 'link' | 'text' | 'hide';
    includeUncited?: boolean;
    groupByLanguage?: boolean;
  };
}
```

| Eigenschaft | Typ | Standardwert | Beschreibung |
| --- | --- | --- | --- |
| `style` | `string` | `'apa'` | Die ID eines mitgelieferten Stils (siehe [Zitierstile](https://postext.dev/de/docs/document-format.md#zitierstile)) oder `'custom'`. Der Stil entscheidet, was Zitationen und Einträge enthalten: Namen, Daten, Reihenfolge, Zeichensetzung und ob Zitationen Anmerkungen sind. |
| `customStyle` | `string` | — | Ein vollständiger CSL-Stil, das XML einer `.csl`-Datei, verwendet, wenn `style` den Wert `'custom'` hat. Die Sandbox lädt ihn aus einer Datei. |
| `locale` | `string` | Sprache des Dokuments | Das CSL-Locale, in dessen Wörtern der Stil schreibt (`en-US`, `es-ES`, `zh-CN`, `zh-TW`, `ja-JP` …). Ein japanisches Dokument gilt als `ja-JP`: Narrative Zitationen verbinden zwei Autoren mit と und kürzen mehr mit ほか ab. |
| `link` | `boolean` | `true` | Eine Zitation verlinkt auf ihren Eintrag im Literaturverzeichnis (PDF-Link, HTML-Anker, Klick in der Sandbox). |
| `marker` | `'style' \| 'brackets' \| 'parentheses' \| 'superscript' \| 'corner'` | `'style'` | Wie ein nummerierter Stil eine Zitation kennzeichnet: so, wie der Stil es schreibt, `[1]`, `(1)`, hochgestellt oder `〔1〕` (aufrecht in vertikaler Schrift). Eine Stellenangabe folgt der Nummer. |
| `collapseRanges` | `boolean` | `true` | Aufeinanderfolgende Nummern als Bereich: `1–3` in einer eigenen Kennzeichnung, `[2]–[4]` in der von IEEE. `false` hält sie getrennt. |
| `notes` | `'footnote' \| 'warichu'` | `'footnote'` | Wohin ein Anmerkungsstil seine Zitationen setzt: in Fußnoten (platziert und nummeriert, wie `footnotes` es angibt) oder in zweizeilige Anmerkungen innerhalb der Zeile (夹注). |
| `numbering` | `'book' \| 'chapter'` | `'book'` | Zitationen durch das ganze Buch oder jedes Kapitel für sich (jedes Dokument und jede Überschrift der Ebene 1 nach einer Zitation): Ein nummerierter Stil nummeriert jedes Kapitel ab 1, und ein Werk, das in zwei Kapiteln zitiert wird, erhält in jedem Kapitel dessen Nummer; ein Anmerkungsstil schreibt ein Werk bei seiner ersten Zitation in jedem Kapitel vollständig aus. Gedacht für `bibliography.scope: 'chapter'`, dessen Listen dann die Nummern des Kapitels übernehmen. |
| `hyphenateNames` | `boolean` | `true` | Erlaubt dem Wörterbuch, die Namen der zitierten Autoren zu trennen. `false` hält den Familiennamen jeder Person in den Literaturangaben (Autoren, Herausgeber, Übersetzer) und jeden als eine Zeichenkette angegebenen Namen ungetrennt, wo immer er mit seinem Großbuchstaben steht: in einer Zitation, im Fließtext und in der Liste, sodass keine Zeile auf `(Lup-` endet. Ein Doppelname wird Teil für Teil gelesen, und ein Autor namens Baker hält das Wort `baker` nicht zusammen. Siehe [Ungetrennte Wörter](https://postext.dev/de/docs/configuration-text.md#ungetrennte-wörter). |
| `bibliography.title` | `string` | je nach Sprache | Titel über der Liste, ein fetter Absatz. Leer: keiner. Eine eigene Überschrift kommt über `:::bibliography`. |
| `bibliography.scope` | `'book' \| 'chapter'` | `'book'` | Eine Liste aller Werke, die das Buch zitiert, oder eine pro Kapitel mit den Werken, die es zitiert. In einem Dokument mit mehreren Kapiteln beginnt jede H1 eine neue Kapitelliste; mit `auto` erhält ein Kapitel, das kein `:::bibliography` platziert, seine Liste an seinem Ende. |
| `bibliography.auto` | `boolean` | `true` | Setzt die Liste nach dem Text (bei einer Liste für das ganze Buch nach dem letzten Kapitel), wenn kein `:::bibliography` sie platziert. |
| `bibliography.fontSize` | `Dimension` | `0.9em` | Schriftgröße der Einträge; em ist die Grundschriftgröße. |
| `bibliography.lineHeight` | `Dimension` | Zeilenabstand des Fließtexts | Zeilenabstand der Einträge. |
| `bibliography.hangingIndent` | `Dimension` | `2em` | Einzug der Folgezeilen eines nicht nummerierten Eintrags. |
| `bibliography.entrySpacing` | `Dimension` | `0.3em` | Abstand zwischen zwei Einträgen. |
| `bibliography.labelWidth` | `Dimension` | längste Beschriftung | Breite der Spalte, in der die Nummern einer nummerierten Liste stehen: Der Text jedes Eintrags beginnt um diesen Betrag eingerückt, in der ersten Zeile wie in den Folgezeilen, sodass `9.` und `10.` sich die Spalte teilen. Die Beschriftung bleibt Teil des Eintragstexts. |
| `bibliography.labelAlign` | `'left' \| 'right'` | `'left'` | Wo eine Beschriftung in ihrer Spalte steht: an deren linkem Rand oder am Text (`9.` und `10.` enden gemeinsam). |
| `bibliography.doi` | `'link' \| 'text' \| 'hide'` | `'link'` | DOIs und URLs als Links, als reiner Text oder weggelassen. |
| `bibliography.includeUncited` | `boolean` | `false` | Führt jede Literaturangabe auf, ob zitiert oder nicht (wie `nocite: "@*"`). |
| `bibliography.groupByLanguage` | `boolean` | `false` | Werke auf Chinesisch, Japanisch und Koreanisch zuerst, dann die übrigen. Nur Autor-Jahr- und Autor-Seite-Stile: Eine nummerierte Liste behält die Reihenfolge ihrer Nummern. |

## Inhaltsverzeichnis

Die Eigenschaft `toc` konfiguriert, was eine Direktive `:::toc` druckt (siehe [Dokumentformat](https://postext.dev/de/docs/document-format.md#toc)). Das Inhaltsverzeichnis wird aus der **Gliederung** des Dokuments zusammengestellt – jede Überschrift mit ihrer Nummer und ihrer Seitenbezeichnung, jeder `:::part` –, es folgt also den Kapiteln: Benennen Sie eines um, verschieben Sie es in einen anderen Teil, ändern Sie seine Autoren, und die Einträge ändern sich mit. Ein Eintrag besteht aus der Nummer der Überschrift in einer eigenen Spalte, dem Titel, Füllzeichen und der Seitenbezeichnung am rechten Rand, dann optional einer Untertitelzeile; ein Teil ist eine Zeile, die `parts.design` gestaltet.

```ts
const config: PostextConfig = {
  toc: {
    levels: [{ level: 1, fontWeight: 700, color: { hex: '#00507b', model: 'hex' }, numberWidth: { value: 7.4, unit: 'mm' } }],
    unnumbered: { color: { hex: '#000000', model: 'hex' } },
    pageNumber: { fontWeight: 400, width: { value: 8, unit: 'mm' } },
    leader: { char: '.', gap: { value: 1, unit: 'mm' } },
    subtitle: { enabled: true, attr: 'author', italic: true, fontSize: { value: 8.5, unit: 'pt' } },
    parts: {
      height: { value: 23, unit: 'pt' },
      marginTop: { value: 11.5, unit: 'pt' },
      design: { elements: [/* a band box, 'SECTION {number}', '{titleText}', '{pageNumber}' */] },
    },
  },
};
```

| Eigenschaft | Typ | Standardwert | Beschreibung |
| --- | --- | --- | --- |
| `levels` | `TocLevelConfig[]` | Ebene 1 | Die aufgeführten Überschriftenebenen, jede mit der Typografie ihrer Einträge: `fontFamily`, `fontSize`, `lineHeight` (standardmäßig der Zeilenabstand des Fließtexts, damit das Inhaltsverzeichnis im Raster steht), `fontWeight`, `italic`, `color`, `indent` (des ganzen Eintrags), `numberWidth` / `numberGap` (die Nummernspalte, nach der der Titel beginnt; die Nummern stehen darin rechtsbündig, und eine Nummer, die breiter als `numberWidth` ist, etwa `الفصل الحادي عشر` oder `Chapter 12`, verbreitert die Spalte ihrer Ebene auf die breiteste), `numberFontFamily`, `numberFontSize`, `numberFontWeight`, `numberColor`, `marginTop`, `marginBottom`. Nicht gesetzte Felder erben vom Fließtext. Die Nummer steht auf der Grundlinie der ersten Titelzeile, gleich in welcher Schrift und Größe, im Canvas, im HTML und im PDF (bis postext 1.4 wurde sie wie ein Aufzählungszeichen auf der x-Höhe zentriert, sodass eine Display-Schrift oder ein größerer Grad über dem Titel schwebte). Ein eigener Renderer findet diese Grundlinie in `bulletBaselineY` des Eintragsblocks; `bulletY` ist weiterhin die Mitte des Geviertkastens der Nummer wie in 1.4, sodass ein Renderer, der älter als das neue Feld ist, die Nummern dort zeichnet, wo er es immer getan hat. |
| `unnumbered` | `TocEntryStyleConfig` | — | Überschreibungen für Überschriften, deren Format `numbered: false` hat (ein Vorwort): Sie drucken keine Nummer und beginnen bündig am `indent` ihrer Ebene. |
| `pageNumber` | Objekt | Schrift der Ebene 1, Schriftstärke des Fließtexts | `fontFamily`, `fontSize`, `fontWeight`, `italic`, `color` der Seitenbezeichnung sowie `width` (Standardwert `2em`): die Spalte, die dafür am rechten Rand reserviert ist und in der sie rechtsbündig steht. |
| `leader` | Objekt | `{ enabled: true, char: '.', gap: 0.5em }` | `char` wird über die Lücke zwischen Titel und Seitenzahl wiederholt, rechtsbündig, damit die Punkte aufeinanderfolgender Einträge fluchten (`'. '` setzt sie gesperrt); `gap` ist der kleinste Abstand zwischen Titel und Füllzeichen. Die Füllzeichen nehmen so viele Zeichen auf, wie hineinpassen, gemessen als zusammenhängende Folge in ihrer Schrift, sodass eine Schrift, die aufeinanderfolgende Punkte auseinanderkernt, weniger Punkte erhält statt Punkte, die bis zur Seitenzahl reichen. (Bis postext 1.4 wurde die Anzahl an einem einzelnen Punkt bemessen, und in einer solchen Schrift liefen die Füllzeichen vom Titel bis in die Nummer.) Ein Titel, der der Seitenbezeichnung keinen Platz ließe, bricht etwas früher um. Füllzeichen werden ab drei Zeichen gesetzt: Wo nur eines oder zwei passen, erhält die Zeile keine, denn ein einzelner Punkt vor der Seitenzahl liest sich wie ein Satzpunkt. In einem getaggten PDF sind die Punkte Artefakte und fehlen im extrahierten Text. Der Fließtext setzt dieselben Füllzeichen an seinen [Tabulatoren](https://postext.dev/de/docs/configuration-text.md#tabulatoren). |
| `subtitle` | Objekt | `{ enabled: false, attr: 'author' }` | Eine zweite Zeile unter dem Eintrag, aus einem Attribut der Überschrift entnommen (`attr`) – die Autoren des Kapitels –, mit eigenen Werten für `fontFamily`, `fontSize`, `fontWeight`, `italic` (Standardwert `true`), `color` und zusätzlichem `indent`. Die Zeile teilt den Zeilenabstand des Eintrags und wird nie von ihrem Titel getrennt. |
| `parts.enabled` | `boolean` | `true` | Ob Teiltitel eine Zeile erhalten. |
| `parts.breakBefore` | `boolean` | `false` | Beginnt vor jeder Teilzeile außer der ersten eine neue Seite, sodass die Kapitel jedes Teils auf einer eigenen Seite aufgeführt werden. |
| `parts.design` | `DesignSlot` | leer | Gestaltung der Zeile; ihr Container ist die Zeile (Spaltenbreite × `height`). Platzhalter: `{number}`, `{numberDecimal}`, `{numberRoman}` …, `{titleText}` und `{pageNumber}` (die Bezeichnung der Teiltitelseite; mit `parts.page: false`, das keine Teiltitelseite öffnet, die Bezeichnung der Seite, auf der der Inhalt des Teils beginnt und seine Kolumnentitel zu ihm wechseln; in einem Buch, das Kapitel für Kapitel umbrochen wird, zeigt ein Zaun, der sein Kapitel abschließt, auf die erste Inhaltsseite des nächsten Kapitels). Mit der Palette verknüpfte Farben übernehmen die eigene `palette` des Teils, sodass die Zeile jedes Abschnitts in dessen Farbe erscheint. Ist sie leer, werden `{number} {titleText}` (dazwischen der `numberSeparator` der H1) und die Seitenzahl in der Typografie der Einträge der Ebene 1 gesetzt. |
| `parts.height`, `marginTop`, `marginBottom` | `Dimension` | `2em`, `0`, `0` | Höhe der Zeile und der Abstand um sie herum. `em` ist die Grundschriftgröße, die Standardzeile ist also doppelt so hoch wie die Grundschrift, nicht zwei Zeilen des Fließtexts: Bei einem Fließtext von 9,5/13,5 pt sind das 19 pt. Für eine Zeile von zwei Fließtextzeilen geben Sie die Höhe in `pt` an (dort `27pt`). |

Die Seitenbezeichnungen sind diejenigen, die das Dokument druckt. `buildDocument()` umbricht ein Dokument mit einem `:::toc` erneut mit den Bezeichnungen des vorigen Durchgangs, bis sie feststehen (höchstens drei zusätzliche Durchgänge); eine Host-Anwendung, die ein Buch Kapitel für Kapitel umbricht, liefert stattdessen die Gliederung des ganzen Buchs als `PostextContent.outline`, zusammengestellt aus `contentOutline()` (Überschriften und Teile allein aus dem Text) und `outlineFromDoc()` (dieselben Einträge mit den Seitenbezeichnungen eines Layouts), und umbricht das Kapitel mit dem Inhaltsverzeichnis erneut, sobald sich `outlineKey()` dieser Gliederung ändert. Jeder Überschrifteneintrag trägt die `number`, die das Inhaltsverzeichnis druckt, und bei einer nummerierten Überschrift ihren `counter`: den laufenden Zähler der Ebene nach einem etwaigen `startAt`, gleich was die Vorlage druckt – das, was eine Host-Anwendung in ihren eigenen Listen neben einem Kapitel anzeigt.

## Register

Die Eigenschaft `index` konfiguriert, was eine Direktive `:::index` druckt (siehe [Dokumentformat](https://postext.dev/de/docs/document-format.md#register)): die im Text mit `:index[…]` und `:index{term="…"}` markierten Begriffe, sortiert, nach Anfangsbuchstaben gruppiert (im Chinesischen nach Pinyin-Anlaut oder Strichzahl, im Japanischen nach Gojūon-Reihe, siehe `groupBy`), jeder mit den Seiten, auf die er fällt. Ein Eintrag besteht aus seinem Begriff, einem Trennzeichen und seinen Seitenzahlen; seine Untereinträge folgen, eine Einzugsstufe pro Ebene, und umbrochene Zeilen hängen um `turnoverIndent`, sodass sie nie mit einem Untereintrag fluchten.

```ts
const config: PostextConfig = {
  headingStyles: [
    // The index in two columns, under its own heading.
    { id: 'index', numbered: false, layout: { layoutType: 'double', gutterWidth: { value: 6, unit: 'mm' } } },
  ],
  index: {
    fontSize: { value: 8.5, unit: 'pt' },
    lineHeight: { value: 11, unit: 'pt' },
    rangeFormat: 'chicago',
    groups: { fontFamily: 'Source Sans 3', fontWeight: 700, color: { hex: '#8a1c1c', model: 'hex' } },
  },
};
```

| Eigenschaft | Typ | Standardwert | Beschreibung |
| --- | --- | --- | --- |
| `fontFamily`, `fontSize`, `lineHeight`, `fontWeight`, `color` | — | der Fließtext | Typografie der Einträge. Jede Zeile des Registers, Buchstabenköpfe eingeschlossen, wird auf `lineHeight` gesetzt; das Register behält seinen eigenen Rhythmus und rastet nicht im Grundlinienraster ein. |
| `indent` | `Dimension` | `1em` | Einzug jeder Ebene von Untereinträgen. |
| `turnoverIndent` | `Dimension` | `2em` | Zusätzlicher Einzug der umbrochenen Zeilen eines Eintrags über seine eigene Ebene hinaus. |
| `entrySpacing` | `Dimension` | `0` | Abstand über jedem Haupteintrag. |
| `separator`, `locatorSeparator`, `rangeSeparator` | `string` | `', '`, `', '`, `'–'`; die ersten beiden `'، '` in arabischer Schrift | Was zwischen dem Begriff und seiner ersten Seite, zwischen zwei Seiten und zwischen den Enden eines Bereichs gedruckt wird. |
| `mergeRanges` | `boolean` | `true` | Fasst aufeinanderfolgende Seiten desselben Nummernformats zu einem Bereich zusammen: `12, 13, 14` druckt `12–14`. Hauptseiten werden nie zusammengefasst. |
| `rangeFormat` | `'full' \| 'chicago'` | `'full'` | Wie die zweite Zahl eines Bereichs geschrieben wird: vollständig (`234–237`) oder ohne die Ziffern, die sie mit der ersten teilt, wie es *The Chicago Manual of Style* (9.64) verlangt: `71–72`, `100–104`, `101–8`, `321–28`, `1496–500`. Römische Bezeichnungen werden immer vollständig geschrieben. |
| `main` | `{ bold?, italic? }` | fett | Wie eine Hauptseite (`main` an der Markierung) gesetzt wird. |
| `see` | `{ label?, alsoLabel?, italic? }` | je nach Sprache, kursiv (aufrecht in arabischer Schrift) | Die Wörter vor einem Verweis. Nicht gesetzt, folgen sie der Sprache des Dokuments: *See* / *See also*, *Véase* / *Véase también*, *Voir* / *Voir aussi*, 见 / 另见 (見 / 另見 in traditionellem Chinesisch) … Ein chinesisches Register setzt den Verweis nach einem Satzpunkt, ohne Leerzeichen: `贾琏 12。见贾政`. |
| `locale` | `string` | die des Dokuments | Die Sprache, deren alphabetische Ordnung die Einträge sortiert (ein BCP-47-Tag, gelesen von `Intl.Collator`). Im Spanischen wird *ñ* nach *n* einsortiert und bildet eine eigene Gruppe; Akzente ändern die Reihenfolge nie. |
| `groupBy` | `'auto' \| 'letter' \| 'pinyin' \| 'stroke' \| 'gojuon' \| 'kana' \| 'none'` | `'auto'` | Was die Gruppenköpfe sind. `'letter'`: der erste Buchstabe des Sortierschlüssels. `'pinyin'`: Ein Eintrag, der mit einem Han-Zeichen beginnt, wird unter dem lateinischen Anlaut seiner Pinyin-Lesung eingeordnet (贾宝玉 unter `J`), ein lateinischer Sortierschlüssel unter seinem Buchstaben, nach den chinesischen Einträgen dieses Buchstabens (die Sortierung stellt lateinische Buchstaben hinter chinesische Zeichen): `sort="jia mu"` beschließt das `J`. `'stroke'`: unter der Strichzahl des ersten Zeichens, `一畫`, `二畫` … (`一画` … in vereinfachtem Chinesisch). `'gojuon'`: Ein Kana-Eintrag wird unter seiner Gojūon-Reihe eingeordnet, あ行, か行 … わ行, und mit `'kana'` unter seinem ersten Kana (Katakana und Hiragana teilen sich die Köpfe), in der Reihenfolge eines japanischen Registers nach JIS X 4061: nach der Lesung (`yomi` der Markierung, sonst die Kana-Lesung ihrer Ruby, sonst `sort`, sonst der Text), Katakana wie Hiragana, kleine Kana wie große, ー wie der Vokal davor, 清 vor 濁 vor 半濁; Symbole, dann Zahlen nach ihrem Wert, dann lateinische Wörter unter ihren Buchstaben, dann Kana; ein Eintrag, der weiterhin mit einem Kanji beginnt, wird als `indexReadingMissing` gemeldet und nach den Kana ohne Kopf gesetzt. `'none'`: keine Köpfe; Symbole, Zahlen und Wörter werden nur durch `groups.marginTop` voneinander abgesetzt. `'auto'` gruppiert ein japanisches Register (`ja`, `ja-*`) nach Gojūon-Reihe, ein Register in vereinfachtem Chinesisch (`zh`, `zh-Hans`, `zh-CN`) nach Pinyin, eines in traditionellem Chinesisch (`zh-Hant`, `zh-TW`, `zh-HK`) nach Strichen und jede andere Sprache nach Buchstaben. Die Einträge werden in der Sortierfolge sortiert, aus der die Köpfe stammen: Ein Register `zh-Hant`, das nach Pinyin gruppiert ist, sortiert nach Pinyin. Lesungen und Strichzahlen stammen aus der Sortierung (CLDR); wo sie ein Zeichen falsch liest (重 als *zhòng* in 重阳, 行 als *xíng* in 行业), geben Sie der Markierung einen Schlüssel `sort` aus Zeichen, die nur die gewünschte Lesung haben und an derselben Stelle einsortiert werden: `sort="崇阳"` für 重阳, `sort="航业"` für 行业. Ein Browser ohne chinesische Sortierdaten druckt ein Pinyin- oder Strichregister ohne Köpfe. |
| `ignoreArticle` | `boolean` | `true` im Arabischen | Sortiert und gruppiert arabische Einträge so, als stünde ein vorangestellter Artikel `ال` (`ٱل`) nicht da: البصرة wird unter ب eingeordnet, zwischen بدر und بغداد, und so gedruckt, wie es geschrieben ist. `الله` behält seinen Artikel, und ein Eintrag mit eigenem Schlüssel `sort` wird genau nach diesem Schlüssel sortiert. Unabhängig von dieser Einstellung ignoriert ein arabisches Register die Vokalzeichen und das Tatweel, ordnet أ إ آ ٱ unter ا ein und sortiert ؤ als و, ئ und ى als ي, ة als ه. |
| `groups.enabled` | `boolean` | `true` | Druckt einen Kopf über jeder Gruppe von Einträgen (`A`, `B` … oder die Strichzahl, `0–9` für Zahlen, `Symbols` für den Rest; `数字` / `數字` und `符号` / `符號` im Chinesischen). |
| `groups.fontFamily`, `fontSize`, `fontWeight`, `italic`, `color` | — | die der Einträge, Schriftstärke `700` | Die Schrift des Buchstabenkopfs. Er wird im Zeilenabstand der Einträge gesetzt. |
| `groups.marginTop` | `Dimension` | eine Zeile des Registers | Abstand über jeder Gruppe, mit oder ohne Kopf; keiner über der ersten Gruppe, deren Abstand zur Überschrift der der Überschrift ist, und keiner oben in einer Spalte. |
| `groups.splitMinEntries` | `number` | `2` | Wenn eine Spalte oder Seite innerhalb einer Gruppe endet: die Mindestzahl an Einträgen der Gruppe, die am Fuß der Spalte bleiben, und die Mindestzahl, die an den Kopf der nächsten übertragen werden. Mit `2` steht kein Eintrag allein unter seinem Kopf am Fuß einer Spalte, und keiner eröffnet allein eine Spalte vor der nächsten Gruppe: Eine Gruppe aus zwei oder drei Einträgen wandert als Ganzes, und eine mit vier oder mehr wird nur dort geteilt, wo zwei bleiben und zwei gehen. Ein Eintrag ist ein Eintragsblock (ein Haupteintrag oder ein Untereintrag, mit dem Kopf und den Einträgen ohne Seite, die darüber gesetzt sind); eine Gruppe, die höher als eine Spalte ist, wird dort geteilt, wo es sein muss. Der Ausgleichsschnitt eines Schlussbands folgt ebenfalls der Regel, sodass eine letzte Gruppe, die sich nicht teilen lässt, die Spalten um ihre Zeilen ungleich lang lassen kann. `1` lässt eine Spalte zwischen zwei beliebigen Einträgen enden, wie bis postext 1.27. Seit postext 1.28; früher gespeicherte Dokumente, die ein Register drucken, behalten `1` (`pinLegacyIndexGroupSplit`). |
| `groups.symbolsLabel`, `numbersLabel` | `string` | je nach Sprache; `'0–9'`, `'数字'` / `'數字'` im Chinesischen | Die Köpfe der Einträge, die mit einem Symbol bzw. einer Ziffer beginnen. |

Die Seitenzahlen kommen aus der Gliederung des Buchs, wie die des Inhaltsverzeichnisses: `computeOutline()` und `contentOutline()` führen die Registermarkierungen eines Texts als Einträge der Art `'indexMark'` auf (mit `indexMark.path`, `sort`, `see`, `seeAlso`, `main`, `range` und `index`), und `outlineFromDoc()` gibt jedem die Seite, auf der er gelandet ist und die der Build in `doc.indexMarks` verzeichnet (`{ sourceStart, pageIndex }` pro Markierung). `buildDocument()` umbricht ein Dokument, das sein eigenes Register druckt, erneut, bis die Nummern feststehen; eine Host-Anwendung, die ein Buch Kapitel für Kapitel umbricht, übergibt dem Kapitel mit `:::index` die Gliederung des ganzen Buchs als `PostextContent.outline`. `tocOutline()` und `indexOutline()` teilen eine Gliederung in das auf, was Inhaltsverzeichnis und Register lesen, sodass eine Host-Anwendung jedes Kapitel an den Teil binden kann, den es druckt: Die Sandbox umbricht das Registerkapitel nur dann erneut, wenn sich eine Markierung verschiebt, und das Kapitel mit dem Inhaltsverzeichnis nur, wenn sich eine Überschrift verschiebt. `contentOutline()` gibt außerdem an, ob ein Text ein Register druckt (`hasIndex`).
