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
- 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
  - ClearPage
  - 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.10.0
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
- 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
  - ClearPage
  - 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

# Fehlersuche / Debugging

Nicht immer klappt die Ausgabe, wie sie soll. Manchmal sind Objekte zu breit, manchmal wird das falsche Textformat genommen und gelegentlich sieht die Tabelle nicht so aus, wie sie eigentlich sollte. Damit die Fehlersuche nicht zu schwierig wird, gibt es im speedata Publisher diverse Hilfen. Dafür gibt es den Befehl `<Trace>`, der verschiedene Schalter anbietet. Dies sind (mit Voreinstellung):

    <Trace
        assignments="no"
        objects="no"
        verbose="no"
        grid="no"
        gridallocation="no"
        hyphenation="no"
        kerning="no"
        textformat="no"
        />

`assignments`

  Gibt auf der Konsole den Wert der Zuweisung (`<SetVariable>`) aus.

`objects`

  Zeichnet eine Linie um einzelne Objekte.

`verbose`

  Erhöht die Ausgabe auf der Konsole (Protokoll-Datei).

`grid`

  Zeichnet das Raster. Siehe Abschnitt Raster.

`gridallocation`

  Zeichnet die Rasterbelegung. Siehe Abschnitt Raster.

`hyphenation`

  Markiert die Stellen, an denen die Wörter umbrochen werden dürfen (Silbentrennung).

`kerning`

  Markiert die Stellen, an denen die Schriftart Unterschneidungen einfügt.

`textformat`

  Erzeugt über jeder Textzeile einen Tooltip, der das benutzte Textformat anzeigt. Siehe das Beispiel im Abschnit Textformate.

## Nachrichten

Neben den Möglichkeiten, die der Befehl `<Trace>` liefert, gibt es noch die Möglichkeit, Nachrichten in der Logdatei auszugeben:

    <Message select="'Hello, world!'"/>
    <Message select="sd:current-page()"/>

Die Ausgaben erscheinen in der Logdatei (`publisher.protocol`)

    Message: "Hello, world!"
    Message: "1"

Den Befehl `<Message>` kann man mit `error="yes"` anweisen, eine Fehlermeldung auszugeben (anstelle einer Nachricht). Ebenso kann man den Fehlercode bestimmen, der beim Beenden des Publishers zurückgegeben wird. Siehe den Befehl `<Message>` in der Referenz.

## Statusdatei und Protokolldatei

Zum Ende des Laufs werden zwei Dateien auf die Festplatte geschrieben, die bei der Fehlersuche behilflich sein können. Die Datei `publisher.status` ist eine XML-Datei, die die Fehlermeldungen und anderen Nachrichten (über den Befehl `<Message>`) enthält. Das Beispiel oben mit den zwei Nachrichten ergibt die folgende Datei:

    <Status>
      <Errors>0</Errors>
      <Message>Hallo Welt!</Message>
      <Message>1</Message>
      <DurationSeconds>1</DurationSeconds>
    </Status>

Ebenso wird eine etwas ausführlichere Protokolldatei (`publisher.protocol`) geschrieben, die verschiedene Informationen enthält.

    Protocol file for speedata Publisher (2.9.2)
    Time: Mon Feb 20 11:03:25 2017
    ---------------------------------------------
    Start processing
    Talking to server on port 56486
    LuaTeX version 79.1
    Loading hyphenation patterns "hyph-en-gb.pat.txt".
    Language id: 0
    Loading layout instructions "/tmp/layout.xml"
    DefineFontfamily, family=2, name="Überschrift"
    Loading aux file "/tmp/publisher-aux.xml"
    Loading data file "/tmp/data.xml"
    Page of type "Default Page" created (1)
    Number of rows: 28, number of columns = 19
    PlaceObject: Textblock in row 1 and column 1, width=19, height=1 (page 1)
    Message: "Hallo Welt!"
    Message: "1"
    Stop processing data
    0 errors occurred
    Duration: 0.223866 seconds

## Wie Sie Hilfe erhalten

Wenn alle Fehlersuche fehlschlägt oder wenn Sie Fragen oder Kommentare haben, die Sie mit anderen teilen möchten, können Sie die folgenden Ressourcen nutzen:

- Chat auf Gitter: https://gitter.im/speedata/publisher
- Diskussionen auf Github: https://github.com/speedata/publisher/discussions
- Issues auf Github: https://github.com/speedata/publisher/issues
- Stackoverflow mit dem Tag `speedatapublisher`: https://stackoverflow.com/questions/tagged/speedatapublisher

Jedes Feedback ist willkommen und hilfreich. Beachten Sie jedoch: Bezahlter Support wird immer gegenüber unbezahltem Support priorisiert. Wenn Sie also einen Feature-Wunsch haben oder einen Bug-Fix benötigen, ziehen Sie bitte in Betracht, einen Support-Plan zu kaufen oder dieses Projekt auf Github zu sponsern, um auf die Überholspur zu kommen.

Feature-Requests auf Github werden alle gesehen und auf einer nicht-öffentlichen Liste notiert, aber irgendwann von Github geschlossen, um die Issue-Liste sauber zu halten.

Wenn Sie einen Fehlerbericht haben: Bitte folgen Sie der einfachen Richtlinie: Machen Sie ein Beispiel, das so klein wie möglich ist, aber den Fehler zeigt. Sonst kann ich nicht sehen, was schief läuft.

- Qualitätssicherung (PDF-Vergleich)
- Servermodus