vishia - Formatierung der Texterscheinung (Style)

vishia - Formatierung der Texterscheinung (Style)

Inhalt


1 Indirekte Formatierung bei HTML (CSS) und word

1.1 Prinzip

Topic=.XmlDocuGen-Style.IndirectStyle.

ulStyle=list-closely

Für eine Dokumentation ist die Textgestaltung wesentlich. Oft wird eine direkte Formatierung von Texten vorgenommen - im End-Dokument soll eine fett gedruckte rote Schrift erscheinen, also wird in den Quellen entsprechend fett und rot formatiert. Bei einer XML-Datenhaltung ist jedoch eine direkte Formatierung meist eine sehr einseitige Sicht. Daher gibt es die indirekte Formatierung: Formatvorlagen bei Winword und adäquaten Textprogrammen und die Cascade Style Sheets (CSS) bei HTML und XHTML. Textformatierungsangaben, kurz Style genannt, werden in XHTML meist in einem Attribut class der entsprechenden Textelemente symbolisch angegeben. Die Formatierung mit CSS in einer (X)-HTML-Browseranzeige kann darauf zugreifen und damit die gewünschte Präsentationsform bestimmen. Für die Konvertierung nach Winword wird die im class-Attribut stehende Angabe als Name der Formatvorlage der indirekten Formatierung benutzt.

Im Bild ist mit einem grauen Dreieck jeweils links unten mit unterschiedlichen Größen dargestellt, wie stark an den entsprechenden Stellen Stylefestlegungen erfolgen sollten. In den Quelldaten selbst ist eine Styleangabe oft nicht die richtige Wahl. Der Style soll meist erst bei der Dokumentationsgenerierung hinzugesetzt werden, entsprechend dem Darstellungszweck der Daten.

1.2 Styleangaben für Topics, Formatvorlage und CSS

Topic=.XmlDocuGen-Style.format.

ulStyle=list-closely

Folgende Ausführungen stellen die Zusammenhänge zwischen der Styleangabe bei Topics, CSS und den Formatvorlagen bei Winword dar.

1.2.1 Formatvorlagen bei Winword

Topic=.XmlDocuGen-Style.format.winword.

ulStyle=list-closely

Winword kennt für einzelne Arten von Textbestandteilen Formatvorlagen. Grundsätzlich wird unterschieden in:

  • Absatz-Formatvorlagen: Diese sind im Gebrauch am bekanntesten.

  • Zeichen-Formatvorlagen: Im Verlaufe der Entwicklung von Winword wurden diese auch schonmal weggelassen, und zwar in der Winword-Version 2. Bei Dos (Word 5.5) gab es das, dann nicht mehr. Man beschränkte sich nur auf die Absatzvorlagen, die ja auch die Zeichenformatierung im Absatz beinhalten. Ab Winword-Version 6 (der Nachfolgeversion von 2) waren dann die Zeichenformatvorlagen wieder da.

  • Abschnitts-Vorlagen: TODO

  • Listen-Vorlagen: TODO

  • Tabellen-Vorlagen: Hiermit wird das Aussehen der Tabellen bestimmt.

In der Winword-Version 6 gab es nur die Absatz- und Zeichenformatvorlagen. Die anderen Formatvorlagen-Arten sind erst danach präsent.

Genauso wie in Absatzvorlagen auch das Zeichenformat festgelegt werden kann (weshalb die Zeichenformatvorlagen auch bei der Winword-2-Version eingespart wurden), sind in einem Tabellenformat auch das Format der Absätze innerhalb der Tabellen usw. festlegbar. Andererseits kann auch jeweils innen ein anderes Format benutzt werden, also ein Zeichenformat, was die Zeichenformatierung aus dem Absatzformat ersetzt, ein Absatzformat innerhalb von Tabellenzellen usw.

1.2.2 CSS - Cascade Style Sheet

Topic=.XmlDocuGen-Style.format.css.

ulStyle=list-closely

