Tabelle m.H.v. multicolumn erstellen

Tabellen und Grafiken erstellen und anordnen


PatKi
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 18:38

Tabelle m.H.v. multicolumn erstellen

Beitrag von PatKi »

Hallo zusammen,

ich bin Latex-Anfänger und habe schon eine Weile versucht eine etwas komplexere Tabelle in Latex zu erstellen. Ich denke, ich bin mit viel googeln schon ganz gut voran gekommen, aber jetzt komme ich einfach nicht weiter. Ich arbeite mit Texmaker unter Windows 7, falls das relevant sein sollte.

Hier nun mein Problem: Mein Ziel ist es eine Tabelle zu erstellen, wie Ihr dem Bild im Anhang entnehmen könnt. Auf dem Weg dorthin, habe ich nun versucht als erstes die richtige Spalten- und Zeilenaufteilung mit Latex umzusetzen. Dafür nutze ich vor allem den Befehl "multicolumn". Ich kann die auf Basis des unten stehenden Beispielcodes auch setzen, allerdings mit folgenden Schönheitsfehlern:
1. Spaltenbreiten entsprechen nicht meiner definierten Breite von 20mm pro Spalte.
2. Die Linienstärken variieren leider, einige Spaltenlinien sind dicker als der Rest.

Ich würde mich freuen, wenn mir jemand helfen könnte! Vielen Dank schon mal vorab, ich hoffe, ich habe keine Infos vergessen.

PS: Vermutlich sind in meinem Beispielcode mehr Packages aufgerufen, als notwendig. Liegt einfach daran, dass ich diese aus meiner eigentlichen Hauptdatei kopiert habe und sichergehen möchte, dass am Ende alles zusammenpasst.

Mein Minimalbeispiel:
 

