Spaltenbreite in Tabelle verändern

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.
Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Spaltenbreite in Tabelle verändern

Beitrag von Jens2102 »

Hallo zusammen,

ich könnte eure Hilfe gebrauchen. Ich möchte eine Tabelle erstellen in der alle Spalten gleich breit sind. In einigen Zeilen sollen die Spalten außerdem teilweise verbunden sein. Ein Beispiel welches schon ca meinen Vorstellungen entspricht ist folgendes:

Code: Alles auswählen

\documentclass[13pt, a4paper]{scrartcl}
\usepackage{booktabs,tabularx}
\usepackage{biblatex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabu}

\begin{document}
\begin{table}[!htbp]
\centering
\caption {Ich bastel mir meine Tabelle}
\begingroup
\setlength{\tabcolsep}{1cm}   
\begin{tabular}{|c|c|c|c|c|c|c|}
  \hline
  \multicolumn{7}{|c|}{Bezeichnungen} \\
  \hline
  \multicolumn{2}{|c|}{chemische Bezeichnung} & \multicolumn{2}{|c|}{Werkstoffnummer} & \multicolumn{3}{|c|}{Internat. Bezeichnung} \\
  \hline
  1 & 2 & 3 & 4 & 1 & 2 & 3 \\
  \hline
  &   &   &  &  &  &  \\
  \hline
  \multicolumn{3}{|c|}{a} & \multicolumn{4}{|c|}{}\\
  \hline
\end{tabular}
\endgroup
\label{Legierungselemente}
\end{table}
\end{document}
Die Spalte zwei ist jedoch deutlich breiter als bspw. Spalte eins.

Außerdem würde ich am liebsten die letzte Zeile in zwei gleichgroße Spalten unterteilen und nicht links über drei und rechts über 4 Spalten gehen.

Ich habe mal ein Bild von einer Tabelle angehängt wie ich es am Ende gerne hätte. Auch die grau hinterlegten Zellen hätte ich gerne. Mit \rowcolor[gray]{.6} funktioniert es aber leider nicht zusammen mit \multicolumn in einer Zeile...

Kann mir da jemand helfen? :)

Vielen Dank schon mal im Voraus

Jens
Dateianhänge
IMG_20191109_120333.jpg
IMG_20191109_120333.jpg (2.07 MiB) 140 mal betrachtet

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

Beitrag von Bartman »

Wie hänge ich ein Bild an meine Frage?

Ein Vorschlag:

Code: Alles auswählen

\documentclass[fontsize=13pt, captions=tableheading]{scrartcl}% <- geändert
%\usepackage[utf8]{inputenc} nur noch bei einer älteren TeX-Distribution erforderlich
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\usepackage[locale=DE]{siunitx}% für \SI
\usepackage{showframe}

\begin{document}
\begin{table}[htbp]
\footnotesize
\caption{Ich bastel mir meine Tabelle}
\label{tab:Legierungselemente}
{\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}p{#1}}
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
\rowcolor{lightgray}
\multicolumn{3}{|c|}{Bezeichnungen} \\
\hline
Chemische Bezeichnung & Werkstoffnummer & Internat. Bezeichnung \\
\hline
Text & Text & Text\\
\hline
\end{tabularx}%
\vspace{-1.4pt}
\begin{tabularx}{\textwidth}{|*9{X|}}
\hline
\rowcolor{lightgray}
\multicolumn{9}{|c|}{Chemische Zusammensetzung}\\
\hline
Text & Text & Text & Text & Text & Text & Text & Text & Text\\
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9\\
\hline
\end{tabularx}}%
\vspace{-1.4pt}
\begin{tabularx}{\textwidth}{|X|X|}
\hline
\rowcolor{lightgray}
\multicolumn{2}{|c|}{Mechanische und physikalische Eigenschaften}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
Text & \SI{120}{\MPa}\\
\hline
\end{tabularx}
\end{table}
\end{document}
Du könntest die Färbung der Zeilen auch weglassen und das bereits in Deiner Präambel geladene Paket booktabs benutzen.

Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Danke...aber

Beitrag von Jens2102 »

Das klappt soweit schon mal gut :) Vielen Dank für die Hilfe. Jetzt habe ich nur noch das Problem, dass ich einen Werkstoff mit 10 verschiedenen Elementen habe. Sprich ich brauche 10 Spalten. Aber das funktioniert irgendwie nicht :? liegt das an der multicolumn?

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

Beitrag von Bartman »

Wo ist das Problem? Laut Deinem Wunsch braucht die zweite Tabelle eine weitere Spalte. Dafür änderst Du das Argument des genannten Befehls, das Argument der tabularx-Umgebung und fügst weitere Et-Zeichen ein.

Achtung: Der Faktor des Spaltentyps im zweiten erforderlichen Argument der Tabellenumgebung benötigt ab einer zweistelligen Zahl geschweifte Klammern.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4014
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Bartman hat geschrieben: \begin{tabularx}{\textwidth}{|X|X|X|}
Wenn alle Spalten X-Spalten sind, braucht man tabularx nicht. Es macht einem nur das Leben schwer, wenn man \multicolumn verwendet.

Einfach ein bisschen rechnen, ist da viel vernünftiger:

Code: Alles auswählen

\documentclass{article}
\usepackage{xfp,array}

\begin{document}
\newcommand\mytabwidth[1]{\fpeval{(\textwidth-(#1+1)\arrayrulewidth-(#1*2)\tabcolsep)/#1}pt}

\noindent
x\hfill y

\noindent\begin{tabular}{|p{\mytabwidth{3}}|p{\mytabwidth{3}}|p{\mytabwidth{3}}|}
abc & abc &abc
\end{tabular}

\end{document}

Antworten