Tabelle komplett farbig hinterlegen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tabelle komplett farbig hinterlegen

von iTob » Sa 16. Apr 2011, 17:32

Du kannst dir den Boxen-Kram auch sparen, wenn du das Paket environ verwendest. (Könnte aber sein, das das intern etwas ähnliches macht …)

von hermes » Sa 16. Apr 2011, 13:39

Okay, ich hab die Lösung selbst gefunden. Die \newsavebox darf nur einmal definiert werden, kann aber mehrmals mit \begin{lrbox} überschrieben werden.
Anbei die Lösung. Vielen Dank an bloodworks für die Hilfe!
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs,xcolor,tikz}

\definecolor{TabColor}{rgb}{0.976,0.96,1}

\newsavebox{\tmpboxmytabular}

\newenvironment{mytabular}[1]
{
\begin{lrbox}{\tmpboxmytabular}
\begin{tabular}{#1}}
{
\end{tabular}
\end{lrbox}
\fboxsep=0pt
\colorbox{TabColor}{\usebox{\tmpboxmytabular}}
}


\begin{document}

\begin{mytabular}{ll}
\toprule
\textbf{Bla} & \textbf{Blubb} \\ 
\midrule Foo & Bar \\
\bottomrule 
\end{mytabular}

\begin{mytabular}{ll}
\toprule
\textbf{Bla Bla} & \textbf{Blubber} \\ 
\midrule Wow & Bark \\
\bottomrule 
\end{mytabular}


\end{document}

von hermes » Sa 16. Apr 2011, 13:35

Ahh, \fboxsep ist gut, das kannte ich noch nicht!

Jetzt habe ich noch das Problem: Wie kann ich mir eine Umgebung für farbig hinterlegte Tabellen definieren? Dazu sehe ich im Prinzip zwei Möglichkeiten:

1.) Gibt es eine Umgebungsvariante zu \colorbox ?
2.) Gibt es eine Möglichkeit, mit \newsavebox so zu arbeiten, dass man es in einer Umgebung mehrmals verwenden kann?

Das unten angegebene Beispiel funkioniert zwar, aber nur einmal, weil der Name \tmpbox kein zweites Mal benutzt werden kann.
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs,xcolor,tikz}

\definecolor{TabColor}{rgb}{0.976,0.96,1}

\newenvironment{mytabular}[1]
{
\newsavebox{\tmpbox}
\begin{lrbox}{\tmpbox}
\begin{tabular}{#1}}
{
\end{tabular}
\end{lrbox}
\fboxsep=0pt
\colorbox{TabColor}{\usebox{\tmpbox}}
}


\begin{document}

\begin{mytabular}{ll}
\toprule
\textbf{Bla} & \textbf{Blubb} \\ 
\midrule Foo & Bar \\
\bottomrule 
\end{mytabular}


\end{document}

von bloodworks » Sa 16. Apr 2011, 13:01

Jo dann halt doch erstmal so:
Minimalbsp analog zu oben
\fboxsep=0pt % Sep= separation 
\colorbox{red}{%WICHTIG dass hier ein % steht
\noindent% das müsste vermutlich hier nicht stehen, tut aber nicht weh. 
\begin {tabular} {lll}%
\toprule 
a&die lange  zeile &d\\ 
\midrule 
a&die lange  zeile &d\\a&die lange  zeile &d\\ 
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\ 
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\ 
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\ 
\bottomrule 
\end{tabular}}

von hermes » Sa 16. Apr 2011, 12:58

Mit tikz konnte ich das Problem übrigens lösen. Nicht besonders elegant, aber das Ergebnis entspricht meinen Vorstellungen. Hat noch jemand eine bessere Idee?
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs,xcolor,tikz}

\definecolor{TabColor}{gray}{0.9}

\begin{document}

% Boxnamen definieren
\newsavebox{\tmpbox}

% Boxinhalt festlegen
\begin{lrbox}{\tmpbox}
\begin{tabular}{ll}
\toprule
\textbf{Bla} & \textbf{Blubb} \\ 
\midrule Foo & Bar \\
Yes & Never \\
Wow & Bark \\ 
\bottomrule 
\end{tabular}
\end{lrbox}

% Box farbig hinterlegt setzen
\colorbox{TabColor}{\usebox{\tmpbox}}\\[2ex]
%
% Gegenprobe: Box mit \frame setzen
\frame{\usebox{\tmpbox}}\\[2ex]
%
% Lösung: Variante mit tikz:
\begin{tikzpicture}
\node [inner sep=0,rectangle,fill=TabColor] {\usebox{\tmpbox}};
\end{tikzpicture}

\end{document}

von hermes » Sa 16. Apr 2011, 12:38

Danke für die schnelle Antwort.
Aber leider funktionieren beide Varianten nicht in Kombination mit booktabs. Denn dann gibt es weißte Leerräume bei den rules:
\documentclass{report}

\usepackage{tabu,booktabs}
\usepackage[table]{xcolor}
\begin{document}

\section{MIt tabu}
\taburowcolors [1]1{ red..red}
\begin {tabu} to \textwidth {|X[2]|X[3]|X[1]|}
\toprule
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
\midrule
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
\bottomrule
\end{tabu}

\section{Nur xcolor}
\rowcolors{1}{yellow}{yellow}
\begin {tabular} {lll}
\toprule
a&die lange  zeile &d\\
\midrule
a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
\bottomrule
\end{tabular}

\end{document} 

von bloodworks » Sa 16. Apr 2011, 12:29

Es gibt etwa 100 Möglichkeiten das zu machen.
Hier ist eine:
\documentclass{report}

\usepackage{tabu}
\usepackage[table]{xcolor}
\begin{document}

\section{MIt tabu}
\taburowcolors [1]1{ red..red}
\begin {tabu} to \textwidth {|X[2]|X[3]|X[1]|}
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\

\end{tabu}
\section{Nur xcolor}
\rowcolors{1}{yellow}{yellow} 
\begin {tabular} {lll}
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\
a&die lange  zeile &d\\a&die lange  zeile &d\\a&die lange  zeile &d\\

\end{tabular}

\end{document}


Mehr zu tabu etwa hier und natürlich via "texdoc"

Tabelle komplett farbig hinterlegen

von hermes » Sa 16. Apr 2011, 12:17

Liebe LaTeX-Community,

ich möchte eine Tabelle vollständig einfarbig hinterlegen. Im Minimalbeispiel habe ich dazu eine \colorbox verwendet. Die tabular-Umgebung kann man nicht direkt als Argument im \colorbox-Befehl nutzen, daher der "Umweg" über das Boxregister.

Das Problem ist: Die Farbe ragt an den Rändern über die Tabelle hinaus. Ich möchte, dass der Farbhintergrund an allen vier Seiten genau mit de Linien der Tabelle abschließt und nicht übersteht.

Beim Test mit \frame-Befehl sieht man, dass es keinen Rand um die Tabelle gibt, sondern der Rand im Innern der \colorbox liegt.

Minimalbeispiel:
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs,xcolor}

\definecolor{TabColor}{gray}{0.8}

\begin{document}

% Boxnamen definieren
\newsavebox{\tmpbox}

% Boxinhalt festlegen
\begin{lrbox}{\tmpbox}
\begin{tabular}{ll}
\toprule
\textbf{Bla} & \textbf{Blubb} \\ 
\midrule Foo & Bar \\
Yes & Never \\
Wow & Bark \\ 
\bottomrule 
\end{tabular}
\end{lrbox}

% Box farbig hinterlegt setzen
\colorbox{TabColor}{\usebox{\tmpbox}}\\[2ex]
%
% Gegenprobe: Box mit \frame setzen
\frame{\usebox{\tmpbox}}

\end{document}

Nach oben