PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle: feste Spaltenbreite und zentrierter Text



Hobbes
10-01-2006, 12:50
Hi allerseits,

ich möchte bei einer Tabelle sowohl eine feste Spaltenbreite angeben, als auch den Text in allen Spalten zentriert ausrichten. Bislang ist mir immer nur eins von beiden gelungen. Wenn ich mit mit p{2cm} die Spaltenbreite angebe, wird der Text linksbündig ausgerichtet. Wenn ich das mit \multicolumn{1}{c}{Text} umgehen möchte, dann geht das nur dann, wenn mindestens ein Element einer Spalte linksbündig bleibt :(

tabularx habe ich mir auch schon angesehen. Ich verstehe aber die Anwendung nicht bzw. ob mir das hier etwas nützt.

Kurzes Beispiel. Wird die letzte Tabellenzeile auskommentiert, wird alles wieder schmal :(


\documentclass[a4paper,12pt]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}

\begin{document}
\begin{tabular}{p{3cm}p{3cm}p{3cm}}
\multicolumn{1}{c}{Hier} & \multicolumn{1}{c}{steht} & \multicolumn{1}{c}{Text} \\
\multicolumn{1}{c}{noch} & \multicolumn{1}{c}{mehr} & \multicolumn{1}{c}{Text} \\
hier & noch & mehr \\
\end{tabular}
\end{document}

rais
10-01-2006, 16:39
Moin moin,
ist das (http://mrunix.de/forums/showthread.php?t=41741) nix für Dich?
MfG,

Hobbes
10-01-2006, 18:17
Ja, das sieht gut aus. Zum zweiten mal heute Danke an dich :)

Gruß
Hobbes

Hobbes
11-01-2006, 08:41
Habe es eben ausprobiert. Habe aber leider das gleiche Problem wie mit meinem ersten Ansatz. Beim rumprobieren habe ich festgestellt, dass es entweder dann geht, wenn ich genau eine Spalte (siehe obere Tabelle im Beispiel) mache, oder mindestens eine ohne das neu definierte Spaltenformat :( Oder hat jemand eine andere Erklärung, warum die untere Tabelle im Beispiel nicht funktioniert?


\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{array}
\begin{document}
\newcolumntype{C}[1]{>{\centering}m{#1}}

\begin{tabular}{C{2cm}}
safd\\
asdfd\\
saf
\end{tabular}

%\begin{tabular}{C{2cm}r} %<--- damit geht es
\begin{tabular}{C{2cm}C{2cm}} %<--- damit geht es nicht
\hline
Ein etwas langer Text, der sicherlich umbrochen wird & a\\
\hline
oder kurz & b\\
\hline
\end{tabular}
\end{document}

rais
11-01-2006, 14:46
Hmm,
also warum das so war, weiß ich jetzt auch nicht mehr, aber ersetze mal die \\ innerhalb der Tabelle durch \tabularnewline, dann sollte es auch mit {C{..}C{..}} funzen.
MfG,

countbela666
11-01-2006, 20:09
Hallöchen,

das Problem ist die Umdefinierung des \\ durch das array- oder auch tabularx-Paket. Folgendes sollte bei der Nutzung eigener Spaltendefinitionen für die letzte Spalte Abhilfe schaffen:

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{array}
\begin{document}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{tabular}{C{2cm}}
safd\\
asdfd\\
saf
\end{tabular}

%\begin{tabular}{C{2cm}r} %<--- damit geht es
\begin{tabular}{C{2cm}C{2cm}} %<--- damit geht es jetzt auch ;)
\hline
Ein etwas langer Text, der sicherlich umbrochen wird & a\\
\hline
oder kurz & b\\
\hline
\end{tabular}
\end{document}Grüße,
Marcel

Hobbes
12-01-2006, 09:53
Klappt alles prima *freu*. Danke für die Hilfe :)

vizechecker
07-01-2007, 15:29
Hallo, ich würde gerne meine Tabelle genauso gestalten, aber wenn ich das alles eingebe, dann bekomme ich die Fehlermeldung

Package array error: Illegal pream-token (0.025\textwidth): 'c' used

Heißt das, dass ich auch ein zu altes array-package habe wie Rais in dem anderen Thread schon geschrieben hat und ich deshalb Probleme mit dem \arraybackslash bekomme?

Wenn ja, ich hab keinen Plan wie ich ein neues array-package bekommen kann, ich benutze MikTex aber ich finde keine array-packages in der Liste und der Update-Manager hat auch nicht geholfen.....

Oder gibts noch eine andere Fehlerquelle?


\documentclass[12pt, a4paper, twocolumn]{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\begin{table}[h]\caption{Eine Caption}
\begin{tabular}{|C{.05\textwidth}||*{8}C{.025\text width}|}}
\hline
Erste Zeile &&&&&&&&\\
\hline
Noch ne Zeile &&&&&&&&
\end{tabular}\label{Nachbarschaft}
\end{table}

\end{document}


Und ja, das [h] ist böse ;-)


Wäre cool, wenn mir einer helfen könnte! Gruß Alex

sofa-surfer
07-01-2007, 15:37
Hallo, ich würde gerne meine Tabelle genauso gestalten, aber wenn ich das alles eingebe, dann bekomme ich die Fehlermeldung

Package array error: Illegal pream-token (0.025\textwidth): 'c' used

Heißt das, dass ich auch ein zu altes array-package habe wie Rais in dem anderen Thread schon geschrieben hat und ich deshalb Probleme mit dem \arraybackslash bekomme?

Wenn ja, ich hab keinen Plan wie ich ein neues array-package bekommen kann, ich benutze MikTex aber ich finde keine array-packages in der Liste und der Update-Manager hat auch nicht geholfen.....

Oder gibts noch eine andere Fehlerquelle?


\documentclass[12pt, a4paper, twocolumn]{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}

\begin{table}[h]\caption{Eine Caption}
\begin{tabular}{|C{.05\textwidth}||*{8}C{.025\text width}|}}
\hline
Erste Zeile &&&&&&&&\\
\hline
Noch ne Zeile &&&&&&&&
\end{tabular}\label{Nachbarschaft}
\end{table}

