Ich versuche für eine Diplomarbeit in einer Tabelle die Zellfärbung nach den vorliegenden Werten zu berechnen. Die Normierung um Farben zu berechnen habe ich realisiert und soweit ich diese auserhalb der Tabelle anwende funktioniert es auch. Versuche ich aber in der Tabelle, wo der Wert steht die Berechnung durch einen Befehl auszulösen, erhalte ich die Fehlermeldung:
Package xcolor Error: Undefined color `cb'. ...r{ca}20&\settbcolor{-45}\cellcolor{cb}-20&
Mein jetziger Code ist wie folgt:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage{fp,fp-upn}
\begin{document}
\newcommand{\twavecolorinit}[5]{ %Initialisierung für Farbskala nach Werten
\FPset\amin{#1}% Minimalwert
\FPset\amax{#2}% Maximalwert
\FPupn\am{\amax{} \amin{} add 2 div} %Mittelwertberechnung
\newcommand*{\basecolora}{#3} %Farbe für amin
\newcommand*{\basecolorb}{#4} %Farbe für am
\newcommand*{\basecolorc}{#5} %Farbe für amax
}
\twavecolorinit{-50}{50}{red}{green}{blue}
% Berechnung des Farbwertes als Test
\FPset\tw{20}
\FPiflt\tw\am%
\FPupn{tg}{\tw{} \am{} sub \am{} \amin{} sub div -100 mul}
\FPset\tr{0}
\FPupn{ty}{100 \tg{} sub}
\colorlet{ca}{\basecolora!\tg!\basecolorc!\ty!}%
\else%
\FPupn{tr}{\tw{} \am{} sub \am{} \amin{} sub div -100 neg mul}
\FPset\tg{0}
\FPupn{ty}{100 \tr{} sub}
\colorlet{ca}{\basecolorb!\tr!\basecolorc!\ty!}
\fi
\newcommand{\settbcolor}[1]{\FPset\tw{#1}
\FPiflt\tw\am%
\FPupn{tg}{\tw{} \am{} sub \am{} \amin{} sub div -100 mul}
\FPset\tr{0}
\FPupn{ty}{100 \tg{} sub}
\colorlet{cb}{\basecolora!\tg!\basecolorc!\ty!}%
\else%
\FPupn{tr}{\tw{} \am{} sub \am{} \amin{} sub div -100 neg mul}
\FPset\tg{0}
\FPupn{ty}{100 \tr{} sub}
\colorlet{cb}{\basecolorb!\tr!\basecolorc!\ty!}
\fi }
%\settbcolor{-20}\textcolor{cb}{Farbe für cb} \\ Test für Befehl
\begin{tabular}{lll}
\cellcolor{ca}20&\settbcolor{-45}\cellcolor{cb}-20&Test\\
\end{tabular}
\end{document}
Nur mit der Farbe 'ca' würde es gehen, aber damit lässt sich in der Tabelle nicht arbeiten.
Kann mich einer bei der Lösung unterstützen?
Jens
Ich versuche für eine Diplomarbeit in einer Tabelle die Zellfärbung nach den vorliegenden Werten zu berechnen. Die Normierung um Farben zu berechnen habe ich realisiert und soweit ich diese auserhalb der Tabelle anwende funktioniert es auch. Versuche ich aber in der Tabelle, wo der Wert steht die Berechnung durch einen Befehl auszulösen, erhalte ich die Fehlermeldung:
Package xcolor Error: Undefined color `cb'. ...r{ca}20&\settbcolor{-45}\cellcolor{cb}-20&
Mein jetziger Code ist wie folgt:[code]
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[table]{xcolor}
\usepackage{fp,fp-upn}
\begin{document}
\newcommand{\twavecolorinit}[5]{ %Initialisierung für Farbskala nach Werten
\FPset\amin{#1}% Minimalwert
\FPset\amax{#2}% Maximalwert
\FPupn\am{\amax{} \amin{} add 2 div} %Mittelwertberechnung
\newcommand*{\basecolora}{#3} %Farbe für amin
\newcommand*{\basecolorb}{#4} %Farbe für am
\newcommand*{\basecolorc}{#5} %Farbe für amax
}
\twavecolorinit{-50}{50}{red}{green}{blue}
% Berechnung des Farbwertes als Test
\FPset\tw{20}
\FPiflt\tw\am%
\FPupn{tg}{\tw{} \am{} sub \am{} \amin{} sub div -100 mul}
\FPset\tr{0}
\FPupn{ty}{100 \tg{} sub}
\colorlet{ca}{\basecolora!\tg!\basecolorc!\ty!}%
\else%
\FPupn{tr}{\tw{} \am{} sub \am{} \amin{} sub div -100 neg mul}
\FPset\tg{0}
\FPupn{ty}{100 \tr{} sub}
\colorlet{ca}{\basecolorb!\tr!\basecolorc!\ty!}
\fi
\newcommand{\settbcolor}[1]{\FPset\tw{#1}
\FPiflt\tw\am%
\FPupn{tg}{\tw{} \am{} sub \am{} \amin{} sub div -100 mul}
\FPset\tr{0}
\FPupn{ty}{100 \tg{} sub}
\colorlet{cb}{\basecolora!\tg!\basecolorc!\ty!}%
\else%
\FPupn{tr}{\tw{} \am{} sub \am{} \amin{} sub div -100 neg mul}
\FPset\tg{0}
\FPupn{ty}{100 \tr{} sub}
\colorlet{cb}{\basecolorb!\tr!\basecolorc!\ty!}
\fi }
%\settbcolor{-20}\textcolor{cb}{Farbe für cb} \\ Test für Befehl
\begin{tabular}{lll}
\cellcolor{ca}20&\settbcolor{-45}\cellcolor{cb}-20&Test\\
\end{tabular}
\end{document}[/code]
Nur mit der Farbe 'ca' würde es gehen, aber damit lässt sich in der Tabelle nicht arbeiten.
Kann mich einer bei der Lösung unterstützen?
Jens