# Templating-Layoutformat 3 Layoutformat 3 trennt feste Seitengestaltung von fortlaufendem Dokumentinhalt. ## Grundaufbau ```text PAGE 210 297 mm #pragma format-version 3 #pragma page-template first IMG briefkopf.png 0 0 210 55 #pragma flow-slot body x=20 y=90 w=170 h=175 #pragma end-page-template #pragma page-template continuation IMG folgeseite.png 0 0 210 25 #pragma flow-slot body x=20 y=30 w=170 h=235 #pragma end-page-template #pragma content-flow body TEXTBOX $Brieftext size=11 overflow=continue TEXT "Mit freundlichen Grüßen" gap=8 keep-with-next=true TEXT $LehrerName gap=3 italic=true #pragma end-content-flow ``` ## Seitentypen - `first` ist verpflichtend und gestaltet die erste Seite. - `continuation` gestaltet alle Folgeseiten. Fehlt dieser Typ, wird `first` wiederholt. - Elemente innerhalb eines `page-template` sind absolut positioniert und beeinflussen den Textfluss nicht. - Jede Seitenvorlage beschreibt ausschließlich ihre eigenen Elemente und Slots. ## Flow-Slots und Content-Flows Ein `flow-slot` definiert eine Bounding Box innerhalb einer Seitenvorlage. Ein gleichnamiger `content-flow` liefert den fortlaufenden Inhalt. Ist `continuation` vorhanden, benötigt jeder Content-Flow auf `first` und `continuation` einen gleichnamigen Slot. Elemente in einem Content-Flow werden ohne X/Y-Koordinaten angegeben: ```text TEXT "Absatz" size=11 gap=4 TEXTBOX $MehrzeiligerText size=11 overflow=continue TABLE $Zeilen size=9 CHART $Werte type=bar h=50 IMG unterschrift.png w=45 h=18 ``` - `gap` ist der Abstand zum Vorgänger in der Seiteneinheit. - `keep-with-next=true` hält das Element nach Möglichkeit mit seinem Nachfolger zusammen. - Text und Tabellen dürfen automatisch auf Folgeseiten weiterlaufen. ## Designer Der Tab **Seiten & Flows** verwaltet Seitentypen, Content-Flows und Flow-Slots. Der visuelle Editor zeigt den Slot des gewählten Seitentyps violett gestrichelt an. Er kann wie ein anderes Element verschoben und skaliert werden. Die Vorschauseiten-Auswahl zeigt alle tatsächlich aus den Beispieldaten erzeugten Dokumentseiten; **Seitentyp anzeigen** rendert stattdessen die feste Gestaltung der gewählten Seitenvorlage. Beim Öffnen eines alten absoluten Layouts bettet der Designer dessen Elemente unverändert in den Seitentyp `first` ein und ergänzt leere `body`-Slots sowie einen leeren Content-Flow. Erst beim anschließenden Speichern wird das migrierte Layout in das Paket geschrieben. ## Aktuelle Grenzen Die erste Renderer-Ausbaustufe unterstützt einen mit Inhalt gefüllten, paginierenden Content-Flow. Weitere Slots und leere Flows können bereits gestaltet werden. Beim primären Flow müssen X-Position und Breite auf erster und Folgeseite noch identisch sein; Y-Position und Höhe dürfen sich unterscheiden. Diese Einschränkung wird beim Rendern mit einer verständlichen Fehlermeldung geprüft.