Tabelle trotz \textwidth{} Einstellung breiter als Text

Tabellen und Grafiken erstellen und anordnen


FrankTank3000

Tabelle trotz \textwidth{} Einstellung breiter als Text

Beitrag von FrankTank3000 »

Hallo allerseits!

Ich hätte gerne eine Tabelle, die aus drei Spalten und mehreren Zeilen besteht. Sie soll maximal so breit sein, wie der Fließtext. In einem Latex Grundkurs wurde uns folgende Methode beigebracht:
\begin{table} [h]
\begin{tabular} {p{0.3\textwidth} p{0.05\textwidth} p{0.65\textwidth}}

\end{tabular}
\end{table}
Allerdings funktioniert das ganze bei mir nicht so richtig. Denn wenn ich folgendes Minimalbeispiel übersetzen lasse, dann ist die letzte Tabellenzeile deutlich breiter als der Fließtext darunter.
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}

\begin{document}

\section*{Heinrich}
\textbf{Krieger 6, Schurke 10} \newline
\textbf{mittelgroßer Humanoid (Feuer)}

\begin{table} [h]
\begin{tabular} {p{0.3\textwidth} p{0.05\textwidth} p{0.65\textwidth}}

\textbf{Trefferwürfel:} & & 16 (6W10+10W6+32), 120 TP \\
\textbf{Initiative:} & & +3 \\
\textbf{Geschwindigkeit:} & & 9m (6 Kästchen) \\
\textbf{GAB/Ringkampf:} & & 13/16 \\
\textbf{Rüstungsklasse:} & & 18 (10 +5 Rüstung +3 GE-Mod.), Berührung: 13, falscher Fuß: 15 \\

\end{tabular}
\end{table}

Lorem ipsum dolor sit amet, consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laborisnisi ut aliquip ex ea commodo consequat. Duis aute irure dolor inreprehenderit in voluptate velit esse cillum dolore eu fugiat nullapariatur. Excepteur sint occaecat cupidatat non proident, sunt inculpa qui officia deserunt mollit anim id est laborum.

\end{document}
Außerdem sah ich mich dazu gezwungen, die mittlere Spalte als eine Art Abstandhalter zwischen der ersten und der dritten einzubauen. Gibt es eine möglichkeit, einen Leerraum zwischen zwei benachbarten Spalten zu definieren?

Vielen Dank für jegliche Hilfe schonmal im voraus!

Mit freundlichen Grüßen,
Frank

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag von Epllus »

Dir ist mit dem Paket
\usepackage{tabularx}
geholfen:
\begin{table} [h] 
\begin{tabularx}{1\textwidth}{p{0.3\textwidth} X} 

\textbf{Trefferwürfel:}  & 16 (6W10+10W6+32), 120 TP \\ 
\textbf{Initiative:} &  +3 \\ 
\textbf{Geschwindigkeit:} & 9m (6 Kästchen) \\ 
\textbf{GAB/Ringkampf:}  & 13/16 \\ 
\textbf{Rüstungsklasse:}  & 18 (10 +5 Rüstung +3 GE-Mod.), Berührung: 13, falscher Fuß: 15 \\ 

\end{tabularx} 
\end{table} 
In der ersten Klammer nach
\begin{tabularx}
wird die Länge der Tabelle definiert. Und statt dem
p{0.65\textwidth}
schreibst du ein
X
.

Dies hat den Vorteil, dass X ein variabler Wert ist, und immer so ausgerechnet wird, dass die Tabelle definitiv die richtige Breite hat.

Wenn du möchtest, kannst du jetzt auch ohne Probleme einen Abstandhalter einbauen (obwohl ich dir davon abraten würde, es sieht nicht ganz so gut aus).


Auf die Frage, warum das vorher nicht funktioniert hat: Tut mir leid, ich hab keine Ahnung.

Grüße,
Epllus

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4271
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Tabelle trotz \textwidth{} Einstellung breiter als Text

Beitrag von u_fischer »

FrankTank3000 hat geschrieben:In einem Latex Grundkurs wurde uns folgende Methode beigebracht:
Die ist Quatsch, weil sie den Abstand vor, zwischen und nach den Zellen vergisst. (In deinem Fall (1+2+2+1)\tabcolsep)
FrankTank3000 hat geschrieben:Gibt es eine möglichkeit, einen Leerraum zwischen zwei benachbarten Spalten zu definieren?
Mit @{...} kannst du beliebiges Material (auch ein \hspace{...}) zwischen Zellen einfügen.
\documentclass{article}
\begin{document}
\begin{tabular}{l@{:\hspace{1cm}}l@{: blub}}
a&b
\end{tabular}
\end{document}

Antworten