Projekt

Allgemein

Profil

Tabellen » Historie » Version 6

Patrick Schulz, 10.03.2021 12:12

1 1 Patrick Schulz
h1. Tabellen
2
3 2 Maren Pufe
In der preample angeben:
4
\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
** @border-style@: @solid@, @dashed@, @dotted@, @none@
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.