PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle vertikal zentrieren + fixe Spaltenbreite



Sato
01-05-2009, 12:04
Hallo,

hab ein Problem:
Brauch eine fixe Spaltenbreite, da sonst der Text weit über die Seite hinausschießt, würde die Spalten aber auch gerne vertikal zentrieren.
Bitte um Hilfe.



\begin{table}[h]
\begin{minipage}{\textwidth}
\begin{center}
\begin{small}
\begin{tabular}{|c||p{4cm}|p{4cm}|p{4cm}|} \hline
\textbf{Bewertung} & \textbf{Bedeutung} & \textbf{Auftretenswahrscheinlichkeit} & \textbf{Entdeckungungswahrscheinlichkeit} \\ \hline \hline
10 & Gefährdung, Verstoß gegen Gesetze & Fehler nahezu sicher; zahlreiche Fehler mit gleichen oder ähnlichen Konstruktionen bekannt & Keine Entdeckungsmaßnahmen bekannt oder geplant \\ \hline
9 & Gefährdung, Verstoß gegen Gesetze möglich & bla & bla \\ \hline
8 & Totaler Funktionsausfall, Kunde sehr verärgert & bla & bla \\ \hline
7 & Funktionen stark eingeschränkt, Kunde verärgert & bla & bla \\ \hline
6 & Ausfall einzelner Hauptfunktionen, Kunde, ziemlich verärgert & bla & bla \\ \hline
5 & Mäßige Einschränkung des Gebrauchsnutzens, Kunde etwas verärgert & bla & bla \\ \hline
4 & Gebrauchsnutzen wenig eingeschränkt, Kunde verdrossen & bla & bla \\ \hline
3 & Gebrauchsnutzen geringfügig eingeschränkt, Kunde leicht verdrossen & bla & bla \\ \hline
2 & Auswirkung sehr gering, Kunde kaum berührt & bla & bla \\ \hline
1 & Kunde bemerkt Auswirkungen nicht & bla & bla \\ \hline
\end{tabular}
\end{small}
\end{center}
\end{minipage}
\caption{\label{t:FMEA_bew}Bewertungstabelle für eine FMEA \citep{FMEA_bewertung}}
\end{table}

Stefan_K
01-05-2009, 12:20
Hallo Sato,



Brauch eine fixe Spaltenbreite, da sonst der Text weit über die Seite hinausschießt, würde die Spalten aber auch gerne vertikal zentrieren.

