PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diverse Probleme mit einer Tabelle



Steffen1187
05-03-2012, 07:30
Guten Morgen zusammen,

ich bin gerade dabei eine für mich kompliziertere Tabelle zu basteln.
Wie ihr euch denken könnt klappts nicht so ganz ;)
So schauts mittlerwiele aus:

http://http://imageshack.us/f/19/screentabelle.png/

was ich gerne anders hätte:
Die Tabelle ist breiter als der eigentliche Text. Das lässt sich auch nicht vermeiden, sonst wird alles zu gedrungen. Allerdings will ich, dass die Tabelle zentrisch auf dem Blatt ist, bislang hält sie sich aber strikt an den linken Seitenrand.

Was ich diesbezüglich probiert habe:
\begin{center} und \end{center} --> funktioniert nicht

und ich habe versucht über \marginsize die Seitenränder für eine Seite zu beeinflussen. Doch selbst wenn ich die Tabelle mit \newpage auf eine einzelne Seite gezwungen habe und noch Text dazu zur Veranschaulichung hat das irgendwie gar nichts bewirkt. Eine Fehlermeldung von wegen undefined command oder so hat er aber nicht ausgespuckt, das Package ist geladen.


Was mir als zweites nicht gefällt:
Oben links im Eck hätte ich gerne gar keine Linien, also nur das kleine Rechteck zwischen den doppelten Linien soll komplett weiß sein.
Nach meiner waagrechten Überschrift xxxxxxxx ist leider keine senkrechts Linie, wieso versteh ich da auch nicht ;)

und als kleinen Schönheitsfehler werden die senkrechten Linien im Bereich der waagrechten Doppellinie ausgespart, diese werden also nicht durchkreuzt. Die senkrechte Doppellinie sehr wohl aber von den waagrechten Linien. Dies würde mir anders auch besser gefallen, ist aber letzte Prio ;)



Mein Code dazu:

\newpage

\begin{center}
\begin{table}[ht]
\centering
\newcommand{\breite}{0.7cm}
\begin{tabular}{|p{0.3cm}|r||p{\breite}|p{\breite} |p{\breite}|p{\breite}|p{\breite}|p{\breite}|p{\br eite}|p{\breite}|p{\breite}|p{\breite}|p{\breite}| p{\breite}|p{\breite}|p{\breite}|}\hline
%eins & zwei & drei & vier & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 \\
& & \multicolumn{14}{c}{xxxxxxxx} \\ \cline{3-16}
& &0&10&25&50&75&100&150&200&250&300&350&400&2000&2500\\ \hline \hline
\multirow{16}{0.5cm}{\begin{sideways}yyyyyyyy\end{ sideways}}&0& & & & & & & & & & & & & & \\ \cline{2-16}
&400& & & & & & & & & & & & & & \\ \cline{2-16}
&600& & & & & & & & & & & & & & \\ \cline{2-16}
&800& & & & & & & & & & & & & & \\ \cline{2-16}
&1000& & & & & & & & & & & & & & \\ \cline{2-16}
&1200& & & & & & & & & & & & & & \\ \cline{2-16}
&1400& & & & & & & & & & & & & & \\ \cline{2-16}
&1600& & & & & & & & & & & & & & \\ \cline{2-16}
&1800& & & & & & & & & & & & & & \\ \cline{2-16}
&2000& & & & & & & & & & & & & & \\ \cline{2-16}
&2200& & & & & & & & & & & & & & \\ \cline{2-16}
&2400& & & & & & & & & & & & & & \\ \cline{2-16}
&9997& & & & & & & & & & & & & & \\ \cline{2-16}
&9998& & & & & & & & & & & & & & \\ \cline{2-16}
&9999& & & & & & & & & & & & & & \\ \cline{2-16}
&10000& & & & & & & & & & & & & & \\ \hline

\end{tabular}
\caption{caption}
\label{tab:caption}
\end{table}
\end{center}

\newpage


Wär nett wenn mir wer n Tipp geben könnte!

Grüße
Steffen


So schaut mein Quelltext aus:

rstuby
05-03-2012, 07:37
Also was mir auf den ersten Blick auffällt, ist, dass ein \newpage und eine center-Umgebung nicht so viel Sinn haben, wenn du die Tabelle in eine Gleitumgebung (table) packst, damit LaTeX sie hinschieben kann, wo es will (und natürlich damit auch aus der center-Umgebung heraus). Da macht das \centering direkt vor \begin{tabular} viel mehr Sinn. Funktioniert es nicht wie gewollt?

Steffen1187
05-03-2012, 07:44
Servus,

das begin / end center hatte ich im Nachhinein hinzugefügt, das centering war davor schon da. Auch damit hatte es nicht funktioniert

mein Problem mit der fehlenden senkrechten Linie bei der zusammengefassten waagrechten Zeile habe ich mittlerweile gelöst, aus \multicolumn{14}{c}{xxxxxxxx} musste \multicolumn{14}{|c|}{xxxxxxxx} werden

Grüße

