Morten Høgholm | 1 Jun 2008 17:39

Re: (x)keyval værdi uden om keys

On Sun, 01 Jun 2008 17:11:40 +0200, Lars Madsen wrote:

> \usepackage{keyval}
> \makeatletter
> \def\DMS <at> format{\mathbb}
> \define <at> key{DMS}{format}{\def\DMS <at> format{#1}}
> \def\DMS <at> name{}
> \define <at> key{DMS}{name}{\def\DMS <at> name{#1}}
> \newcommand\DeclareMathSet[2][]{%
>    \begingroup
>    \setkeys{DMS}{name=#2,#1}
>    \global\ <at> namedef{set\DMS <at> name}{\DMS <at> format{#2}}
>    \endgroup
> }
> \makeatother
>
> i \ <at> namedef linien skal \DMS <at> format{#2} ekspanderes, men det betyder at
> der skal mange \expandafter omkring \ <at> namedef, og hvormange har jeg ikke
> pt. styr på

Som jeg sikkert har givet udtryk for mange gange før, så synes jeg ikke  
det bør være et krav, at man absolut skal sidde og tælle \expandafter's.  
Jeg ved, at når jeg laver noget med lige præcis sekvensen
   \csname blablub...\expandafter\csname
så er jeg ude i noget snavs... (Kun overgået af den dynamiske duo  
\ifnum`{=0}\fi og \iffalse{\fi\ifnum`}=0\fi)

> det undrede mig også lidt at, hvis jeg tilføjede en
>
> \edef\ <at> tempa{\DMS <at> format{#2}}
>
> så gik det endnu mere totalt galt. Det er sikkert alle mine expansions
> der sædvanen tro går galt.

En rå \edef? Du lever livet farligt! :-) \protected <at> edef er noget  
sikrere...

--

-- 
Morten

Gmane