\documentclass[a4paper, 11pt, oneside, ngerman, openany]{scrbook} 
\usepackage[T1]{fontenc} % Schriftverbesserung
\usepackage[ngerman]{babel}%deutscher Satzbau
\usepackage[latin9]{inputenc} % mit ISO *-15
\usepackage{scrpage2} % zur Manipulation der Kopf und Fusszeilen
\usepackage{makeidx} % zum Erstellen und Indexen (Abkürzungsverzeichnis)
\makeindex
\usepackage{graphicx} % zum Einbinden von Grafiken und Bilddateien
\usepackage[intoc]{nomencl} % Abkuerzungsverzeichnis (und ins Inhaltsverzeichnis aufnehmen)
\let\abk\nomenclature % Befehl umbenennen in abk 
\renewcommand{\nomname}{Abkürzungsverzeichnis} % Deutsche Überschrift
\setlength{\nomlabelwidth}{.20\hsize} % Punkte zw. Abkürzung und Erklärung
\renewcommand{\nomlabel}[1]{#1 \dotfill} % Punkte zw. Abkürzung und Erklärung
\setlength{\nomitemsep}{-\parsep} % Zeilenabstände verkleinern
\makenomenclature
\usepackage[vcentering,dvips]{geometry} % Seitengröße definieren
\geometry{papersize={209.9mm,297mm},total={160mm,247mm}}
\usepackage{color} % um Text zu färben 
\usepackage{endnotes} % End- und Fußnoten
\usepackage{url} % Weblinks
\usepackage{hyperref} % klickbare Kapitel und Link-Fraben
\hypersetup{colorlinks=true, linkcolor=blue, pagecolor=blue, urlcolor=blue, citecolor=blue} 
\usepackage{caption} % für z.B. Tabellenüberschriften 
\usepackage{fancybox} % für Kasten und Boxen 
\usepackage{longtable} % für mehrseitige lange Tabellen
\usepackage{tabularx} % für Tabellen 
\usepackage{eurosym} % Für das EUR-Symbol
\usepackage{booktabs}
\usepackage{multirow}% Für Tabellenanpassungen
\usepackage{array}% Für Tabellenanpassungen
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentrierte Spalten mit Breitenangabe 
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe
\newcommand{\ctab}{\centering\arraybackslash } % Tabellenabschnitt zentrieren
\newcommand{\rtab}{\raggedleft\arraybackslash} % Tabellenabschnitt rechtsbündig 
\newcommand{\ltab}{\raggedright\arraybackslash} % Tabellenabschnitt linksbündig

\begin{document}
Meine Tabellenvorlage\\
%Breite muss noch irgendwie angepasst werden!
\begin{tabular}{|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|}
\hline
\multicolumn{8}{|l|}{8 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{|l|}{2 Spalten}\\
\hline
\multicolumn{8}{|l|}{8 Spalten}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}&\multicolumn{1}{|l|}{1 Spalte}\\
\hline
\end{tabular}\\
\end{document}

Dateianhänge
Zielformst
Zielformst
Tabelle1.jpg (50.79 KiB) 3704 mal betrachtet

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Zu 1. - Wenn du nicht wenigstens eine Zelle in einer Spalte ohne \multicolumn benutzt, musst du deren Breite anders definieren.
- Wenn du das tabularx Paket schon einbindest, dann benutzte es doch auch.
Die Spaltenoption X macht die Spalten automatisch gleich breit.
Zu 2. Wenn du zwei \multicolumn nebeneinander mit |l| hast, dann hast du auch zwei | nebeneindander, so dass du eine dickere Linie hast.

Probier also mal eine dieser Tabellen:
\begin{tabularx}{\textwidth}{|X|X|X|X|X|X|X|X|}
\hline
\multicolumn{8}{|l|}{8 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}\\
\hline
\multicolumn{1}{|X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}&\multicolumn{1}{X|}{1 Spalte}\\
\hline
\end{tabularx}\\

\begin{tabular}{|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|p{20mm}|}
\hline
\multicolumn{8}{|p{16cm}|}{8 Spalten}\\
\hline
\multicolumn{2}{|p{4cm}|}{2 Spalten}&\multicolumn{2}{p{4cm}|}{2 Spalten}&\multicolumn{2}{p{4cm}|}{2 Spalten}&\multicolumn{2}{p{4cm}|}{2 Spalten}\\
\hline
\multicolumn{2}{|p{4cm}|}{2 Spalten}&\multicolumn{2}{p{4cm}|}{2 Spalten}&\multicolumn{2}{p{4cm}|}{2 Spalten}&\multicolumn{2}{p{4cm}|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}\\
\hline
\multicolumn{2}{|l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}&\multicolumn{2}{l|}{2 Spalten}\\
\hline
\multicolumn{8}{|l|}{8 Spalten}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{p{2cm}|}{1 Spalte}&\multicolumn{1}{p{2cm}|}{1 Spalte}&\multicolumn{1}{p{2cm}|}{1 Spalte}&\multicolumn{1}{p{2cm}|}{1 Spalte}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}\\
\hline
\multicolumn{4}{|l|}{4 Spalten}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}&\multicolumn{1}{l|}{1 Spalte}\\
\hline
\end{tabular}

PatKi
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 18:38

Beitrag von PatKi »

Hallo Sudo,

erst einmal vielen Dank für die schnelle Antwort! Es läuft schon mal: spektakulär! ;-)

@tabularx: das kommt davon, wenn man manche Dinge einfach nur kopiert, sorry.

@zweite Tabelle: Genau mein Ding!!! Einzig, dass die Tabelle nach dem Setzen über den Seitenrand hinausragt. Ich hätte gedacht, dass es mit der Spaltenbreite zusammenhängt, aber 8x20mm=160mm sollte doch eigentlich auf A4 passen?! woran kann das liegen?

VG

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Zu den 16cm kommen aber noch 9 mal die Liniendicke und 17 mal der Abstand von Linie zur Zelle dazu. Das ist dann schon ein bisschen mehr. Damit du da nicht selbst rechnen musst, gibt es ja das tabularx Paket.

PatKi
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 18:38

Beitrag von PatKi »

...das macht Sinn! Also passt tabularx dann evtl. doch besser zu meinen Anforderungen. Habe es damit zwischenzeitlich auch bereits umgesetzt bekommen. Um jedoch genau die Spaltenbreiten wie in meinem Beispiel-Bild abzubilden, muss ich auf jeden Fall als letzte oder erste Zeile eine Zeile mit 8 einzelnen Spalten einfügen. Ich habe das mal getan und einfach die Linien und den Inhalt entfernt. Sieht dann aus, wie eine zusätzliche Leerzeile. Ich tüftel mal noch ein wenig mit der zweiten Tabelle rum. Mal schauen, was am Ende besser passt. Vielen Dank soweit!

