Previous Up Next

5 Tabellen und Boxen

5.1 Wie erstellt man Tabellen?

Für Microsoft-Excel gibt es das nette Makro LaTable1 von Alex A. Denisov, mitdem man in Excel eine Tabelle erstellen kann und dann den LaTeX-Code erhält. Mittlerweile nutze ich Windows aber so gut wie gar nicht mehr, sodass ich die Tabellen häufig unter OpenOffice Calc erstelle und dann in LATEXschön zeichne. Dazu habe ich mir ein eigenes Skript gebastelt, welches man auf meiner Homepage findet.2 Mit dem Paket hhline3 von David Carlisle kann man Tabellen schön zeichnen, so kann man z.B. eine Tabelle zeichnen, welche nicht vollständig durchgezogene Linien besitzt.

 hhline-tex.tex 
1 \begin{tabular}{||cc||c|c||} 2 \hhline{|t:==:t:==:t|} 3 a&b&c&d\\ 4 \hhline{|:==:|~|~||} 5 1&2&3&4\\ 6 \hhline{#==#~|=#} 7 i&j&k&l\\ 8 \hhline{||--||--||} 9 w&x&y&z\\ 10 \hhline{|b:==:b:==:b|} 11 \end{tabular}

|t:==:t:==:t| abcd
|:==:| | || 1234
#==# |=# ijkl
||–||–|| wxyz
|b:==:b:==:b|
Tab. 1: Eine erste Tabelle

Aber auch Farben kann man in eine Tabelle bekommen. Ein Beispiel hierfür, indem allerdings nur Grautöne enthaltem sind. Dies geht natürlich auch mit allen anderen Farben:

grayallgemeine Form
   
   
Tab. 2: Farbe in einer Tabelle

Der Programmcode:

 tab-tex.tex 
1 \begin{center} 2 \renewcommand{\arraystretch}{1.7} 3 \begin{tabular}{|l|c|c|c|p{2cm}|} \hline 4 \rowcolor{gray} 5 & $\mathbf{A(1)}$ & $\mathbf{A(2)}$ 6 & $\mathbf{A(3)}$ & 7 \textbf{allgemeine Form} \\ \hline 8 $g(x)=3x$ &&&& $A(x)=$ \\ \hline 9 $h(x)=mx$ &&&& $A(x)=$ \\ \hline 10 \end{tabular} 11 \end{center}

5.2 Tabellen mit variabler Breite

Solche Tabellen, wie sie bisher aufgetreten sind, sind ja sehr schön, aber ab und zu, sollen die Spalten einfach breiter werden, damit man auch etwas eintragen kann und sie nicht nur der breitesten Eintragung entsprechen. Dazu nutzt man anstelle von r, c oder l den Befehl p{...}. Hier kann man in die Klammer entweder feste Werte schreiben, wie z.B. 5cm, aber auch relative Angaben wie 0.1\linewidth, was 10 % der Linienbreite entspricht.

5.3 Tabellen über die volle Breite einer Seite

Auf die Idee meine Tabellen über die gesamte Zeilenbreite zu zeichnen hat mich das Buch [Voß, 2008b, Seite 76 ff] gebracht. Seitdem nutze ich das Paket tabularx4 von David Carlisle. Hiermit kann man sehr einfach die Tabellenbreite eine Tabelle definieren und mit einem neuen Spaltentyp X wird die Tabelle gleichmäßig über noch zur Verfügung stehenden Breite verteilt.

5.3.1 Beispiel

Ein Beispiel aus dem Themengebiet Daten erfassen - Klasse 5 Mathematik:

Fortbewegungsmittel FahrradMotorradFlugzeugHelikopterBus
Geschwindigkeit (km/h)220 315490280 

Tab. 3: Eine Tabelle über die volle Breite einer Seite
 fortbewegung-tex.tex 
1 \begin{tabularx}{1\linewidth}{|p{4cm}|X|X|X|X|X|X|} 2 \hline 3 \textbf{Fortbewegungsmittel} & & Fahr\-rad & Motor\-rad & Flug\-zeug & 4 Heli\-kopter & Bus 5 \\ \hline 6 \textbf{Geschwindigkeit (km/h)} & 220 & & 315 & 490 & 280 & 7 \\ \hline 8 \end{tabularx}

5.4 Wie erstellt man überlange Tabellen?

Es gibt ja auch den Fall, dass man Tabellen erstellen möchte, die über mehrere Seiten geht. Dazu gibt es das Paket longtable5 von David Carlisle, welches einem ermöglicht den Kopf und Fußzu definieren, der auf jeder Seite wieder auftauchen soll.





Abb. 13: Einsatz vom longtable-Paket

Ein Auszug des Quellcodes ist:

 mb_kumuliert_binomial-tex.tex 
1 \begin{merkblatt}[05.10.2009]{Stochastik}{Kumulierte Binomialverteilungen}{7} 2 3 \begin{center} \small \newcolumntype{A}{>{\columncolor{grau}}c} 4 \begin{longtable}{|c|B|p{1.5cm}p{1.75cm}p{1.75cm}p{1.75cm}p{1.75cm}p{1.75cm}|A|} 5 \hline 6 & \multicolumn{1}{A}{}& \multicolumn{6}{A|}{$p$} 7 & \multicolumn{1}{c|}{} \\ 8 $n$ & $k$ & \multicolumn{1}{B}{0,1} & \multicolumn{1}{B}{0,2} & 9 \multicolumn{1}{A}{0,25} & \multicolumn{1}{A}{0,3} 10 & \multicolumn{1}{A}{0,4} & \multicolumn{1}{A|}{0,5} & 11 \multicolumn{1}{c|}{} \\ \hline 12 \endhead 13 \hline 14 \multicolumn{1}{|c}{} &\multicolumn{1}{c|}{} 15 & \multicolumn{1}{A}{0,9} & \multicolumn{1}{A}{0,8} 16 & \multicolumn{1}{A}{0,75} & \multicolumn{1}{A}{0,7} 17 & \multicolumn{1}{A}{0,6} & \multicolumn{1}{A}{0,5} 18 & $k$ \\ 19 \multicolumn{1}{|c}{} & \multicolumn{1}{c|}{} 20 & \multicolumn{6}{A}{$p$} & \multicolumn{1}{|A|}{} \\ \hline 21 \endfoot 22 & 69 & & & & & & 0,99996 & 30 \\ 23 \end{longtable} 24 \end{center} 25 26 \kasten{ 27 {\fontfamily{pag} \selectfont 28 \textbf{Beachte:} 29 30 Wenn $p \geq 0,5$ abgelesen werden sollen, muss die Differenz \textbf{1- 31 (abgelesener Wert)} ermittelt werden. 32 \bigskip 33 \begin{beispiel} 34 $n=5$; $k=3$; $p=0,9$; $P(X \leq 3)=1-0,99954=0,00046$ 35 \end{beispiel} 36 }} 37 \end{merkblatt}

5.5 Wie erstellt man überbreite Tabellen?

Dazu gibt es die Möglichkeit mit dem Paket landscape6 von Don Hosek eine Tabelle zu drehen. Allerdings fängt landscape immer eine neue Seite an. Wenn die Tabelle innerhalb einer Seite nur gedreht sein soll, so kann man mit der Umgebung turn die Tabelle um 90 Grad oder eine andere Gradzahl drehen.

90

 allgemeine Form
   
   
Tab. 4: Eine gedrehte Tabelle

 turn-tex.tex 
1 \begin{turn}{90} 2 \renewcommand{\arraystretch}{1.7} 3 \begin{tabular}{|c|c|c|c|c|} 4 \hline 5 & $\mathbf{A(1)}$ & $\mathbf{A(2)}$ & $\mathbf{A(3)}$ & 6 \textbf{allgemeine Form} \\ 7 \hline 8 $g(x)=3x$ &&&& $A(x)=$ \\ 9 \hline 10 $h(x)=mx$ &&&& $A(x)=$ \\ \hline 11 \end{tabular} 12 \end{turn}

5.6 Wie erstelle ich Rahmen für Definitionen?

Da gibt es zwei verschiedene Möglichkeiten. Zum einen habe ich mir eine Umgebung definiert, die mir einen schattierten Rahmen liefert:

Der erste Strahlensatz

Wird ein Strahlenbüschel von parallelen Geraden geschnitten, dann sind die Streckenverhältnisse gleichliegender Strahlenabschnitte gleich. Es gilt nach der Zeichnung von Str 8:

SA
SF
=
AB
FE
=
SB
SE

Der Quellcode lautet dazu:

 str-tex.tex 
1 \kasten{ 2 \begin{center} \large \textbf{Der erste Strahlensatz} \end{center} 3 \textit{Wird ein Strahlenb\"uschel von parallelen Geraden geschnitten, dann 4 sind die Streckenverh\"altnisse gleichliegender Strahlenabschnitte 5 gleich.} 6 7 \textit{Es gilt nach der Zeichnung von Str 8:} 8 \[ \frac{\overline{SA} }{\overline{SF} } =\frac{\overline{AB}}{\overline{FE} 9 } = \frac{\overline{SB} }{\overline{SE} } \] 10 }
Der Befehl kasten sieht wie folgt aus:
 kasten-tex.tex 
1 \newcommand{\kasten}[2][0.9\linewidth]{ \begin{center} \vspace{3pt} 2 \shadowbox{\colorbox{white}{\parbox[t]{#1}{#2}}} 3 \vspace{3pt} \end{center}}

5.7 Veränderungen der Rahmen

Möchte man die Rahmen noch weiter verändern, so kann man mit den Befehlen

\setlenght{\fboxrule}{}
\setlenght{\fboxsep}{}

die Strichstärke des Rahmens verändern und den Abstand zwischen dem Boxenrand und dem Inhalt festsetzen.

5.7.1 Beispiel

Ein Beispiel ist:

 str2-tex.tex 
1 { \setlength{\fboxrule}{0.2cm} \setlength{\fboxsep}{0.8cm} 2 \kasten[0.9\linewidth]{ 3 \begin{center} 4 Der zweite Strahlensatz: 5 \end{center} 6 7 \textit{Wird ein Strahlenb\"uschel von parallelen Geraden 8 geschnitten, dann sind die Streckenverh\"altnisse der 9 Abschnitte auf einem Strahl mit dem Anfangspunkt $Z$ 10 gleich den Streckenverh\"altnissen entsprechender 11 Parallelenabschnitte.} } }

[0.9@percent] Der zweite Strahlensatz:

Wird ein Strahlenbüschel von parallelen Geraden geschnitten, dann sind die Streckenverhältnisse der Abschnitte auf einem Strahl mit dem Anfangspunkt gleich den Streckenverhältnissen entsprechender Parallelenabschnitte.

5.8 Farbige Kästen

Um auch einige Kästen farbig zu hinterlegen habe ich mir den Befehl kastenfarbe definiert, der wie folgt aussieht:

 kastenfarbe-tex.tex 
1 \newcommand{\kastenfarbe}[2][white]{ 2 \begin{center} 3 \vspace{3pt} 4 \shadowbox{\colorbox{#1}{\parbox[t]{0.95\linewidth}{#2}}} 5 \vspace{5pt} 6 \end{center} 7 }
Er funktioniert genauso, wie der Befehl kasten, nur das man als optionales Argument die Farbe mit angeben kann. Vordefiniert ist der Kasten weißausgefüllt.

5.8.1 Beispiel

Ein Beispiel ist: [red] Dies ist ein roter Kasten.

 kastenfarbe2-tex.tex 
1 \kastenfarbe[red]{ 2 Dies ist ein roter Kasten. 3 }


1
Siehe [lat, 2009b]
2
Siehe [Rendtel, 2010]
3
Siehe [hhl, 2009]
4
Siehe [tab, 2009]
5
Siehe [lon, 2009]
6
Siehe [lan, 2009]

Previous Up Next

Letzte Änderung: 26.04.2012: 17:48:10 von X. Rendtel

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
Beruht auf einem Inhalt unter www.rendtel.de.