Workshop
Automatischer Satz

@mkraetke, pub&print 18.3.2019

Anforderungen, Technologien und Projektplanung

Überblick

  • Das Produkt definieren
  • Prozess- und Projektplanung
  • Technologien

Das Produkt definieren

Von innen nach außen

  1. Inhaltselemente
  2. Struktur
  3. Gestaltung

Inhaltselemente

  1. Objekte (Bilder, Tabellen, Boxen, Marginalien)
  2. verweisartige Elemente (Indexeinträge, Fuß- und Endnoten, Hyperlinks)
  3. Absatzelemente
  4. Inline-Elemente

Struktur

  1. Frontmatter (Titelei, Impressum, IVZ, Vorwort, Widmung …)
  2. Body (Titelei, Teile, Kapitel, Abschnitte …)
  3. Backmatter (Nachwort, Endnoten, Anhänge, Register, Glossar, Bibliografien, …)
  4. Varianten (Roman, Sachbuch, Monografie, Beitragswerke, …)

Gestaltung

Format, Satzspiegel, Raster, Kolumnentitel, Pagina, Spalten, Schriften, Schriftgrad, Durchschuss, Abstände, Farbe, Anordungen…

Welche Variabilität ist notwendig für das Produkt?

Prozess- und Projektplanung

Halbautomatisch vs automatisch?

  • Auszeichnung (TCE) und Normalisierung
  • Platzierung von Elementen
  • Umbruch- und Silbentrennung
  • Autorenkorrekturen
  • Mikrotypografie

Woher kommen die Daten?

  • Content
  • Metadaten
  • Assets

Aufgaben und Rollen

  • Normalisierung
  • Auszeichnung (TCE)
  • Bearbeitung: XML, Online-Editor, DOCX
  • Konvertierung
  • Freigabe

Qualitätssicherung

  • Autorenkorrekturen (selbstständig)
  • Formate und Formatierung prüfen
  • Schema
  • Schematron
  • visuelle Kontrolle

Druckvorstufe

  • PDF-Postprocessing
  • RGB- oder CMYK-Workflow
  • Anforderungen der Druckerei

Schönheitskonkurrenz (Ausschreibung)

  • Marktübersicht und Technologievergleich
  • Projekt mit definiertem Budget
  • Prototyp unter Produktionsbedingungen

Anforderungen kommunizieren

  • Styleguide oder Templates
  • Formatvorlagenkataloge
  • Musterdaten (Druckvorlagen, Manuskript)
  • Zeitpläne

Technologien

XSL-FO

XSL-FO

  • 2001 als W3C-Recommendation veröffentlicht
  • aktuell Version 1.1 (2012)
  • keine Weiterentwicklung durch W3C
“ We have closed the Working Group because not enough people were taking part.”

Liam Quin, 2013

Ist XSL-FO tot?

  • als Web-Standard definitiv
  • weit verbreitet z.B. TechDoc
  • PrintCSS ist weniger mächtig und zurzeit nur für einfache Layouts denkbar

XSL-FO-Formatter

  • Apache FOP (Open Source)
  • Antenna House
  • RenderX XEP

XSL-FO: Dokumentstruktur

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="a4-seite" 
                           page-width="210mm" page-height="297mm">
      <fo:region-body/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="a4-seite">
    <fo:flow flow-name="xsl-region-body">
      <fo:block>Hello World!</fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>

XSL-FO: Dokumentstruktur

<fo:layout-master-set>
  <-- Seitenvorlagen -->
</fo:layout-master-set>

XSL-FO: Dokumentstruktur

<fo:simple-page-master master-name="a4-seite" 
                       page-width="210mm" page-height="297mm">
  <-- Layout der Seitenbereiche (Regions) -->
  <fo:region-body/>
</fo:simple-page-master>

XSL-FO: Dokumentstruktur

<fo:page-sequence master-reference="a4-seite">
  <-- der Inhalt -->
  <fo:flow flow-name="xsl-region-body">
    <fo:block>Hello World!</fo:block>
  </fo:flow>
</fo:page-sequence>

XSL-FO-Elemente

  • Block-Elemente (erzeugt Absatz)
  • Inline-Elemente (kein Absatz)

Block-Elemente (Auswahl)

fo:block, fo:block-container, fo:table, fo:list-block

Inline-Elemente (Auswahl)

fo:character, fo:inline,
fo:inline-container, fo:external-graphic, fo:page-number, fo:page-number-citation

Fazit

  • XSL-FO ist als Standard tot, aber als Technologie etabliert und verbreitet
  • ohne proprietäre Renderer und Erweiterungen nicht produktiv nutzbar
  • Probleme beim Umbruch komplexer Tabellen, Formeln etc.

PrintCSS