PatKi
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 18:38

Beitrag von PatKi »

So, habe die Tabellenvorlage nun fast fertig. Allerdings hängt es noch an einer Sache, die ich nicht nachvollziehen kann:

- wenn ich Sonderzeichen (Chi-quadrat in der zweiten Zeile) einfüge, zerstört dis die Spaltenbreite in der entsprechenden Zeile. Woran kann das liegen?
\documentclass[a4paper, 11pt, oneside, ngerman, openany]{scrbook} 
\usepackage[T1]{fontenc} % Schriftverbesserung
\usepackage[ngerman]{babel}%deutscher Satzbau
\usepackage[latin9]{inputenc} % mit ISO *-15
\usepackage{scrpage2} % zur Manipulation der Kopf und Fusszeilen
\usepackage{makeidx} % zum Erstellen und Indexen (Abkürzungsverzeichnis)
\makeindex
\usepackage{graphicx} % zum Einbinden von Grafiken und Bilddateien
\usepackage[intoc]{nomencl} % Abkuerzungsverzeichnis (und ins Inhaltsverzeichnis aufnehmen)
\let\abk\nomenclature % Befehl umbenennen in abk 
\renewcommand{\nomname}{Abkürzungsverzeichnis} % Deutsche Überschrift
\setlength{\nomlabelwidth}{.20\hsize} % Punkte zw. Abkürzung und Erklärung
\renewcommand{\nomlabel}[1]{#1 \dotfill} % Punkte zw. Abkürzung und Erklärung
\setlength{\nomitemsep}{-\parsep} % Zeilenabstände verkleinern
\makenomenclature
\usepackage[vcentering,dvips]{geometry} % Seitengröße definieren
\geometry{papersize={209.9mm,297mm},total={160mm,247mm}}
\usepackage{color} % um Text zu färben 
\usepackage{endnotes} % End- und Fußnoten
\usepackage{url} % Weblinks
\usepackage{hyperref} % klickbare Kapitel und Link-Fraben
\hypersetup{colorlinks=true, linkcolor=blue, pagecolor=blue, urlcolor=blue, citecolor=blue} 
\usepackage{caption} % für z.B. Tabellenüberschriften 
\usepackage{fancybox} % für Kasten und Boxen 
\usepackage{longtable} % für mehrseitige lange Tabellen
\usepackage{eurosym} % Für das EUR-Symbol
\usepackage{booktabs}
\usepackage{multirow}% Für Tabellenanpassungen
\usepackage{array}% Für Tabellenanpassungen
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}} % zentrierte Spalten mit Breitenangabe 
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}} % rechtsbündig mit Breitenangabe
\newcommand{\ctab}{\centering\arraybackslash } % Tabellenabschnitt zentrieren
\newcommand{\rtab}{\raggedleft\arraybackslash} % Tabellenabschnitt rechtsbündig 
\newcommand{\ltab}{\raggedright\arraybackslash} % Tabellenabschnitt linksbündig
\renewcommand\arraystretch{1,5} %Alle Zeilen haben die gleiche Höhe

\begin{document}


