ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Re: serial definition
@ 2006-01-03 14:11 Henning Hraban Ramm
  2006-01-06 21:25 ` Willi Egger
  0 siblings, 1 reply; 8+ messages in thread
From: Henning Hraban Ramm @ 2006-01-03 14:11 UTC (permalink / raw)


(This mail was rejected as spam in my first try, and the reject  
message was catched by my spam filter...)

Am 2006-01-03 um 11:51 schrieb Taco Hoekwater:
> You need to expand the \Set commands in that first loop,
> otherwise you store the literal token \recursevelel inside
> the definitions of the Key and Val macros (\setvalue{}{}
> autoexpands its first argument, but not its second argument).
>
> When not inside a recursion, \recurselevel expands to the number
> 0  (zero) in the "manual bit", and you are actually re-evaluating
> the macro using the then current \recurselevel definition
> when inside the  "looping" bit.

The magic expansion hit me again, I should've known it.

> So you need:
>
>   \dostepwiserecurse{1}{9}{1}{
>     \expanded{\Set{\recurselevel}{K\recurselevel}{V\recurselevel}}
>   }
>
> I hope this is clear enough?

Thank you very much!
Actually, in the real environment I needed the \expanded at another  
place:

\def\Sender#1#2#3{\setvalue{SenderKey#1}{#2}\setvalue{SenderVal#1}{#3}}
\def\GetSenderLine#1{\bTR\bTD\doiftextelse{\getvalue{SenderKey#1}}	 
{\getvalue{SenderKey#1}:}{}\eTD\bTD\getvalue{SenderVal#1}\eTD\eTR}
% initialize values (not even needed)
\dostepwiserecurse{1}{9}{1}{
     \Sender{\recurselevel}{}{}
}

\startsetups sendertablesetup
	\setupTABLE[frame=off]
	\setupTABLE[x][1][width=\senderkeywidth, align=left, style={\keystyle 
\strut}]
	\setupTABLE[x][2][width=\sendervalwidth, align=right, style= 
{\valstyle\strut}]
	\bTABLE
\dostepwiserecurse{1}{9}{1}{% count from 1 to 9, step 1
	\expanded{\GetSenderLine{\recurselevel}}
}
	\eTABLE
\stopsetups

I collect this (and more) at http://wiki.contextgarden.net/ 
Talk:Letter_style



Grüßlis vom Hraban!
---
http://www.fiee.net/texnique/
http://contextgarden.net
http://www.cacert.org (I'm an assurer)

^ permalink raw reply	[flat|nested] 8+ messages in thread
* serial definition
@ 2006-01-02 14:54 Henning Hraban Ramm
  2006-01-02 18:20 ` Peter Rolf
  0 siblings, 1 reply; 8+ messages in thread
From: Henning Hraban Ramm @ 2006-01-02 14:54 UTC (permalink / raw)


Hi ho!

This is a part of Holger Schöner's letter style (see http:// 
wiki.contextgarden.net/Letter_style):

\def\lettersenderkeyone{}
\def\lettersendervalone{}
\def\lettersenderkeytwo{}
\def\lettersendervaltwo{}
% etc.
\def\lettersenderkeynine{}
\def\lettersendervalnine{}

\def\senderone#1#2{\def\lettersenderkeyone{#1}\def\lettersendervalone 
{#2}}
\def\sendertwo#1#2{\def\lettersenderkeytwo{#1}\def\lettersendervaltwo 
{#2}}
% etc.
\def\sendernine#1#2{\def\lettersenderkeynine{#1}\def 
\lettersendervalnine{#2}}

\startsetups sendertablesetup
     \bTABLE
     \setupTABLE[frame=off]
     \setupTABLE[x][1][width=\senderkeywidth, align=left, style= 
{\keystyle\strut}]
     \setupTABLE[x][2][width=\sendervalwidth, align=right, style= 
{\valstyle\strut}]
     \bTR\bTD\doiftextelse{\lettersenderkeyone}     
{\lettersenderkeyone:}{}\eTD\bTD\lettersendervalone\eTD\eTR
     \bTR\bTD\doiftextelse{\lettersenderkeytwo}     
{\lettersenderkeytwo:}{}\eTD\bTD\lettersendervaltwo\eTD\eTR
     % etc.
     \bTR\bTD\doiftextelse{\lettersenderkeynine}     
{\lettersenderkeynine:}{}\eTD\bTD\lettersendervalnine \eTD\eTR
     \eTABLE
\stopsetups

Is there a more programmatical way for such? (Does TeX know something  
like arrays or dicts?)
Sorry, I still can't program in TeX...


Grüßlis vom Hraban!
---
http://www.fiee.net/texnique/
http://contextgarden.net
http://www.cacert.org (I'm an assurer)

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2006-01-06 21:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-03 14:11 serial definition Henning Hraban Ramm
2006-01-06 21:25 ` Willi Egger
  -- strict thread matches above, loose matches on Subject: below --
2006-01-02 14:54 Henning Hraban Ramm
2006-01-02 18:20 ` Peter Rolf
2006-01-02 21:46   ` Henning Hraban Ramm
2006-01-03 10:33     ` Peter Rolf
2006-01-03 10:51       ` Taco Hoekwater
2006-01-03 17:22         ` Hans Hagen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).