LuPi
05-03-2012, 08:07
Die Frage zum Zentrieren der überbreiten Tabelle löst eine Suchmaschine
Deiner Wahl. Erstes Ergebnis: http://www.matheboard.de/archive/205352/thread.html

Achja: Für Beispiele bitte die Code-Umgebung nutzen (#-Button). Und ein
Minimalbeispiel (minimalbeispiel.de) wäre besser als ein Codeschnipsel.

Steffen1187
05-03-2012, 08:40
Danke erstmal für die Antworten.

da ist es bei der Suche dann wohl am richtigen Suchbegriff gescheitert. mit mekebox hat es funktioniert.

Bis auf den senkrechten Doppelstrich, der von den waagrechten Linien durchkreuzt wird, habe ich für den Rest auch Lösungen gefunden.


Beim Minimalbeispiel scheitert es bei mir daran, dass ich hier in der Firma zwar Internetzugang habe, das alles aber bisschen kompliziert geregelt ist. SChlussendlich kann ich Packages nur manuell installieren und das Minimalbeispiel läuft erstmal nicht. Da müsste ich dann größeren Aufwand reinstecken...

Grüße

rstuby
05-03-2012, 08:53
Wie kann das denn sein, dass dein Dokument läuft und ein Minimalbeispiel nicht?

Steffen1187
05-03-2012, 09:00
Für mein eigenes Dokument lade ich mir die Pakete rein die ich brauche, bleibt mir ja nichts übrig

nach grob ner Sekunde beim Übersetzungsvorgang von mini.tex meckert er ihm fehlt xcolor.sty

ich weiß ja nicht wie viele Packages und Zeug ihm da noch fehlt, aber dafür jetzt ne Stunde investieren und von Hand alle Packages und Style - Files und und und reinladen...
Muss das wirklich sien? ;)

rstuby
05-03-2012, 09:14
Du machst doch ein Minimalbeispiel, indem du dein Dokument kürzt und nicht erweiterst! Ich verstehe nicht, wie es da sein kann, dass mehr Pakete gebraucht werden!

LuPi
05-03-2012, 09:15
Das dürfte ein Missverständnis sein. Ein Minimalbeispiel machst Du aus Deinem
Dokument, in dem Du es immer weiter verkleinerst, bis nur noch die absolut
notwendigen Teile in der Präambel und im Dokument selbst vorhanden sind,
die (a) Deinen Fehler/Dein Problem zeigen oder (b) eine Basis für eine
gewünschte Modifikation beinhalten. In vielen Fällen ist es so (aus eigener
Erfahrung), dass bei (a) der Fehler bereits bei der Reduzierung erkannt wird.

Steffen1187
05-03-2012, 09:25
Achssooo oh man, sorry
echt n Missverständtnis

ich hab mir aus deinem (LuPi) Link Minimalbeispiel die mini.tex heruntergeladen... und dachte da muss man dann iwo noch was einfügen, quasi dass die mini.tex dort die Basis ist und man dort dann nur noch den Codeteil einfügt, mit dem man selbst Probleme hat...

Ich gelobe fürs nächste Mal Besserung

Steffen1187
05-03-2012, 11:16
Ich schon wieder.

ich bin mit der Tabelle mittlerweile soweit, dass sie schon ganz gut aussieht.

nun will ich einzelne Zellen / Reihen / Spalten einfärben

Mein Quellcode hierzu


%Minimalbeispiel table

\documentclass{scrreprt}

\usepackage{longtable} %Tabelle über mehrere Seiten ermöglichen
%\usepackage{array}
\usepackage{lscape} %landscape Umgebung --> um 90° gedreht (Querformat)
\usepackage{arydshln} %gestrichelte Linien in Tabellen ermöglichen
\usepackage{multirow} %mehrere übereinanderliegende Zeilen zusammenfassen ermöglichen
\usepackage{rotating} %senkrechnten Text ermöglichen

\usepackage{xcolor}
\usepackage{color}
\usepackage{colortbl} %Füllfarbe von Tabellen verändern

% --------------------------------------------------------------------------
\begin{document}
\begin{table}[h]

\centering
\newcommand{\breite}{0.7cm}
\makebox[\linewidth]{
\begin{tabular}{p{0.3cm}r||p{\breite}|p{\breite}|p {\breite}|p{\breite}|p{\breite}|p{\breite}|p{\brei te}|p{\breite}|p{\breite}|p{\breite}|p{\breite}|p{ \breite}|p{\breite}|p{\breite}|}\cline{3-16}
%eins & zwei & drei & vier & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 \\
& & \multicolumn{14}{|c|}{Einspritzmenge} \\ \cline{3-16}
& &0&10&25&50&75&100&150&200&250&300&350&400&2000&2500\\ \hline \hline

\multicolumn{1}{|c|}{\multirow{16}{0.3cm}{\begin{s ideways}Raildruck\end{sideways}}}&\multicolumn{1}{|r||}{0}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{400}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{600}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{800}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{1000}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{1200}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{1400}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{1600}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{1800}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{2000}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{2200}& & & & & & & & & & & & & & \\ \cline{2-16}
\rowcolor[gray]{.9}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{2400}&\cellcolor{green} & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{9997}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{9998}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{9999}& & & & & & & & & & & & & & \\ \cline{2-16}
\multicolumn{1}{|c|}{} &\multicolumn{1}{|r||}{10000}& & & &\cellcolor{gray} & & & & & & & & & & \\ \hline
\end{tabular}
}
\caption{caption}
\label{tab:caption}
\end{table}


