Hallo! Ich habe leider wieder ein kleines Problem mit meiner Tabelle. Zuvor habe ich die Spaltenbreite immer automatisch an dem Textinhalt der einzelnen Spalten definieren/bestimmen lassen. Nun möchte ich jedoch, dass die komplette Tabelle über die ganze Seite geht und dabei jede einzelnen Spalte (von insgesamt zwei Spalten) ungefähr die hälfte der Seite in Anspruch nimmt. Irgendwie funktioniert das mit meinem Befehl noch nicht mal, wenn ich irgendeine Breite festlege.

Open in writeLaTeX
\documentclass[11pt]{scrreprt}
\usepackage[top=2cm,left=3cm,right=3cm,bottom=4cm]{geometry}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs} %für schöne Linien in Tabellen
\usepackage{paralist}           
\usepackage{tikz}
\usetikzlibrary{mindmap,trees}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{positioning,shadings}
%----------------------------------------
\begin{document}
%----------------------------------------
\begin{table}[htbp] \caption{Beispiel}
  \begin{tabular}{p{5cm} l l p{5cm}}
    \toprule
    \multicolumn{2}{c}{\textbf{Ermittlungen der Anforderungen in Bezug auf das Produkt}}\\
    \midrule
    \multicolumn{1}{c}{SOLL-Zustand} & \multicolumn{1}{c}{IST-Zustand}\\
    \midrule
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam &  voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \\
    \bottomrule
  \end{tabular}
\end{table}
%--------------------------------
\end{document}

gefragt 09 Mai '14, 07:18

sascha's gravatar image

sascha
1711817
Akzeptiert: 80%

bearbeitet 09 Mai '14, 10:24

Bes's gravatar image

Bes
1411516

2

@sascha In \begin{tabular}{p{5cm} l l p{5cm}} definierst du insgesamt 4 Spalten: eine mit der Breite 5cm, dann zwei l Spalten und erst die vierte ist wieder 5cm breit. Im Tabellenkörper verwendest du dann nur die erste 5cm breite Spalte und eine l Spalte. Und dann ist da bei \begin{document} noch ein n zu viel.

(09 Mai '14, 07:59) esdd

Jetzt verstehe ich auch warum es nicht so funktioniert hat, wie ich es mir vorgestellt habe. Danke! Das doppelte n in begin{document} war so nicht geplant ;-)

