|
Damit die Tabellen in den Zielformaten besser aussehen bzw. handhabbar sind, ist eine Erweiterung der vorhandenen oder eine neue Tabellenstruktur notwendig.
Einen neue Tabellenstruktur hat den Vorteil, daß alte Texte ohne Änderung mit neuen UDO-Versionen übersetzt werden können. Außerdem braucht man keinen Handstand bei den Zielformaten zu machen, die sowas nicht unterstützen. Nachteil ist, daß man u.U. zwei verschiedene Tabellen pflegen muß für eine Sache, die eigentlich auch UDO erledigen könnte.
Folgende Features sollten unterstützt werden, soweit das Zielformat es zulässt (Kursiv gesetzte Sachen sind IMHO nicht so wichtig):
Ich habe hier mal eine Struktur entworfen, gebt mal Euren Kommentar dazu ab. Die Rahmen (aussen und innen) sollten ausschließlich durch die HTML-Elemente definiert werden. Für besondere "Rahmenbedingungen" könnten Angaben innerhalb von Style-Bereichen durchgeführt werden. Diese Stylebereiche können dann auch in anderen Zielformaten umgesetzt werden. Das übliche Setzen durch !hline bzw. die senkrechten Striche (|) kann erhalten bleiben.
Erstmal die ursprüngliche Tabellenstruktur:
!table_caption foo !begin_table [l|l|l|l] !hline A1 !! A2 !! A3 !! A4 B1 !! B2 !! B3 !! B4 C1 !! C2 !! C3 !! C4 !end_table |
Und jetzt eine Erweiterung der alten Tabellenstruktur:
!table_caption foo !table_summary Dies ist eine Zusammenfassung für nicht-visuelle Medien !begin_table [l50|l|l25%|l] [BGC=text,BGI=text,B=x,F=text,CS=x,CP=x,R=text,H=x,W=x] [BGC=text,BGI=text,HA=x,VA=x,ABBR=text] !? A1 !! A2 !! A4 (!label [B1] [Verweis]) !! B2 !! Die ist ein etwas längerer Text, den ich hier in dieser Zeile fortführen möchte !! B4 (!rows [BGC=text,BGI=text,HA=text,VA=text]) C1 !! [COLS=x] C2 !! C4 !end_table |
!? | Hier fängt der eigentliche Zelleninhalt an. |
!\ | Hier ist die Tabellenzeile noch nicht zu Ende
Dieses Zeichen sollte man auch für mehrzeilige Überschriften etc. benutzen |
B | Breite des Außenrahmens |
F | Bezeichnung für Frames (Außenrahmen) |
CS | Wert für Cellspacing |
CP | Wert für Cellpadding |
R | Bezeichnung für Rules (Innenrahmen) |
W | Breite |
H | Höhe |
HA | Horizontale Ausrichtung |
VA | Vertikale Ausrichtung |
BGC | Hintergrundfarbe |
BGI | Hintergrundbild (Kein HTML-Standard!) |
COLS | Spalten verbinden |
ROWS | Zeilen verbinden |
ABBR | Hinweis für nicht-visuelle Medien |
HEAD | Kopfzeile einer Tabelle, die auf jeder Seite wiederholt wird |
S | Stylebereich innerhalb einer Zelle |
Die Breite und Höhe von einzelnen Zellen sollte nicht unbedingt wählbar sein, schließlich sollten alle Spalten gleich breit bzw. alle Zeilen gleich hoch sein.
Auf Angaben für ganze Zeilen sollte verzichtet werden, denn die einzige Möglichkeit ist die Angabe der Hintergrundfarbe, die auch für jede Zelle einzeln angegeben werden kann.
Als zusätzliches Attribut für Tabellen (HTML) sollte das Summary- und das Abreviation-Attribut eingeführt werden für nicht-visuelle Medien.
!table_caption Autoren von UDO !table_summary Dies ist eine Übersicht über die Autoren von UDO und die jeweiligen Fachgebiete, die sie betreuen !begin_table [l100|l|l25%|l] [B=3,F=void,CS=3,CP=3,R=rows,W=100%] [HEAD] !? Programmierer !! Formate !! Systeme !! Sonstiges [BGC=floralwhite] !? Ulf Dunkel !! ASC, HTML, PS, RTF, STG, WinHelp, XML !! TOS, Windows, Mac, MagiCMac !! (!label [Martin Elsässer] [Martin]) !! HTML, LaTeX, STG !! TOS !! [ABBR=Alles über mich?] !? Norbert Hanz !! HTML, PS, RTF, STG, WinHelp, XML !! TOS !! [VA=bottom,ROWS=2] !? WEB-Seite, Dokumentation Volker Janzen !! HTML !! [BGC=navajowhite] !? Windows, Linux, MagicPC Ulrich Kretschmer !! [HA=center,COLS=3] !? Dokumentation Christian Krüger !! [HA=right] !? Postscript !! !! (!rows [BGC=lime]) Uwe Mindrup !! HTML, XML, PHP !! !! Linux-Shell Tobias Jung !! !! !! [BGI=./images/back.gif] !? WEB-Seite !end_table |
<table border="3" cellpadding="3" cellspacing="3" width="100%" frame="void" rules="rows" summary="Dies ist eine Übersicht über die Autoren von UDO und die jeweiligen Fachgebiete, die sie betreuen"> <caption>Autoren von UDO</caption> <colgroup> <col width="100" /> <col /> <col width="25%" /> <col /> </colgroup> <tr align="left"> <td width="100">Programmierer</td> <td>Formate</td> <td width="25%">Systeme</td> <td>Sonstiges</td> </tr> <tr align="left"> <td bgcolor="floralwhite">Ulf Dunkel</td> <td>ASC, HTML, PS, RTF, STG, WinHelp, XML</td> <td>TOS, Windows, Mac, MagiCMac</td> <td> </td> </tr> <tr align="left"> <td><a name="Martin">Martin Elsässer</a></td> <td>HTML, LaTeX, STG</td> <td>TOS</td> <td> </td> </tr> <tr align="left"> <td abbr="Alles über mich?">Norbert Hanz</td> <td>HTML, PS, RTF, STG, WinHelp, XML</td> <td>TOS</td> <td valign="bottom" rowspan="2">WEB-Seite, Dokumentation</td> </tr> <tr align="left"> <td>Volker Janzen</td> <td>HTML</td> <td bgcolor="navajowhite">Windows, Linux, MagicPC</td> </tr> <tr align="left"> <td>Ulrich Kretschmer</td> <td align="center" colspan="3">Dokumentation</td> </tr> <tr> <td>Christian Krüger</td> <td align="right">Postscript</td> <td> </td> <td> </td> </tr> <tr align="left" bgcolor="lime"> <td>Uwe Mindrup</td> <td>HTML, XML, PHP</td> <td> </td> <td>Linux-Shell</td> </tr> <tr align="left"> <td>Tobias Jung</td> <td> </td> <td> </td> <td background="./images/back.gif">WEB-Seite</td> </tr> </table> |
{\keep \trowd\trhdr \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400 \intbl \ql Programmierer\cell \ql Formate\cell \ql Systeme\cell \ql Sonstiges\cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat12\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400 \intbl \ql Ulf Dunkel\cell \ql ASC, HTML, PS, RTF, STG, WinHelp, XML\cell \ql TOS, Windows, Mac, MagiCMac\cell \ql \cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400 \intbl \ql Martin Elsässer\cell \ql HTML, LaTeX, STG\cell \ql TOS\cell \ql \cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300 \clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clvertalb\clvmgf\cellx11400 \intbl \ql {{\*\atrfstart 1}Norbert Hanz}{\v {\*\atrfend 1} {\*\atnid NHz}{\*\atnauthor UDO Release 7 Patchlevel 0}\chatn {\*\annotation{\*\atnref 1}\pard\plain \s16\fs20 {\field{\*\fldinst {PAGE \\# "'Seite: '#'\line '"}}{\fldrslt }} {\chatn }{Alles über mich?}}}\cell \ql HTML, PS, RTF, STG, WinHelp, XML\cell \ql TOS\cell \ql WEB-Seite, Dokumentation\cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat12\cellx6300 \clbrdrr\brdrs\clvmrg\cellx11400 \intbl \ql Volker Janzen\cell \ql HTML\cell \ql Windows, Linux, MagicPC\cell \cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clmgf\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clmrg\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clmrg\cellx11400 \intbl \ql Ulrich Kretschmer\cell \qc Dokumentation\cell \cell \cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400 \intbl \ql Christian Krüger\cell \qr Postscript\cell \ql \cell \ql \cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\clcbpat10\cellx11400 \intbl \ql Uwe Mindrup\cell \ql HTML, XML, PHP\cell \ql \cell \ql Linux-Shell\cell \row \trowd \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx1500 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx3450 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx6300 \clbrdrb\brdrs\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrr\brdrs\cellx11400 \intbl \ql Tobias Jung\cell \ql \cell \ql \cell \ql WEB-Seite\cell \row } |
Es empfiehlt sich, keine Rahmenformatierungen für ganze Zeilen durchzuführen, sondern immer einzelne Zellen zu formatieren. Das ist zwar etwas mehr Quelltext, aber es muß nicht zwischen Zell- und Zeilenformatierung unterschieden werden.
\cellx | Rechte Grenze der Zelle |
\clmgf | Die erste Zelle in der Zeile soll verbunden werden |
\clmrg | Die Zelle soll mit der vorhergehenden verbunden werden |
\trrhN | Höhe einer Zeile |
\clbrdrb | Rahmen unten |
\clbrdrt | Rahmen oben |
\clbrdrl | Rahmen links |
\clbrdrr | Rahmen rechts |
\brdrs | Einfache Linie |
\brdrsh | Schattierte Linie |
\brdrb | Doppelte Linie |
\brdrdot | Gepunktete Linie |
\brdrdash | Gestrichelte Linie |
\brdrhair | Haarlinie |
\clvertalt | Ausrichtung oben |
\clvertalc | Ausrichtung zentriert |
\clvertalb | Ausrichtung unten |
\cltxlrtb | Ausrichtung oben nach unten |
\cltxtbrl | Ausrichtung unten nach oben |
\clcbpatN | Hintergrundfarbe einer Zelle |
\clcfpatN | Linienfarbe einer Schattierung/Abdunklung |
\clshdngN | Abdunklung einer Zelle |
\brspN | Wert für CP, Abstand Text zu Rahmen |
\brdrcfN | Farbe des Rahmens |
\trhdr | Kopfzeile der Tabelle, die auf jeder Seite wiederholt wird |
\trgaphN | Abstand der Zellen untereinander, cellspacing? |
\trkeep | Zeilen der Tabelle zusammenhalten, kein Seitenumbruch |