\begin{center}
{\small
\begin{tabular}{|m{1,6cm}|m{1,6cm}|m{1,6cm}|m{1,6cm}|m{1,6cm}|m{1,6cm}|m{1,6cm}|m{1,6cm}|} 
\hline 
\multicolumn{8}{|m{12,8cm}|}{\textbf{Informationen zum Faktor "Wettbewerbsintensität"}}\\ 
\hline 
\multicolumn{3}{|m{4,8cm}|}{Cronbachsches Alpha:}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,88}&\multicolumn{3}{m{4,8cm}|}{Erklärte Varianz:}&\multicolumn{1}{m{1,6cm}|}{\ctab 77,50\%}\\ 
\hline 
\multicolumn{3}{|m{4,8cm}|}{\chi ^{2}-Wert (Freiheitsgrade):}&\multicolumn{1}{m{1,6cm}|}{\ctab -*}&\multicolumn{3}{m{4,8cm}|}{p-Wert:}&\multicolumn{1}{m{1,6cm}|}{\ctab -*}\\ 
\hline 
\multicolumn{3}{|m{4,8cm}|}{GFI:}&\multicolumn{1}{m{1,6cm}|}{\ctab -*}&\multicolumn{3}{m{4,8cm}|}{AGFI:}&\multicolumn{1}{m{1,6cm}|}{\ctab -*}\\ 
\hline 
\multicolumn{3}{|m{4,8cm}|}{CFI:}&\multicolumn{1}{m{1,6cm}|}{\ctab -*}&\multicolumn{3}{m{4,8cm}|}{RMSEA:}&\multicolumn{1}{m{1,6cm}|}{\ctab -*}\\ 
\hline 
\multicolumn{3}{|m{4,8cm}|}{Faktorreiabilität:}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,88}&\multicolumn{3}{m{4,8cm}|}{\ltab durchschn. erfasste Varianz:}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,71}\\ 
\hline 
\multicolumn{8}{|l|}{\textbf{Informationen zu den einzelnen Indikatoren des Faktors "Wettbewerbsintensität"}}\\ 
\hline 
\multicolumn{4}{|m{6,4cm}|}{\textbf{Bezeichnung des Indikators}}&\multicolumn{1}{m{1,6cm}|}{\ctab \textbf{Mittel-wert}}&\multicolumn{1}{m{1,6cm}|}{\ctab \textbf{Item to Total Korrelation}}&\multicolumn{1}{m{1,6cm}|}{\ctab \textbf{Indikator-relia-bilität}}&\multicolumn{1}{m{1,6cm}|}{\ctab \textbf{t-Wert der Faktorladung}}\\ 
\hline 
\multicolumn{4}{|m{6,4cm}|}{Hier würde dann der Wortlaut eines der Items stehen, um zu sehen, wie es am Ende aussieht.}&\multicolumn{1}{m{1,6cm}|}{\ctab 2,33}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,76}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,71}&\multicolumn{1}{m{1,6cm}|}{\ctab 12,50}\\
\hline
\multicolumn{4}{|m{6,4cm}|}{Hier würde dann der Wortlaut eines der Items stehen, um zu sehen, wie es am Ende aussieht.}&\multicolumn{1}{m{1,6cm}|}{\ctab 2,33}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,76}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,71}&\multicolumn{1}{m{1,6cm}|}{\ctab 12,50}\\
\hline
\multicolumn{4}{|m{6,4cm}|}{Hier würde dann der Wortlaut eines der Items stehen, um zu sehen, wie es am Ende aussieht.}&\multicolumn{1}{m{1,6cm}|}{\ctab 2,33}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,76}&\multicolumn{1}{m{1,6cm}|}{\ctab 0,71}&\multicolumn{1}{m{1,6cm}|}{\ctab 12,50}\\
\hline
\end{tabular}
} % small Ende
\end{center}


\end{document}
Eine weitere, aber (bis jetzt) nicht elementare Frage wäre: Wie kann ich die Zeilenhöhe individuell festlegen? Bisher konnte ich nur mit Hilfe von
 \renewcommand\arraystretch{1,5}
ALLE zeilen in Ihrer Höhe verändern.

Vielen Dank im voraus.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Hallo,

du müsstest eigentlich eine Fehlermeldung erhalten haben, dass \chi^{2} den Mathemodus erfordert? Ersetz das also durch $\chi^{2}$ und stimmt bei mir die Spaltenbreite.

Gruß
Elke

PatKi
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 18:38

Beitrag von PatKi »

Hallo Elke,

vielen Dank, das war's! Super, jetzt läuft's.

Wenn mir jetzt noch jemand, bei den Zeilenhöhen helfen könnte, dann wäre es perfekt (s.o.). :-D

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Du kannst in der entsprechenden Zeile einen Strut einbauen. (englicher Fachbegriff, ich weiß noch nicht wie das auf deutsch heißt)
Das geht mit
\rule[-depth]{0pt}{total height}

Um zu sehen wie groß der Strut ist, kannst du die 0pt zB. durch 1pt ersetzen.

PatKi
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Mi 10. Okt 2012, 18:38

Beitrag von PatKi »

Hallo sudo,

vielen Dank für den Hinweis, aber wie bzw. wo genau muss ich diesen Code in der entsprechenden Zeile einbauen?

Antworten