PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neverending Story: Farbe in Tabellen



Klez
22-10-2005, 21:20
Hi.

Ich habe mit Latex erst vor kurzer Zeit angefangen und weder die Foren-Suche noch Google haben mir groß weitergeholfen. Zweck ist, meine Tabellen für die Diplomarbeit ein bisschen ansehlicher zu machen.

Ich hätte gerne, dass in meinen Tabellen die erste Reihe (für die Überschriften) Lila hinterlegt ist und die Schrift weiss und Fett ist. Optimal wäre natürlich auch, wenn die Überschriften-Reihe bei einem Tabellenumbruch auf die nächste Seite, automatisch wieder hinzugefügt wird.

Kann mir jemand helfen ?

pospiech
22-10-2005, 23:24
lade die Pakete xcolor colortbl und mindestens array und lies die Dokumentation.

Ansonsten wäre ein Beispiel von dem was du bislang produziert hast ganz nett damit man dein Problem nachvollziehen kann.

Und Lila ist a) häßlich b) eine Farbe - und ich habe noch nie eine Diplomarbeit gesehen welche in Farbe gedruckt wurde.

Matthias

edico
23-10-2005, 13:22
.. vermutlich brauchst du longtable:
%
\documentclass[a5paper,12pt]{article}
\usepackage[table]{xcolor}
\usepackage{longtable}
\newcommand{\lt}{%
test1231 &262 &ABeCe \tabularnewline
test1232 &2437 &DEeFe \tabularnewline
test1233 &350 &GHaIi \tabularnewline
test1234 &37 &JKaLe \tabularnewline
test1235 &470 &MNeOo \tabularnewline
}%
\usepackage[sf]{titlesec}
\begin{document}
\sffamily
\begin{longtable}{@{}lp{2cm}l@{}}
\rowcolor{blue!50}
\textcolor{white}{\textbf{Datum}} &
\textcolor{white}{\textbf{Ereignis}} &
\textcolor{white}{\textbf{Verweis}} \tabularnewline
\endhead
\endfoot
\lt\lt\lt\lt\lt\lt\lt\lt\lt
\end{longtable}
\end{document}
%
edico

Klez
23-10-2005, 17:16
Hi.

Vielen Dank für das Beispiel !
Genau so hab ich mir das gedacht :)

Hätte da nur noch 2 kleinere Problemchen

1. Hab bisschen mit dem Befehl "rowcolors" herumgespielt:

\rowcolors[\hline]{3}{green!25}{yellow!50}
(nicht verwechseln mit "rowcolor") und bekomme dann beim Kompilieren eine Fehlermeldung:

TeX Capacity exceeded, sorry [input stack size=5000]

2. Das mit "rowcolor" aus dem Beispiel kannte ich zwar schon, aber hat leider auch den Nachteil: Rahmenlinien werden mal gezeichnet und mal nicht. Fast zufällig (siehe Bild)

edico
23-10-2005, 18:16
[1] \rowcolors{2}{green!25}{yellow!50} faerbt die Zeilen abwechselnd - huebsch haesslich .-(
[2] Was willst du mit Rahmen, wenn du Farbe hast.
Ich meine mich zu erinnern, dass die Farbe nachtraeglich gezeichnet wird und somit die Linien 'uebermalt'. Irgendwo im Netz steht eine Loesung. Die kannst du ja mal posten, wenn du sie gefunden hast.
Vertikale Linien sind obsolet. Fuer horizontale Linien kannst du booktabs verwenden:
...
\usepackage{booktabs}
...
\rowcolors{2}{green!25}{yellow!50}
\begin{longtable}{@{}lp{2cm}l@{}}
\toprule
\rowcolor{blue!50}
\textcolor{white}{\textbf{Datum}} &
\textcolor{white}{\textbf{Ereignis}} &
\textcolor{white}{\textbf{Verweis}} \tabularnewline
\endhead
\endfoot
\midrule
\lt\lt\lt\lt\lt\lt\lt\lt\lt
\bottomrule
\end{longtable}
...
... nur ob diese farblichen Spielereien sinnvoll sind, steht auf einem anderen Blatt. Ich will nicht dafuer genannt werden ;-)
edico