Bei CSS ist es ähnlich. Die Bezeichnung Cascade Style Sheets deutet geradezu auf diese Schachtelungsmöglichkeiten hin. Mit CSS kann jedem (X)HTML-Element ein Format zugewiesen werden. Die Zuweisung bezieht sich immer auf die inneren Teile, solange dort nichts anderes zugewiesen wird. CSS ermöglicht auch die stark abhängige Zuweisung. So kann ein Absatz innerhalb einer Tabelle unmittelbar ein anderes Format bekommen als ein Absatz außerhalb, ohne dass dazu nochmal eine besondere class-Zuordnung am Absatz erfolgen muss.

Für den Anwender sind diese Schachtelungsmöglichkeiten und Abhängigkeiten oft nicht sehr durchschaubar. Einfacher wird es, wenn etwas direkt angegeben wird. Eine indirekte geschachtelte Möglichkeit ist immer dann technisch sinnvoll, wenn damit Arbeit gespart wird. Das ist ein Grund, weshalb bei CSS das <p>-Format abhängig von der äußeren Umgebung nur in CSS festgelegt werden kann, ohne dass der Anwender im HTML-Text nochmal extra etwas berücksichtigen muss. Bei generierten Inhalten ist das aber anders. Wenn im Generator einmalig eingebaut ist, dass ein Format direkt angegeben wird, dann ist kein Anwenderaufwand mehr nötig, die direkte Angabe ist für Kontrollzwecke besser lesbar.

2 Style-Verarbeitung bei TextTopics

2.1 Unterscheidung von Styles bei Topics

Topic=.XmlDocuGen-Style.topicStyle.

ulStyle=list-closely

TODO

2.2 Styleangaben für Topics

Topic=.XmlDocuGen-Style.topicStyle.

ulStyle=list-closely

Daher gelten für die Styleangabe bei Topics und deren Realisierung folgende Prämissen:

  • Die Anzahl der Arten von Style-Angaben soll möglichst überschaubar gehalten werden ("weniger ist mehr").

  • Für einzelne Dokument-Elemente erfolgt eine systematisch Umsetzung.

  • Damit entstehen einige mehr Formatvorlagen, die sich aber jeweils auf einen bestimmten Bereich beziehen.

Arten von Styleangaben bei Topics sind:

  • divStyle: Style für den Abschnitt, für das Topic im Ganzen. Damit kann beispielsweise eine Hintergrundfarbe festgelegt werden.

  • pStyle: Style für Absätze im Topic.

  • ulStyle:: Style für einfache Listen.

  • olStyle:: Style für numerierte Listen.

  • dlStyle:: Style für Definitionslisten.

  • tableStyle:: Style für Tabellen.

Das ist alles. Die Angaben, welcher Style diesen Styleelementen zugeordnet wird, sind aus dieser Sicht nicht begrenzt.

2.2.1 Bildung von abgeleiteten Styles für innere Elemente

Topic=.XmlDocuGen-Style.topicStyle.topicStyleDerivated.

ulStyle=list-closely

Für die inneren Elemente werden aus den zugeordneten Styles Substyles gebildet, und zwar nach folgendem Schema:

Bezeichnung

Bedeutung

ulStyle_p

Absatz-Format innerhalb von <li><p class="ulStyle_p">....

ulStyle_ul

Liste in einer Liste

ulStyle_ul_p

Absätze in einer doppelt geschachtelten Liste.

tableStyle_p

Absatz-Format innerhalb einer Tabellenzeile

tableStyle_th

Format in einer Tabellenkopf-zelle.

Die kursiv gesetzten Angaben sind als Platzhalter für die Angabe des Styles des Anwenders zu sehen. Die danach folgenden gerade gesetzen Angaben werden so wie vorgegeben erzeugt.

Das gilt genau dann, wenn die Formate zu einem Topic in der Steuerung der Dokumentengenerierung (*.genctrl.xsl) auch angegeben wurden. Insgesamt gilt folgende Regel:

  • Eine Angabe von Styles bei der Steuerung der Dokumentengenerierung (*.genctrl.xsl) hat immer vorrang.

  • Wenn dort keine Angabe erfolgt, dann gilt eine class="style"-Angabe in den Quellen. Diese wird unmittelbar übernommen.

  • Wenn keine class="style"-Angabe in den Quellen vorhanden ist, dann wird ein Standardformat eingesetzt. Letzlich haben damit alle erzeugten Xhtml-Elemente im preXhtml-File eine class="style"-Angabe. Die Standardformat-Angabe folgt nach den gleichen Regeln wie bei der Angabe eines Formates in *.genctrl.xsl, es wird eingesetzt für

