PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit einer Tabelle



bucada
27-04-2006, 16:59
Hi !!!

Ich habe drei Probleme mit meiner Tabelle.


\begin{center}
\begin{tabular}{|p{2.3cm}|p{2.3cm}|p{2.5cm}|p{3cm} |p{3cm}|p{3cm}} \hline
\label{tabErg_1}
{\bf Spalte 1} & {\bf Spalte 2} & {\bf Spalte3} &
{\bf Übereschrift der Spalte 4 ist länger} &
{\bf Überschrift der Spalte 5 ist noch viel länger} \\ \hline

& Abschnitt 1a.1 & Abschnitt 1a.2
& Abschnitt 1a.3 & Abschnitt 1a.4 \\ \hline

\raisebox{1.5ex}[-1.5ex]{Abschnitt 1} & Abschnitt 1b.1
& Abschnitt 1b.2 & Abschnitt 1b.3 & Abschnitt 1b.4 \\ \hline

& Abschnitt 2a.1 & Abschnitt 2a.2
& Abschnitt 2a.3 & Abschnitt 2a.4 \\ \hline

\raisebox{1.5ex}[-1.5ex]{Abschnitt 2} & Abschnitt 2b.1
& Abschnitt 2b.2 & Abschnitt 2b.3 & Abschnitt 2b.4 \\ \hline
\end{tabular}
\end{center}

Die Probleme die ich hatte hab ich teilweise nach dem durchstöbern des Forums hier lösen können, doch drei sind mir noch geblieben :( Speziell mein drittes Problem verstehe ich nicht, da ich den Code quasi aus einem Lehrbuch übernommen habe.
Die Probleme sind die folgenden:
erledigt 1) Die Überschriften der Spalten 1-4 sind nicht mittig in der Höhe.
erledigt 2) Alle Spalten sind nicht zentriert.
erledigt 3) Die Schrift im Abschnitt 1 und 2 soll in der Höhe so liegen, wie im Moment, jedoch darf da kein Strich sein.

Ich wäre für Hilfe sehr dankbar.

Tja, doch alles selber mühevoll erarbeitet.

bucada
27-04-2006, 17:28
Ok, einen Fehler habe ich doch noch rausgefunden, und zwar den zweiten.
Ich habe die Lösung doch noch hier gefunden, nachdem ich andere Suchbegriffe eingegeben habe :)

Zusammenfassend die Lösung:
\usepackage{array} einbinden

Hinter \brgin{document folgendes eingeben:

\newcommand{\PreserveBackslash}[1]{\let \temp = \\ #1 \let\\=\temp}
\let\RdB=\PreserveBackslash

und dann die Zeile:

\begin{tabular}{|p{2.3cm}|p{2.3cm}|p{2.5cm}|p{3cm} |p{3cm}|p{3cm}} \hline
wie folgt ändern:

\begin{tabular}{|>{\RdB\centering}p{2.3cm}|>{\RdB\centering}p{2.3cm}|>{\RdB\centering}p{2.5cm}|>{\RdB\centering}p{3cm}|>{\RdB\centering}p{3cm}|>{\RdB\centering}p{3cm}} \hline

Doch bei Frage eins und drei hab ich noch immer keine Ahnung :(

rais
28-04-2006, 10:54
Hallo,


\newcommand{\PreserveBackslash}[1]{\let \temp = \\ #1 \let\\=\temp}
\let\RdB=\PreserveBackslash

Warum nicht gleich
\newcommand{\RdB}[1]{\let \temp = \\ #1 \let\\ =\temp}% Preserve Backslash?
Offensictlich willst Du ja eh nur die Kurzschreibweise nutzen...


\begin{tabular}{|>{\RdB\centering}p{2.3cm}|>{\RdB\centering}p{2.3cm}|>{\RdB\centering}p{2.5cm}|>{\RdB\centering}p{3cm}|>{\RdB\centering}p{3cm}|>{\RdB\centering}p{3cm}} \hline

Wenn Du sowieso schon array laedst, dann kannst Du auch einen neuen Spaltentyp deklarieren, z.B.

\newcolumntype{C}[1]{>{\RdB\centering}p{#1}}
%und vielleicht auch gleich
\newcolumntype{M}[1]{>{\RdB\centering}m{#1}}%sollte auch vertikal zentrieren
%und dann
\begin{tabular}{C{2.3cm}C{2.3cm}C{2.5cm}C{3cm}C{3c m}C{3cm}} \hline

...ich bring's einfach nich ueber mich, vertikale Linien in eine Tabelle zu setzen - da stellt sich sowieso noch die Frage, welches "Lehrbuch" dazu wohl anraet?

Das alles ist ungetestet (sitz' mal wieder im Internet-Cafe), deshalb kann ich zu 3) derzeit nur sagen: welcher Strich darf wo nicht sein?
MfG,

bucada
28-04-2006, 11:33
Mitlerweile habe ich auch den ersten Fehler raugefunden.
In den Spalten den jeweiligen text einfach durch ein \vspace um die gewünschte Höhe nach unten senken.

Doch der dritte Fehler bleibt noch. Kommt schon, weiss keiner wie ich da den Strich in der Mitte rauskriegen kann?


deshalb kann ich zu 3) derzeit nur sagen: welcher Strich darf wo nicht sein?
MfG,

Die erste Spalte der Tabelle (ich lasse da mal die Spaltenüberschriften raus) besteht eigentlich aus zwei Zeilen. Die Spalten 2-5 haben aber 4 Zeilen.
Die erste Zeile in der ersten Spalte soll für die ersten 2 Zeilen der spalten 2-5 stehen. Diese sind natürlich durch eine Linie voneinander getrennt, doch diese Linie wird in der Spalte eins fortgeführt und so erscheint das was da steht durchgestrichen.
Das buch, das ich benutze ist Latex Einführung von Helmut Kopka. War eigentlich ganz gut bisher, doch leider liefert es mir da keine Lösung. :(

bucada
28-04-2006, 15:48
Ok nun auch noch den letzten Fehler mühevoll rausgefunden.

Die Lösung bestand darin, dass ich in der Zeile, die den Strich nicht bis zum Ende durchführen soll mit \cline{2-5} anstatt mit \hline beenden muss.

Hier nochmal der geänderte Code:
[/CODE]
\begin{center}
\begin{tabular}{|p{2.3cm}|p{2.3cm}|p{2.5cm}|p{3cm} |p{3cm}|p{3cm}} \hline
\label{tabErg_1}
\vspace{4mm}{\bf Spalte 1} & \vspace{4mm}{\bf Spalte 2} & \vspace{4mm}{\bf Spalte3} &
\vspace{1mm}{\bf Übereschrift der Spalte 4 ist länger} &
{\bf Überschrift der Spalte 5 ist noch viel länger} \\ \hline

& Abschnitt 1a.1 & Abschnitt 1a.2
& Abschnitt 1a.3 & Abschnitt 1a.4 \\ \cline{2-5}

\raisebox{1.5ex}[-1.5ex]{Abschnitt 1} & Abschnitt 1b.1
& Abschnitt 1b.2 & Abschnitt 1b.3 & Abschnitt 1b.4 \\ \hline

& Abschnitt 2a.1 & Abschnitt 2a.2
& Abschnitt 2a.3 & Abschnitt 2a.4 \\ \cline{2-5}

\raisebox{1.5ex}[-1.5ex]{Abschnitt 2} & Abschnitt 2b.1
& Abschnitt 2b.2 & Abschnitt 2b.3 & Abschnitt 2b.4 \\ \hline
\end{tabular}
\end{center}[/QUOTE]