Jean-Philippe Rey schrieb am 24.05.2019 um 13:49:
Hello Everybody,

Le 8 avr. 2019 à 15:26, Henning Hraban Ramm <te...@fiee.net> a écrit :

How would you approach serial letters, e.g. to all members of a club?
(Actually I need to send out donation receipts.)

I’d like to use the letter module, since my usual letter design is using it.

I can export the addresses to CSV, JSON, Lua tables or whatever or transfer 
them to a SQLite db.
Would it make more sense to read them in Lua and combine this data with a 
buffer, or to write a single tex file for every letter?
I know how to do the latter, but I’d like to learn a more ConTeXt-ish way.
Would it make sense to use the bibliographies module?
I have the same need. I tried a basic solution:

======================= Start failing example
\usemodule[letter]

\setupletter[
   signature={JPR},
   closing={Sincerely yours,}
   ]

\def\GenLetter[#1]{
   \getparameters[GL][#1]
   \startletter[
      toname={\GLto},
      toaddress={\GLadr},
      opening={\GLciv},
      ]

   Blah blah \GLciv.

   \stopletter
}

\starttext

\GenLetter[civ={M.}, to={Pierre Durand}, adr={Trifouillis-les-Oies}]

\stoptext
======================= End failing example

My idea being to generate as many letters I like by multiplying the \GenLetter 
line.

However, I get an error message I don’t understand. Can someone point to the 
thing I am doing wrong ?
The problem is that you put the letter-environment in a command but the environment uses the buffer mechanism to store the content which doesn't work when it is used in a command definition.

What you have to do is to move the content of the letters out of the \GenLetter command, you can use the lettercontent-environment for this. In the \GenLetter command you now use the \placeletter command to flush the content of the letter with the current values for the address etc.

%%%% begin example
\usemodule[letter]

\setupletter
  [signature={JPR},
     closing={Sincerely yours,}]

\setupletter
  [   toname=\correspondenceparameter{to},
   toaddress=\correspondenceparameter{adr},
     opening=\correspondenceparameter{civ}]

\startlettercontent
  Blah blah \correspondenceparameter{civ}.
\stoplettercontent

\def\GenLetter[#1]%
  {\begingroup
     \setupletter[#1]%
     \placeletter
   \endgroup}

\starttext

\GenLetter[civ={M.}, to={Pierre Durand}, adr={Trifouillis-les-Oies}]

\stoptext
%%%% end example

Wolfgang

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to