Hello, Can be deployed print letters due t-letter module in the cycle? When I use recursion, then an error occurs. I note that I am going to change the values (from CSV file) in a cycle (that someone thought that I want to write a few the same letters in cycle :-) here is my example: \usemodule[letter] \starttext \dorecurse{5}{ \startletter[ toname={Name}, toaddress={Address}, opening={Dear Name,}, subject={Step by step guide to write a letter}, closing={Greetings from the Author}] Thus, I came to the conclusion ... \stopletter \page } \stoptext Thanx, Jaroslav
Hello I answer it yourself. I was experimented and thought about using buffers and the problem is successfully for my library resolved :-) I think that I found an interesting use of the letter module... Jaroslav Only for example : \directlua{dofile("scancsv.lua")} \setupcolors[state=start] \usemodule[letter] \setupletter [fromname={The Author}, fromaddress={Hidden Street 2\\57895 Mystery town}] \startbuffer[myletter] \startletter[ toname={\Firstname\ \Name}, toaddress={\Street\\ \Zipcode\ \Town}, opening={Dear \Firstname,}, subject={Step by step guide to write a letter to \Firstname\ \Name}, closing={{\color Greetings from the Author} to \Name\ \Firstname}] Thus, I came to the conclusion ... \Mygreeting \stopletter \stopbuffer \starttext \setheader \opencsvfile{file1.csv} % Recurse using \dorecurse{5}{ \getbuffer[myletter] \nextrow \page } \page % Or loop cycle \opencsvfile{file2.csv} \doloop{\ifnotEOF\getbuffer[myletter]\nextrow\else\exitloop\fi} %OK \stoptext Dne 29.8.2010 2:34, Jaroslav Hajtmar napsal(a):
Hello, Can be deployed print letters due t-letter module in the cycle? When I use recursion, then an error occurs. I note that I am going to change the values (from CSV file) in a cycle (that someone thought that I want to write a few the same letters in cycle :-)
here is my example:
\usemodule[letter]
\starttext
\dorecurse{5}{ \startletter[ toname={Name}, toaddress={Address}, opening={Dear Name,}, subject={Step by step guide to write a letter}, closing={Greetings from the Author}]
Thus, I came to the conclusion ...
\stopletter \page }
\stoptext
Thanx, Jaroslav
___________________________________________________________________________________
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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
Am 29.08.2010 um 03:19 schrieb Jaroslav Hajtmar:
Hello I answer it yourself. I was experimented and thought about using buffers and the problem is successfully for my library resolved :-) I think that I found an interesting use of the letter module...
Jaroslav
Only for example :
[...]
\startbuffer[myletter] \startletter[ toname={\Firstname\ \Name}, toaddress={\Street\\ \Zipcode\ \Town}, opening={Dear \Firstname,}, subject={Step by step guide to write a letter to \Firstname\ \Name}, closing={{\color Greetings from the Author} to \Name\ \Firstname}]
Thus, I came to the conclusion ... \Mygreeting
\stopletter \stopbuffer
You can’t use buffers inside \dorecurse and the letter environment is a buffer with a few extension to accept a argument for values. You can get around this with the alternative mode for the environment with is enabled by: \setupletterstyle[option][method=content] % \setupletteroptions[method=content] \dorecurse{5} {... \startletter [toname={\Firstname\ \Name}, toaddress={\street\\\Zipcode\ \Town}, ...] This, I came to the conclusion … \Mygreeting \stopletter ...} The disadvantage is that \startlines or \starttyping can't be used anymore inside of a letter. The second method you can use is to drop the letter environment and set the values for the address and name with \setupletter and store the content with the lettercontent environment (just a names buffer). The letter itself can now be flushed with \setups[letter:place]. \setupletter [toname={\Firstname\ \Name}, toaddress={\street\\\Zipcode\ \Town}, ...] \startlettercontent This, I came to the conclusion … \Mygreeting \stoplettercontent \dorecurse{5}{...\setups[letter:place]...} Wolfgang
Hello, Wolfgang, thanked for alternative solutions. While saying that the use of the buffers is not possible, but even though you do not seem to really work with my scancsv.lua library, and even very good! With the help of my library and your letter module I can print dozens of similar letters which differ only certain data. Thanks for your letter module - very helps me Jaroslav Dne 29.8.2010 9:02, Wolfgang Schuster napsal(a):
Am 29.08.2010 um 03:19 schrieb Jaroslav Hajtmar:
Hello I answer it yourself. I was experimented and thought about using buffers and the problem is successfully for my library resolved :-) I think that I found an interesting use of the letter module...
Jaroslav
Only for example :
[...]
\startbuffer[myletter] \startletter[ toname={\Firstname\ \Name}, toaddress={\Street\\ \Zipcode\ \Town}, opening={Dear \Firstname,}, subject={Step by step guide to write a letter to \Firstname\ \Name}, closing={{\color Greetings from the Author} to \Name\ \Firstname}]
Thus, I came to the conclusion ... \Mygreeting
\stopletter \stopbuffer
You can’t use buffers inside \dorecurse and the letter environment is a buffer with a few extension to accept a argument for values.
You can get around this with the alternative mode for the environment with is enabled by:
\setupletterstyle[option][method=content] % \setupletteroptions[method=content]
\dorecurse{5} {... \startletter [toname={\Firstname\ \Name}, toaddress={\street\\\Zipcode\ \Town}, ...] This, I came to the conclusion … \Mygreeting \stopletter ...}
The disadvantage is that \startlines or \starttyping can't be used anymore inside of a letter.
The second method you can use is to drop the letter environment and set the values for the address and name with \setupletter and store the content with the lettercontent environment (just a names buffer). The letter itself can now be flushed with \setups[letter:place].
\setupletter [toname={\Firstname\ \Name}, toaddress={\street\\\Zipcode\ \Town}, ...]
\startlettercontent This, I came to the conclusion … \Mygreeting \stoplettercontent
\dorecurse{5}{...\setups[letter:place]...}
Wolfgang
Am 29.08.2010 um 11:59 schrieb Jaroslav Hajtmar:
Hello, Wolfgang, thanked for alternative solutions. While saying that the use of the buffers is not possible, but even though you do not seem to really work with my scancsv.lua library, and even very good! With the help of my library and your letter module I can print dozens of similar letters which differ only certain data. Thanks for your letter module - very helps me
I hadn't used your module in my example because 1. I don't have access to the module, 2. I doesn't matter where the data comes from, you can input the data for a serial letter from TeX, XML, Lua or whatever else you use, the important thing is to know how to deal with the restriction of buffers (what the letter environment is). It isn't also necessary to rely on the letter environment and the \setupletter commands because you can use all the available setups environments (I should document this) without problems. Wolfgang
Thanx Wolfgang, Now everything is OK, your module t-letter works with my Lua library very well and without any obvious limit. I will demonstrate it at COnTeXtmeeting in Brejlov. Jaroslav Dne 9.9.2010 14:49, Wolfgang Schuster napsal(a):
1. I don't have access to the module,
2. I doesn't matter where the data comes from, you can input the data for a serial letter from TeX, XML, Lua or whatever else you use, the important thing is to know how to deal with the restriction of buffers (what the letter environment is). It isn't also necessary to rely on the letter environment and the \setupletter commands because you can use all the available setups environments (I should document this) without problems.
Wolfgang
participants (2)
-
Jaroslav Hajtmar
-
Wolfgang Schuster