pospiech
23-10-2005, 18:22
booktabs und colortbl vertragen sich nicht. Beide verwenden ja auch einen unterschiedlichen Ansatz zur Formatierung.

Zum Grundsätzlichen: Vertikale Linien erschweren das Lesen in Tabellen und sollten daher grundsätzlich vermieden werden.

Zusätzlich empfiehlt es sich Tabellen in einer Schriftgröße kleiner zu setzen und in serifenloser Schrift.

Matthias

edico
24-10-2005, 06:09
@pospiech:
[1] 'booktabs und colortbl vertragen sich nicht' ist falsch. Du bist nicht auf dem Laufenden.
[2] 'Vertikale Linien sollten ... vermieden werden.' Das ist redundant, weil schon gesagt.
[3] sf ist im MB benutzt worden, somit ist die Forderung ebenso redundant.
edico

Klez
24-10-2005, 16:43
Also das mit den Tabellen habe ich halbwegs zufriedenstellend hinbekommen. Danke für die Beispiele.


und in serifenloser Schrift.

Kann ich das irgendwie für alle Tabellen definieren? Etwa so ähnlich:


\newenvironment{tab10}{\small\selectfont\longtable }{\endlongtable}


Was mich aber ECHT fertig macht, ist die teilweise potthässliche Formatierung des erzeugten Textes. Dieses Problem hatte ich schonmal im Zusammenhang mit Bildern. Nun allerdings mit "listings". Ich weiss, dass beides Float umgebungen sind, aber auch Vorschläge ala Float=ht haben keinerlei Wirkung.

Ich habe 3 kleine Beispielbilder angehängt. Dabei habe ich das Paket "geometry" NICHT verwendet und auch das Paket "float" habe ich weggelassen. Tut aber eigentlich auch nichts zur Sache, da es in meinen Tests keinen großen Einfluß auf das Ergebnis hatte.

Wie man sehen kann, werden die Abstände teilweise sehr gestaucht. Auch das Latex eine Überschrift ans untere Ende einer Seite setzt, ohne das wenigstens 1 Zeile Text nachfolgt, verstehe ich nicht ganz.
Hat jemand einen Tip ?

pospiech
24-10-2005, 20:54
@pospiech:
[1] 'booktabs und colortbl vertragen sich nicht' ist falsch. Du bist nicht auf dem Laufenden.


Mag sein das sich das geändert hat. Als ich das vor einem Jahr ausprobiert habe waren die von booktabs definierten Maße ein Problem das dazu führte das trotz gesetzter Farbe für eine Zeile ein weißer Rand blieb.

Matthias

Klez
26-10-2005, 18:26
Hi leute.
Habe leider immernoch das Problem mit den komischen Abständen. Hat wirklich niemand eine Idee ? Ich habs mittlerweile noch mit zig anderen Einstellungen versucht, aber ich bekomme es einfach nicht hin.
Notfalls muss es eben so sein, aber das er Teilweise (wie im letzten Bild) die Überschrift ans Ende einer Seite einfügt, der Text aber erst auf der nächsten Seite folgt, kann ich beim besten willen nicht akzeptieren.

edico
27-10-2005, 13:36
[1] ... Problem mit den komischen Abstaenden.
Das scheint mir nicht 'komisch', sondern gem. Definitionen i.O. Du startest ja wohl jeweils mit unterschiedlichen Formatierungen nach der Abschnittsueberschrift, die mit unterschiedlichen Abstaenden daherkommen. Ich vermute, ja behaupte, dass bei Einfuegen einer Textzeile nach der Ueberschrift, was sich fuer ein 'ordentliches Dokument' gehoert, identische Abstaende zwischen Ueberschrift und Text ergeben.
Sollte dir keine Text einfallen, so musst du dich um spacing in jedweder Form kuemmern, zur Not laesst sich manuipulieren mit \vspace{-xmm} ... Im scrguide.pdf, soweit du Koma benutzt, steht AFAIK auch einigen zu den Thema.
Oder hab ich alles falsch verstanden ...

[2] ... für alle Tabellen definieren... wenn du nicht weitergekommen bist - ein Wink:
%
\documentclass[a5paper,12pt]{article}
\usepackage[latin1]{inputenc}
\usepackage{booktabs}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{longtable}
\aboverulesep=1pt
\belowrulesep=1pt

