ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
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
___________________________________________________________________________________

  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).