PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zur Tabellenformatierung



nuubie
09-10-2004, 21:27
Hallo liebe Wissenden,

ich hoffe ihr könnt mir mal helfen. Ich habe folgendes Problem:


Ich möchte gerne einzelne Felder innerhalb einer \tabular Umgebung definieren. Also beispielsweise Spaltenüberschrift zentriert und die restlichen Zeilen rechtsbündig.

Außerdem versuche ich innerhalb einer Spalte einen Zeilenumbriuch hinzubekommen. \newline geht aber nur bei {pXYcm} und nicht bei {c} {l} oder {r}.

Habt ihr vielleicht mal einen Tip für mich?


Danke.

bischi
11-10-2004, 17:36
Einzelne Felder sollte ja kein Problem sein:

...
& \begin{center} bla \end{center}

Für ganze Spalten bietet es sich an, diese zentral neu zu definieren:



...
\usepackage{array}
...
\newcolumntype{C}[1]{>{...}p{#1}<{...}}
...
\begin{document}
...
\begin{table}[!h]
\begin{tabular}{ c | C{0.6\textwidth} | p{3cm} | }
...


Das einzige interessante ist die \newcolumntype-Zeile, die eine neue Spalte definiert: Diese heisst C (erstes Argument), bekommt ein Argument zugewiesen (1, damit man die Breite angeben kann). Als nächstes wird eine ganz normale Spalte mit p{} definiert, der man das Argument übergibt. Anstelle der drei Punkte vor und nach der Definition von p{} kannst du nun Befehle eingeben, um die Zelle zu formatieren, beispielsweise:



\newcolumntype{C}[1]{>{\begin{center} \bfseries}p{#1}<{\end{center}}}


MfG Bischi

PS: Da es sich bei C ja um ein p{} handelt, geht \newline

patch
19-10-2005, 10:24
Hallo,

die vorgenannten Erklärungen sind ja sehr einleuchtend. Aber warum kann ich dann nicht die unten fett gedruckten Zellen mit \begin{center} bla \end{center} zentrieren?

Da bekomme ich immer eine Fehlermeldung geliefert.


\begin{table}
\centering
\begin{tabular}{l l l}
bla & bla & \texttt{bla}- Bezeichnung\\
\hline
bla & bla & \texttt{bla}\\
bla & bla & \texttt{bla}\\
.....
\end{tabular}
\caption{Auswahl der bla bla bla}
\label{auswahl}
\end{table}


Danke,

Patch

PS.: Keine Angst, ich hab schon im Forum gesucht, aber die Suchfunktion ist wirklich nicht der Hit

bischi
19-10-2005, 10:44
Da bekomme ich immer eine Fehlermeldung geliefert.

Und die wäre?

MfG Bischi

patch
19-10-2005, 10:47
! LaTeX Error: Something's wrong--perhaps a missing \item.

ragna
25-01-2006, 10:59
also ich bekomm den gleichen fehler ... aber mal ne frage zu dem \newcolumntype ... kann man das ganze auch ohne das p{} definieren .. wenn ich eh nur \begin{tabular}{cccccc} will ?

mit


\usepackage{tabularx}

\newcolumntype{Z}{>{\centering\arraybackslash}X}
\begin{table}[htbp]
\centering
\begin{tabularx}{\textwidth}{ZZZZZZ}


zentriert er mir zwar die spalten .. aber wie bekomm ich den text auch an die oberkante (oder die mitte) einer jeden zelle (hab durch eingefügte grafiken sehr hohe zellen und der text steht z zt unten ^^)

ragna
26-01-2006, 16:31
keiner ne idee? :-\

rais
26-01-2006, 19:34
Moin moin,
frei nach Marcel's tabularx-Tricks :D hier (http://mrunix.de/forums/showthread.php?t=42880) : setz' mal ein

\renewcommand{\tabularxcolumn}[1]{m{#1}}
vor Deinen \newcolumntype{Z}..., das müsste die Inhalte vertikal zentrieren.


aber wenn Du nur c-Spalten willst, warum nimmst Du sie dann nicht einfach?
\begin{tabular}{*{6}c}...


Zu dem Zentrierproblem in einer l-Spalte:
besser \multicolumn{1}{c}{bla} verwenden...

MfG,

ragna
27-01-2006, 00:29
ich glaube ich nehm deswegen keine normale zentrierte weil ich Zeilenumbrüche in der zelle brauch ... und das ging da ja nicht ...glaub ich ^^ *spät*

\renewcommand{\tabularxcolumn}[1]{m{#1}} klappt wunderbar .

wie bekomm ich den text in den zellen nun an den Zellenkopf anstatt zentriert?

und gibt es irgendwelche vorschläge für welche zwecke man welche tabellenumgebungen (also tabularx und so zeug :>) benutzt ?

countbela666
27-01-2006, 15:36
wie bekomm ich den text in den zellen nun an den Zellenkopf anstatt zentriert?Erstell doch bitte mal ein Minimalbeispiel

und gibt es irgendwelche vorschläge für welche zwecke man welche tabellenumgebungen (also tabularx und so zeug :>) benutzt ?

tabbing: einfache Tabelle durch Tabstops
tabular: Tabelle dynamischer Breite (Spaltenbreite je nach Inhalt oder fest)
tabularx: Tabelle fester Breite (Spaltenbreite je nach Inhalt, fest, oder je nach noch vorhandenem Platz)
longtable oder supertabular: Tabelle dynamischer Breite über mehrere Seiten
ltxtable: Tabelle fester Breite über mehrere Seiten

Grüße,
Marcel

ragna
27-01-2006, 16:17
danke für die Zusammenfassung der tabellenarten
hier das Minimalbeispiel



\renewcommand{\tabularxcolumn}[1]{m{#1}}
\newcolumntype{Z}{>{\centering\arraybackslash}X}
\begin{table}[htbp]
\centering
\begin{tabularx}{\textwidth}{*{6}Z}

\toprule[1pt]
& \begin{minipage}{2cm} \centering$\frac{dy}{(ax+ay)}$ \end{minipage}& \begin{minipage}{2cm} \centering$dx$ \\ $dy$ \end{minipage}& \begin{minipage}{2cm} \centering Berechnung $t$ \end{minipage} & $t$ & theta \\

\midrule
\includegraphics[scale=0.9]{tan1.pdf} & $1/2$ & $dx > 0$ $dy > 0$ & $t$ & $0.5$ & $45^\circ$ \\
\bottomrule[1pt]
\end{tabularx}
\end{table}

countbela666
27-01-2006, 16:55
danke für die Zusammenfassung der tabellenartengern geschehen

hier das Minimalbeispielnaja, Minimalbeispiel? *grml*

Hier mal ein Vorschlag:

\documentclass{article}
\usepackage{calc,graphicx,tabularx,booktabs}
\begin{document}
\newcolumntype{Z}{>{\centering\arraybackslash}X}
\begin{table}[htbp]
\begin{tabularx}{\textwidth}{c*{5}Z}
\toprule[1pt]
& \centering$\frac{dy}{(ax+ay)}$ & \centering$dx$ \\ $dy$ & \centering Berechnung $t$ & $t$ & theta \\
\midrule
\raisebox{\ht\strutbox-\height}{\rule{2cm}{2cm}} & $1/2$ & $dx > 0$ $dy > 0$ & $t$ & $0.5$ & $45^\circ$ \\
\midrule
\raisebox{\ht\strutbox-\height}{\rule{2cm}{2cm}} & $1/2$ & $dx < 0$ $dy > 0$ & $t = 2 - t$ & $1.5$ & $135^\circ$ \\
\midrule
\raisebox{\ht\strutbox-\height}{\rule{2cm}{2cm}} & $-1/2$ & $dx < 0$ $dy < 0$ & $t = 2 - t$ & $2.5$ & $225^\circ$ \\
\midrule
\raisebox{\ht\strutbox-\height}{\rule{2cm}{2cm}} & $-1/2$ & $dx > 0$ $dy < 0$ & $t = 4 + t$ & $3.5$ & $315^\circ$ \\
\bottomrule[1pt]
\end{tabularx}
\end{table}
\end{document}Trick bei der Sache ist die \raisebox (Berechnung benötigt Paket calc), die ich mir bei Rolf Niepraschk in dctt abgeschaut habe. Die \rule{2cm}{2cm} sind Dummybilder, die du einfach durch dein \includegraphics{...} ersetzen kannst (wichtige Regel eines Minimalbeispiels (http://www.minimalbeispiel.de)).

Wichtig ist auch, dass der Spaltentyp der ersten Spalte c und nicht X ist, damit ihre Breite an die der Bilder angepasst wird.

Die Umdefinierung des Spaltentyps X von p{} auf m{} benötigst du nicht mehr (außer du willst den Zelleninhalt jeweils vertikal zentriert haben) und die minipages hab ich auch mal aus der obersten Zeile genommen (hab nicht wirklich einen Sinn drin gesehen).

Grüße,
Marcel

ragna
27-01-2006, 17:33
danke :) [.Der von Ihnen eingegebene Text ist zu kurz. Bitte erweitern Sie den Text auf die minimale Länge von 10 Zeichen.]