Styleart

Voreinstellung

Bedeutung

ulStyle

ulStandard_p

Absatz-Format innerhalb von <li><p class="ulStandard_p">...

ulStyle

ulStandard_ul

Liste in einer Liste

ulStyle

ulStandard_ul_p

Absätze in einer doppelt geschachtelten Liste.

tableStyle

tabStandard_p

Absatz-Format innerhalb einer Tabellenzeile

tableStyle

tabStandard_th

Format in einer Tabellenkopf-zelle.

2.3 Styleangaben für Topics, Formatvorlage und CSS

Topic=.XmlDocuGen-Style.format.

ulStyle=list-closely

Folgende Ausführungen stellen die Zusammenhänge zwischen der Styleangabe bei Topics, CSS und den Formatvorlagen bei Winword dar.

2.3.1 Formatvorlagen bei Winword

Topic=.XmlDocuGen-Style.format.winword.

ulStyle=list-closely

Winword kennt für einzelne Arten von Textbestandteilen Formatvorlagen. Grundsätzlich wird unterschieden in:

  • Absatz-Formatvorlagen: Diese sind im Gebrauch am bekanntesten.

  • Zeichen-Formatvorlagen: Im Verlaufe der Entwicklung von Winword wurden diese auch schonmal weggelassen, und zwar in der Winword-Version 2. Bei Dos (Word 5.5) gab es das, dann nicht mehr. Man beschränkte sich nur auf die Absatzvorlagen, die ja auch die Zeichenformatierung im Absatz beinhalten. Ab Winword-Version 6 (der Nachfolgeversion von 2) waren dann die Zeichenformatvorlagen wieder da.

  • Abschnitts-Vorlagen: TODO

  • Listen-Vorlagen: TODO

  • Tabellen-Vorlagen: Hiermit wird das Aussehen der Tabellen bestimmt.

In der Winword-Version 6 gab es nur die Absatz- und Zeichenformatvorlagen. Die anderen Formatvorlagen-Arten sind erst danach präsent.

Genauso wie in Absatzvorlagen auch das Zeichenformat festgelegt werden kann (weshalb die Zeichenformatvorlagen auch bei der Winword-2-Version eingespart wurden), sind in einem Tabellenformat auch das Format der Absätze innerhalb der Tabellen usw. festlegbar. Andererseits kann auch jeweils innen ein anderes Format benutzt werden, also ein Zeichenformat, was die Zeichenformatierung aus dem Absatzformat ersetzt, ein Absatzformat innerhalb von Tabellenzellen usw.

2.3.2 CSS - Cascade Style Sheet

Topic=.XmlDocuGen-Style.format.css.

ulStyle=list-closely

Bei CSS ist es ähnlich. Die Bezeichnung Cascade Style Sheets deutet geradezu auf diese Schachtelungsmöglichkeiten hin. Mit CSS kann jedem (X)HTML-Element ein Format zugewiesen werden. Die Zuweisung bezieht sich immer auf die inneren Teile, solange dort nichts anderes zugewiesen wird. CSS ermöglicht auch die stark abhängige Zuweisung. So kann ein Absatz innerhalb einer Tabelle unmittelbar ein anderes Format bekommen als ein Absatz außerhalb, ohne dass dazu nochmal eine besondere class-Zuordnung am Absatz erfolgen muss.

Für den Anwender sind diese Schachtelungsmöglichkeiten und Abhängigkeiten oft nicht sehr durchschaubar. Einfacher wird es, wenn etwas direkt angegeben wird. Eine indirekte geschachtelte Möglichkeit ist immer dann technisch sinnvoll, wenn damit Arbeit gespart wird. Das ist ein Grund, weshalb bei CSS das <p>-Format abhängig von der äußeren Umgebung nur in CSS festgelegt werden kann, ohne dass der Anwender im HTML-Text nochmal extra etwas berücksichtigen muss. Bei generierten Inhalten ist das aber anders. Wenn im Generator einmalig eingebaut ist, dass ein Format direkt angegeben wird, dann ist kein Anwenderaufwand mehr nötig, die direkte Angabe ist für Kontrollzwecke besser lesbar.