Tabellen » Historie » Version 12
Patrick Schulz, 27.10.2021 13:06
Neu: Support for @border-style:double;@
1 | 1 | Patrick Schulz | h1. Tabellen |
---|---|---|---|
2 | |||
3 | 11 | Maren Pufe | In der preamble angeben: |
4 | 2 | Maren Pufe | \usepackage{htmltabs} |
5 | 1 | Patrick Schulz | |
6 | h2. Auszeichnung von Tabellen mit Lupinos htmltabs-Renderer ("Repo im firmeninternen GitLab":https://gitlab.le-tex.de/htmltabs/htmltabs/-/tree/master/releases) |
||
7 | |||
8 | h3. Mapping xhtml -> LaTeX |
||
9 | |||
10 | html-Strukturen werden im Grunde 1:1 abgebildet: |
||
11 | |_. XML |_. LaTeX |_. Anmerkungen | |
||
12 | |<table>…</table>|\begin{htmltab}[…] … \end{htmltab}| | |
||
13 | |<col />|\HTcol[…]| vor thead | |
||
14 | |<colgroup>…</colgroup>|\HTcolgroup[…]{…}| vor thead | |
||
15 | |<thead>…</thead>|\begin{thead}[…] … \end{thead}| vor tbody!| |
||
16 | |<tfoot>…</tfoot>|\begin{tfoot}[…] … \end{tfoot}| vor tbody, nach thead! | |
||
17 | |<tbody>…</tbody>|\begin{tbody}[…] … \end{tbody}| | |
||
18 | |<tr>…</tr>|\HTtr[…]{…}| | |
||
19 | |<td>…</td>|\HTtd[…]{…}| | |
||
20 | |<th>…</th>|\HTth[…]{…}| | |
||
21 | |||
22 | 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. |
||
23 | |||
24 | 6 | Patrick Schulz | h3. Verfügbare Attribute und CSS-Eigenschaften |
25 | 1 | Patrick Schulz | |
26 | Im optionalen Argument (wenn leer, weglassen) aller "Elemente" können folgende "Attribute" stehen: |
||
27 | * @style={}@ beinhaltet CSS-Eigenschafts-Werte-Paare, Syntax innerhalb der geschweiften Klammer ist wie in XML, z.B. |
||
28 | <pre><code class="text">\HTtd[style={<CSS-Eigenschaft-1>:<CSS-Wert-1>; <CSS-Eigenschaft-2>: <CSS-Wert-2>; … }]{<Inhalt>}</code></pre> |
||
29 | Hier kann das CSS aus dem XML eigentlich direkt durchgeschleift werden. |
||
30 | Analog bei den Umgebungen: |
||
31 | <pre><code class="text">\begin{htmltab}[style={<CSS-Eigenschaft-1>:<CSS-Wert-1>; <CSS-Eigenschaft-2>: <CSS-Wert-2>; … }] |
||
32 | …</code></pre> |
||
33 | Bisher implementierte CSS-Eigenschaften: |
||
34 | ** @margin@, jeweils mit und ohne @-top@, @-left@, @-right@, @-bottom@: Längenangabe |
||
35 | ** @padding@, jeweils mit und ohne @-top@, @-left@, @-right@, @-bottom@: Längenangabe |
||
36 | ** @border@, jeweils mit und ohne @-top@, @-left@, @-right@, @-bottom@; jeweils mit oder ohne @-width@, @-style@, @-color@ |
||
37 | *** Wenn -width/-style/-color *und* Richtungsangabe weggelassen werden: 1 Wert: style; 2 Werte: width style; 3 Werte: width style color. Für alle Richtungen. |
||
38 | 12 | Patrick Schulz | ** @border-style@: @solid@, @dashed@, @dotted@, @none@, @double@ (ab v0.1.26) |
39 | 3 | Patrick Schulz | ** @border-color@: Farbname (ggf. mittels @\definecolor{<name>}{<farbraum>}{<deklaration>}@ definieren!) oder @\#rrggbb@ |
40 | 1 | Patrick Schulz | ** @border-width@: Längenangabe |
41 | Bei Angaben ohne Richtung sind mehrere Werte möglich: bei 1 Wert: alle Richtungen; 2 Werte: top/bottom und links/rechts; 3 Werte: top links/rechts bottom; 4 Werte: top rechts bottom links |
||
42 | ** @border-collapse@: @none@, @collapse@ |
||
43 | ** @vertical-align@: @top@, @middle@, @bottom@ |
||
44 | 5 | Patrick Schulz | ** @background-color@: Hintergrundfarbe. Farbname oder @\#rrggbb@ |
45 | 4 | Patrick Schulz | ** @color@: Schriftfarbe. Farbname oder @\#rrggbb@ |
46 | ** @font-size@: Schriftgröße. xx-small, x-small, small, normal, large, x-large, xx-large |
||
47 | ** @font-weight@: Schriftgewicht. bold, normal |
||
48 | ** @font-family@: Schriftfamilie. sans-serif, serif, monospace |
||
49 | 1 | Patrick Schulz | ** @font-style@: Schriftstil. normal, italic |
50 | ** @font-variant@: Schriftstil II. normal, small-caps |
||
51 | 5 | Patrick Schulz | ** @text-align@: @right@, @center@, @left@, @justified@ |
52 | ** @hyphen@: @none@ (keine Silbentrennung), @auto@ (TeX-Silbentrennung) |
||
53 | 1 | Patrick Schulz | * @class=<name>@ entspricht dem class-Attribut bei XML/html. |
54 | * das @\HTcol@-Element kann ein @width@-Attribut mit der vorgegebenen Spaltenbreite erhalten, z.B. |
||
55 | <pre><code class="text">\col[width=20mm,style={text-align: center}] |
||
56 | \col[width=0.2,style={text-align:justified,hyphen=auto}]</code></pre> |
||
57 | Die erste Spalte würde demnach eine fixe Breite von 20mm bekommen, die zweite eine relative Breite von 20% der Breite der gesamten Tabelle. |
||
58 | Die erste Spalte ist zentriert, die zweite erhält Blocksatz mit aktivierter Silbentrennung. |
||
59 | Zulässige Werte für Spaltenbreiten sind: |
||
60 | ** Längen (also Zahl+Einheit) für Spalten fixer Breite, |
||
61 | ** Zahlen <= 1 für Breiten relativ zur Gesamtbreite der Tabelle (0.5 entspräche halbe Gesamtbreite; 0.2 ein Fünftel der Gesamtbreite, etc.) |
||
62 | ** Zahlen > 1 werden zusammen addiert und die Spalten entsprechend ihrem Anteil an der Summe gestreckt. 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) |
||
63 | * 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@). |
||
64 | * @\HTtd@ und @\HTth@ können überdies @rowspan@ und @colspan@-Attribute enthalten, die eine ganze Zahl als Wert bekommen, z.B. |
||
65 | <pre><code class="text">\HTtd[rowspan=2,colspan=2,style={vertical-align: middle; text-align: center}]{<content>}</code></pre> |
||
66 | Diese Zelle würde über zwei Spalten *und* zwei Zeilen gestreckt, ihr Inhalt wird vertikal und horizontal zentriert. |
||
67 | |||
68 | h3. Beispiel: |
||
69 | |||
70 | <pre><code class="text"> |
||
71 | \begin{htmltab}[class=box] |
||
72 | \begin{thead} |
||
73 | \HTtr[style={text-align: center}]{% |
||
74 | \HTtd[style={text-align: center; vertical-align: bottom}]{<Inhalt Kopf Spalte 1>} |
||
75 | \HTtd{<Inhalt Kopf Spalte 2>} |
||
76 | \HTtd{<Inhalt Kopf Spalte 3>} |
||
77 | } |
||
78 | \end{thead} |
||
79 | \begin{tfoot} |
||
80 | \HTtr[colspan=3]{% |
||
81 | \HTtd{<Inhalt Fuss Spalten 1–3>} |
||
82 | } |
||
83 | \end{tfoot} |
||
84 | \begin{tbody} |
||
85 | \HTtr{% |
||
86 | \HTtd[rowspan=2]{<Inhalt Zeile 1-2 Spalte 1>} |
||
87 | \HTtd{<Inhalt Zeile 1 Spalte 2>} |
||
88 | \HTtd{<Inhalt Zeile 1 Spalte 3>} |
||
89 | } |
||
90 | \HTtr{% |
||
91 | \HTtd{<Inhalt Zeile 2 Spalte 2>} |
||
92 | \HTtd{<Inhalt Zeile 2 Spalte 3>} |
||
93 | } |
||
94 | \HTtr{% |
||
95 | \HTtd{<Inhalt Zeile 3 Spalte 1>} |
||
96 | \HTtd{<Inhalt Zeile 3 Spalte 2>} |
||
97 | \HTtd{<Inhalt Zeile 3 Spalte 3>} |
||
98 | } |
||
99 | \end{tbody} |
||
100 | \end{htmltab} |
||
101 | </code></pre> |
||
102 | 6 | Patrick Schulz | |
103 | h3. Überschreibbare Eigenschaften und @baretabular@-Klasse |
||
104 | |||
105 | * Bestimmte CSS-Eigenschaften werden standardmäßig nicht ins tex übernommen, da diese u.U. Verlagsvorgaben für Tabellenlayouts überschreiben könnten: |
||
106 | ** @width@ an allen Elementen, die nicht @<col>@, @<colgroup>@, oder @<table>@ sind |
||
107 | ** Weitere, je nach Absprache mit den Verlagen (z.B. @background-color@ in @<thead>@, @padding-*@ an @td@, etc.) |
||
108 | * Die @baretabular@-Klasse ist ein globaler Spezialfall: Hat @<table>@ diese Klasse, werden *alle* CSS-Eigenschaften 1:1 an TeX durchgereicht. |
||
109 | 7 | Patrick Schulz | |
110 | h2. Caption, Source, Legende und Gleit-Fähigkeit |
||
111 | |||
112 | htmltabs alleine entspricht den @tabular@-Umgebungen in Standard-LaTeX. |
||
113 | |||
114 | Die Auszeichnung von Caption, Zähler, Quelle und Legende entspricht [[Bilder#Einspaltiger-Satz|tpFigure]]: |
||
115 | <pre><code class="text"> |
||
116 | \begin{tpTable}[<Floatpos>] |
||
117 | \tpCaption{<Caption>} |
||
118 | \tpSource{<Quelle>} |
||
119 | \tpLegend{<Legende>} |
||
120 | \tpNumber{<Zähler>} |
||
121 | \begin{htmltab} |
||
122 | … |
||
123 | \end{htmltab} |
||
124 | \end{tpTable} |
||
125 | </code></pre> |
||
126 | |||
127 | * @<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. |
||
128 | 8 | Maren Pufe | * %{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.% |
129 | 9 | Martin Kraetke | |
130 | h2. Gedrehte Tabellen |
||
131 | |||
132 | 10 | Patrick Schulz | h3. Auszeichnung in Word |
133 | |||
134 | 9 | Martin Kraetke | 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. |
135 | 10 | Patrick Schulz | |
136 | h3. Auszeichnung in LaTeX |
||
137 | |||
138 | Im TeX wird das ganze mit dem Attribut @orientation="landscape"@ im optionalen Argument der Gleitungebung gekennzeichnet, z.B. |
||
139 | <pre><code class="text"> |
||
140 | \begin{tpTable*}[orientation="landscape"] |
||
141 | … |
||
142 | \end{tpTable*} |
||
143 | </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. |
||
144 | 9 | Martin Kraetke | |
145 | h2. Tabellen auf mehrere Seiten umbrechen |
||
146 | |||
147 | Um Tabellen auf mehrere Seiten (mit sich wiederholendem Tabellenkopf zu umbrechen, muss der Tabelle ein leerer Absatz mit dem Absatzformat @table_pagewrap@ vorangestellt werden. |