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