von Noch so einer » Mo 18. Jan 2016, 16:15
Zunächst einmal ist es unsinnig, eine Gleitumgebung wie table in eine center-Umgebung zu packen. Da die Umgebung nun einmal gleitet, gleitet sie auch aus dieser Umgebung heraus. Sinnvoll wäre beispielsweise die Anweisung \centering in der table-Umgebung. Tatsächlich vermute ich aber, dass Du gar keine table-Umgebung haben willst. Jedenfalls deutet Deine longtabe-Ergänzungsfrage darauf hin. Gleitumgebungen können nicht über mehrere Seiten umbrochen werden. Also sollte man die table eher weglassen.
Dann hast Du das optionale Argument von tabular offenbar nicht verstanden. Darin irgend eine Länge anzugeben ist Unsinn. Es dient ausschließlich der vertikalen Anordnung der Tabelle. Dazu gibt es lediglich die drei Buchstaben t für top (oberste Grundlinie der Tabelle auf der aktuellen Grundlinie) c für centre (Tabelle wird vertikal zu aktuellen Grundlinie zentriert) oder b für bottom (unterste Grundlinie der Tabelle auf der aktuellen Grundlinie. Dabei ist das Zentrieren bereits die Voreinstellung.
Dann muss man natürlich die Spaltenabstände, die es auch am Anfang der ersten Spalte und am Ende der letzten Spalte gibt, berücksichtigen. Das geht am einfachsten, indem man nicht nur die Zeilen oder Zellen der inneren Tabelle, sondern schlicht die Zellen der äußeren Tabelle färbt:
\documentclass[11pt,a4paper,twoside=semi, bibliography=totoc, listof=totoc, openany
]{scrbook} %[Formal, Format, Format,Literaturverzeichnis in Inhaltsvrezeichnis, Abkürzungs-und Variablenverzeichnis im Inhaltsverzeichnis] doppelseitig, aber keine variablen Seitenränder
\usepackage[left=3cm,right=2.5cm,top=3.2cm,bottom=2.5cm, bindingoffset=0cm]{geometry} % Seitenabstände festlegen
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % Für europäische Schriftzeichen
\usepackage{xcolor} % Pakete für Farben
\usepackage{array}
\usepackage[]{graphicx} %um grafiken einzufü
\usepackage{colortbl} % für farbliche Hinterlegung der Tabellenzellen
\usepackage{multirow} % für Tabellen
\usepackage{rotating} % um senkrechten text in Tabellen schreiben zu können
\usepackage{hhline}
\usepackage{color}
\definecolor{hellgrau}{gray}{0.9}
\definecolor{coralpink}{rgb}{0.97, 0.51, 0.47}
\definecolor{peach}{rgb}{1.0,0.9,0.71}
\definecolor{babyblue}{rgb}{0.54,0.81,0.94}
% Definition der Farben für Unterlegung von Tabellen
% peach [1.0,0.9,0.71]
% babyblue{0.54, 0.81, 0.94}
% bittersweet {1.0, 0.44, 0.37}
\newcommand{\ltab}{\raggedright\arraybackslash} % Tabellenabschnitt linksbündig
\newcommand{\ctab}{\centering\arraybackslash} % Tabellenabschnitt zentriert
\newcommand{\rtab}{\raggedleft\arraybackslash} % Tabellenabschnitt rechtsbündig
\usepackage{longtable}
\begin{document}
\begin{center}
%\begin{table}
\begin{tabular}{|p{0.5cm}|p{14.1cm}|}
\hline
\cellcolor{coralpink} \rotatebox[origin=c]{90}{\textbf{vertikaler Eintrag}}
& \begin{tabular}[c]{@{}p{14.1cm}@{}}\cellcolor{peach}
\begin{tabular}{@{}p{6cm}p{6.85cm}@{}}% Das ist weniger als 14.1cm?!?
\ctab \textbf{Spalte links} & \textbf{Spalte rechts}
\end{tabular}
\\
\cellcolor{babyblue}
\ctab 1. Abschnitt
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2
\end{tabular}
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
2. Eintrag Spalte 2& 2. Eintrag Spalte 2
\end{tabular}
\\
\cellcolor{babyblue} \ctab 2. Abschnitt
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2
\end{tabular}
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
2. Eintrag Spalte 2& 2. Eintrag Spalte 2
\end{tabular}
\\
\end{tabular}
\\
\hline
\end{tabular}
%\end{table}
\end{center}
\end{document}
Allerdings ist die Tabelle so unnötig kompliziert. Schön wäre auch, wenn Du bei einem
Minimalbeispiel alles weglassen würdest, was unerheblich ist:
\documentclass[11pt,a4paper,twoside=semi, bibliography=totoc, listof=totoc, openany
]{scrbook} %[Formal, Format, Format,Literaturverzeichnis in Inhaltsvrezeichnis, Abkürzungs-und Variablenverzeichnis im Inhaltsverzeichnis] doppelseitig, aber keine variablen Seitenränder
\usepackage[left=3cm,right=2.5cm,top=3.2cm,bottom=2.5cm, bindingoffset=0cm]{geometry} % Seitenabstände festlegen
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % Für europäische Schriftzeichen
\usepackage{graphicx}
\usepackage[table]{xcolor} % Pakete für Farben einschließlich Tabellenbehandlung
\usepackage{array}
\definecolor{coralpink}{rgb}{0.97, 0.51, 0.47}
\definecolor{peach}{rgb}{1.0,0.9,0.71}
\definecolor{babyblue}{rgb}{0.54,0.81,0.94}
\newcommand*{\textth}[1]{\cellcolor{peach}\textbf{#1}}% Hervorhebung für Tabellenköpfe
\begin{document}
\begin{center}
\begin{tabular}{|c|c|}% Breite der zweiten Spalte ergibt sich aus der Breite
% der inneren Tabelle
\hline
\cellcolor{coralpink} \rotatebox[origin=c]{90}{\small\textbf{vertikaler Eintrag}} &
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}
\multicolumn{1}{@{}c}{\textth{Spalte links}} &
\multicolumn{1}{c@{}}{\textth{Spalte rechts}} \\
\multicolumn{2}{@{}c@{}}{\cellcolor{babyblue}1. Abschnitt} \\
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2 \\
2. Eintrag Spalte 2& 2. Eintrag Spalte 2 \\
\multicolumn{2}{@{}c@{}}{\cellcolor{babyblue}2. Abschnitt} \\
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2\\
2. Eintrag Spalte 2& 2. Eintrag Spalte 2\\
\end{tabular}\\
\hline
\end{tabular}
\end{center}
\end{document}
Der zweite Code ist IMHO nicht nur wesentlich kompakter, sondern auch leichter zu verstehen. Durch das kleineres Setzen des vertikalen Textes wird außerdem vermieden, dass dieser zu sehr am oberen und unteren Rand klebt.
Man könnte auch noch
tabularx bzw.
ltablex zum Einsatz bringen, um statt Spaltenbreiten die Tabellenbreite vorzugeben, falls das gewünscht ist. Die Umgebung tabularx hat dann in der Tat ein Argument für die Tabellenbreite, die aber nur einen Sinn hat, wenn auch min. eine x-Spalte existiert.
Zunächst einmal ist es unsinnig, eine Gleitumgebung wie [tt]table[/tt] in eine [tt]center[/tt]-Umgebung zu packen. Da die Umgebung nun einmal gleitet, gleitet sie auch aus dieser Umgebung heraus. Sinnvoll wäre beispielsweise die Anweisung [tt]\centering[/tt] in der [tt]table[/tt]-Umgebung. Tatsächlich vermute ich aber, dass Du gar keine [tt]table[/tt]-Umgebung haben willst. Jedenfalls deutet Deine [tt]longtabe[/tt]-Ergänzungsfrage darauf hin. Gleitumgebungen können nicht über mehrere Seiten umbrochen werden. Also sollte man die [tt]table[/tt] eher weglassen.
Dann hast Du das optionale Argument von [tt]tabular[/tt] offenbar nicht verstanden. Darin irgend eine Länge anzugeben ist Unsinn. Es dient ausschließlich der vertikalen Anordnung der Tabelle. Dazu gibt es lediglich die drei Buchstaben [tt]t[/tt] für top (oberste Grundlinie der Tabelle auf der aktuellen Grundlinie) [tt]c[/tt] für centre (Tabelle wird vertikal zu aktuellen Grundlinie zentriert) oder [tt]b[/tt] für bottom (unterste Grundlinie der Tabelle auf der aktuellen Grundlinie. Dabei ist das Zentrieren bereits die Voreinstellung.
Dann muss man natürlich die Spaltenabstände, die es auch am Anfang der ersten Spalte und am Ende der letzten Spalte gibt, berücksichtigen. Das geht am einfachsten, indem man nicht nur die Zeilen oder Zellen der inneren Tabelle, sondern schlicht die Zellen der äußeren Tabelle färbt: [code]\documentclass[11pt,a4paper,twoside=semi, bibliography=totoc, listof=totoc, openany
]{scrbook} %[Formal, Format, Format,Literaturverzeichnis in Inhaltsvrezeichnis, Abkürzungs-und Variablenverzeichnis im Inhaltsverzeichnis] doppelseitig, aber keine variablen Seitenränder
\usepackage[left=3cm,right=2.5cm,top=3.2cm,bottom=2.5cm, bindingoffset=0cm]{geometry} % Seitenabstände festlegen
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % Für europäische Schriftzeichen
\usepackage{xcolor} % Pakete für Farben
\usepackage{array}
\usepackage[]{graphicx} %um grafiken einzufü
\usepackage{colortbl} % für farbliche Hinterlegung der Tabellenzellen
\usepackage{multirow} % für Tabellen
\usepackage{rotating} % um senkrechten text in Tabellen schreiben zu können
\usepackage{hhline}
\usepackage{color}
\definecolor{hellgrau}{gray}{0.9}
\definecolor{coralpink}{rgb}{0.97, 0.51, 0.47}
\definecolor{peach}{rgb}{1.0,0.9,0.71}
\definecolor{babyblue}{rgb}{0.54,0.81,0.94}
% Definition der Farben für Unterlegung von Tabellen
% peach [1.0,0.9,0.71]
% babyblue{0.54, 0.81, 0.94}
% bittersweet {1.0, 0.44, 0.37}
\newcommand{\ltab}{\raggedright\arraybackslash} % Tabellenabschnitt linksbündig
\newcommand{\ctab}{\centering\arraybackslash} % Tabellenabschnitt zentriert
\newcommand{\rtab}{\raggedleft\arraybackslash} % Tabellenabschnitt rechtsbündig
\usepackage{longtable}
\begin{document}
\begin{center}
%\begin{table}
\begin{tabular}{|p{0.5cm}|p{14.1cm}|}
\hline
\cellcolor{coralpink} \rotatebox[origin=c]{90}{\textbf{vertikaler Eintrag}}
& \begin{tabular}[c]{@{}p{14.1cm}@{}}\cellcolor{peach}
\begin{tabular}{@{}p{6cm}p{6.85cm}@{}}% Das ist weniger als 14.1cm?!?
\ctab \textbf{Spalte links} & \textbf{Spalte rechts}
\end{tabular}
\\
\cellcolor{babyblue}
\ctab 1. Abschnitt
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2
\end{tabular}
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
2. Eintrag Spalte 2& 2. Eintrag Spalte 2
\end{tabular}
\\
\cellcolor{babyblue} \ctab 2. Abschnitt
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2
\end{tabular}
\\
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}% Das ist weniger als 14.1cm?!?
2. Eintrag Spalte 2& 2. Eintrag Spalte 2
\end{tabular}
\\
\end{tabular}
\\
\hline
\end{tabular}
%\end{table}
\end{center}
\end{document}[/code]
Allerdings ist die Tabelle so unnötig kompliziert. Schön wäre auch, wenn Du bei einem [m][/m] alles weglassen würdest, was unerheblich ist: [code]\documentclass[11pt,a4paper,twoside=semi, bibliography=totoc, listof=totoc, openany
]{scrbook} %[Formal, Format, Format,Literaturverzeichnis in Inhaltsvrezeichnis, Abkürzungs-und Variablenverzeichnis im Inhaltsverzeichnis] doppelseitig, aber keine variablen Seitenränder
\usepackage[left=3cm,right=2.5cm,top=3.2cm,bottom=2.5cm, bindingoffset=0cm]{geometry} % Seitenabstände festlegen
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} % Für europäische Schriftzeichen
\usepackage{graphicx}
\usepackage[table]{xcolor} % Pakete für Farben einschließlich Tabellenbehandlung
\usepackage{array}
\definecolor{coralpink}{rgb}{0.97, 0.51, 0.47}
\definecolor{peach}{rgb}{1.0,0.9,0.71}
\definecolor{babyblue}{rgb}{0.54,0.81,0.94}
\newcommand*{\textth}[1]{\cellcolor{peach}\textbf{#1}}% Hervorhebung für Tabellenköpfe
\begin{document}
\begin{center}
\begin{tabular}{|c|c|}% Breite der zweiten Spalte ergibt sich aus der Breite
% der inneren Tabelle
\hline
\cellcolor{coralpink} \rotatebox[origin=c]{90}{\small\textbf{vertikaler Eintrag}} &
\begin{tabular}{@{}p{5cm}|p{8cm}@{}}
\multicolumn{1}{@{}c}{\textth{Spalte links}} &
\multicolumn{1}{c@{}}{\textth{Spalte rechts}} \\
\multicolumn{2}{@{}c@{}}{\cellcolor{babyblue}1. Abschnitt} \\
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2 \\
2. Eintrag Spalte 2& 2. Eintrag Spalte 2 \\
\multicolumn{2}{@{}c@{}}{\cellcolor{babyblue}2. Abschnitt} \\
1. Eintrag Spalte 1 & 1. Eintrag Spalte 2\\
2. Eintrag Spalte 2& 2. Eintrag Spalte 2\\
\end{tabular}\\
\hline
\end{tabular}
\end{center}
\end{document}[/code]
Der zweite Code ist IMHO nicht nur wesentlich kompakter, sondern auch leichter zu verstehen. Durch das kleineres Setzen des vertikalen Textes wird außerdem vermieden, dass dieser zu sehr am oberen und unteren Rand klebt.
Man könnte auch noch [p]tabularx[/p] bzw. [p]ltablex[/p] zum Einsatz bringen, um statt Spaltenbreiten die Tabellenbreite vorzugeben, falls das gewünscht ist. Die Umgebung [tt]tabularx[/tt] hat dann in der Tat ein Argument für die Tabellenbreite, die aber nur einen Sinn hat, wenn auch min. eine [tt]x[/tt]-Spalte existiert.