Dag allemaal, 


Ik loop vast op het schrijven van een macro in een class. 

Het gaat om het volgende: ik wil een environment met twee argumenten. Het eerste is een plaatjesnaam is een breedte.

Alsik een plaatje heb, dan wil ik een minipage met een plaatje, en rechts daarvan een opsomming items. Als ik niets heb, dan wil ik een opsomming op de hele breedte. De verhouding tussen plaatje en tekst is default 1/4 versus 3/4. Heb ik iets in het tweede argument, dan is dat de breedte van de minipage van het plaatje, en ik pas de breedtes aan. Ik hou rekening met 5% marge.

Dit is mijn code :

\newenvironment{cbkingredients}[2]{%
\def\lingr{.25}%
\def\ringr{.70}%
\ifthenelse{\equal{#2}{}}{}{%
\def\lingr{##2}%
\def\ringr{.95 - ##2}}%
\ifthenelse{\equal{#1}{}}{}{%
\begin{minipage}[t]{\lingr\textwidth}%
\includegraphics[width=.95*\lingr \textwidth]{#1}%
\end{minipage}
\begin{minipage}[t]{\ringr\textwidth}%
}%
\begin{itemize}
}{%
\end{itemize}%
\ifthenelse{\equal{#1}{}}{}{\end{minipage}}%
}

(ik laad hoger in de source het calc package, zodat ik * kan gebriuken om lengtes te vermenigvuldigen)

Ik heb goed begrepen dat ik bij macro's binnen macro's (dus bij \def) de argument van een dubbele pound-sign moet voorzien (waarom? En heb ik het goed gelezen?)



Maar als ik XeLaTeX run, op, bijvoorbeeld:

\begin{cbkingredients}{img/nutmeg.jpg}{.2}
\item Nutmeg
\item Milk
\end{cbkingredients}


dan krijg ik "Illegal parameter number in definition of \endcbkingredients". 

Ik heb van alles geprobeerd, maar de boodschap blijft komen. 

Weten jullie wat ik fout doe?

Bedankt alvast!






Bas Dekker 
(sub-account voor TeXniek)

Postbus 11088
1001 GB Amsterdam

+31 (0)6 25 00 32 78