Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Tabellenzeilen ab n-ter Zeile abwechselnd farbig einfärben

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.01.2010
    Beiträge
    55

    Tabellenzeilen ab n-ter Zeile abwechselnd farbig einfärben

    Hallo,

    ich möchte in einer Tabelle gerne die Zeilen abwechselnd farbig einfärben.
    Das habe ich mit der Option [table] von xcolor bereits hinbekommen.
    Leider werden alle Zeilen eingefärbt. Ich möchte aber die ersten n Zeilen (im MB 2) nicht einfärben. Ich dachte, das geht mit dem ersten Argument des \rowcolors Befehls, tut es nur scheinbar nicht.
    Code:
    \documentclass[fontsize=12pt,paper=a4,titlepage,twoside=false,headings=normal]{scrartcl}
    
    %------------------------------------------------
    %% Spracheinstellungen
     % Deutsche Sprachunterstützung
    \usepackage{ngerman}
    \usepackage[utf8]{inputenc}
     % Sonderzeichen verf�gbar machen
    \usepackage[T1]{fontenc}
    
    %------------------------------------------------
    %% Zeichen- / Absatzeinstellung
     % Überschriften auf Times stellen
    \addtokomafont{sectioning}{\rmfamily}
     % Schriftartfamilie auf Times stellen
    \usepackage{txfonts
    
    %------------------------------------------------
    %% Tabllenpakete
     % Zeilen verbinden
    \usepackage{multirow}
     % Tabellen mit automatischer Spaltenbreite
    \usepackage{tabularx}
     % Zeilenrahmen bearbeiten
    \usepackage{booktabs}
    
    \usepackage{graphicx}
    \usepackage[table]{xcolor}
     % Array
    \usepackage{array}
    
    \begin{document}
    \definecolor{highlightblue}{HTML}{4F81C0}
    \definecolor{row-lightblue}{HTML}{D3DFEE}
    \definecolor{TFFrameColor}{named}{row-lightblue}
    \definecolor{TFTitleColor}{named}{highlightblue}
    
    \begin{table}[!h]
    \rowcolors{2}{row-lightblue}{white}
    \begin{tabularx}{\textwidth}{>{\hsize=.3\hsize\bfseries}X>{\hsize=.7\hsize}X}
    \toprule
    \multicolumn{2}{c}{\large{Überschrift}}\\
    \textcolor{highlightblue}{Begriff} & \textcolor{highlightblue}{\textbf{Definition}}\\
    \hline
    \hline
    A	&	Text \\
    B	&	Text \\
    C	&	Text \\
    \bottomrule
    \end{tabularx}
    \end{table}
    
    
    \end{document}
    Hat jemand eine Idee, warum, oder muss ich die ersten beiden Zeilen einfach manuell einfärben?

    LG

  2. #2
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    schau mal hier und hier rein.

    der befehl aus xcolor scheint nicht mit tabular perfekt zu funktionieren. du kannst das makro versuchen das im link beschrieben wird oder du nimmst eventuell das tabu paket als ersatz.

    gruss

    ps: verwende \usepackage[ngerman]{babel} statt dem ngerman paket. hat mit dem problem nichts zu tun, aber ngerman kann komische ding tun
    Mein Ball ist umgefallen

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    Du hast das erste Argument von \rowcolors offenbar falsch verstanden. Wie dem auch sei: Ich würde schlicht die Verwendung von tabu empfehlen. Damit sind dergleichen Dinge weit einfacher zu realisieren. Weil Dein Beispiel nicht funktioniert, habe ich es weiter minimiert und komme dann zu:
    Code:
    \documentclass[fontsize=12pt,titlepage,headings=normal,pagesize]{scrartcl}
    
    \usepackage[ngerman]{babel} % Deutsche Sprachunterstützung
    \usepackage[utf8]{inputenc}% Sonderzeichen verfügbar machen
    \usepackage[T1]{fontenc}
    
    \usepackage{booktabs}
    \usepackage[table]{xcolor}
    \usepackage{tabu}
    
    \begin{document}
    \definecolor{highlightblue}{HTML}{4F81C0}
    \definecolor{row-lightblue}{HTML}{D3DFEE}
    \definecolor{TFFrameColor}{named}{row-lightblue}
    \definecolor{TFTitleColor}{named}{highlightblue}
    
    \begin{table}[!htp]% !h alleine ist Nonsense!!!
    \taburowcolors[3]2{row-lightblue .. white}
    \begin{tabu}{X[3]X[7]}
    \toprule
    \multicolumn{2}{c}{\large{Überschrift}}\\
    \textcolor{highlightblue}{Begriff} & \textcolor{highlightblue}{Definition}\\
    \midrule
    \midrule
    A	&	Text \\
    B	&	Text \\
    C	&	Text \\
    \bottomrule
    \end{tabu}
    \end{table}
    
    \end{document}

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Für ein späteres Einsetzen der Zeilenfarben oder das Ein- und Ausschalten derselben bietet xcolor die Befehle \showrowcolors und \hiderowcolors:
    Code:
    \documentclass[fontsize=12pt,paper=a4,titlepage,twoside=false,headings=normal]{scrartcl}
    
    %------------------------------------------------
    %% Spracheinstellungen
     % Deutsche Sprachunterstützung
    \usepackage[ngerman]{babel}
    \usepackage[utf8]{inputenc}
     % Sonderzeichen verfügbar machen
    \usepackage[T1]{fontenc}
    %------------------------------------------------
    %% Tabllenpakete
    
     % Tabellen mit automatischer Spaltenbreite
    \usepackage{tabularx}
     % Zeilenrahmen bearbeiten
    \usepackage{booktabs}
    
    \usepackage{graphicx}
    \usepackage[table]{xcolor}
     % Array
    \usepackage{array}
    
    \definecolor{highlightblue}{HTML}{4F81C0}
    \definecolor{row-lightblue}{HTML}{D3DFEE}
    \definecolor{TFFrameColor}{named}{row-lightblue}
    \definecolor{TFTitleColor}{named}{highlightblue}
    
    \rowcolors{1}{white}{row-lightblue}
    
    \begin{document}
    \begin{table}[htb]
    \begin{tabularx}{\textwidth}{>{\hsize=.3\hsize\bfseries}X>{\hsize=.7\hsize}X}
    \toprule \hiderowcolors
    \multicolumn{2}{c}{\large{Überschrift}}\\
    \textcolor{highlightblue}{Begriff} & \textcolor{highlightblue}{\textbf{Definition}}\\
    \midrule \showrowcolors
    A	&	Text \\
    B	&	Text \\ 
    C	&	Text \\
    A	&	Text \\
    B	&	Text \\
    C	&	Text \\
    \bottomrule
    \end{tabularx}
    \end{table}
    
    \end{document}

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.01.2010
    Beiträge
    55
    Zitat Zitat von klops Beitrag anzeigen
    Du hast das erste Argument von \rowcolors offenbar falsch verstanden.
    Wieso?
    Zitat Zitat von texdoc xcolor
    2.12 Color in tables
    \rowcolors [commandsi{row}{odd-row color}{even-row color}
    \rowcolors* [commands]{row}{odd-row color}{even-row color}
    One of these commands has to be executed before a table starts. row tells the
    number of the first row which should be colored according to the odd-row color and even-row color scheme.
    Kling für mich eindeutig, lasse mich aber gerne eines besseren belehren.

    Zitat Zitat von bobmalaria
    der befehl aus xcolor scheint nicht mit tabular perfekt zu funktionieren.
    Klingt inklusive link schlüssig.

    LG

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    tabularx setzt seinen Inhalt zweimal um die Breite rauszufinden, deswegen kommt es dann mit der Zeilennummerierung durcheinander. Es funktioniert, wenn du am Ende den \rownum-Zähler auf -1 setzt:

    Code:
    \documentclass{scrartcl}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{tabularx}
    \usepackage[table]{xcolor}
    
    \begin{document}
    \rowcolors{3}{red}{green}
    \begin{tabularx}{5cm}{ll}
    a\\ b\\c\\d\\e \global\rownum=-1
    \end{tabularx}
    
    \rowcolors{3}{red}{green}
    \begin{tabular}{l}
    a\\b\\c\\d\\e
    \end{tabular}
    
    \end{document}

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •