PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Umbrüche mit tabular*



vlynd
18-06-2009, 17:51
Hallo!
Ich benutze für meine Tabellen tabular* aber habe es nicht hinbekommen, automatische Umbrüche einzustellen. Auf der Suche nach möglichen Lösungen bin ich auch über einige Versionen mit tabularx u.a. gestoßen, allerdings traten dort dann andere Fehler auf.

Meine jetzige Tabelle in der ich automatische Umbrüche benötige sieht so aus:


\begin{tabular*}{1\textwidth}[]{|lp{0.33\textwidth} | lp{0.33\textwidth} | lp{0.33\textwidth}|}
\hline
$M_{1}\cap M_{2}$ & Schnittmenge & Element gehört zu $M_{1}$ und $M_{2}$ \\
\hline
$M_{1}\cup M_{2}$ & Vereinigung & Element gehört wenigstens zu einer Menge \\
\hline
$M_{1} \setminus M_{2}$ & Differenz & Alle Elemente von $M_{1}$ die nicht zu $M_{2}$ gehören \\
\hline
$M_{1} \subseteq M_{2}$ & Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten \\
\hline
$M_{1} \subset M_{2}$ & echte Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten; $M_{2}$ enthält mind. 1 Element \textbf{mehr} \\
\hline
\end{tabular*}


Was fehlt da noch?
Ich danke schon mal vielmals!

mechanicus
18-06-2009, 18:53
Hallo,

verstehe meine Antwort nicht falsch. Aber ich habe das Gefühl, du weißt nicht was du tust.
Du solltest dir vielleicht erstmal eine Einführung zu Gemüt ziehen.

http://userpage.fu-berlin.de/~latex/Materialien/tabsatz.pdf

Gruß
Marco

vlynd
19-06-2009, 12:45
Dein Gefühl täuscht dich nicht.
Ich habe das Tutorial durchgelesen, aber viel klüger bin ich bzgl. meines Problems nicht, da von automatischen Zeilenumbrüchen keine Rede ist.

mechanicus
19-06-2009, 12:54
Hallo,

dann versuche ich es mal kurz zu halten:
In LaTex werden Tabellen mit der tabular-Umgebungen festgelegt. (Nice to Know: Schaue dir auch mal die array-Umgebung an)

Der Allgemeine Aufbau der tabular-Umgebung ist:



\begin{tabular}{SPALTENDEFINITION}
TABELLENINHALT
\end{tabular}

Unter der Spaltendefinition legst du fest, wie viele Spalten deine Tabellen haben soll und wie sich diese Verhalten sollen. l steht für linksbündig ohne Zeilenumbruch, r für rechtsbündig ohne Zeilenumbruch und c für zentriert ohne Zeilenumbruch. Möchte man hingegen Spalten haben , welche einen Zeilenumbruch zulassen, so benötigt man die Spaltendefinition vom Typ p. Hierbei gibt es die folgenden Möglichkeiten: p, b und m . Alle drei haben einen freien Parameter, mit dem du die Breite der Spalte bestimmst. Bsp: m{4cm}

Der TABELLENINHALT ist eben das, was rein soll :D . Hierfür gilt, dass jede Spalte durch ein & getrennt sein muss. Die Tabellenzeile wird dann mit \\ oder tabularnewline beendet.

Bei deinem Beispiel hast du folgende Spaltendefinitionen:

|lp{0.33\textwidth} | lp{0.33\textwidth} | lp{0.33\textwidth}|

Damit hast du ja insgesamt 6 Spalten vorgegeben. In deinem Tabelleninhalt werden aber gar nicht 6 Spalten benötigt, so dass da schon der erste Fehler ist.

Das war mal ein Schnellkurs. Wenn du allergings noch die Breite der Tabelle vorgeben willst, dann solltest du das Paket mit der gleichnamigen Umgebung tabularx nutzen. Deine Variante bringt dir nichts. Warum? Die Breite wird in deinem Fall durch die Spalten angegeben.


