PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle, vertikale Linien haben Löcher



neuhier
01-12-2010, 16:01
Huhu,


wir sollen für eine Hausaufgabe eine Tabelle mit vertikalen und horizontalen Linien erzeugen. Klappt auch alles, nur sind die vertikalen Lininen bei mir nicht durchgängig. Sobald ich zwischen zwei Spalten den Befehl \cmidrule{n-m} verwende, fehlt ein Stück bei den vertikalen Linien. Hier ein kleines Beispiel:




\documentclass[titlepage]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{booktabs}
\usepackage{array}
\usepackage{tabularx}

\begin{document}

\begin{tabularx}{20ex}{|X|X|X|}
\hline
& & \\
\cmidrule{2-3}
& & \\

& & \\
\hline
\end{tabularx}

\begin{document}



Kann ich da irgendwas machen?


Grüße, neuhier

Xenara
01-12-2010, 16:17
Das geht so:


\documentclass[titlepage]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tabularx}

\begin{document}

\begin{tabularx}{20ex}{|X|X|X|}
\hline
1&2 & \\
\cline{2-3}
3 & 4 & \\
6& 6 & \\
\hline
\end{tabularx}

\end{document}


Der Befehl \cmidrule stammt aus dem booktabs-Paket, und das ist nur für schöne Tabellen gedacht. Schöne Tabellen haben keine vertikalen Linien, daher wird das auch nicht unterstützt.
Wenn man aber einen Schritt vom Schönen weggeht, sprich, zu \cline (das Pendant zu \hline), dann klappt auch das.

Ich hoffe aber mal, dass das von eurem Kursleiter nicht als Beispiel für eine gute Tabelle gebracht wird?
Für Tabellen gilt nämlich: Vertikale Linien sind böse!
Deine Tabelle könnte auch so aussehen:


\documentclass[titlepage]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage{array}
\usepackage{booktabs}

\begin{document}

\section{Wie vorgegeben:}
\begin{tabularx}{20ex}{|X|X|X|}
\hline
1&2 & 3\\
\cline{2-3}
4 & 5 & 6 \\
7& 8 & 9 \\
\hline
\end{tabularx}

\section{Schöner:}
\begin{tabularx}{20ex}{>{\centering}X>{\centering}X>{\centering\arraybackslash}X}
\toprule
1&2 & 3\\
\cmidrule(lr){2-3}
4 & 5 & 6 \\
7& 8 & 9 \\
\bottomrule
\end{tabularx}

\end{document}