Handbuch durchsuchen:

- Startseite
- Einleitung
- Hallo Welt!
- Grundlagen
  - Erstellen eines Layoutregelwerks
  - Aufbau der Datendatei und des Layoutregelwerks
  - Objekte ausgeben
  - Raster
  - Bereiche auf der Seite (PositioningArea)
  - Dateiorganisation
  - Silbentrennung / Spracheinstellungen
  - Einbinden von Schriftarten
  - Textformate
  - Textformatierung
  - Farben
- Programmierung
- Bilder einbinden
- Tabellen
- Fortgeschrittene Themen
  - Lesezeichen (Bookmarks)
  - Erzeugen von XML-Strukturen
  - Druckausgabe / Schnittmarken
  - CSS
  - Gruppen (virtuelle Objekte)
  - Virtuelle Seiten
  - Rotieren von Inhalten
  - Sortieren von Daten
  - Umfließen von Bildern
  - Seitentypen
  - Starten des Publishers über den Hotfolder
  - Lua-Filter / Datenvorverarbeitung
  - Schemavalidierung
  - Qualitätssicherung (PDF-Vergleich)
  - Fehlersuche / Debugging
  - Servermodus
  - Steuerung des Layouts beim Aufruf des Publishers
  - Bilder mit MetaPost erstellen und einbinden
- Kochbuch
  - Daumenregister
  - Mehrseitige PDF-Dateien einbinden
  - Layoutoptimierung mithilfe von Gruppen
  - Aufzählungslisten nachahmen
  - Verzeichnisse erstellen
  - Inhaltsverzeichnis in einem Durchlauf erstellen
  - Seitenzahlen: Seite x von y
- Installationsanleitung
- Dateinamen im Publisher
- Voreinstellungen im speedata Publisher
- Starten des Publishers über die Kommandozeile
- Konfiguration des Publishers
- Längenangaben und Maßeinheiten
- XPath- und Layoutfunktionen
- Interne Variablen
- XML Editor mit Schema verbinden
  - Visual Studio Code
  - OxygenXML
  - Atom
- Liste der Änderungen
- Glossar
- Kompatibilität mit anderer Software
- Befehlsreferenz
  - A
  - Action
  - AddSearchpath
  - AtPageCreation
  - AtPageShipout
  - AttachFile
  - Attribute
  - B
  - Barcode
  - Bold
  - BoldItalic
  - Bookmark
  - Box
  - Br
  - Case
  - Circle
  - Color
  - Column
  - Columns
  - Compatibility
  - Contents
  - Copy-of
  - DefineColor
  - DefineColorprofile
  - DefineFontalias
  - DefineFontfamily
  - DefineGraphic
  - DefineMatter
  - DefineTextformat
  - Element
  - Fallback
  - Fontface
  - ForAll
  - Frame
  - Grid
  - Group
  - Groupcontents
  - HSpace
  - Hyphenation
  - I
  - Image
  - Include
  - Initial
  - InsertPages
  - Italic
  - Layout
  - Li
  - LoadDataset
  - LoadFontfile
  - Loop
  - Makeindex
  - Margin
  - Mark
  - Message
  - NewPage
  - NextFrame
  - NextRow
  - NoBreak
  - Ol
  - Options
  - Otherwise
  - Output
  - Overlay
  - Pageformat
  - Pagetype
  - Paragraph
  - PDFOptions
  - PlaceObject
  - Position
  - PositioningArea
  - PositioningFrame
  - ProcessNode
  - Record
  - Regular
  - Rule
  - SaveDataset
  - SavePages
  - SetGrid
  - SetVariable
  - SortSequence
  - Stylesheet
  - Span
  - Sub
  - Sup
  - Switch
  - Table
  - TableNewPage
  - Tablefoot
  - Tablehead
  - Tablerule
  - Td
  - Text
  - Textblock
  - Tr
  - Trace
  - Transformation
  - U
  - Ul
  - Until
  - URL
  - Value
  - VSpace
  - While

Version 4.4.1
Handbuch durchsuchen

- Startseite
- Einleitung
- Hallo Welt!
- Grundlagen
  - Erstellen eines Layoutregelwerks
  - Aufbau der Datendatei und des Layoutregelwerks
  - Objekte ausgeben
  - Raster
  - Bereiche auf der Seite (PositioningArea)
  - Dateiorganisation
  - Silbentrennung / Spracheinstellungen
  - Einbinden von Schriftarten
  - Textformate
  - Textformatierung
  - Farben