Hoffe das hilft erstmal.

Gruß
Marco

vlynd
19-06-2009, 13:08
Ah, okay. Vielen Danke für deine Bemühungen!
"lp" waren also 2 Spalten.
So, ich habs jetzt mit deiner Hilfe so hinbekommen wie ich es haben wollte, allerdings fehlt an manchen Stellen der Rahmen, woran könnte das liegen?
Habs mal als Bild hochgeladen.

mechanicus
19-06-2009, 13:27
Hallo,

um dir effektiv helfen zukönnen, benötigen wir immer ein Minimalbeispiel (http://www.minimalbeispiel.de/mini.html). So können wir ja nur raten *G*

Gruß
Marco

vlynd
19-06-2009, 13:32
Ups, sorry -

hier ist das Minimalbeispiel:



\documentclass[a4paper,10pt]{article}

\usepackage[german]{babel}
\usepackage{listings}
\usepackage{scrpage2}
\usepackage[ansinew]{inputenc}
\usepackage{amsmath}
\usepackage{tabularx}


% opening

\title{Glossar}

\begin{document}

\maketitle

\begin{tabular*}{1\textwidth}[]{|p{0.33\textwidth} | p{0.33\textwidth} | p{0.33\textwidth}|}
\hline
$M_{1}\cap M_{2}$ & Schnittmenge & Element gehört zu $M_{1}$ und $M_{2}$ \\
\hline
$M_{1}\cup M_{2}$ & Vereinigung & Element gehört wenigstens zu einer Menge \\
\hline
$M_{1} \setminus M_{2}$ & Differenz & Alle Elemente von $M_{1}$ die nicht zu $M_{2}$ gehören \\
\hline
$M_{1} \subseteq M_{2}$ & Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten \\
\hline
$M_{1} \subset M_{2}$ & echte Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten; $M_{2}$ enthält mind. 1 Element \textbf{mehr} \\
\hline
\end{tabular*}

\end{document}

u_fischer
19-06-2009, 13:43
Deine Rechnung stimmt einfach nicht. Die Tabelle soll \textwidth breit sein, aber du hast 3 Spalten à 0.33\textwidth=0.99\textwidth plus noch diverse Abstände vor und nach den Spalten. Wenn du drei gleiche Spalten willst, nimm lieber tabularx. Das erledigt die Rechnung für dich. Und vergiss nicht den Absatzeinzug:


\noindent\begin{tabularx}{\textwidth}{|X|X|X|}
usw

Ulrike Fischer

mechanicus
19-06-2009, 13:44
Hallo,


\documentclass[a4paper,10pt]{article}

\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage{listings}
\usepackage{scrpage2}
\usepackage{amsmath}
\usepackage{tabularx}


% opening

\title{Glossar}

\begin{document}

\maketitle

\begin{tabular}{|p{0.33\textwidth} | p{0.33\textwidth} | p{0.33\textwidth}|}
\hline
$M_{1}\cap M_{2}$ & Schnittmenge & Element gehört zu $M_{1}$ und $M_{2}$ \\
\hline
$M_{1}\cup M_{2}$ & Vereinigung & Element gehört wenigstens zu einer Menge \\
\hline
$M_{1} \setminus M_{2}$ & Differenz & Alle Elemente von $M_{1}$ die nicht zu $M_{2}$ gehören \\
\hline
$M_{1} \subseteq M_{2}$ & Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten \\
\hline
$M_{1} \subset M_{2}$ & echte Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten; $M_{2}$ enthält mind. 1 Element \textbf{mehr} \\
\hline
\end{tabular}

\end{document}

Gruß
Marco

Xenara
19-06-2009, 13:47
Du hast nicht alle von mechanicus' Vorschlägen umgesetzt.
So verwendest du immernoch tabular*. Der Haken ist, dass du 1. die Breite der Tabelle auf \textwidth angibst, dann aber alle Spalten mit fixer Breite definierst, und 3x0.33 wäre zwar theoretisch 1x\textwidth, aber du musst die Spaltenzwischenräume mit berücksichtigen! Damit wird deine Tabelle insgesamt breiter als textwidth, sie wird rechts in den Rand geschoben, die horizontalen Linien orientieren sich aber offensichtlich an der Soll-Gesamtbreite und enden damit schon früher, da sie ja nur \textwidth lang sind.

Hier mal ein komplett anderer (und imho wesentlich eleganterer) Vorschlag:


\documentclass[a4paper,10pt]{article}

\usepackage[ngerman]{babel} % Ngerman statt german
\usepackage{listings}
\usepackage{scrpage2}
\usepackage[ansinew]{inputenc}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{booktabs}

% opening

\title{Glossar}

\begin{document}

\maketitle

\begin{tabularx}{\textwidth}{llX}
\toprule
$M_{1}\cap M_{2}$ & Schnittmenge & Element gehört zu $M_{1}$ und $M_{2}$ \\
\midrule
$M_{1}\cup M_{2}$ & Vereinigung & Element gehört wenigstens zu einer Menge \\
\midrule
$M_{1} \setminus M_{2}$ & Differenz & Alle Elemente von $M_{1}$ die nicht zu $M_{2}$ gehören \\
\midrule
$M_{1} \subseteq M_{2}$ & Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten \\
\midrule
$M_{1} \subset M_{2}$ & echte Teilmenge & Jedes Element von $M_{1}$ ist in $M_{2}$ enthalten; $M_{2}$ enthält mind. 1 Element \textbf{mehr} \\
\bottomrule
\end{tabularx}

\end{document}

vlynd
19-06-2009, 14:05
Okay, vielen Dank für die vielen Hilfen!
Jetzt siehts richtig gut aus und hab wieder was über Tabellen gelernt.
Nochmal danke!

mechanicus
19-06-2009, 17:09
Jetzt siehts richtig gut aus
Richtig gut sieht das nicht aus. Vertikale Linien sollten stehts vermieden werden. Horizontale sollte auch nur mit Bedacht eingesetzt werden. Habe dir oben einen Link gegeben, in dem das gezeigt ist. Verwende also lieber booktabs.

Gruß
Marco

Münchner
24-06-2009, 10:26
Hallo,
wie kann ich denn hier einen Zeilenumbruch in der Kopfzeile machen?
Habs mit \newline versucht, aber da ändert sich nix





\documentclass[a4paper,10pt]{article}

\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage{listings}
\usepackage{scrpage2}
\usepackage{amsmath}
\usepackage{tabularx}

\begin{document}



\begin{table}[H]
\begin{center}
\begin{tabular}{|c||ccc|}
\firsthline
\multicolumn{4}{|c|}{\textbf{Übereinstimmungsgrad der Luftbilder}}\\ \hline
\textbf{Bild Nr.} & Offizielle \& Eigene Ausweisung & Eigene Ausweisung & Partiell\\ \hline\hline
1 & \ding{51} & \ding{55} & \ding{55} \\
2 & \ding{55} & \ding{51} & \ding{55} \\
3 & \ding{51} & \ding{55} & \ding{55} \\
4 & \ding{55} & \ding{51} & \ding{55} \\
5 & \ding{51} & \ding{55} & \ding{55} \\
6 & \ding{51} & \ding{55} & \ding{55} \\
7 & \ding{51} & \ding{55} & \ding{55} \\
8 & \ding{51} & \ding{55} & \ding{55} \\
9 & \ding{51} & \ding{55} & \ding{55} \\
10 & \ding{55} & \ding{51} & \ding{55} \\
11 & \ding{55} & \ding{51} & \ding{55} \\
12 & \ding{55} & \ding{55} & \ding{51} \\
13 & \ding{55} & \ding{55} & \ding{51} \\
14 & \ding{55} & \ding{55} & \ding{51} \\
15 & \ding{51} & \ding{55} & \ding{55} \\ \hline
\end{tabular}
\end{center}
\end{table}

\end{document}


Gruß
Jochen