%---| macro myLTab |----------------------------------------
\newenvironment{myLTab}{%
\rowcolors{2}{red!10}{blue!10}
\longtable{@{}p{20mm}p{48mm}p{15mm}@{}}
}{%
\endlongtable
}%
%-----------------------------------------------------------

%---| macro myLT |------------------------------------------
\newenvironment{myLT}{%
\rowcolors{2}{red!10}{blue!10}
\longtable{@{}p{20mm}p{48mm}p{15mm}@{}}
\toprule
\rowcolor{blue!40}
\textcolor{white}{\textbf{Datum}} &
\textcolor{white}{\textbf{Ereignis}} &
\textcolor{white}{\textbf{Verweis}} \tabularnewline
\endhead
\endfoot
\midrule
}{%
\bottomrule
\endlongtable
}%
%-----------------------------------------------------------
\begin{document}
\rowcolors{2}{green!25}{yellow!50}
\begin{longtable}{@{}p{20mm}p{48mm}p{15mm}@{}}
\toprule
\rowcolor{blue!50}
\textcolor{white}{\textbf{Datum}} &
\textcolor{white}{\textbf{Ereignis}} &
\textcolor{white}{\textbf{Verweis}} \tabularnewline
\endhead
\endfoot
\midrule
051023 & 820 & 65 \\
051024 & 62 & 43 \\
051025 & 27 & 22 \\
\bottomrule
\end{longtable}

\bigskip

\begin{myLTab}
\toprule
\rowcolor{blue!40}
\textcolor{white}{\textbf{Datum}} &
\textcolor{white}{\textbf{Ereignis}} &
\textcolor{white}{\textbf{Verweis}} \tabularnewline
\endhead
\endfoot
\midrule
051023 & 820 & 65 \\
051024 & 62 & 43 \\
051025 & 27 & 22 \\
\bottomrule
\end{myLTab}

\bigskip

\begin{myLT}
051023 & 820 & 65 \\
051024 & 62 & 43 \\
051025 & 27 & 22 \\
\end{myLT}
\end{document}
%
edico

Klez
28-10-2005, 04:47
Zu 1: - Das Problem ist folgendes:

Ich habe eine \subsection Überschrift. Darauf folgt ein (meist kleines, manchmal größeres) Code-Listing (listings Paket) und danach der normale Text (Quellcode Beschreibung).
Manchmal macht er die Überschrift-Abstände richtig und manchmal falsch (siehe Bilder), anstatt einfach das darauf folgende listing "früher" auf die nächste Seite umzubrechen.

Selbst wenn ich (auf deinen Rat hin) etwas Text zwischen \subsection und \lstinputlisting schreibe, ändert sich nichts an den "falschen" gestauchten Abständen. Ich habe mittlerweile sogar mit dem Paket titlesec versucht, die Abstände explizit von Hand festzulegen. Leider ohne jeden Erfolg. Ein genaueres festlegen der float Option vom listings Paket hilft ebenfalls nicht. Bin echt am Ende :)


Das nächste Problem, dass er manche Überschriften an das Ende einer Seite setzt, ohne das wenigstens 1 Zeile Text darauf folgt, habe ich leider immernoch. Wenn das tatsächlich gemäß Definition in Ordnung ist, dann habe ich scheinbar eine völlig falsche Vorstellung. (Habe ich bisher auch noch in keinem Buch gesehen). Notfalls füge ich einfach ein paar Leerzeilen ein um den Umbruch zu "erzwingen", aber ich denke das Latex sowas eigentlich nicht nötig haben sollte.

An dem Paket geometry liegt es definitiv nicht. Im Gegenteil. Ohne wirds sogar schlimmer. Die original Satzspiegelberechnungen von typearea (gemäß scrguide.pdf) finde ich ohnehin sehr amüsant. Korrekt oder nicht. Einen (deutlich) größeren "Bottom-Rand" als den "Top-Rand" zu haben, ist einfach unansehnlich (Habe ich auch noch in keinem Buch gesehen). Der Witz ist, das nichtmal scrguide.pdf sich daran hält, denn dort ist der Abstand Top-Bottom (bei vollgeschriebenen Seiten natürlich) exakt gleich (Mit lineal ausgemessen). Egal mit welcher Kombination von BCOR (Bindekorrekt) und DIV (Spaltenaufteilung) ich es versucht habe: Es ähnelt nichtmal annähernd den Rändern aus scrguide.pdf.
Tut aber eigentlich auch nichts zur Sache :)