- Programmierung
- Bilder einbinden
- Tabellen
- Fortgeschrittene Themen
  - Lesezeichen (Bookmarks)
  - Erzeugen von XML-Strukturen
  - Druckausgabe / Schnittmarken
  - CSS
  - Gruppen (virtuelle Objekte)
  - Virtuelle Seiten
  - Rotieren von Inhalten
  - Sortieren von Daten
  - Umfließen von Bildern
  - Seitentypen
  - Starten des Publishers über den Hotfolder
  - Lua-Filter / Datenvorverarbeitung
  - Schemavalidierung
  - Qualitätssicherung (PDF-Vergleich)
  - Fehlersuche / Debugging
  - Servermodus
  - Steuerung des Layouts beim Aufruf des Publishers
  - Bilder mit MetaPost erstellen und einbinden
- Kochbuch
  - Daumenregister
  - Mehrseitige PDF-Dateien einbinden
  - Layoutoptimierung mithilfe von Gruppen
  - Aufzählungslisten nachahmen
  - Verzeichnisse erstellen
  - Inhaltsverzeichnis in einem Durchlauf erstellen
  - Seitenzahlen: Seite x von y
- Installationsanleitung
- Dateinamen im Publisher
- Voreinstellungen im speedata Publisher
- Starten des Publishers über die Kommandozeile
- Konfiguration des Publishers
- Längenangaben und Maßeinheiten
- XPath- und Layoutfunktionen
- Interne Variablen
- XML Editor mit Schema verbinden
  - Visual Studio Code
  - OxygenXML
  - Atom
- Liste der Änderungen
- Glossar
- Kompatibilität mit anderer Software
- Befehlsreferenz
  - A
  - Action
  - AddSearchpath
  - AtPageCreation
  - AtPageShipout
  - AttachFile
  - Attribute
  - B
  - Barcode
  - Bold
  - BoldItalic
  - Bookmark
  - Box
  - Br
  - Case
  - Circle
  - Color
  - Column
  - Columns
  - Compatibility
  - Contents
  - Copy-of
  - DefineColor
  - DefineColorprofile
  - DefineFontalias
  - DefineFontfamily
  - DefineGraphic
  - DefineMatter
  - DefineTextformat
  - Element
  - Fallback
  - Fontface
  - ForAll
  - Frame
  - Grid
  - Group
  - Groupcontents
  - HSpace
  - Hyphenation
  - I
  - Image
  - Include
  - Initial
  - InsertPages
  - Italic
  - Layout
  - Li
  - LoadDataset
  - LoadFontfile
  - Loop
  - Makeindex
  - Margin
  - Mark
  - Message
  - NewPage
  - NextFrame
  - NextRow
  - NoBreak
  - Ol
  - Options
  - Otherwise
  - Output
  - Overlay
  - Pageformat
  - Pagetype
  - Paragraph
  - PDFOptions
  - PlaceObject
  - Position
  - PositioningArea
  - PositioningFrame
  - ProcessNode
  - Record
  - Regular
  - Rule
  - SaveDataset
  - SavePages
  - SetGrid
  - SetVariable
  - SortSequence
  - Stylesheet
  - Span
  - Sub
  - Sup
  - Switch
  - Table
  - TableNewPage
  - Tablefoot
  - Tablehead
  - Tablerule
  - Td
  - Text
  - Textblock
  - Tr
  - Trace
  - Transformation
  - U
  - Ul
  - Until
  - URL
  - Value
  - VSpace
  - While

- This manual in English

# Konfiguration des Publishers

Der Publisher ist auf verschiedene Weisen zu konfigurieren:

1. Die Datei `publisher.cfg` in `/etc/speedata/`, im Homeverzeichnis (mit Punkt davor) und im aktuellen Verzeichnis (Linux, Mac)
2. Die Datei `%APPDATA%\\speedata\\publisher.cfg` und im aktuellen Verzeichnis (Windows)
3. Die Parameter auf der Kommandozeile
4. Die Angaben in der Layoutdatei

## Die Konfigurationsdatei `publisher.cfg`

