PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit einer Tabelle!



Notwist
08-11-2006, 16:43
Hallo,

ich möchte eine spezielle Tabelle haben. In einem anderen Thread (http://www.mrunix.de/forums/showthread.php?t=47436) sind wir schon weitergekommen, stecken aber fest. Die Tabelle soll wie im Anhang aussehen. Hier der letzte Stand des Minimalbeispiels:



\documentclass[a4paper,12pt]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{charter}
\usepackage{tabularx,colortbl}
\usepackage[T1]{fontenc}
\usepackage{colortbl}
\usepackage{capt-of}
\usepackage{multirow}
\definecolor{hellgrau}{gray}{0.9}

\begin{document}

\begin{tabular}{|l|c|c|}
\hline
\rowcolor{hellgrau}
Sollkriterium & Gewichtung &
\begin{tabularx}{0.3\linewidth}{X|X}
\multicolumn{2}{>{\columncolor{hellgrau}}c}{Erfüllungsgrad}\\
\cline{1-2}
LabVIEW & SPS \\
\end{tabularx} \\
\hline
Preis & 5 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Wartbarkeit & 4 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Erweiterbarkeit & 3 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Betriebssicherheit& 3 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Ersatzteilhaltung & 2 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
Umsetzungsaufwand & 1 & \begin{tabular}{c|c}&\end{tabular}\\ \hline
\end{tabular}
\end{document}


Kann mir jemand helfen? Bin schin so weit, das mit Excel zu machen und als Grafik einzufügen, aber sieht ja auch nicht so toll aus und man erkennt den Unterschied zu den anderen Tabellen.
Finde, dass die Tabellen ein ganz klarer Schwachpunkt in LaTeX sind von der Bedienerfreundlichkeit.

Gruß, Notwist

sofa-surfer
08-11-2006, 17:57
Hallo,

so in etwa?


\documentclass{article}
%\usepackage[applemac]{inputenc}
\usepackage{colortbl}
\usepackage{calc}
\begin{document}


\begin{tabular}{%
|m{0.18\textwidth}%
|>{\centering}m{0.18\textwidth}%
|>{\centering}p{0.1\textwidth}%
|>{\centering\columncolor[gray]{.8}}p{0.1\textwidth}%
|>{\centering}p{0.1\textwidth}%
|>{\centering\columncolor[gray]{.8}\arraybackslash}p{0.1\textwidth}|}
\hline
%
%
\rowcolor[gray]{.8}
Sollkriterium & Gewichtung & \multicolumn{4}{@{}c@{}|}{%
\begin{tabular}{p{0.2\linewidth+2\tabcolsep}|p{0.2 \linewidth+2\tabcolsep}}
\multicolumn{2}{c}{\cellcolor[gray]{.8}Erfüllungsgrad} \\ \hline
\rowcolor[gray]{.8}
\centering LabVIEW & \centering SPS
\end{tabular}} \\ \hline
%
%
a & b & c & d & e & f\\
a & b & c & d & e & f\\
a & b & c & d & e & f\\
a & b & c & d & e & f\\ \hline
\end{tabular}



\end{document}

Matthias

Notwist
08-11-2006, 18:28
Unglaublich,

ich habe es mit Inhalt gefüllt, die Spaltengröße und die Farbe angepasst und es sieht super aus. Wie hast Du das nur gemacht, was ist das Geheimnis. Verstehe nicht alles:

Wofür steht "\arraybackslash" und wofür "p{0.2\linewidth+2\tabcolsep}|p{0.2\linewidth+2\tab colsep}"?

Jedenfalls sind sind die Liniendicken jetzt auch perfekt und ich habe meine geliebte horizontale Linie unter Erfüllungsgrad und alles ist grau, super! Ich dank Dir, wäre ich allein niemals drauf gekommen.

Falls Du also noch Zeit hast, erklärs mir.

Gruß, Notwist

sofa-surfer
09-11-2006, 07:19
Hallo,

eigentlich gibts da kein Geheimnis. Ein bisschen Tüfteln muss man natürlich immer, wenn es um Tabellen und Latex geht. Sicherlich gibt es aber auch noch einfachere Lösungen für dein Problem ...

Den \arraybackslash brauchst du (zumindest in der letzten Spalte der Tabelle), wenn du den Spalteninhalt zentriert oder rechtsbündig ausrichten willst. Alternativ könntest du auch das \arraybackslash in der Definition der Spalte weglassen, und jede Zeile mit einem \tabularnewline anstelle eines \\ beenden. (hierzu: http://www.mrunix.de/forums/showthread.php?t=38855&highlight=tabularnewline)
\arraybackslash sorgt einfach dafür, dass \\ auch bei der zentrierten Spalte funktioniert.

Mit dem p{0.2\linewidth+2\tabcolsep}|p{0.2\linewidth+2\tab colsep} definiere ich einfach zwei Spalten die "0.2\linewidth und noch ein bisschen mehr" breit sind. (Es könnte wohl auch 0.2\textwidth heißen.) Bei dem "und noch ein bisschen mehr" handelt es sich jeweils um 2 Spaltenzwischenräume. Dazu: http://www.mrunix.de/forums/showthread.php?t=47290&highlight=tabcolsep, Post 12 und 13. Das ist hier nötig, da die Tabelle, die für die Kopfzeile herhalten muss, sonst zu schmal wäre: Sie "sitzt" auf insgesamt 4 Spalten, besteht selbst aber nur aus 2. Da jede Spalte insgesamt 2 \tabcolsep zur Tabellenbreite beisteuert, müssen die insgesamt 4 \tabcolsep von unten, die "zuviel" sind, in der Kopfzeilentabelle noch hinzugenommen werden.

Matthias

Notwist
09-11-2006, 09:50
Alles klar, jetzt blicke ich da besser durch und ist für die Zukunft sehr hilfreich. Wofür sind diese Klammeraffen (@) eigentlich?

Gruß, Notwist

sofa-surfer
09-11-2006, 10:26
Mit dem @{xxx} sagst du, was zwischen zwei Spalten ist:
http://www.mrunix.de/forums/showthread.php?t=47464

Matthias