\end{document}


Und ja, das [h] ist böse ;-)


Wäre cool, wenn mir einer helfen könnte! Gruß Alex

Hallo,

ich glaub du hast da nen kleinen Fehler drin:
Mach mal aus

\begin{tabular}{|C{.05\textwidth}||*{8}C{.025\text width}|}}


\begin{tabular}{|C{.05\textwidth}||*{8}{C{.025\tex twidth}|}}

Aber sind diese Breitenangaben nicht generell etwas _sehr_ klein?

Matthias

vizechecker
07-01-2007, 15:57
Heilige Sch***, ich schäme mich in Grund und Boden, du hast Recht...

Ich werd nie wieder Fragen stellen :-(

Vielen Dank, jetzt gehts super. Die Spaltenbreiten sind meinerMeinung nach auch zu klein, da ich zweispaltig schreibe, sollte die Summe ja eine halbe Textbreite ergeben, aber es klappt nur, wenn sie eine Viertelbreite einnehmen. Versteh ich auch nicht, aber is so :D

sofa-surfer
07-01-2007, 16:47
Vielen Dank, jetzt gehts super. Die Spaltenbreiten sind meinerMeinung nach auch zu klein, da ich zweispaltig schreibe, sollte die Summe ja eine halbe Textbreite ergeben, aber es klappt nur, wenn sie eine Viertelbreite einnehmen. Versteh ich auch nicht, aber is so :D

Zwischen den Spalten ist noch ein zusätzlicher Abstand freigelassen. Schau mal in eine allgemeine Latex-Einführung deiner Wahl. Eine Forensuche nach \tabcolsep sollte auch einige Infos liefern.

Matthias