Die Datei `publisher.cfg` ist eine Datei, die beim Starten des Publishers eingelesen wird. Es ist eine einfache Textdatei, die den Aufbau `Schlüssel = Wert` hat.

    data      = data.xml
    layout    = layout.xml
    # Das ist ein Kommentar
    # Das ist kein Kommentar
    #  ^^^ das ist natürlich ein Kommentar, auch
    #      wenn der Text anderes behauptet

    # Spezifische Konfigurationswerte für
    # einen Abschnitt
    [Abschnitt]
    key = value

In der Konfigurationsdatei kann mit `%(projectdir)s` auf das Verzeichnis zugegriffen werden, in dem die Datei `publisher.cfg` liegt.

Alle Angaben in dieser Konfigurationsdatei sind optional. Alle folgenden Konfigurationsdateien werden in dieser Reihenfolge eingelesen: `/etc/speedata/publisher.cfg`, `~/.publisher.cfg` und im aktuellen Verzeichnis `publisher.cfg`. Das aktuelle Verzeichnis kann beim Aufruf des Publishers mittels `--wd=…​` geändert werden.

Das Format muss eingehalten werden, sonst wird die Datei nicht richtig erkannt. Folgende Optionen werden unterstützt:

`autoopen`

  wenn hier `true` anstelle von `false` steht, wird das PDF nach dem Publisher Durchlauf automatisch geöffnet. Derselbe Effekt lässt sich über die Kommandozeile mit `--autoopen` erreichen.

`cache`

  Caching-Strategie für http(s) Dateien. Entweder `fast`, dann wird nur geschaut, ob die Datei im Dateisystem vorhanden ist oder `optimal`, dann wird bei jedem Zugriff auf die Datei geprüft, ob sie aktualisiert werden muss. Vollständig ausschalten kann man den Cache mit `none`.

`data`

  Name der XML-Daten. Wenn nicht vorhanden, wird die Datei `data.xml` geladen.

`dummy`

  Wenn `true`, dann wird die Datendatei nicht eingelesen. Anstatt dessen wird wird der folgende Inhalt angenommen: `<data />`. Das dient zum einfachen Testen von Layoutregelwerken. Es muss also ein `<Record element="data">` im Layout vorhanden sein.

`extra-dir`

  Ein Verzeichnis im Dateisystem, das Dateien für den Publisherlauf enthält. Dazu gehören die Schriftdateien, die XML-Dateien (Daten und Layoutregelwerk) sowie die einzubindenden Bilddateien. Sollen mehrere Verzeichnisse hinzugefügt werden, müssen diese mit `:` oder `;` getrennt werden, je nach Betriebssystem (Windows: `;`, alle anderen: `:`). Das aktuelle Verzeichnis wird automatisch eingebunden. Beispiel unter Windows: `extra-dir=c:\myfonts`.

`extensionhandler`

  Zuordnung von Dateiendungen zu in `imagehandler` definierten Konvertern. Um Grafiken on-the-fly zu konvertieren. Beispiel: `extensionhandler="mmd:mermaid"`. Mehrere Einträge werden mit Semikolon getrennt. Siehe auch `imagehandler`. (Seit Version 3.9.1, experimentell.)

`extraxml`

  Diese XML-Dateien zu den Layoutanweisungen hinzufügen. Kommaseparierte Liste (`extraxml=datei1.xml,datei2.xml`).

`fontloader`

  Setze den Fontlader auf `fontforge` (Voreinstellung bis Version 4) oder `harfbuzz` (Voreinstellung ab Version 5).

`prependxml`

  Diese XML-Dateien vor den Layoutanweisungen hinzufügen. Kommaseparierte Liste (`prependxml=datei1.xml,datei2.xml`).

`filter`

  Führt die angegebene Datei als Lua-Filter aus. Siehe Abschnitt Lua-Filter / Datenvorverarbeitung.

`fontpath`

  Setzt den systemweiten Pfad für Fonts. Unter Windows ist dies `%WINDIR%\Fonts`, unter Mac OS X `/Library/Fonts:/System/Library/Fonts`.

`grid`

  Bestimmt, ob das Raster angezeigt wird.

`imagecache`

  Ordner für zwischengespeicherte Dateien (`file="http(s)://…​"` und externe Programme). Voreinstellung: `$TMPDIR/sp/images`.

