Thank you Thomas and Wolfgang, About startletter / starttext: the contents of my test file reflect a moment. I have made numerous tests with and without starttext/stoptext. The state of the test file is one in an endless row of tests. I am not without total experience in programing. I more or less understand program scripts when they are not too complicated and I like tweaking them, yet I cannot think up a new program from scratch. But anyway, I will go ahead with your suggestions! Thank you very much again! Robert
Op 30 jul. 2017, om 17:38 heeft Schmitz Thomas A.
het volgende geschreven: On 30. Jul 2017, at 14:15, r.ermers@hccnet.nl wrote:
Let me as a turcologist compare my problem to learning Kazakh: I am prepared to give you a manual with the grammatical rules, provide you with lists of nouns, verbs, adjectives and postpositions, explain the application of phonological rules, transliterations of the alphabet, give you a insight in the nominal cases and verb structure, and read with you a text in Kazakh. Nevertheless, without being rude, I bet that even then you are unable to flawlessly produce a poem or even a brief text in Kazakh yourself.
OK, I see your desperation, and I take your analogy (I’m a scholar myself, not a programmer): if someone came to you with the Iliad and explained that he doesn’t know a word of Kazakh but wants all of Homer’s poem, every line, every word, every nuance, expressed in Kazakh with the help of a grammar and a dictionary, you’d reply that this is not how learning languages works. You begin with simple sentences and work your way up. You have shown us several times examples that don’t work, and I have expressed my suspicion that this may be due to using the correspondence module. You weren’t sure whether you need it or not; which is something only you can know. What does this module offer that can’t be accomplished otherwise? If you look at the documentation of the module, you see that the \startletter … \stopletter pair starts an environment within a \starttext … \stoptext context document. When you look at your setup, you will see that you have a \startletter … \stopletter, then a few setups, and then a \starttext … \stoptext document. I’m not a programmer, but I see that this will not work.
So for some simple rules: when you process an xml buffer (or document), you define xmlsetups for the different xml elements. When you write \xmlprocessbuffer, that’s when these elements will be processed - which means: that’s when your document will be built. You can’t go through your xml buffer/document and then add further text (well you can, but that’s more complicated), so what you have to do is add your text (for the sake of this example: \input knuth) WITHING THESE SETUPS. So let’s start with a simple document that will work:
\startbuffer[participants] <contacts> <contact class='participant' label='Hendriks'> <formalname>Hendriks</formalname> <informalname>Karel</informalname> <prefix>mr.</prefix> <initials>K.</initials> <city>Arnhem</city> <address> <p>Mr. K. Hendriks</p> <p>Grotestraat 5</p> <p>1234 BB Arnhem</p> </address> <kix>1234bb5</kix> </contact> <contact class='participant' label='Janssen'> <formalname>Janssen</formalname> <informalname>Piet</informalname> <initials>P.</initials> <prefix>mr.</prefix> <city>Nijmegen</city> <address> <p>Mr. P. Janssen</p> <p>Kortestraat 8</p> <p>1234 AA Nijmegen</p> </address> <kix>1234aa8</kix> </contact> </contacts> \stopbuffer
\startxmlsetups xml:setups \xmlsetsetup{#1}{contacts|contact|formalname|informalname|prefix|initials|address|city|text|kix|p}{xml:*} \stopxmlsetups
\xmlregistersetup{xml:setups}
\startxmlsetups xml:contacts \xmlflush{#1} \stopxmlsetups
\startxmlsetups xml:p \xmlflush{#1}\par \stopxmlsetups
\startxmlsetups xml:contact \xmltext{#1}{/address} \blank [3*line] Subject: your life in \xmltext{#1}{/city} \blank [2*line] Dear \xmltext{#1}{/prefix} \xmltext{#1}{/formalname}, \blank [line] \input knuth \relax
Kind regards \blank [line] X \page \stopxmlsetups
\setuppagenumbering [state=stop]
\starttext \xmlprocessbuffer{main}{participants}{} \stoptext
So you see what I’m doing here: I process every simple <contact> element, and I add all the stuff that will go into the letter for every single contact. Start with this document and then find out what you need in addition: a logo, some fancy lines across the letters, a special placement for the address and the subject, etc.? I’m guessing that it would be easier to do this with simple setup commands rather than using the correspondence module, but we have no idea what you need to accomplish. Once you find out what’s missing, you can modify the example and ask additional questions. But, to take your analogy: don’t start with irregular verbs and special cases that will complicate the picture. How is this line
\setuplanguage[nl][date={year, –, mm, –, dd}] % ISO 8601 date
from your original example relevant to your problem? And again: please don’t give me the “I’m not a programmer” response; I’m not a programmer either, but I know that you have to reduce the complexity in problems to find a solution. You’re adding extra complexity.
The way I describe above is the easiest path. There are other approaches, of course: you can combine elements from several xml documents, or you can process the xml data with Lua. All of this may be unnecessary in your case, but nobody will be able to help unless we understand what you need. And to explain this, you will have to start with simple examples, not with a complex document.
Sorry for being somewhat stern, but I’m sure you would give similar advice to your students…
All best
Thomas
___________________________________________________________________________________ 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 ___________________________________________________________________________________