Tabelle entweder zentriert oder auf Seitenbreite angepasst

Tabellen und Grafiken erstellen und anordnen


sqk88025

Tabelle entweder zentriert oder auf Seitenbreite angepasst

Beitrag von sqk88025 »

Hallo,
ich habe das Problem, dass meine Tabelle entweder auf die Seitenbreite angepasst ist aber die Abstände zwischen den Wörtern nicht passen. Oder die Tabelle ist zentriert, ragt aber über den rand hinaus.
\begin{table}[]
	\caption{Name der Tabelle}
	\begin{tabularx}{\columnwidth}{|c|c|c|c|}		\hline
		\multirow{2}{*}{}				& \multicolumn{2}{c}{spannungsabh"angig} 											& \multirow{2}{*}{spannungsunabh"angig}  \\ \cline{2-3}
										& sofort auftretend 						& zeitabh"angig 						&  \\ \hline
		umkehrbar, reversibel 			& elastisch $\epsilon_{el}$					& verz"ogert elastisch $\epsilon_{v}$	& W"armedehnung $\epsilon_{T}$ Feuchtedehnung $\epsilon_{s}$  \\ \hline
		nicht umkehrbar, irreversibel 	& Flie"sen, plastisch $\epsilon_{pl}$		& Kriechen viskos $\epsilon_{kr}$		& chemische Dehnung  \\ \hline
	\end{tabularx}
\end{table}


oder
\begin{table}[]
	\caption{Name der Tabelle}
	\begin{tabularx}{\columnwidth}{|X|X|X|X|}
		\hline
		\multirow{2}{*}{}				& \multicolumn{2}{c}{spannungsabh"angig} 											& \multirow{2}{*}{spannungsunabh"angig}  \\ \cline{2-3}
										& sofort auftretend 						& zeitabh"angig 						&  \\ \hline
		umkehrbar, reversibel 			& elastisch $\epsilon_{el}$					& verz"ogert elastisch $\epsilon_{v}$	& W"armedehnung $\epsilon_{T}$ Feuchtedehnung $\epsilon_{s}$  \\ \hline
		nicht umkehrbar, irreversibel 	& Flie"sen, plastisch $\epsilon_{pl}$		& Kriechen viskos $\epsilon_{kr}$		& chemische Dehnung  \\ \hline
	\end{tabularx}
\end{table}
Ich möchte erreichen, dass die Tabelle sowohl auf die seitenbreite angepasst ist aber gleichzeitig der Inhalt der einzelnen Tabellenkästen jeweils zentriert ist.
Hat dazu jemand eine Idee?

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

Beitrag von Bartman »

Da Dein Beispiel unvollständig ist, habe ich eine Dokumentklasse meiner Wahl benutzt.

Mein Vorschlag:
\documentclass[captions=tableheading]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{ragged2e}% für \Centering
\usepackage{showframe}

\begin{document}
\begin{table}
	\caption{Name der Tabelle}
	% siehe tabularx.pdf und https://texwelt.de/wissen/fragen/97
	\renewcommand{\tabularxcolumn}[1]{>{\hspace{0pt}\Centering}p{#1}}
	\begin{tabularx}{\columnwidth}{*4X}
	\toprule
	& \multicolumn{2}{c}{spannungsabh"angig} & spannungsunabh"angig\\
	\cmidrule(lr){2-3}
	& sofort auftretend & zeitabh"angig &\\
	\midrule
	umkehrbar, reversibel
	& elastisch $\epsilon_{\mathrm{el}}$ 
	& verz"ogert elastisch $\epsilon_v$   
	& W"armedehnung $\epsilon_T$ Feuchtedehnung $\epsilon_s$\\
	\addlinespace
	nicht umkehrbar, irreversibel
	& Flie"sen, plastisch $\epsilon_{\mathrm{pl}}$ 
	& Kriechen viskos $\epsilon_{\mathrm{kr}}$ 
	& chemische Dehnung\\
	\bottomrule
	\end{tabularx}
\end{table}
\end{document}

sqk88025

Beitrag von sqk88025 »

Es funktioniert geradezu perfekt ! Vielen Dank. Gibt es eine Möglichkeit auch noch senkrechte Tabellenlinien einzufügen?

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

Beitrag von Bartman »

Man kann technisch gesehen die Befehle von booktabs mit senkrechten Linien kombinieren. Das Paket ist aber laut Anleitung dazu gedacht, ohne diese Linien auszukommen. Wenn Du senkrechte Linien einsetzen musst, dann wäre es besser, bei den \hline-Befehlen zu bleiben.

Probiere es aus und zeige uns das Ergebnis Deiner Bemühungen.

sqk88025

Beitrag von sqk88025 »

so soll es aussehen:

Bild

macht es leider noch nicht . \vline bringt nicht das gewünschte ergebnis

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

Beitrag von Bartman »

Wo ist das Beispiel, in welchem Du mit \vline arbeitest?
\documentclass[captions=tableheading]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{showframe}

\begin{document}
\begin{table}
	\caption{Name der Tabelle}
	\footnotesize
	\renewcommand{\arraystretch}{1.4}
	\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}m{#1}}
	\newcommand{\thead}[1]{\textbf{#1}}
	\newcolumntype{C}{>{\centering}m{3cm}}
	\begin{tabularx}{\columnwidth}{
		|>{\bfseries}X
		|C|C
		|X|
	}
	\hline
	& \multicolumn{2}{c|}{\thead{spannungsabh"angig}} 
	& \multirow{2}{*}{\thead{spannungsunabh"angig}}\\
	\cline{2-3}
	& \thead{sofort auftretend} & \thead{zeitabh"angig} &\\
	\hline
	umkehrbar, reversibel
	& elastisch\linebreak $\epsilon_{\mathrm{el}}$ 
	& verz"ogert elastisch\linebreak $\epsilon_v$   
	& W"armedehnung $\epsilon_T$ Feuchtedehnung $\epsilon_s$\\
	\hline
	nicht umkehrbar, irreversibel
	& Flie"sen, plastisch\linebreak $\epsilon_{\mathrm{pl}}$ 
	& Kriechen viskos\linebreak $\epsilon_{\mathrm{kr}}$ 
	& chemische Dehnung\\
	\hline
	\end{tabularx}
\end{table}
\end{document}

sqk88025

Beitrag von sqk88025 »

Hallo, es funktioniert schon fast perfekt. Danke für die vielen Feinheiten die du angepasst hast. So weit war ich noch gar nicht :D

Leider ist hier meine Seitebreite zu schmal, sodass das Wort immer über den Tabellenrand hinaus ragt. Mit \newline oder \\ oder \linebreak möchte er aber keine neu Zeile beginnen, selbst wenn ich das Wort manuell trenne. Kann ich ihm irgendwie mitteilen, das dieses Tabellenfeld auch aus zwei Zeilen bestehen kann?
	& \multirow{2}{*}{\thead{spannungs-\newline unabh"angig}}\\
Bild

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

Beitrag von Bartman »

& \multirow{2}{*}{\parbox{\linewidth}{\centering\thead{spannungs"-unabh"angig}}}\\

sqk88025

Beitrag von sqk88025 »

Erste Sahne! Läuft. Vielen Dank

Antworten