Spaltenbreite bei multicolumn

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Spaltenbreite bei multicolumn

Beliebige Längen

von Stamm- » Fr 9. Nov 2018, 17:09

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.

von Bartman » Fr 9. Nov 2018, 17:05

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}

von Jopo » Fr 9. Nov 2018, 16:29

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?

von Bartman » Fr 9. Nov 2018, 16:08

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.

Spaltenbreite bei multicolumn

von Jopo » Fr 9. Nov 2018, 15:41

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}

Nach oben