Problem with letter module
Hi,
I am writing a letter with the 'letter' module (mkiv and last beta) and the
\encl{} command doesn't work anymore. I know that the module has been rewriten
recently but I can't find any doc or examples of the new syntax. I tried to
look at the source code but it doesn't help.
So is there any command which replace \encl{}? And is there any documentation
(even succint) of the new module?
Thanks.
--
Romain Diss
Am 18.01.2012 um 21:14 schrieb Romain Diss:
Hi,
I am writing a letter with the 'letter' module (mkiv and last beta) and the \encl{} command doesn't work anymore. I know that the module has been rewriten recently but I can't find any doc or examples of the new syntax. I tried to look at the source code but it doesn't help.
So is there any command which replace \encl{}? And is there any documentation (even succint) of the new module?
With the new version of the module I tried to get rid of a few things which lead to problems or which didn’t fit into context normal syntax. The \encl, \cc and \ps had been such a thing and all three value can now only bet set as keyval argument, e.g. \startletter[enclosure=…] There isn’t a new documentation yet but I’ll give a short overview. There is now only one way to set values for the letter variables in this is \setupletter with it’s keyval syntax, e.g. \setupletter[name=…,address=…]. The \setlettervalue command from the previous version is gone and won’t come back. The letter environment has now only optional argument which acts like a local version of \setupletter where the values are only used in the environment. When you use your document only for a single letter without anything else you can even drop \starttext and \stoptext because this is handled by \startletter and \stopletter. To change the labels in the reference line for the “Date” string you have to use the \setuplettertext command, a special version of \setuplabeltext only for the letter module. Styles are still loaded with \useletterstyle but when you want to put your own settings in a style file you have to name the file “letter-<style>.tex|mkiv”. To load the style you need only the <style> part as argument for the command because the “letter-” part is always added. It doesn't matter if you use tex or mkiv as file extension because the file is found in either case. Wolfgang
Le jeudi 19 janvier 2012, vous avez écrit :
Am 18.01.2012 um 21:14 schrieb Romain Diss:
Hi, (...) So is there any command which replace \encl{}? And is there any documentation (even succint) of the new module?
With the new version of the module I tried to get rid of a few things which lead to problems or which didn’t fit into context normal syntax. The \encl, \cc and \ps had been such a thing and all three value can now only bet set as keyval argument, e.g. \startletter[enclosure=…]
There isn’t a new documentation yet but I’ll give a short overview: (...)
Thank you for all these clarifications.
Unfortunatly, I have now another problem which I didn't notice before because
the \encl{} error didn't let me go to the end of the tex processing. The
following minimal example do not compile:
% example
\usemodule[letter]
\startletter
\input tufte
\stopletter
% end
Instead, I get the following error message:
! Missing number, treated as zero.
system > tex > error on line 100 in file letter.tex: Missing number,
treated as zero ...
<to be read again>
\relax
\pack_layers_set_content ..._pack_layers_x \relax
\d_pack_layers_y_position
...
\pack_layers_set_finish ...layers_set_content {#1}
\fi \fi \else \writestatus...
\correspondence_layer_place ...dence_layer_direct
\fi \else \ifodd \c_corres...
\executedefinedoverlay ...dp \the \everyoverlay #2
\else \lower
\d_framed_tar...
\pack_framed_process_background_indeed_external ...
\else \kern
-\framedbackgr...
...
l.7 \stopletter
Any idea which could help me?
Thanks in advance.
All the best.
--
Romain Diss
Am 19.01.2012 um 15:28 schrieb Romain Diss:
Le jeudi 19 janvier 2012, vous avez écrit :
Am 18.01.2012 um 21:14 schrieb Romain Diss:
Hi, (...) So is there any command which replace \encl{}? And is there any documentation (even succint) of the new module?
With the new version of the module I tried to get rid of a few things which lead to problems or which didn’t fit into context normal syntax. The \encl, \cc and \ps had been such a thing and all three value can now only bet set as keyval argument, e.g. \startletter[enclosure=…]
There isn’t a new documentation yet but I’ll give a short overview: (...)
Thank you for all these clarifications. Unfortunatly, I have now another problem which I didn't notice before because the \encl{} error didn't let me go to the end of the tex processing. The following minimal example do not compile:
It’s a bug a fixed a while ago but I hadn’t uploaded the new version yet. I put the now the current version online and it should be in the context suite in a few hours. Wolfgang
Le jeudi 19 janvier 2012, Wolfgang Schuster a écrit :
Am 19.01.2012 um 15:28 schrieb Romain Diss:
Le jeudi 19 janvier 2012, vous avez écrit :
Am 18.01.2012 um 21:14 schrieb Romain Diss:
Hi, (...) So is there any command which replace \encl{}? And is there any documentation (even succint) of the new module?
With the new version of the module I tried to get rid of a few things which lead to problems or which didn’t fit into context normal syntax. The \encl, \cc and \ps had been such a thing and all three value can now only bet set as keyval argument, e.g. \startletter[enclosure=…]
There isn’t a new documentation yet but I’ll give a short overview: (...)
Unfortunatly, I have now another problem which I didn't notice before because the \encl{} error didn't let me go to the end of the tex processing. (...)
It’s a bug a fixed a while ago but I hadn’t uploaded the new version yet. Thank you for the new version. It now works...
However, this leads me to new questions...
1. When I run context on a context letter input (like the previous minimal
example), the log let me suppose that the \usemodule[letter] command loads the
t-letter.mkii instead of the t-letter.mkiv. Is this the case and why.
Moreover, t-letter.mkiv goal seems to only print an error message, even if my
context version is more recent than the one recommended.
2. The enclosure formatting is not good: there is no space between the encl.
label and the text. Here is a minimal exemple:
% start
\usemodule[letter]
\setupletter
[enclosure=Something]
\startletter
\input tufte
\stopletter
% end
Is this a bug or is this something to be set by hand? In the latter case, what
is the best way to do (I think \setuplettertext[\s!en][\v!enclosure={encl:~}]
should work but one have then to modify the text for all the languages).
3. I respond to one of my previous post: the \getbuffer command works as
argument of the enclosure key. But in the following minimal example case, this
leads to strange sapcing. Any idea of what causes this?
%start
\usemodule[letter]
\startbuffer[enclosure]
\startitemize
\startitem something; \stopitem
\startitem and something else. \stopitem
\stopitemize
\stopbuffer
\setupletter
[enclosure={\getbuffer[enclosure]}]
\startletter
\input tufte
\stopletter
% end
Thanks in advance.
--
Romain Diss
Am 19.01.2012 um 23:06 schrieb Romain Diss:
However, this leads me to new questions...
1. When I run context on a context letter input (like the previous minimal example), the log let me suppose that the \usemodule[letter] command loads the t-letter.mkii instead of the t-letter.mkiv. Is this the case and why. Moreover, t-letter.mkiv goal seems to only print an error message, even if my context version is more recent than the one recommended.
Do you use TeXLive or the ConTeXt Suite (minimals)?
2. The enclosure formatting is not good: there is no space between the encl. label and the text. Here is a minimal exemple: % start \usemodule[letter] \setupletter [enclosure=Something] \startletter \input tufte \stopletter % end Is this a bug or is this something to be set by hand? In the latter case, what is the best way to do (I think \setuplettertext[\s!en][\v!enclosure={encl:~}] should work but one have then to modify the text for all the languages).
I’ll change the default values.
3. I respond to one of my previous post: the \getbuffer command works as argument of the enclosure key. But in the following minimal example case, this leads to strange sapcing. Any idea of what causes this? %start \usemodule[letter] \startbuffer[enclosure] \startitemize \startitem something; \stopitem \startitem and something else. \stopitem \stopitemize \stopbuffer
\setupletter [enclosure={\getbuffer[enclosure]}] \startletter \input tufte \stopletter % end
Something low level, could be caused by the buffer but I have to check myself with a simple example without the letter module. Wolfgang
Thank you for the (always) quick response. Le jeudi 19 janvier 2012, Wolfgang Schuster a écrit : > Am 19.01.2012 um 23:06 schrieb Romain Diss: > > However, this leads me to new questions... > > > > 1. When I run context on a context letter input (like the previous > > minimal example), the log let me suppose that the \usemodule[letter] > > command loads the t-letter.mkii instead of the t-letter.mkiv. Is this > > the case and why. Moreover, t-letter.mkiv goal seems to only print an > > error message, even if my context version is more recent than the one > > recommended. > > Do you use TeXLive or the ConTeXt Suite (minimals)? I use the latest beta of the ConTeXt Suite (minimals): - context 2012.01.16 18:33 - luatex beta-0.70.1-2011051918 (rev 4277) -- Romain Diss
Am 19.01.2012 um 23:57 schrieb Romain Diss: >> Do you use TeXLive or the ConTeXt Suite (minimals)? > I use the latest beta of the ConTeXt Suite (minimals): > - context 2012.01.16 18:33 > - luatex beta-0.70.1-2011051918 (rev 4277) Can show your log file, you should see something like this: resolvers > modules > loaded: 'letter' interface > macros > processed file 's-cor-01.mkvi', delta 24 (s-cor-01.mkvi resolvers > modules > loaded: 'cor-00' interface > macros > processed file 's-cor-00.mkvi', delta 1195 (s-cor-00.mkvi<+ s-cor-00.lua>) (letter-imp-default.mkiv) (letter-imp-dinb.mkiv (letter-imp-default.mkiv))){/Users/wolf/context/beta/tex/texmf-context/fonts/map/pdftex/context/mkiv-base.map} Wolfgang
Le vendredi 20 janvier 2012, Wolfgang Schuster a écrit :
Am 19.01.2012 um 23:57 schrieb Romain Diss:
Do you use TeXLive or the ConTeXt Suite (minimals)?
I use the latest beta of the ConTeXt Suite (minimals): - context 2012.01.16 18:33 - luatex beta-0.70.1-2011051918 (rev 4277)
Can show your log file, you should see something like this:
resolvers > modules > loaded: 'letter' interface > macros > processed file 's-cor-01.mkvi', delta 24 (s-cor-01.mkvi resolvers > modules > loaded: 'cor-00' interface > macros > processed file 's-cor-00.mkvi', delta 1195 (s-cor-00.mkvi<+ s-cor-00.lua>) (letter-imp-default.mkiv) (letter-imp-dinb.mkiv (letter-imp-default.mkiv))){/Users/wolf/context/beta/tex/texmf-context/fon ts/map/pdftex/context/mkiv-base.map}
Here is what the log looks like:
resolvers > modules > loaded: 'letter'
(/home/roms/opt/context/tex/texmf-modules/tex/context/third/letter/base/s-
cor-01.mkvi
resolvers > modules > loaded: 'cor-00'
(/home/roms/opt/context/tex/texmf-modules/tex/context/third/letter/base/s-
cor-00.mkvi<+ /home/roms/opt/context/tex/texmf-
modules/tex/context/third/letter/base/s-cor-00.lua>)
(/home/roms/opt/context/tex/texmf-
modules/tex/context/third/letter/style/letter-imp-default.mkiv)
(/home/roms/opt/context/tex/texmf-
modules/tex/context/third/letter/style/letter-imp-dinb.mkiv
(/home/roms/opt/context/tex/texmf-
modules/tex/context/third/letter/style/letter-imp-default.mkiv)))
{/home/roms/opt/context/tex/texmf-context/fonts/map/pdftex/context/mkiv-
base.map}
and later in the log:
mkiv lua stats > loaded tex modules - 2 requested, 2 found (*-cor-00
*-cor-01), 0 missing
--
Romain Diss
Am 20.01.2012 um 00:20 schrieb Romain Diss:
Le vendredi 20 janvier 2012, Wolfgang Schuster a écrit :
Am 19.01.2012 um 23:57 schrieb Romain Diss:
Do you use TeXLive or the ConTeXt Suite (minimals)?
I use the latest beta of the ConTeXt Suite (minimals): - context 2012.01.16 18:33 - luatex beta-0.70.1-2011051918 (rev 4277)
Can show your log file, you should see something like this:
resolvers > modules > loaded: 'letter' interface > macros > processed file 's-cor-01.mkvi', delta 24 (s-cor-01.mkvi resolvers > modules > loaded: 'cor-00' interface > macros > processed file 's-cor-00.mkvi', delta 1195 (s-cor-00.mkvi<+ s-cor-00.lua>) (letter-imp-default.mkiv) (letter-imp-dinb.mkiv (letter-imp-default.mkiv))){/Users/wolf/context/beta/tex/texmf-context/fon ts/map/pdftex/context/mkiv-base.map}
Here is what the log looks like:
resolvers > modules > loaded: 'letter' (/home/roms/opt/context/tex/texmf-modules/tex/context/third/letter/base/s- cor-01.mkvi resolvers > modules > loaded: 'cor-00' (/home/roms/opt/context/tex/texmf-modules/tex/context/third/letter/base/s- cor-00.mkvi<+ /home/roms/opt/context/tex/texmf- modules/tex/context/third/letter/base/s-cor-00.lua>) (/home/roms/opt/context/tex/texmf- modules/tex/context/third/letter/style/letter-imp-default.mkiv) (/home/roms/opt/context/tex/texmf- modules/tex/context/third/letter/style/letter-imp-dinb.mkiv (/home/roms/opt/context/tex/texmf- modules/tex/context/third/letter/style/letter-imp-default.mkiv))) {/home/roms/opt/context/tex/texmf-context/fonts/map/pdftex/context/mkiv- base.map}
and later in the log:
mkiv lua stats > loaded tex modules - 2 requested, 2 found (*-cor-00 *-cor-01), 0 missing
The right files are loaded, i was curious because you wrote this earlier: 1. When I run context on a context letter input (like the previous minimal example), the log let me suppose that the \usemodule[letter] command loads the t-letter.mkii instead of the t-letter.mkiv. Is this the case and why. Moreover, t-letter.mkiv goal seems to only print an error message, even if my context version is more recent than the one recommended. t-letter.mkii or t-letter.mkiv aren’t loaded with the context suite, both files are only used with texlive 2011 but a recent context doesn’t use them. Wolfgang
Le vendredi 20 janvier 2012, Wolfgang Schuster a écrit :
Am 20.01.2012 um 00:20 schrieb Romain Diss:
Le vendredi 20 janvier 2012, Wolfgang Schuster a écrit :
Am 19.01.2012 um 23:57 schrieb Romain Diss:
Do you use TeXLive or the ConTeXt Suite (minimals)?
I use the latest beta of the ConTeXt Suite (minimals): (...) Can show your log file, you should see something like this: (...) Here is what the log looks like: (...) The right files are loaded, i was curious because you wrote this earlier:
1. When I run context on a context letter input (like the previous minimal example), the log let me suppose that the \usemodule[letter] command loads the t-letter.mkii instead of the t-letter.mkiv. Is this the case and why. Moreover, t-letter.mkiv goal seems to only print an error message, even if my context version is more recent than the one recommended.
t-letter.mkii or t-letter.mkiv aren’t loaded with the context suite, both files are only used with texlive 2011 but a recent context doesn’t use them. Excuse me. I think I misunderstood the way the module was loaded.
Just by curiosity, if none of the t-letter.* files are loaded, how does context
know that it have to load the s-cor-* files when I type \usemodule[letter]?
All the best
--
Romain Diss
On 20-1-2012 22:44, Romain Diss wrote:
Just by curiosity, if none of the t-letter.* files are loaded, how does context know that it have to load the s-cor-* files when I type \usemodule[letter]?
cont-fil.mkiv (one of the oldest features around) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Am 20.01.2012 um 22:44 schrieb Romain Diss:
Just by curiosity, if none of the t-letter.* files are loaded, how does context know that it have to load the s-cor-* files when I type \usemodule[letter]?
When you load a module with \usemodule[<name>] context looks first if it can find a file with the name t-<name>, s-<name> etc. and it does also check for any file which this naming system with different extensions (e.g. *.mkiv and *.tex for MkIV) but there is another search method. When you take a look into the base folder you can see that Hans presentation styles have names in the form s-pre-xx.tex where xx is a number but the wiki says you load them with \usemodule[pre-<name>] where <name> can be “fuzzy” or “shade”. The mapping from s-pre-fuzzy.tex (the synonym) to s-pre-05.tex (the file name) is done with the \definefilesynonym command where you can give files a symbolic name. There is no a additional step when you load a module, \usemodule looks first if the name of the module you requested is a synonym and when this is the case it looks for the real file again with the lookup method given in the first paragraph. When take a look into cont-fil.mkiv you can see that there is also a synonym for the letter module \definefilesynonym [letter] [cor-01] which loads the file s-cor-01.mkvi when you write \usemodule[letter]. Wolfgang
Le jeudi 19 janvier 2012, vous avez écrit :
Am 18.01.2012 um 21:14 schrieb Romain Diss:
Hi, (...) So is there any command which replace \encl{}? And is there any documentation (even succint) of the new module?
With the new version of the module I tried to get rid of a few things which lead to problems or which didn’t fit into context normal syntax. The \encl, \cc and \ps had been such a thing and all three value can now only bet set as keyval argument, e.g. \startletter[enclosure=…]
I forgot another question: does the 'enclosure' key accept a \getbuffer
command? I tried and it seems that it doesn't work but I am not sure because
my input doesn't compile completely.
Thanks
--
Romain Diss
Am 19.01.2012 um 15:28 schrieb Romain Diss:
I forgot another question: does the 'enclosure' key accept a \getbuffer command? I tried and it seems that it doesn't work but I am not sure because my input doesn't compile completely.
It tested it and it does work but why do you need a buffer? When it is to format the list as itemize or something similar I can add a mechanism to make this in a form like “enclosure={list:one,two,three}” which is better than a buffer. Wolfgang
Am 2012-01-19 um 00:21 schrieb Wolfgang Schuster:
There isn’t a new documentation yet but I’ll give a short overview. ...
Since my letter/invoice setup doesn’t work anymore (and perhaps you remember it was a tricky one) - can we expect some docs anytime soon? E.g. \copyletterelement is gone, and I guess my "\startsetups letter:location" and \defineletterelement doesn’t do anything, or any of the other setup commands, at least my logo and sender data don’t show up... Greetlings, Hraban --- http://www.fiee.net/texnique/ http://wiki.contextgarden.net https://www.cacert.org (I'm an assurer)
Am 06.02.2012 um 00:05 schrieb Henning Hraban Ramm:
Am 2012-01-19 um 00:21 schrieb Wolfgang Schuster:
There isn’t a new documentation yet but I’ll give a short overview. ...
Since my letter/invoice setup doesn’t work anymore (and perhaps you remember it was a tricky one) - can we expect some docs anytime soon?
I'll write one when I’m in the right mood. For a few changes read the following I posted a while ago: http://www.ntg.nl/pipermail/ntg-context/2012/064695.html
E.g. \copyletterelement is gone, and I guess my "\startsetups letter:location" and \defineletterelement doesn’t do anything, or any of the other setup commands, at least my logo and sender data don’t show up…
I made few changes in the recent version of the module which breaks backward compatibility with old styles. 1. External styles The predefined styles are loaded from external files with the \useletterstyle command, in the past these files had names in the form <style>.nls. The name system has changed and personal styles have to follow the form “letter-<style>.tex”, you could also use “mkiv” and “mkii” as extensions. 2. Setup commands Previously there has been only the \setupletterstyle command to change the values of the elements, now the various types of elements have dedicated commands. The “layers” (which are used for the “head”, “address” or “reference line”) are configured with the \setupletterlayer and \setupletterframe command, the first is used to move the layer to it’s position on the page with the “x” and “y” keys and you can select one letter elements (which are created with \defineletterelement) with the “alternative” key. With the \setupletterframe you can change the “width” and “height” of the element. The “sections” (which are used for the “subject” and “content”) are configured with the \setuplettersection command which allows you to change the alignment and spacing before and after the element. Global settings like the bodyfont, whitespace or language can be changed with the \setuplettersoptions command. The old \setupletterstyle command had been reduced to change the style and color for the variables which are set with \setupletter (or \startletter), e.g. you can say \setupletter[date][textstyle=bold,color=red] to change the layout of the date in the reference line. A complete list with all values for the various commands can be seen in the following document: https://bitbucket.org/wolfs/correspondence/downloads/commands.pdf 3. \defineletterelement One limitation of the old module was that element names had been shared between layers and section (i.e. it was impossible to have a layer and a section with the same name). This limitation was removed and it’s now possible to layers and sections with the same name but ti handle this the \defineletterlement command needed a additional argument. The syntax for the command is now \defineletterelement[<type>][<element>][<name>]{<content>} As a example I show a definition for the head with the name “test” which prints the value of the “firstname” key. \defineletterelement[layer][head][test]{\correspondenceparameter{firstname}} The old \copyletterelement command is no longer available, when you miss a few default just send me a mail and I’ll add them. 4. \startsetups The old version used \startsetups for the content of the elements. With the current version all internals use now \letterelement but there is a method to feed them with the \startsetups argument, all you need is \setupletteroptions[option=setups] in your document. Nevertheless also the names for \startsetups have been changed to follow the unique named mentioned above and the old name “letter:location” is now “letter:layer:location”. 5. Layout The layout of the letter environment can be changed with the \setupletterlayout command, it is possible to use a different layout for the first (firstpage) and the following (secondpage) pages but starting from the second page one can also set different value for left (leftpage) and right (rightpage) pages. Wolfgang
participants (4)
-
Hans Hagen
-
Henning Hraban Ramm
-
Romain Diss
-
Wolfgang Schuster