Zu 2. - Tabellen:
Das hat sich erledigt. Die Neudefinition hatte ich schon vor Deinem Beispiel hinbekommen. Mir ging es ledglich noch darum, den Text innerhalb der Tabellen (gemäß Pospiechs vorschlag) serifenlos zu setzen. Ich kannte nur richtigen den Befehl nicht. Habe es nun aber so hinbekommen:


\newenvironment{mytab}{\sffamily\small\selectfont\ longtable}{\endlongtable}

Trotzdem an dieser Stelle noch eine Frage: warum schreibt man hier \longtable und \endlongtable? Ich dachte sowas macht man immer mit \begin{longtable} usw.

P.S.: Ich lese wirklich gerne Dokus (bin schon 2 wochen jeden tag dabei), aber über die oben beschriebenen Dinge, steht leider so gut wie nichts drin. Mein Dokument ist mittlerweile auch echt hübsch. Muss nur noch das "Abstands"-Problem lösen. Danach poste ich gerne meine Preambel, um euch weitere Fragen dieser Art zu ersparen :)

edico
28-10-2005, 06:42
Das wir scheint mir grundsaetzlich schon seine Berechtigung haben und liegt am TeX-Algorithmus. Es gibt natuerlich immer mal wieder Konstellationen, wo zunaechst und partiell 'unansehnliche' Abstaende etc. enststehen. Die sind aber zielgerichtet weitgehend zu eliminieren. Da nichts ueber dein Masterfile bekannt ist, hab ich auch keine Lust 'theoretisch akademisch' ueber irgendwelche Massnahmen nachzudenken und hier zu schwadronieren. Das ist mir dann doch zu zeitaufwendig und hilft letztendlich auch nicht. Die Aspekte sind mehr oder weniger z.T. beschrieben - s. FAQ -, z.T. hier (grundlegend) behandelt usw. Insofern schlag ich dir vor, aus dem Diffusen herauszutreten, ein Minimalbeispiel zu generieren, das genau den zu beschreibenden Fehler reproduzieren laesst, oder aber - was IMHO fast noch sinnvoller ist - erstmal das Dokument fertig zu erstellen und sich dann des Feinschliffs anzunehmen.
Letztendlich passen die Themen nicht mehr in diesen Thread mit seinem Header.
edico

Klez
28-10-2005, 10:12
Das es ein wenig off-topic geworden ist tut mir ja auch leid, aber ich wollte nicht dauernd neue Threads erstellen.
Minimalbeispiel... Klar gerne. Sollst Du haben :)
Ob der "Fehler" damit reproduzierbar ist, kann ich leider nicht sagen. Das entsprechende Kapitel ist in meiner Arbeit knapp 30 Seiten lang und der Fehler tritt (wie gesagt) mal auf und mal nicht.

Btw: Das Dokument ist bereits fertig und ich befinde mich sozusagen schon am Feinschliff. Es ist ja auch das letzte, was ich noch korrigieren will.


\documentclass[pdftex,a4paper,twoside,halfparskip,11pt]{scrreprt}
\usepackage[left=40mm,right=25mm,top=25mm,bottom=25mm,includeh eadfoot]{geometry}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}
\usepackage[table]{xcolor}

%hilft leider nicht gegen die Überschriften am Seitenende :/
\usepackage[nobottomtitles]{titlesec}


\usepackage{listings}

\lstset{
%float=htb,%
%aboveskip=0pt,%
%belowskip=5pt,%
language=[Sharp]C,%
basicstyle=\singlespacing\footnotesize\ttfamily,%
keywordstyle=\color{blue},%
commentstyle=\color{green},%
stringstyle=\color{violet},%
%identifierstyle=\bfseries,%
tabsize=2,%
numbers=none,%
numberstyle=\tiny,%
numbersep=10pt,%
numberblanklines=false,%
showspaces=false,%
showstringspaces=false,%
breaklines=true,%
breakatwhitespace=true%
}


\begin{document}
\chapter{x}
\section{xy}
bissl text

%hier noch kein Fehler
\subsection{xyz}
\lstinputlisting{listings/foo}
bissl text

