From: Wolfgang Schuster <wolfgang.schuster.lists@gmail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>,
Jean-Philippe Rey <jean-philippe.rey@ecp.fr>
Subject: Re: serial letters
Date: Fri, 24 May 2019 18:05:15 +0200 [thread overview]
Message-ID: <065b375a-53a6-44ce-43c6-da8828b91ae0@gmail.com> (raw)
In-Reply-To: <0F91C081-2CD3-4EA0-8944-157C7F756DE7@ecp.fr>
Jean-Philippe Rey schrieb am 24.05.2019 um 13:49:
> Hello Everybody,
>
>> Le 8 avr. 2019 à 15:26, Henning Hraban Ramm <texml@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
___________________________________________________________________________________
next prev parent reply other threads:[~2019-05-24 16:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-08 13:26 Henning Hraban Ramm
2019-04-09 19:38 ` Wolfgang Schuster
2019-04-10 7:08 ` Henning Hraban Ramm
2019-05-06 11:15 ` Jan U. Hasecke
2019-05-07 10:08 ` Henning Hraban Ramm
2019-05-24 11:49 ` Jean-Philippe Rey
2019-05-24 16:05 ` Wolfgang Schuster [this message]
2019-05-24 18:19 ` jean-philippe.rey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=065b375a-53a6-44ce-43c6-da8828b91ae0@gmail.com \
--to=wolfgang.schuster.lists@gmail.com \
--cc=jean-philippe.rey@ecp.fr \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).