Das Problem ist eher, dass das Argument von empheq vor der Auswertung der Optionen überhaupt nicht expandiert wird. Dadurch bekommt er Optionen-Parser eben nur ein nicht expandiertes \GELB zu sehen. Beim Versuch, das in key und value zu zerlegen, gibt es dann den Fehler. Es wird also eine Variante von empheq benötigt, die das Argument einmal expandiert, damit es für empheq dann wieder ein key-value-Paar (bzw. eine Liste solcher Paare) ergibt:
\documentclass[a4paper]{amsbook}
\usepackage{xcolor}
\usepackage{empheq,framed}
\newcommand* \GELB{box=\fcolorbox{black}{yellow!20}}
\newenvironment{oempheq}[1][]{%
\expandafter\empheq\expandafter[#1]
}{%
\endempheq
}
\begin{document}
\begin{empheq}[box=\fcolorbox{black}{yellow!20}]{equation}
A=B
\end{empheq}
\begin{oempheq}[\GELB]{equation}
A=C
\end{oempheq}
\end{document}
Aber natürlich funktioniert das nur, solange \GELB in einem Schritt zu einer gültigen key-value-Optionenliste wird. Sobald beispielsweise etwas wie:
\newcommand*\gelb{box=\fcolorbox{black}{yellow!20}}
\newcommand*{\GELB}{\gelb}
gemacht wird, funktioniert das wieder nicht mehr.
Das ist ein mehr oder weniger grundsätzliches Problem mit key-value-Optionen. Das Argument muss in der Regel bereits die Optionen-Liste sein und nicht erst durch Expansion zu einer Optionenliste werden. Das Problem hatte kürzlich sogar der LaTeX-Kern an einer Stelle. Es gab da im Bug-Tracker eine Meldung (AFAIR von KOMA).
Danke @Stefan Kottwitz für die Codemarkierung. Ohne hätte ich gerade kein Werkzeug zur Hand gehabt, um meine Erklärung auch mit einem getesteten Code zu versehen.
Das Problem ist eher, dass das Argument von [tt]empheq[/tt] vor der Auswertung der Optionen überhaupt nicht expandiert wird. Dadurch bekommt er Optionen-Parser eben nur ein nicht expandiertes [tt]\GELB[/tt] zu sehen. Beim Versuch, das in key und value zu zerlegen, gibt es dann den Fehler. Es wird also eine Variante von [tt]empheq[/tt] benötigt, die das Argument einmal expandiert, damit es für [tt]empheq[/tt] dann wieder ein key-value-Paar (bzw. eine Liste solcher Paare) ergibt:
[code]
\documentclass[a4paper]{amsbook}
\usepackage{xcolor}
\usepackage{empheq,framed}
\newcommand* \GELB{box=\fcolorbox{black}{yellow!20}}
\newenvironment{oempheq}[1][]{%
\expandafter\empheq\expandafter[#1]
}{%
\endempheq
}
\begin{document}
\begin{empheq}[box=\fcolorbox{black}{yellow!20}]{equation}
A=B
\end{empheq}
\begin{oempheq}[\GELB]{equation}
A=C
\end{oempheq}
\end{document}
[/code]
Aber natürlich funktioniert das nur, solange [tt]\GELB[/tt] in einem Schritt zu einer gültigen key-value-Optionenliste wird. Sobald beispielsweise etwas wie:
[code]\newcommand*\gelb{box=\fcolorbox{black}{yellow!20}}
\newcommand*{\GELB}{\gelb}[/code]
gemacht wird, funktioniert das wieder nicht mehr.
Das ist ein mehr oder weniger grundsätzliches Problem mit key-value-Optionen. Das Argument muss in der Regel bereits die Optionen-Liste sein und nicht erst durch Expansion zu einer Optionenliste werden. Das Problem hatte kürzlich sogar der LaTeX-Kern an einer Stelle. Es gab da im Bug-Tracker eine Meldung (AFAIR von KOMA).
Danke @Stefan Kottwitz für die Codemarkierung. Ohne hätte ich gerade kein Werkzeug zur Hand gehabt, um meine Erklärung auch mit einem getesteten Code zu versehen.