Tabellen » Historie » Version 19
Martin Kraetke, 22.12.2021 17:23
| 1 | 1 | Patrick Schulz | h1. Tabellen |
|---|---|---|---|
| 2 | |||
| 3 | 14 | Martin Kraetke | Für Tabellen wird nicht tabularx oder ein anderes von TeX bekanntes Tabellenpaket verwendet, sondern dass von Patrick Schulz entwickelte *htmltabs* ("Link zum Repository":https://gitlab.le-tex.de/htmltabs/htmltabs/-/tree/master/releases). |
| 4 | |||
| 5 | h2. Paket einbinden |
||
| 6 | |||
| 7 | 2 | Maren Pufe | In der preamble angeben: |
| 8 | 14 | Martin Kraetke | |
| 9 | <pre> |
||
| 10 | 1 | Patrick Schulz | \usepackage{htmltabs} |
| 11 | 14 | Martin Kraetke | </pre> |
| 12 | 1 | Patrick Schulz | |
| 13 | 14 | Martin Kraetke | h2. Auszeichnung von Tabellen mit htmltabs-Renderer |
| 14 | 1 | Patrick Schulz | |
| 15 | h3. Mapping xhtml -> LaTeX |
||
| 16 | |||
| 17 | 15 | Martin Kraetke | Das TeX-Markup von htmltabs entspricht der HTML-Tabellenstruktur: |
| 18 | |||
| 19 | 1 | Patrick Schulz | |_. XML |_. LaTeX |_. Anmerkungen | |
| 20 | |<table>…</table>|\begin{htmltab}[…] … \end{htmltab}| | |
||
| 21 | |<col />|\HTcol[…]| vor thead | |
||
| 22 | |<colgroup>…</colgroup>|\HTcolgroup[…]{…}| vor thead | |
||
| 23 | 15 | Martin Kraetke | |<thead>…</thead>|\begin{thead}[…] … \end{thead}| vor tbody | |
| 24 | |<tfoot>…</tfoot>|\begin{tfoot}[…] … \end{tfoot}| vor tbody, nach thead | |
||
| 25 | 1 | Patrick Schulz | |<tbody>…</tbody>|\begin{tbody}[…] … \end{tbody}| | |
| 26 | |<tr>…</tr>|\HTtr[…]{…}| | |
||
| 27 | |<td>…</td>|\HTtd[…]{…}| | |
||
| 28 | |<th>…</th>|\HTth[…]{…}| | |
||
| 29 | |||
| 30 | Wichtig ist, dass das Raster eingehalten wird: bei x Spalten und y Zeilen müssen (unter Berücksichtigung von colspan und rowspan) x×y Zellen existieren. |
||
| 31 | |||
| 32 | 6 | Patrick Schulz | h3. Verfügbare Attribute und CSS-Eigenschaften |
| 33 | 1 | Patrick Schulz | |
| 34 | Im optionalen Argument (wenn leer, weglassen) aller "Elemente" können folgende "Attribute" stehen: |
||
| 35 | * @style={}@ beinhaltet CSS-Eigenschafts-Werte-Paare, Syntax innerhalb der geschweiften Klammer ist wie in XML, z.B. |
||
| 36 | 16 | Martin Kraetke | |
| 37 | 17 | Martin Kraetke | <pre><code class="text">\HTtd[style={<CSS-Eigenschaft-1>:<CSS-Wert-1>; <CSS-Eigenschaft-2>: <CSS-Wert-2>; … }]{<Inhalt>}</code></pre> |
| 38 | 16 | Martin Kraetke | |
| 39 | Die im HTML vorhandenen CSS-Eigenschaften können direkt nach TeX übertragen werden. Gleiches gilt für die Umgebungen: |
||
| 40 | |||
| 41 | 17 | Martin Kraetke | <pre><code class="text">\begin{htmltab}[style={<CSS-Eigenschaft-1>:<CSS-Wert-1>; <CSS-Eigenschaft-2>: <CSS-Wert-2>; … }] |
| 42 | 1 | Patrick Schulz | …</code></pre> |
| 43 | 17 | Martin Kraetke | |
| 44 | 1 | Patrick Schulz | Bisher implementierte CSS-Eigenschaften: |
| 45 | ** @margin@, jeweils mit und ohne @-top@, @-left@, @-right@, @-bottom@: Längenangabe |
||
| 46 | ** @padding@, jeweils mit und ohne @-top@, @-left@, @-right@, @-bottom@: Längenangabe |
||
| 47 | ** @border@, jeweils mit und ohne @-top@, @-left@, @-right@, @-bottom@; jeweils mit oder ohne @-width@, @-style@, @-color@ |
||
| 48 | 17 | Martin Kraetke | *** Wenn @-width/-style/-color@ *und* Seitenangabe weggelassen werden: |
| 49 | **** ein Wert: @style@ |
||
| 50 | **** zwei Werte: @width style@ |
||
| 51 | **** drei Werte: @width style color@. Für alle Seiten des Elements. |
||
| 52 | 1 | Patrick Schulz | ** @border-style@: @solid@, @dashed@, @dotted@, @none@, @double@ (ab v0.1.26) |
| 53 | 17 | Martin Kraetke | ** @border-color@: TeX-Farbname (mit @\definecolor{<name>}{<farbraum>}{<deklaration>}@ definieren) oder Hexadezimal-Angabe @\#rrggbb@ |
| 54 | 1 | Patrick Schulz | ** @border-width@: Längenangabe |
| 55 | 17 | Martin Kraetke | Bei Angaben ohne Richtung sind mehrere Werte möglich: |
| 56 | *** ein Wert: alle Richtungen |
||
| 57 | *** zwei Werte: @oben/unten@ und @links/rechts@; |
||
| 58 | *** drei Werte: @oben@ und @links/rechts@ und @unten@ |
||
| 59 | *** vier Werte: @oben@ und @rechts@ und @unten@ und @links@ |
||
| 60 | 1 | Patrick Schulz | ** @border-collapse@: @none@, @collapse@ |
| 61 | 5 | Patrick Schulz | ** @vertical-align@: @top@, @middle@, @bottom@ |
| 62 | 4 | Patrick Schulz | ** @background-color@: Hintergrundfarbe. Farbname oder @\#rrggbb@ |
| 63 | ** @color@: Schriftfarbe. Farbname oder @\#rrggbb@ |
||
| 64 | 17 | Martin Kraetke | ** @font-size@: Schriftgröße. @xx-small@, @x-small@, @small@, @normal@, @large@, @x-large@, @xx-large@ |
| 65 | ** @font-weight@: Schriftgewicht. @bold@, @normal@ |
||
| 66 | ** @font-family@: Angabe einer generischen Schriftfamilie (CSS). @sans-serif@, @serif@, @monospace@ |
||
| 67 | ** @font-style@: Schriftstil. @normal@, @italic@ |
||
| 68 | ** @font-variant@: Schriftstil II. @normal@, @small-caps@ |
||
| 69 | 5 | Patrick Schulz | ** @text-align@: @right@, @center@, @left@, @justified@ |
| 70 | 1 | Patrick Schulz | ** @hyphen@: @none@ (keine Silbentrennung), @auto@ (TeX-Silbentrennung) |
| 71 | 17 | Martin Kraetke | * @class=<name>@ entspricht dem @class@-Attribut bei HTML. |
| 72 | 1 | Patrick Schulz | * das @\HTcol@-Element kann ein @width@-Attribut mit der vorgegebenen Spaltenbreite erhalten, z.B. |
| 73 | <pre><code class="text">\col[width=20mm,style={text-align: center}] |
||
| 74 | \col[width=0.2,style={text-align:justified,hyphen=auto}]</code></pre> |
||
| 75 | Die erste Spalte würde demnach eine fixe Breite von 20mm bekommen, die zweite eine relative Breite von 20% der Breite der gesamten Tabelle. |
||
| 76 | Die erste Spalte ist zentriert, die zweite erhält Blocksatz mit aktivierter Silbentrennung. |
||
| 77 | Zulässige Werte für Spaltenbreiten sind: |
||
| 78 | ** Längen (also Zahl+Einheit) für Spalten fixer Breite, |
||
| 79 | ** Zahlen <= 1 für Breiten relativ zur Gesamtbreite der Tabelle (0.5 entspräche halbe Gesamtbreite; 0.2 ein Fünftel der Gesamtbreite, etc.) |
||
| 80 | 19 | Martin Kraetke | ** Zahlen > 1 Anteile auf Gesamtsumme bezogen. Z.B. drei Spalten mit @width=20@, @width=10@ und @width=30@ bedeutet, dass die erste ein Drittel der Gesamtbreite einnimmt (20/60), die zweite ein sechstel (10/60) und die dritte die restliche hälfte (30/60) |
| 81 | 1 | Patrick Schulz | * Auch @htmltab@ kann @width@ haben, dies entspräche dann der Gesamtbreite der Tabelle. Fehlt die Angabe, wird die Tabelle in ihrer _natürlichen Breite_ gesetzt, höchstens aber Satzspiegelbreite (genauer: @\linewidth@). |
| 82 | * @\HTtd@ und @\HTth@ können überdies @rowspan@ und @colspan@-Attribute enthalten, die eine ganze Zahl als Wert bekommen, z.B. |
||
| 83 | <pre><code class="text">\HTtd[rowspan=2,colspan=2,style={vertical-align: middle; text-align: center}]{<content>}</code></pre> |
||
| 84 | Diese Zelle würde über zwei Spalten *und* zwei Zeilen gestreckt, ihr Inhalt wird vertikal und horizontal zentriert. |
||
| 85 | |||
| 86 | h3. Beispiel: |
||
| 87 | |||
| 88 | <pre><code class="text"> |
||
| 89 | \begin{htmltab}[class=box] |
||
| 90 | \begin{thead} |
||
| 91 | \HTtr[style={text-align: center}]{% |
||
| 92 | \HTtd[style={text-align: center; vertical-align: bottom}]{<Inhalt Kopf Spalte 1>} |
||
| 93 | \HTtd{<Inhalt Kopf Spalte 2>} |
||
| 94 | \HTtd{<Inhalt Kopf Spalte 3>} |
||
| 95 | } |
||
| 96 | \end{thead} |
||
| 97 | \begin{tfoot} |
||
| 98 | \HTtr[colspan=3]{% |
||
| 99 | \HTtd{<Inhalt Fuss Spalten 1–3>} |
||
| 100 | } |
||
| 101 | \end{tfoot} |
||
| 102 | \begin{tbody} |
||
| 103 | \HTtr{% |
||
| 104 | \HTtd[rowspan=2]{<Inhalt Zeile 1-2 Spalte 1>} |
||
| 105 | \HTtd{<Inhalt Zeile 1 Spalte 2>} |
||
| 106 | \HTtd{<Inhalt Zeile 1 Spalte 3>} |
||
| 107 | } |
||
| 108 | \HTtr{% |
||
| 109 | \HTtd{<Inhalt Zeile 2 Spalte 2>} |
||
| 110 | \HTtd{<Inhalt Zeile 2 Spalte 3>} |
||
| 111 | } |
||
| 112 | \HTtr{% |
||
| 113 | \HTtd{<Inhalt Zeile 3 Spalte 1>} |
||
| 114 | \HTtd{<Inhalt Zeile 3 Spalte 2>} |
||
| 115 | \HTtd{<Inhalt Zeile 3 Spalte 3>} |
||
| 116 | } |
||
| 117 | \end{tbody} |
||
| 118 | \end{htmltab} |
||
| 119 | 6 | Patrick Schulz | </code></pre> |
| 120 | |||
| 121 | h3. Überschreibbare Eigenschaften und @baretabular@-Klasse |
||
| 122 | |||
| 123 | * Bestimmte CSS-Eigenschaften werden standardmäßig nicht ins tex übernommen, da diese u.U. Verlagsvorgaben für Tabellenlayouts überschreiben könnten: |
||
| 124 | ** @width@ an allen Elementen, die nicht @<col>@, @<colgroup>@, oder @<table>@ sind |
||
| 125 | ** Weitere, je nach Absprache mit den Verlagen (z.B. @background-color@ in @<thead>@, @padding-*@ an @td@, etc.) |
||
| 126 | 7 | Patrick Schulz | * Die @baretabular@-Klasse ist ein globaler Spezialfall: Hat @<table>@ diese Klasse, werden *alle* CSS-Eigenschaften 1:1 an TeX durchgereicht. |
| 127 | |||
| 128 | h2. Caption, Source, Legende und Gleit-Fähigkeit |
||
| 129 | |||
| 130 | htmltabs alleine entspricht den @tabular@-Umgebungen in Standard-LaTeX. |
||
| 131 | |||
| 132 | Die Auszeichnung von Caption, Zähler, Quelle und Legende entspricht [[Bilder#Einspaltiger-Satz|tpFigure]]: |
||
| 133 | <pre><code class="text"> |
||
| 134 | \begin{tpTable}[<Floatpos>] |
||
| 135 | \tpCaption{<Caption>} |
||
| 136 | \tpSource{<Quelle>} |
||
| 137 | \tpLegend{<Legende>} |
||
| 138 | \tpNumber{<Zähler>} |
||
| 139 | \begin{htmltab} |
||
| 140 | … |
||
| 141 | \end{htmltab} |
||
| 142 | \end{tpTable} |
||
| 143 | </code></pre> |
||
| 144 | |||
| 145 | 8 | Maren Pufe | * @<Floatpos>@ ist die Gleitposition (t,p,h,b; vgl. [[Bilder#Einspaltiger-Satz|tpFigure]]); fehlt das optionale Argument, wird die Tabelle nicht-gleitend und dort platziert, wo sie im Quelltext steht. |
| 146 | 9 | Martin Kraetke | * %{color:#cc3c31; font-weight:bold;} _Die Tabelle kann nur umbrechen, wenn sie nicht gleitet!_, d.h. wenn die @tpTable@-Umgebung komplett fehlt; oder wenn @tpTable@ da ist, aber kein optionales Argument hat.% |
| 147 | |||
| 148 | h2. Gedrehte Tabellen |
||
| 149 | 10 | Patrick Schulz | |
| 150 | h3. Auszeichnung in Word |
||
| 151 | 9 | Martin Kraetke | |
| 152 | 10 | Patrick Schulz | Damit eine Tabelle um 90 Grad gedreht wird, muss entweder in Word die Textrichtung der ersten Zelle gedreht werden oder vor der Tabelle ein leerer Absatz mit dem Absatzformat @table_rotated@ stehen. |
| 153 | |||
| 154 | h3. Auszeichnung in LaTeX |
||
| 155 | |||
| 156 | Im TeX wird das ganze mit dem Attribut @orientation="landscape"@ im optionalen Argument der Gleitungebung gekennzeichnet, z.B. |
||
| 157 | <pre><code class="text"> |
||
| 158 | \begin{tpTable*}[orientation="landscape"] |
||
| 159 | … |
||
| 160 | \end{tpTable*} |
||
| 161 | 9 | Martin Kraetke | </code></pre>Die Angabe von float-pos wird dabei *immer* mit "p" überschrieben, demnach kann (und sollte) das Attribut bei gedrehten Tabellen entfallen. Dasselbe funktioniert genau so auch mit Bildern. |
| 162 | |||
| 163 | h2. Tabellen auf mehrere Seiten umbrechen |
||
| 164 | |||
| 165 | 1 | Patrick Schulz | Um Tabellen auf mehrere Seiten (mit sich wiederholendem Tabellenkopf zu umbrechen, muss der Tabelle ein leerer Absatz mit dem Absatzformat @table_pagewrap@ vorangestellt werden. |