für vertikale Zentrierung kannst du das array-Paket und m-Spalten verwenden: m{4cm}. [h] ist als Positionierungsparameter übrigens vielleicht etwas wenig.
Statt \begin{center}...\end{center} würde ich \centering verwenden, siehe center vs. \centering (http://texblog.net/latex-archive/layout/center-centering/).

Viele Grüße,

Stefan

--
TeXblog.net (http://texblog.net)

Sato
01-05-2009, 12:26
das mit m hab ich probiert, dann ist die spaltenbreite aber wieder zu groß, das heißt, er macht keinen zeilenumbruch mehr

wieso ist h zu wenig?

das center werd ich mir mal durchschaun

Stefan_K
01-05-2009, 20:09
Hi Sato,

m{4cm} bringt doch die gleiche Breite wie p{4cm}. Umgebrochen wird doch in den Zellen, was genau ist das Problem? Wenn es den Umbruch einzelner Worte wie in der ersten Tabellenzeile betrifft, kannst Du \hyphenation oder babel-Trennhilfen verwenden.

[h] erlaubt die Platzierung "hier". Wenn Du [htb] schreiben würdest, gestattest Du die Platzierung "hier" sowie am oberen und unteren Seitenrand. Besonders lockern könntest Du mit [!htbp]. Erlaubst Du nicht genug, kann es passieren, dass die Tabelle ziemlich weit weggleitet. Siehe auch das LaTeX Bilder-HowTo (http://www.ctan.org/get/info/l2picfaq/german/l2picfaq.pdf) dazu.

Stefan

edico
02-05-2009, 09:33
Brauch eine fixe Spaltenbreite, da sonst der Text weit über die Seite hinausschießt, würde die Spalten aber auch gerne vertikal zentrieren.

Diese Informationen sind letztendlich nicht genügend aussagekräftig, um einen wirklich substantiellen Hinweis machen zu können, da die Rahmenbedingungen deines Layouts nicht erkennbar werden. IMO ist aber die Gestaltung einer Tabelle massgeblich davon abhängig (wie: ob eine Tabelle vielleicht nicht doch in landscape- anstatt in portrait-modus gesetzt werden sollte ....)

Da du darüber hinaus kein Minimalbeispiel anbietest, lässt sich auch nichts mal schnell prüfen, da man sich erstmal alle packages zusammensuchen muss :-(

Mir scheint, dass deine Tabelle nach der tabularx Umgebung schreit. Die vertikale Ausrichtung verstehe ich in diesem Zusammenhang nicht. Wenn du statt der altertümlichen hlines nunmal progressiv booktabs lädst, wirdst du schon 'schönere' Abstände und Ausrichtungen erhalten.

Als Arbeitsmaterial - nicht getestet - sei folgender Code gesetzt:



...
%\usepackage{pdflscape}
\usepackage{array,tabularx,booktabs,ragged2e,calc}
...
%\begin{landscape}
\begin{table}[ht]
\small
% \begin{minipage}{\textwidth}
% \begin{center}
% \begin{small}
% \begin{tabular}{|c||p{4cm}|p{4cm}|p{4cm}|} \hline
\begin{tabularx}{\textwidth}{X*{3}{P{.28\linewidth-2\tabcolsep}}}\toprule
\textbf{Bewer\-tung} &
\textbf{Bedeutung} &
\textbf{Auftretens\-wahrscheinlichkeit} &
\textbf{Entdeckungungs\-wahrscheinlichkeit} \\ \midrule
10 & Gefährdung, Verstoss gegen Gesetze & Fehler nahezu sicher; zahlreiche Fehler mit gleichen oder ähnlichen Konstruktionen bekannt & Keine Entdeckungsmassnahmen bekannt oder geplant \\ \midrule
9 & Gefährdung, Verstoss gegen Gesetze möglich & bla & bla \\ \midrule
8 & Totaler Funktionsausfall, Kunde sehr verärgert & bla & bla \\ \midrule
7 & Funktionen stark eingeschränkt, Kunde verärgert & bla & bla \\ \midrule
6 & Ausfall einzelner Hauptfunktionen, Kunde, ziemlich verärgert & bla & bla \\ \midrule
5 & Mässige Einschränkung des Gebrauchsnutzens, Kunde etwas verärgert & bla & bla \\ \midrule
4 & Gebrauchsnutzen wenig eingeschränkt, Kunde verdrossen & bla & bla \\ \midrule
3 & Gebrauchsnutzen geringfügig eingeschränkt, Kunde leicht verdrossen & bla & bla \\ \midrule
2 & Auswirkung sehr gering, Kunde kaum berührt & bla & bla \\ \midrule
1 & Kunde bemerkt Auswirkungen nicht & bla & bla \\ \bottomrule
\end{tabularx}
% \end{tabular}
% \end{small}
% \end{center}
% \end{minipage}
\caption{\label{t:FMEA_bew}Bewertungstabelle für eine FMEA \citep{FMEA_bewertung}
\end{table}
%\end{landscape}


edico

Sato
02-05-2009, 12:09
Hallo,

danke für die Antworten.
Habe m{4cm} probiert, jedoch wurde dann in den Zellen eben nicht umgebrochen.

danke für die info mit [h], hatte eh schon probleme mit der platzierung!

landscape geht leider nicht, da das eine diplomarbeit ist!
danke trotzdem!

LG

rais
02-05-2009, 12:59
Moin moin,


Habe m{4cm} probiert, jedoch wurde dann in den Zellen eben nicht umgebrochen.

schau in Deine .log-Datei, ob da so etwas wie


! LaTeX Error: Illegal character in array arg.
in bezug auf Deine Spaltendeklaration auftaucht. Wenn dem so ist, hast Du vermutlich das array-Paket -- und darauf hat Stefan in seiner ersten Antwort bereits hingewiesen -- unterschlagen ...
Sollte meine Glaskugel versagt haben, könntest -- nein, solltest -- Du dieses Dein Fehlverhalten anhand eines Minimalbeispiels demonstrieren.

MfG

Sato
03-05-2009, 11:15
werd ich mal probieren danke!