fo:page-sequence - GAMS - Karl-Franzens

Transcrição

fo:page-sequence - GAMS - Karl-Franzens
TEI! Und dann?
Texttechnologische Standards in den Geisteswissenschaften Encoding in TEI
<http://gams.uni-graz.at/o:ide.292>
Martina Semlak
[email protected]
17.-18. Oktober 2012
Druckvorlagen erzeugen
mit XSL-FO
XSL-FO (Formatting Objects)
• Ein FO-Dokument ist eine nach einem W3C-Standard
strukturierte XML-Datei, muss also valide und wohlgeformt sein
• Die Erstellung eines FO-Dokuments erfolgt über ein XSLStylesheet, das Elemente aus dem Namensraum
xmlns:fo="http://www.w3.org/1999/XSL/Format" enthält
• XSL-FO ist ein Teilkonzept von XSL (XSLT, XPATH, XSL-FO)
• FO-Dokumente enthalten seitenbezogene
Formatierungsanweisungen, die unabhängig vom Zielformat
sind
• Ein FO-Dokument wird von einem FO-Prozessor in ein Zielformat
umgewandelt (z.B. PDF, RTF oder PostScript)
XSL-FO Prozessoren
• Apache FOP (Open Source, in Oxygen integriert)
http://xml.apache.org/fop/
• XEP Engine (frei für nichtkommerzielle Nutzung)
http://www.renderx.com/
• Antenna House (kostenpflichtig) http://www.antennahouse.com/
• Prozessoren im Vergleich
http://www.data2type.de/xml-xslt-xslfo/xsl-fo/formatierer-vergleich
• Aktuelle Entwicklung: XML-Print
Satzprogramm für komplexe wissenschaftliche Texte, z.B. kritische
Editionen, XSL-FO+, Testversion verfügbar
https://sites.google.com/a/budabe.eu/xmlprint_de/
Der Verarbeitungsprozess
XSLT-Prozessor
(Saxon, Xalan)
FO-Prozessor
(FOP, XEP, …)
XSLT und XSL-FO
• Selektierte Knoten werden über XSL-FO-Anweisungen formatiert
<?xml version="1.0" encoding="UTF-8"?>
XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format" version="2.0">
<xsl:template match="/">
XML
<fo:root>
<lg>
<fo:layout-master-set>
<l>Natur und Kunst</l>
<fo:simple-page-master master-name="firstPage"
<l>Und haben sich</l>
page-height="297mm" page-width="210mm"
<l>Der Widerwille</l>
margin-left="12mm" margin-right="12mm"
<l>Und beide scheinen</l>
margin-top="20mm" margin-bottom="20mm">
</lg>
<fo:region-body margin-top="25mm" />
<lg>
</fo:simple-page-master>
</fo:layout-master-set>
<l>Es gilt wohl nur</l>
<fo:page-sequence master-reference="firstPage">
<l>Und wenn wir erst</l>
<fo:flow flow-name="xsl-region-body">
<l>Mit Geist und Fleiß</l>
<xsl:apply-templates/>
<l>Mag frei Natur</l>
</fo:flow>
</lg>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="lg">
<fo:block-container font-size="12pt" margin-left="5mm" margin-bottom="5mm">
<xsl:apply-templates select="l"/>
</fo:block-container>
</xsl:template>
<xsl:template match="l">
<fo:block>
<xsl:value-of select="."/>
</fo:block>
</xsl:template>
XSLT und XSL-FO
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="firstPage"
page-height="297mm" page-width="210mm"
margin-left="12mm" margin-right="12mm"
margin-top="20mm" margin-bottom="20mm">
<fo:region-body margin-top="25mm" margin-bottom="20mm" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="firstPage">
<fo:flow flow-name="xsl-region-body">
<fo:block-container font-size="12pt" margin-left="5mm" margin-bottom="5mm">
<fo:block>Natur und Kunst, sie scheinen sich zu fliehen</fo:block>
<fo:block>Und haben sich, eh' man es denkt, gefunden</fo:block>
<fo:block>Der Widerwille ist auch mir verschwunden</fo:block>
<fo:block>Und beide scheinen gleich mich anzuziehen</fo:block>
</fo:block-container>
<fo:block-container font-size="12pt" margin-left="5mm" margin-bottom="5mm">
<fo:block>Es gilt wohl nur ein redliches Bemühen!</fo:block>
<fo:block>Und wenn wir erst, in abgemessnen Stunden,</fo:block>
<fo:block>Mit Geist und Fleiß uns an die Kunst gebunden,</fo:block>
<fo:block>Mag frei Natur im Herzen wieder glühen.</fo:block>
</fo:block-container>
</fo:flow>
</fo:page-sequence>
</fo:root>
FO
PDF
Grundgerüst einer FO-Datei
• fo:root
• fo:layout-master-set
• fo:page-sequence
Wurzelelement
Seitenvorlage (Seitengröße, aufteilung, -abstände)
Reihenfolge
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="firstPage">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="firstPage">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello World!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Seitenvorlage(n) definieren:
• Erfolgt über fo:simple-page-master
• Kindelement von fo:layout-master-set
• Benennung der Seite(n) über das
Attribut master-name
• Definition von Seitenabmessungen
und -abständen
<fo:simple-page-master
master-name="firstPage"
page-height="297mm"
page-width="210mm"
margin-left="12mm"
margin-right="12mm"
margin-top="20mm"
margin-bottom="20mm">
Druckbereich
Bereiche definieren
•
•
•
•
•
fo:region-body
fo:region-before
fo:region-after
fo:region-start
fo:region-end
Hauptbereich
Kopfbereich
Fußbereich
Linker Bereich
Rechter Bereich
<fo:simple-page-master master-name="A4">
<fo:region-body margin="20mm"/>
<fo:region-before extent="20mm"/>
<fo:region-after extent="20mm"/>
</fo:simple-page-master>
Attribute
• Die Formatierung der Seite(n) und Bereiche erfolgt über Attribute
• Die Attribute und deren Werte sind denen von CSS sehr ähnlich
• Objekte und Attribute
– http://www.w3schools.com/xslfo/xslfo_reference.asp
• Beispiele:
– Ränder: margin
– Regionen: extent (region-before, region-after); margin
(region-body);
– Hintergrund: background-color, background-image
– Schrift: font-family, font-weight, font-size
– Text: text-align, start-indent, end-indent
Anwendung der Seitenvorlage
• Die Anwendung der im fo:simple-page-master definierten
Seitenvorlage und die Einbettung der Inhalte erfolgt innerhalb
von fo:page-sequence
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="firstPage">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="firstPage">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello World!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Statische Inhalte und Textflüsse
• Die Seitenvorlage (fo:page-sequence) enthält statische und
fließende Inhalte
• Statischer Inhalt: fo:static-content
– Wird immer vor fließendem Inhalt notiert
– Bleibt auf jeder Seite gleich (z.B. Kopf- und Fußzeile)
• Textflüsse: fo:flow
– Inhalte, die dynamisch über mehrere Seiten laufen
<fo:page-sequence master-reference="A4">
<fo:static-content flow-name="xsl-region-before">
<fo:block border-bottom="0.25pt solid black">Clarin.at –
Dariah.at – Workshop I</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello World!</fo:block>
</fo:flow>
</fo:page-sequence>
Beispiel XSL-FO
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-height="297mm" page-width="210mm"
margin-left="12mm" margin-right="12mm"
margin-top="20mm" margin-bottom="20mm">
<fo:region-body margin-top="25mm" margin-bottom="20mm" />
<fo:region-before extent="25mm" background-color="red" />
<fo:region-after extent="20mm" background-color="green"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:static-content flow-name="xsl-region-before">
<fo:block font-size="16pt">Druckvorlagen mit XSL-FO</fo:block>
</fo:static-content>
<fo:static-content flow-name="xsl-region-after">
<fo:block font-size="16pt" text-align="right">2012-10-18</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="20pt" text-align="center"
margin-top="5mm">Hello World!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Ressourcen
Links
• w3schools.com (http://www.w3schools.com/xslfo/)
• data2type (http://www.data2type.de/xml-xslt-xslfo/xsl-fo)
• http://www.ibiblio.org/xml/books/bible2/chapters/ch18.html
Literatur
• Krüger, Manfred, XSL-FO verstehen und anwenden. XMLVerarbeitung für PDF und Druck, Heidelberg 2006
Mailinglisten
• [email protected] (XSL-FO Mailing list)
• [email protected] (FO Processor Apache FOP
Users List)
TEI Tools
OxGarage/TEI Stylesheets,
TEI Boilerplate, TeiCHI
TEI Stylesheets
•
Set an Stylesheets (XSLT) zur Transformation von einfachen TEIDokumenten in XHTML, LaTeX, XSL-FO, Word, OpenOffice, ePub
•
Implementation der einfachen Module, die erweitert werden können
•
Code in XSLT 2.0 für TEI P5 konforme Dokumente
•
Die TEI Stylesheets stehen zur Verfügung
•
–
In Oxygen als Standardtransformation für TEI Dokumente
–
Als Paket zum Download
–
Im Online-Konvertierungstool OxGarage
Die Ausgabe kann über Parameter angepasst werden
TEI XSL Customization Handbook:
http://www.tei-c.org/release/doc/tei-xsl-common/customize.html
OxGarage Conversion
•
http://www.tei-c.org/oxgarage/
•
REST-Service zur Transformation von Dokumenten in andere
Datenformate
•
–
odt > TEI
–
doc > docx
–
ODD > RelaxNG, DTD
–
docx > TEI P5 > ePub
–
…
Einschränkung: nicht alle TEI-Elemente werden berücksichtigt,
ABER, es werden viele allgemeine Probleme abgedeckt
OxGarage: Von der klassischen
Textverarbeitung nach TEI
OxGarage: Von der klassischen
Textverarbeitung nach TEI
OxGarage: Von der klassischen
Textverarbeitung nach TEI
OxGarage: Von der klassischen
Textverarbeitung nach TEI
OxGarage: Von der klassischen
Textverarbeitung nach TEI
• Anpassungen des TEI-Dokuments über eine XSL-Transformation
+
Ersetzt die Elemente
<list> und <item> durch
<lg> und <l>
OxGarage:
Von TEI zu XHTML und PDF
•
Transformation nach XHTML oder
PDF über OxGarage oder Oxygen
OxGarage:
Von TEI zu XHTML und PDF
•
Übergabe von Parametern
TEI Boilerplate
•
Download: http://teiboilerplate.org/
•
Einfache Standardlösung um TEI P5 Inhalte in aktuellen
Browsern zur Verfügung zu stellen: Firefox, Chrome, Safari, IE9
•
Clientseitiger Prozess: die TEI XML-Datei kann somit direkt im
Browser aufgerufen werden
TEI Boilerplate: Vorüberlegungen
•
Das TEI-Dokument enthält keine Formatierungsanweisungen
•
TEI-Dokument mittels XSLT nach HTML konvertieren und mit CSS
(Cascading Style Sheets) stylen.
•
–
Nachteil: HTML ist nicht so ausdrucksstark wie TEI;
–
Vorteil: Browser können mit HTML umgehen, User Events
Einbindung von CSS direkt in das TEI-Dokument.
–
Vorteil: wird direkt im Browser aufgerufen, damit bleibt Struktur
erhalten
–
Nachteil: Browser versteht TEI nicht, <ptr> oder <ref> zum Beispiel
werden nicht als Link interpretiert
TEI Boilerplate
•
Verbindet die Vorteile beider Ansätze
•
Einbettung des TEI-Dokuments in HTML5
•
Einfache Alternative zu komplexen XSLT Lösungen, nicht als
Ersatz gedacht
•
Es stehen eine Reihe vordefinierter Styles zur Verfügung, die
durch eigene Deklarationen ergänzt werden können.
•
Styleinformationen werden über das Element <rendition>
innerhalb der <tagsDecl> definiert.
TEI Boilerplate: Einbindung
•
Stylesheetreferenz zwischen XML-Deklaration und Wurzelelement
<?xml-stylesheet type="text/xsl" href="teibp.xsl"?>
•
Das TEI-Dokument wird im Ordner teibp > content gespeichert und
von dort aus aufgerufen
TEI Boilerplate:
Unterstützte Elemente
•
Bereiche und Überschriften
<div>, <head>
•
Geordnete, ungeordnete Listen,
Definitionslisten
<list>, <item>, @type
•
Tabellen
<table>, <row>, <cell>
•
Alternativen
<choice>, <abbr>, <expan>
<sic>, <corr>
•
Bibliografische Einträge
<listBibl>, <bibl>
•
Verse
<lg>, <l>
•
Grafiken
<figure>, <graphic>
•
Siehe Boilerplate Demo
TeiCHI
Bringing TEI Lite to Drupal
•
http://www.teichi.org
•
Framework zur Veröffentlichung TEI-kodierter Texte (TEI Lite P5)
in einer Drupal-basierten Umgebung (CMS)
•
4 Module: TEI Content, TEI Download, TEI Imageviewer, TEI
Search (in Entwicklung)
•
Textbasierte Editionsprojekte (z.B.: aus Literaturwissenschaft
oder Geschichte)
•
Relativ unkomplizierte editorische
Voraussetzungen/Gegebenheiten notwendig
TeiCHI
Bringing TEI Lite to Drupal
Publikationsworkflow
in GAMS
Workflow: Material
am Beispiel der Moralischen Wochenschriften
• Materialsichtung & Erläuterung
von Forschungsinteressen
•
Auslotung der Möglichkeiten
einer digitalen Edition
•
Entwicklung eines Datenmodells
Workflow: Datenmodell
•
Formalisierung des Datenmodells
Workflow: Datenerfassung
•
Formatvorlage in einem Textverarbeitungsprogramm
•
(Web)Formular
Workflow: Automatisierte
Konvertierung nach TEI
Workflow: Datenupload
•
Webbasierter, Java-Client Cirilo
•
Objekt anlegen und Datenströme (TEI-Dokument) hinzufügen
Workflow: Datenupload
•
Stylesheetreferenzen (Web- und Print) zuweisen
•
Zuordnung zu einem oder mehreren Kontexten
Workflow:
Präsentation in GAMS
•
Transformation über XSL in unterschiedlichen Ausgabeformate
XSLT-Prozessor
Workflow:
Präsentationsformen I
•
Liste der Einzelausgaben
Workflow:
Präsentationsformen II
•
Webansichten: Original- und Analyseansicht
Workflow:
Die Präsentationsformen III
•
Druckansichten
Workflow:
Präsentationsformen IV
•
Personen-, Orts- und Werkregister
Vielen Dank für Ihre
Aufmerksamkeit!
http://gams.uni-graz.at
Institut für Corpuslinguistik und Texttechnologie (ICLTT)
der Österreichischen Akademie der Wissenschaften
Zentrum für Translationswissenschaft (ZTW) der Universität Wien
Zentrum für Informationsmodellierung (ZIM) der Karl-Franzens-Universität Graz

Documentos relacionados