CSS Paged Media Module Level 3

Idee: XML/HTML+CSS = seitenbasiertes Layout auf Bildschirm und Papier

CSS Paged Media Module Level 3

  • CSS 2.1 (2011): Seitenformat und Seitenumbrüche
  • CSS Paged Media Module Level 3 (erster Working Draft 1999
  • aktueller Working Draft (aktualisiert 18.10.2018)

CSS-Formatter

  • Antenna House
  • Prince
  • PDFReactor
  • oXygen Chemistry

Ein PrintCSS-Beispiel

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
    <style type="text/css">
      @page {
        size: A4; margin: 1cm;
      }
    </style>
  </head>
  <body>Hello World</body>
</html>

Seitenzahlen

h1 {
  position: running(header1);
}
@page{
  @top-center {
    content: element(header1);
  }
  @bottom-center {
    content: counter(page);
  }
}

Kolumnentitel

@page {
        size: A4;
      }
h1.running {
  string-set:chaptertitle  counter(chapter) ". " content();
  counter-increment:chapter
}
h1.running::before{
  content: counter(chapter) ": ";
}
@page{
  @top-center {
    content: string(chaptertitle) ;
  }
}

Seitenumbrüche

  • Eigenschaften: page-break-before, page-break-after, page-break-inside
  • Werte: auto, always, avoid, left, right

Fußnoten

<p>Text enthältFußnote.</p>
            
.note { float: footnote; }

Einschränkungen

  • content ist reiner Text ohne Auszeichnungen
  • Inhaltsverzeichnis, Indizes, Endnoten müssen mit XSLT generiert werden
  • Fußnoten-Layout nur eingeschränkt beeinflussbar
  • Wörterbücher abhängig vom Formatter

PrintCSS im Browser?

Bisher unterstützen die Web-Browser nur einen sehr geringen Teil von PrintCSS.

Fazit

  • PrintCSS ist einfach zu lernen
  • der Standard wird aktiv weiter entwickelt
  • PrintCSS von proprietären Erweiterungen abhängig
  • Probleme beim Umbruch aufwändigerer Titel

TeX

TeX

  • ab 1977 entwickeltes, 1986 fertiggestelltes Textsatzsystem mit Makrosprache
  • Quellcode → seitenbasiertes Format
  • Makropaket LaTeX

TeX

  • heute Satz wissenschaftlicher Publikationen
  • herausragender Formelsatz, Zeilenumbruchsalgorithmus u.a. in InDesign übernommen
  • großes Ökosystem Paketen mit neuen Funktionen
  • Open Source

Einschränkungen des klassischen LaTeX

  • kein Unicode
  • keine OpenType Fonts (OTF)
  • kein XML Parser

Weiterentwicklungen

  • XML-Parser: xmltex (nur XSLT 1.0)
  • XML-TeX-Konverter: xml2tex
  • TeX-XML-Konverter: latexml
  • neuere TeX-Varianten mit Unicode, OTF-Support: XeTeX, LuaTeX

Dokumentstruktur

  • Dokumentklasse
  • Pakete
  • Content

Ein Beispiel

\documentclass{book}
\usepackage[ngerman]{babel}
\begin{document}
Dieser Text ist \textbf{halbfett}
\end{document}

Überschriften

\documentclass{book}
\begin{document}
\chapter{Erstes Kapitel}
\section{Abschnitt}
\subsection{Unterabschnitt}
\end{document}

Überschriften

\documentclass{book}
\usepackage{makeidx}
\makeindex
\begin{document}
\tableofcontents
\listoffigures
\listoftables
(...)
\printindex
\end{document}

Eine Abbildung

\begin{figure}[hbt!]
\centering
\includegraphics[width=0.3\linewidth]{image01.png}
\caption{Die Beschriftung wird unter dem Bild angezeigt}
\label{fig:image01}
\end{figure}

Fazit

  • TeX bietet als Programmiersprache viel Flexibilität Probleme zu lösen
  • Open Source: keine Lizenzkosten, reichhaltiges Ökosystem an Zusatzpaketen
  • TeX ist schwer zu lernen (Alternative: z.B. LuaTeX)
  • Verbreitung auf STM, Scholarly Publishing, Digital Humanities beschränkt

Schlussresümée

  • Vom Produkt aus denken (Prozesse und Daten machen noch kein Produkt)
  • aus Anforderungsanalyse folgen Entscheidungen über Prozesse und Technologie, nicht umgekehrt
  • Standardisierung und Automatisierung heißt nicht schlechte Typografie (eher schlechtes Satzsystem)
  • Satzautomatisierungsprojekte erfordern ebenso Aufwand und kontinuierliche Weiterentwicklung

Vielen Dank für die Aufmerksamkeit!