\end{document}


Das alles funktioniert auch. Allerdings nur wenn ich das Usepackage array ausschließe. Sobald array drin ist, wird die Tabelle ohne senkrechte Trennstriche zwischen den Zellen und ohne farbige Markierungen angezeigt.

Array in meinem eigentlichen Dokument auszuschließen produziert fix mal 150 Fehler... Sprich das ist eigentlich keine Option

Tipps?

Danke und Grüße



edit: die Fehler treten bei einer Longtable mit 3 Spalten auf, meinem Abkürzungsverzeichnis. Für jede einzelne Zeile wird angegeben "missing } inserted"

ctansearch
06-03-2012, 04:42
Hallo, so müsste es mit longtable und array gehen:



%Minimalbeispiel table
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{longtable} %Tabelle über mehrere Seiten ermöglichen
\usepackage{array,graphicx}
\usepackage{lscape} %landscape Umgebung --> um 90° gedreht (Querformat)
\usepackage{arydshln} %gestrichelte Linien in Tabellen ermöglichen
\usepackage{multirow} %mehrere übereinanderliegende Zeilen zusammenfassen ermöglichen
\usepackage{rotating} %senkrechnten Text ermöglichen

\usepackage{xcolor}
\usepackage{color}
\usepackage{colortbl} %Füllfarbe von Tabellen verändern

% --------------------------------------------------------------------------
\begin{document}
\newcounter{columns}
\setcounter{columns}{16}%%HIER die tatsächliche Anzahl Spalten angeben, wie
%%sie in longtable steht.
\newcommand{\breite}{0.04\thecolumns\linewidth}%%H IER den Wert 0.04 anpassen,
%%Wert MUSS kleiner als 0.1 sein, bis die Tabellenbreite stimmt, oder einfach den Wert der Spalten statt 0.04\thecolumns\linewidth

\begin{longtable}[l]{
|p{\breite}|r||p{\breite}|p{\breite}|p{\breite}|p{ \breite}|p{\breite}|p{\breite}|p{\breite}|p{\breit e}|p{\breite}|p{\breite}|p{\breite}|p{\breite}|p{\ breite}|p{\breite}|}
\cline{3-\thecolumns}
\multicolumn{\thecolumns}{c}{ Einspritzmenge }\vline \\
\cline{3-\thecolumns}
\cline{3-15}
\multicolumn{1}{c}{\multirow{16}{0.3cm}{\begin{sid eways}Raildruck\end{sideways}}}
&&0&10&25&50&75&100&150&200&250&300&350&400&2000&2500 \\
\hline\hline
&0&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&\cellcolor{green}400&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&800&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1000&\textcolor{red}{230}&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1200&&&&&\cellcolor{blue}&&&&&&&&& \\\cline{2-\thecolumns}
&1400&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&\cellcolor{green}&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
\rowcolor[gray]{.7}\cellcolor{white}&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{2-\thecolumns}
&1600&&&&&&&&&&&&&& \\\cline{1-\thecolumns}
\caption{caption}
\label{tab:caption}
\end{longtable}
\end{document}

Steffen1187
06-03-2012, 10:24
Hallo zusammen,

danke erstmal für die Hilfe! Ich habs gestern noch ohne Array gelöst, das Ergebnis schaut im Prinzip identisch aus:

http://imageshack.us/photo/my-images/862/screentabelle.png/

So, mein Problem nun:
Die Linien werden (fast) alle zwar angezeigt, jedoch deutlich heller als die anderen Linien und wenn ich die entsprechende Seite druck ist die komplette eingefärbte Fläche grau ohne Linien...

Ist das ein bekanntes Problem mit Latex?

Grüße

ctansearch
06-03-2012, 10:55
"Ich habs gestern noch ohne Array gelöst,.."

Da würde es die Mit-Denker freuen, wenn Du Deine Lösung auch aufzeigen würdest.

Steffen1187
06-03-2012, 11:14
Gerne ;)

wie ich schon erwähnt hatte wurden mir die Fehler in einer anderen Tabelle, meinem Glossar, ausgegeben. Habe ich dort die Spaltendefinition von p{5cm} auf l@{\hspace{5cm} geändert, wurden die Fehler nicht mehr ausgegeben. Die Tabelle mit den Farben selbst hat sich gegenüber dem oben geposteten Minimalbeispiel nicht verändert.
Warum mir dort bei der Definition der Spaltenbreite mit p{\breite} keine Fehler ausgegeben werden ist mir selbst ein Rätsel - schließlich ist es ja nichts anderes als das was ich im Glossar hatte...

Grüße