Spaltenbreite bei multicolumn

Tabellen und Grafiken erstellen und anordnen


Jopo
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 28. Jun 2018, 08:19

Spaltenbreite bei multicolumn

Beitrag von Jopo »

Hallo,

ich bekomme es leider nicht hin, zwei Spalten mit der gleichen Breite zu erzeugen. Mein Beispiel sollte das Problem deutlich machen.
Die Spalten "links" und "rechts" sollen beide eigentlich die gleiche Breite besitzen. Also der "stricht", der diese beiden trennt soll in die mitte.

Code: Alles auswählen

\documentclass{article}
\begin{document}

\begin{table}
	\centering
	\caption{Meine Tabelle}
	\begin{tabular}{|c|c|c|c|c|}
		\hline
		{} & \multicolumn{2}{c|}{Hier steht ein etwas l\"angerer Text} & \multicolumn{2}{c|}{Hier steht auch kein kurzer Text} \\
		Eine Nummer & Links & Rechts & Links & Rechts \\
		\hline
		1 & X & X & X & X\\
		2 & X & X & X & X\\
		3 & X & X & X & X\\
		4 & X & X & X & X\\
		\hline
	\end{tabular}
\end{table}

\end{document}

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2138
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Wie wäre es damit?

Code: Alles auswählen

\documentclass{article}
\usepackage{tabularx}
\usepackage{caption}% für den Abstand der Tabellenbeschriftung zur Tabelle
\usepackage{showframe}

\newcommand{\thead}[1]{\begin{tabular}[t]{c}#1\end{tabular}}

\begin{document}
\begin{table}
   \centering
   \caption{Meine Tabelle}
   \renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}p{#1}}% siehe tabularx.pdf
   \begin{tabularx}{\textwidth}{|c|*4{X|}}
      \hline
      & \multicolumn{2}{c|}{\thead{Hier steht ein etwas\\l\"angerer Text}} 
      & \multicolumn{2}{c|}{\thead{Hier steht auch kein\\kurzer Text}} \\
      \cline{2-5}
      \thead{Eine\\Nummer} & Links & Rechts & Links & Rechts \\
      \hline
      1 & X & X & X & X\\
      2 & X & X & X & X\\
      3 & X & X & X & X\\
      4 & X & X & X & X\\
      \hline
   \end{tabularx}
\end{table}
\end{document}
Wenn Du booktabs nutzen darfst, dann empfehle ich, auf die senkrechten Striche zu verzichten.

In einer LaTeX-Einführung erfährst Du, unter welchen Bedingungen Du Umlaute im Quelltext eingeben kannst.
Zuletzt geändert von Bartman am Fr 9. Nov 2018, 21:33, insgesamt 1-mal geändert.

Jopo
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Do 28. Jun 2018, 08:19

Beitrag von Jopo »

Bartman hat geschrieben:Wie wäre es damit?
Das ist genau das, was ich gesucht habe; super, dankesehr! :)

Die neue Tabell erstreckt sich nun aber über die ganze Textbreite, also über die ganze Seite. Gibt's hier vielleicht noch einen kurzen Trick, die Tabelle nur auf die Breite zu schrumpfen, die auch wirklich benötigt wird?

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2138
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Wenn die Tabelle wegen des Inhalts weniger als die Seitenbreite belegt:

Code: Alles auswählen

\documentclass{article}
\usepackage{array}
\usepackage{caption}% für den Abstand der Tabellenbeschriftung zur Tabelle
\usepackage{showframe}

\newcommand{\thead}[1]{\begin{tabular}[t]{c}#1\end{tabular}}

\begin{document}
\begin{table}
   \centering
   \caption{Meine Tabelle}
   \newlength{\cellwidth}
   \settowidth{\cellwidth}{Rechts}% Der Text der breitesten Zelle bestimmt die Spaltenbreite der vier Spalten.
   \newcolumntype{C}{>{\centering\arraybackslash}p{\cellwidth}}
   \begin{tabular}{|c|*4{C|}}
      \hline
      & \multicolumn{2}{c|}{\thead{Hier steht\\ein etwas\\l\"angerer Text}} 
      & \multicolumn{2}{c|}{\thead{Hier steht\\auch kein\\kurzer Text}} \\
      \cline{2-5}
      \thead{Eine\\Nummer} & Links & Rechts & Links & Rechts \\
      \hline
      1 & X & X & X & X\\
      2 & X & X & X & X\\
      3 & X & X & X & X\\
      4 & X & X & X & X\\
      \hline
   \end{tabular}
\end{table}
\end{document}
Zuletzt geändert von Bartman am Fr 9. Nov 2018, 21:26, insgesamt 2-mal geändert.

Stamm-

Beliebige Längen

Beitrag von Stamm- »

Jopo hat geschrieben:[…] Gibt's hier vielleicht noch einen kurzen Trick, die Tabelle nur auf die Breite zu schrumpfen, die auch wirklich benötigt wird?
Da braucht es keinen Trick, nur etwas Wissen über (La)TeX-Längen. Die Breite der Tabelle ist auf \textwidth gesetzt. Vor solche Lägenparameter lassen sich auch Faktoren setzen, so dass mit 0.5\textwidth die Tabelle auf die Hälfte der Textbreite schrumpft. Variabler sind \linewidth und \columnwidth. Es lassen sich auch andere Breiten beispielsweise mit \hspace{10em} einstellen.

Antworten