`imagehandler`

  Zuordnungen von Bildtyp zu externen Konvertern. Z.B. `imagehandler="mermaid:(/usr/bin/mmdc -i %%input%% -o %%output%%.pdf)"`. Der Bildtyp mermaid wird mit dem Programm `/usr/bin/mmdc` konvertiert und erhält als Eingabeparameter `-i`, die Eingabedatei, `-o` und die Ausgabedatei mit angehängter Dateiendung `.pdf`. Die Dateinamen werden zur Laufzeit ersetzt und zufällig generiert. Mehrere Einträge werden mit Semikolon getrennt.

`ignore-case`

  Ignoriere die Groß- und Kleinschreibung für Dateizugriff.

`inkscape`

  Pfad zum Inkscape-Programm.

`inkscape-command`

  Befehlszeile zur Bildkonvertierung. In Version 0.92 und vorher ist dies `--export-pdf` und ab Version 1 ist das `--export-filename`.

`jobname`

  Name der Ausgabedatei ohne Dateiendung. Voreinstellung ist `publisher`.

`layout`

  Name des Layoutregelwerks. `layout.xml` ist der voreingestellte Name.

`luatex`

  Pfad zum LuaTe X-Programm. Für Entwicklungszwecke.

`mode`

  Setzt einen Modus für die Verabeitung. Kann im Layout mit `sd:mode()` abgefragt werden. Mehrere Modi werden durch Komma getrennt angegeben. Siehe Steuerung des Layouts beim Aufruf des Publishers.

`opencommand`

  Kommando für das automatische Öffnen der Dokumentation bzw. PDF-Datei. Für MacOS X sollte das `open` sein, für Linux `xdg-open` oder `exo-open` (xfce).

`pathrewrite`

  Kommaseparierte Liste der Form Pfadteil=Pfadteil. Beispiel: `/media/=%(projectdir)s/myfiles/`. Das würde absolute Pfadangaben wie `file:///media/XYZ` in `file:///Pfad/zum/Projekt/myfiles/XYZ` ändern.

`reportmissingglyphs`

  Sollen angeforderte aber fehlende Zeichen als Fehler oder als Warnung gemeldet werden? Die erlaubten Werte sind `true`, `false`, und `warning`. `false` schaltet die Ausgabe aus.

`runs`

  Setzt die Anzahl der Durchläufe fest.

`startpage`

  Nummer der ersten Seite.

`systemfonts`

  Benutze Systemfonts.

`tempdir`

  Name des temporären Verzeichnisses. Voreinstellung ist die des Systems.

`timeout`

  Maximale Dauer des Publishing-Laufs. Wenn dieser Wert überschritten wird, bricht der Lauf mit Fehler 1 ab. Angabe in Sekunden.

`vars`

  Kommaseparierte Liste der Form `var=wert` um Variablen in der Konfigurationsdatei festzulegen.

`wd`

  Setzt das Basis-Verzeichnis. Der speedata Publisher nimmt dies als Startverzeichnis.

### Abschnitt Server (`server`)

`address`

  IP Adresse, auf die der Server den Port öffnen soll. Voreinstellung ist 127.0.0.1.

`extra-dir`

  Extra-Verzeichnisse für die aufzurufenden Publishing-Läufe.

`filter`

  Lua-Skript, das vor dem Verarbeiten der Publishing-Läufe ausgeführt werden soll (wie ein Aufruf `sp --filter …​`).

`logfile`

  Dateiname für das Protokoll. `STDOUT` für Standardausgabe und `STDERR` für Standardfehlerausgabe.

`port`

  Port, zu dem eine Verbindung aufgebaut werden kann.

### Abschnitt Hotfolder (`hotfolder`)

`hotfolder`

  Verzeichnis, das »beobachtet« werden soll.

`events`

  Regeln, welche Programme bei welchen Dateien ausgeführt werden sollen.

Eine genaue Beschreibung ist im Abschnitt Starten des Publishers über den Hotfolder zu finden.

## Parameter auf der Kommandozeile

Die erlaubten Parameter auf der Kommandozeile werden im Abschnitt über die Kommandozeile aufgeführt.

## Angaben in der Layoutdatei

Das Layoutregelwerk erlaubt manche Parameter zu setzen. Dazu gehören die Angaben, die im Element Options gesetzt werden.

- Starten des Publishers über die Kommandozeile
- Längenangaben und Maßeinheiten