Zentrieren von Zellen und Zeilenumbruch, feste Spaltenbreite

Tabellen und Grafiken erstellen und anordnen


NinaNachtigall
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 13. Aug 2008, 11:51

Zentrieren von Zellen und Zeilenumbruch, feste Spaltenbreite

Beitrag von NinaNachtigall »

Hallo alle zusammen,
ich gehe z. Zt. meine ersten Latexschritte und verzweifle gerade an einer Tabelle. Nach viel Probieren schaffe ich es, dass die Zeileninhalte automatisch umgebrochen werden, aber ich bekomme es nicht hin, dass die Zelleninhalte gleichzeitig zentriert ausgegeben werden! Irgendwo muss das "c" hin, aber ich weiß nicht wo!

Bisher sieht es so aus:
\begin{tabular}{|*4{p{3cm}|}}
\hline

 & Kategorie 1 & Kategorie 2 & Kategorie III \\
\hline
Ausprägung 1 & jede menge text & noch mehr text & gaaaaaaaanz viel text \\
\hline
Ausprägung 2 & Mehrfach in der Woche & Mehrfach in der Woche & Mehrfach in der Woche \\
\hline
Ausprägung 3 & Text & Text & Text\\

\hline
\end{tabular}
Kann mir jemand helfen?

Viele Grüße
Nina

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Defnieren eines eigenen Spaltentypen in Latex

Beitrag von DonCube »

Hallo Nina,
willkommen hier im goLaTeX-Forum. Zu deiner Frage fällt mir bisher nur eine mögliche Antwort ein. Und zwar würde ich einen eigenen Spaltetypen definieren. Die Anweisung mit p erzeugt eine parbox. Irgendwie müssen wir also eine Zentrierung einbauen, so dass der Text in der parbox zentriert gesetzt wird.

Daher also die Wahl über einen eigenen Spaltentypen. Beispiele dazu findest du auch hier: http://www.torsten-schuetze.de/tex/tabsatz-2004.pdf