(09 Mai '14, 09:43) sascha

Du lädst doch schon das Paket tabluarx, dann kannst du doch auch die gleichnamige Tabellenumgebung verwenden, \linewidth als gewünschte Breite vorgeben und für beide Spalten den Spaltentyp X angeben. Dann wird die Breite der Spalten automatisch so eingestellt, dass sie für beide gleich ist und die Tabelle die gesamte zur Verfügung stehende Breite einnimmt.

Wenn du für alle Tabellen Überschriften verwenden möchtest, dann kannst du mit der KOMA-Script Option captions=abovetable dafür sorgen, dass der Abstand zwischen der Tabellenüberschrift und der Tabelle richtig eingestellt wird.

Open in writeLaTeX
\documentclass[11pt,captions=abovetable]{scrreprt}
\usepackage[top=2cm,left=3cm,right=3cm,bottom=4cm]{geometry}

\usepackage{tabularx} % lädt auch array
\usepackage{booktabs} % schöne Linien in Tabellen
\usepackage{microtype} % besserer Randausgleich
\usepackage{blindtext}

\begin{document}
\begin{table}[htbp] \caption{Beispiel}
  \begin{tabularx}{\linewidth}{XX}
    \toprule
    \multicolumn{2}{c}{\textbf{Ermittlungen der Anforderungen in Bezug auf das Produkt}}\\
    \midrule
    \multicolumn{1}{c}{SOLL-Zustand} & \multicolumn{1}{c}{IST-Zustand}\\
    \midrule
    \blindtext&\blindtext[2]\\
    \bottomrule
  \end{tabularx}
\end{table}
\end{document}

alt text


Man kann die vorhandene Breite aber auch prozentual unterschiedlich auf die beiden Spalten verteilen lassen:

Open in writeLaTeX
  \begin{tabularx}{\linewidth}{
      >{\setlength\hsize{.8\hsize}}X% 1.Spalte
      >{\setlength\hsize{1.2\hsize}}X% 2.Spalte
    }

Die Summe aus den Faktoren muss gleich der Anzahl der X Spalten sein, hier also gleich Zwei. In dem Beispiel nimmt die 1.Spalte 0.8/2=40% und die zweite 1.2/2=60% der zur Verfügung stehenden Breite ein.

alt text

Je schmaler allerdings die Spalten sind, um so mehr sollte man darüber nachdenken, den Inhalt der Spalten linksbündig statt im Blocksatz zu setzen.

Permanenter link

beantwortet 09 Mai '14, 07:48

esdd's gravatar image

esdd
14.2k53251

bearbeitet 09 Mai '14, 08:26

1

Bei aller Vorsicht, die man mit dem Paket tabu walten lassen sollte, gefällt es mir für Spalten, deren Breite man in einem bestimmten Verhältnis haben möchte, analog Deinem Beispiel im Verhältnis 2:3 \begin{tabu}{X[2]X[3]}

(09 Mai '14, 08:32) Clemens

Ich schätze mal, das soll so aussehen:

alt text

Open in writeLaTeX
\documentclass[11pt]{scrreprt}
\usepackage[top=2cm,left=3cm,right=3cm,bottom=4cm]{geometry}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{booktabs} %für schöne Linien in Tabellen
\usepackage{paralist}

\usepackage{lipsum}
%----------------------------------------
\begin{document}
%----------------------------------------
\begin{table}[htbp] 
  \caption{Beispiel}
  \begin{tabular}{p{0.5\textwidth} p{0.5\textwidth}}
    \toprule
    \multicolumn{2}{c}{\textbf{Ermittlungen der Anforderungen in Bezug auf das Produkt}}\\
    \midrule
    \multicolumn{1}{c}{SOLL-Zustand} & \multicolumn{1}{c}{IST-Zustand}\\
    \midrule
    \lipsum[1-2]  & \lipsum[3-4], \\
    \bottomrule
  \end{tabular}
\end{table}
%--------------------------------
\end{document}
%--------------------------------
Permanenter link

beantwortet 09 Mai '14, 07:44

cis's gravatar image

cis
5.4k860169

bearbeitet 09 Mai '14, 10:25

Bes's gravatar image

Bes
1411516

2

@cis So wird die Tabelle zu breit. Du musst bei der Spaltendefinition noch den Spaltenabstand abziehen, also jeweils
p{\dimexpr0.5\textwidth-2\tabcolsep\relax}

(09 Mai '14, 08:04) esdd

Oje, solche komplizierten Sachen habe ich nicht parat; reicht das nicht wenn ich etwa

Open in writeLaTeX
 p{0.49\textwidth}}

setze?

(09 Mai '14, 13:01) cis
1

@cis Das ist gar nicht so kompliziert: jede Spalte ist links und rechts von einem horizontalen Abstand \tabcolsep umgeben. Da tabcolsep in der Voreinstellung 6pt beträgt, ist eine Tabelle mit {*{2}{p{.5\linewidth}}} (zwei Spalten der Breite .5\linewidth) insgesamt 24pt zu breit und Du erhältst im log auch entsprechend Overfull \hbox (24.0pt too wide). Folgerichtig muss man hier von der Spaltenbreite 2 mal \tabcolsep abziehen. Das kann man mit \dimexpr ... \relax machen wo ... eine Berechnung ist, nach der eine Länge übrig bleibt: \dimexpr.5\linewidth-2\tabcolsep\relax

(10 Mai '14, 09:03) Clemens

@cis Wenn du magst, kannst du den Inhalt meines Kommentars übernehmen und diesen dann löschen. Dann wäre das eine richtige Alternativlösung, insbesondere wenn die Gesamtbreite anders auf die Spalten verteilt werden soll.

(17 Jun '14, 06:09) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×8
×6

Frage gestellt: 09 Mai '14, 07:18

Frage wurde angeschaut: 3,951 Mal

Zuletzt aktualisiert: 17 Jun '14, 06:09