Seite 1 von 1

Spaltenbreite bei multicolumn

Verfasst: Fr 9. Nov 2018, 15:41
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.
\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}

Verfasst: Fr 9. Nov 2018, 16:08
von Bartman
Wie wäre es damit?
\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.

Verfasst: Fr 9. Nov 2018, 16:29
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?

Verfasst: Fr 9. Nov 2018, 17:05
von Bartman
Wenn die Tabelle wegen des Inhalts weniger als die Seitenbreite belegt:
\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}

Beliebige Längen

Verfasst: Fr 9. Nov 2018, 17:09
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.