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, 13:18

sascha's gravatar image

sascha
17171017
Akzeptiert-Rate: 50%

bearbeitet 09 Mai '14, 16:24

Bes's gravatar image

Bes
2913937

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, 13: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, 15: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, 13:48

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 09 Mai '14, 14: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, 14:32) cgnieder

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, 13:44

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 09 Mai '14, 16:25

Bes's gravatar image

Bes
2913937

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, 14: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, 19: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, 15:03) cgnieder

@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, 12:09) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×256
×10
×9

gestellte Frage: 09 Mai '14, 13:18

Frage wurde gesehen: 14,128 Mal

zuletzt geändert: 17 Jun '14, 12:09