%hier auf einmal Fehler
\subsection{xyzz}
\lstinputlisting{listings/bar}
bissl text

%usw.
\end{document}

edico
28-10-2005, 13:09
Och Mensch ...
«Minimalbeispiel... Klar gerne. Sollst Du haben» ... ist doch kein Minimalbeispiel.
Wirklich - das kann doch keiner reproduzieren, wenn du dir alleine mal den C-file anschaust: ich will mir den nicht aus den Finder saugen wollen.
«Ob der "Fehler" damit reproduzierbar ist, kann ich leider nicht sagen».
Ja, aber dann nuetzt es doch nichts. Verstehst du - wie sollen wir helfen, wenn wir nicht wissen, was du treibst, dass der Fehler auftritt.
Wenn ich den file zum Laufen bringe (nur das ist ja schon ein Faelschung und bringt nichts), habe ich 'normales' (schoenes) Layout, wie erwartet und letztens behauptet.
Dass dein Layout fuerchterlich mit geometry vergewaltigt wird, nehme ich dir nicht krumm, aber ist typographisch grober Unfug. Das kann dir wohl nur vom Fachbereich vorgegeben worden sein. Das ist ja schrecklich. Ich denke auch, du hast nie und nimmer das KOMA-Script gelesen; dann waeren dir u.a. 'DIV1' etc. und 'BCOR1cm' etc. aufgefallen, um Anpassungen vorzunehmen ... Naja, aber du bist ja sonst zufrieden ;-)
Lange Rede - kurzer Sinn:
Was nun konkret indiziert ist, weiss ich nicht - sorry.
Aber villeicht ein Rat: Mach ein MB, das den Fehler reproduziert. Kopiere deinen Masterfile und reduziere ihn auf das Wesentliche schrittweise, und dann wirst du (vermutlich) den Fehler schon selbst erkennen :-)
edico

Klez
28-10-2005, 16:11
Ich kann leider nicht die hälfte der Arbeit als MB Posten, nur damit man den Fehler erkennen dann. Das wäre dann echt kein MB mehr.
Mir ist durchaus klar, dass dir dieses gepostete Beispiel nicht viel bringt. Deswegen habe ich auch die kleinen Bildchen angehängt gehabt und den notwendigen Teil meines Header gepostet. Ich dachte, dass evtl jemand eine "spontan" Idee hätte, weil der Fehler evtl. bereits bekannt ist. Macht nichts. Muss ich alleine schaffen jetzt.

Auch wenn ich mittlerweile halbwegs mit Latex klarkomme, so bleibt es in mancher Hinsicht einfach ein Krampf. Spätestens bei Tabellen (z.b. vertikale Ausrichtung der Zellen) hört der Spaß auf :/

btw.: Ich schrieb bereits:

Egal mit welcher Kombination von BCOR (Bindekorrekt) und DIV (Spaltenaufteilung) ich es versucht habe: Es ähnelt nichtmal annähernd den Rändern aus scrguide.pdf.

Ich denke daher doch, dass ich die scrguide.pdf gelesen habe :)

edico
28-10-2005, 16:33
Ahh, nichts fuer ungut. Ich wollte damit nur sagen, dass moeglicherweise durch das 'Kastrieren' des KOMA-Scripts die 'Fehler' auftauchen und moeglicherweise das TeXing ohne geometry mit genannten Optionen zu anderen Ergebinssen fuehrt. Das waer doch was! Hast du das mal getestet? Hatte ich nicht so verstanden. Ich kann mir so leider keinen Reim machen, haette dir gerne geholfen.
Mit dem MB sollte es doch eigentlich nicht so schwierig sein, wenn du in einer Kopie zunaechst mal alles nach dem 1. Fehler streichst usw. Das sollte doch ohne stundenlanges Aufhebens machbar sein. Ich denke, es lohnt.
Sicher ist es richtig, dass Tabellen (und die vertikale Ausrichtung der Spalten) eine grosse Herausforderung sind. Aber meistens gibt es doch eine Loesung ... Man verliert allerdings paar Jahre, wenn kein Informatiker ist, wenngleich das Gluecksgefuehl anschliessend steigt ;-)
Kuemmer dich vielleicht auch noch einmal um 'microtype' ...
edico