Hierzu benötigst du nur ein weiteres Package:
\uspackage{array}   %stellt den Befehl \newcolumntype bereit
Dann definierst du dir einen neuen Spaltentyp. ich habe ihn mal einfach mit C bezeichnet
\newcolumntype{C}[1]{>{\centering}p{#1}}
Nun erstellst du wie gewohnt deine Tabelle. Aber VORSICHT zur Erzeugung einer neuen Zeile nicht mehr \\ verwenden sondern \tabularnewline.
\begin{document}
\begin{tabular}{|*4{C{3cm}|}}
\hline 
 & Kategorie 1 & Kategorie 2 & Kategorie III \tabularnewline\hline 
Ausprägung 1 & jede menge text & noch mehr text & gaaaaaaaaaaanz viel text \tabularnewline
\hline 
Ausprägung 2 & Mehrfach in der Woche & Mehrfach in der Woche & Mehrfach in der Woche \tabularnewline\hline 
Ausprägung 3 & Text & Text & Text\tabularnewline\hline 
\end{tabular} 

\end{document}
Wenn du jetzt noch ein Label oder eine Beschriftung (caption) hinzufügen möchtest packst du alle nochmal in eine \table Umgebung. ACHTUNG table ist nicht gleich tabular. Table sollte vielmehr mit Tafel übersetzt werden, und nicht wie es meistens gemacht wird mit Tabelle.

Bei einer Tabelle wird übrigens eine Tabellenüberschrift verwendet. Bei Bilder bzw. Grafiken Bildunterschriften. Diese kannst du, wenn du KOMA-Script verwendest, ganz einfach mit \captionabove einbauen. \captionabove erzeugt dann einen korrekten Abstand zwischen der Überschrift und dem Objekt. Sollte dich das interessieren schau einfach in den scrGuide S. 117-130.

Ich hoffe ich konnte dir helfen.

Gruß
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

NinaNachtigall
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 13. Aug 2008, 11:51

Dankeschön!

Beitrag von NinaNachtigall »

Vielen Dank, es funktioniert!
An Koma traue ich mich nicht ran, das scheint mir für mich noch zu unübersichtlich zu sein...

Was bedeuten denn die 1 hinter dem {C} in
Code:

\newcolumntype{C}[1]{>{\centering}p{#1}}


und was das p? Dann kann ich das in Zukunft vielleicht weiterverwenden und anpassen...

NinaNachtigall
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 13. Aug 2008, 11:51

Beitrag von NinaNachtigall »

... und schon treten neue Probleme auf... Der Text in den Zellen steht ganz nah an der horizontalen Begrenzungslinie, das sieht ziemlich doof aus, wie kann ich denn das ändern? Habe schon mit \tabularnewline[...pt] herum probiert, aber dann fehlen die | Begrenzungsstriche. Und wenn ich so tue, als wäre da eine leere Zeile & & & , dann ist der Abstand zwischen Text und horizontaler Linie wieder zu groß und außerdem alles ungleichmäßig...

:shock:

Ich brauch echt einen Tabellenkurs!!! Gibt es dafür vielleicht Lehrgänge?

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Benutzung von Arraystretch für die Zeilenhöhe einer Tabelle

Beitrag von DonCube »

Hallo Nina,
Also der Abstand ist ganz normal und Standard. Da gibt es eigentlich nichts was man ändern muss.

Wenn du es trotzdem ändern willst, kannst du mit \arraystretch in der Präambel ein wenig spielen.
\renewcommand{\arraystretch}{1.4} 
Generell lohnt sich der Umstieg auf KOMA-Script. Ich habe auch lange damit gewartet. Aus denselben Gründen wie du. Ich dachte es wäre alles komplizierter. Dabei ist wirklich alles sehr viel einfacher. Glaube mir du wirst es nicht bereuen.

Anfänglich ist man etwas geschockt wegen der Seitengröße. Und fängt an mit geometry zu spielen. Aber das ist Blödsinn.

KOMA-Script baut dir richtig gute Seiten. Immer proportional und harmonisch. Denn "Masse" des Textes lässt sich auf Wunsch über den DIV-Wert einstellen.

Glaub mir KOMA-Script ist nicht umsonst, dass größte und bekannteste Bundle für Europa. Der Entwickler (der sich übrigens auch hier rumtreibt) entwickelt seit über 14 Jahren daran. Und es wird kontinuierlich verbessert.

Probier es einfach. Änder deine Dokumentenklasse auf scrbook, scrreprt oder scrartcl. Je nachdem was du verwendest. Wenns wieder Erwarten Probleme gibt. Wir helfen dir hier gerne.

Gruß
DonCube[

EDIT: Threadstatus bitte immer aktualisieren.
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2528
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Tabellensatz

Beitrag von Stefan Kottwitz »

Hallo Nina,
NinaNachtigall hat geschrieben:Der Text in den Zellen steht ganz nah an der horizontalen Begrenzungslinie
Oben oder unten? Evtl. hilft Dir
\setlength{\extrarowheight}{1pt}
Voraussetzung ist das array-Paket, doch das verwendest Du ja scheinbar.
NinaNachtigall hat geschrieben: Was bedeuten denn die 1 hinter dem {C} ... und was das p?
Zu p hat DonCube bereits etwas gesagt, dadurch wird die Tabellespalte in einer Absatzbox (\parbox) gesetzt. Die 1 besagt, dass 1 Parameter erwartet wird, analog zu \newcommand, dieser Parameter wird durch #1 an p übergeben und bestimmt die Breite der Absatzbox.
DonCube hat geschrieben:Aber VORSICHT zur Erzeugung einer neuen Zeile nicht mehr \\ verwenden sondern \tabularnewline.
Durch den Befehl \arraybackslash wird das unnötig, beispielsweise:
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
NinaNachtigall hat geschrieben: Ich brauch echt einen Tabellenkurs!!! Gibt es dafür vielleicht Lehrgänge?
tabsatz wurde bereits genannt, das ist ein Tutorium für den Satz von Tabellen. Hier gibt es noch eine ältere Version auf CTAN. Tabellen werden auch in den meisten LaTeX Einführungen behandelt, ob digital oder in Buchform. Bedeutung und Verwendung hier genannter Makros wie \newcolumntype, \extrarowheight und \arraybackslash kann man in der array-Dokumentation nachschlagen.

Viele Grüße,

Stefan
Zuletzt geändert von Stefan Kottwitz am Do 2. Okt 2008, 15:06, insgesamt 1-mal geändert.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

NinaNachtigall hat geschrieben:Der Text in den Zellen steht ganz nah an der horizontalen Begrenzungslinie
Das ist häufig so, wenn man \hline in Tabellen verwendet. Besser wird es, wenn man mit dem booktabs-Paket arbeitet. Dann stehen u. a. \toprule, \midrule, \bottomrule zur Verfügung. Allerdings verträgt sich booktabs nicht gut mit vertikalen Linien. Das ist aber normalerweise kein Beinbruch, weil vertikalen Linien in Tabellen ohnehin eher mehr stören als helfen. Näheres zu booktabs (einschl. einigen Ratschlägen zu Tabellen) ist in dessen Anleitung zu finden.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2528
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Tabellensatz

Beitrag von Stefan Kottwitz »

Hallo,
diesen Link würde ich nicht empfehlen. Hier findet sich die aktuelle Version von 19. August 2008, vom Autor gepflegt, auf einer index-Seite (Ausgangspunkt) zusätzlich mehr als 20 Beispieldokumente zum Tabellensatz.

torsten-schuetze.de verweist noch auf etliche LaTeX-Dokumente, jedoch oft nicht auf die Originale (z.b. auf CTAN), sondern auf Kopien, die veralten, wenn man sie nicht aktualisiert.

Wenn in Foren und anderswo auf diese Kopien verlinkt wird, findet man sie über eine Suchmaschine natürlich eher als das Original, daher meine Bemerkung. Wenn ich die tabsatz-Adresse gerade nicht im Kopf habe, tippe ich eben tabsatz fu in die Suchmaschine ein. :roll:

Viele Grüße,

Stefan

Antworten