Hi all, must be the heat here in Germany - I'm all out of ideas, and I have no example yet. Maybe someone can help: is it possible to define an xml setup that will run arbitrary tex code? Something like this (obviously pseudo-code): in a TeX file MyInputs.tex which will be loaded at runtime, I have: \startTEXbuffer[mybuffer] \color[red]{Hello World!} \stopTEXbuffer in the xml, I have <gettexbuffer>mybuffer</gettexbuffer> and in the setups \input MyInputs \startxmlsetups xml:gettexbuffer \getTEXbuffer[\xmlflush{#1}] \stopxmlsetups I tried with simple \startbuffer[mybuffer] ... \getbuffer[mybuffer], but the result is that the TeX code is typeset verbatim, not processed (problem of catcodes?). Any takers before I pull myself together and try to come up with an example? Thanks! Thomas
On 22-8-2011 18:02, Thomas A. Schmitz wrote:
Hi all,
must be the heat here in Germany - I'm all out of ideas, and I have no example yet. Maybe someone can help: is it possible to define an xml setup that will run arbitrary tex code? Something like this (obviously pseudo-code):
I know that I should refuse to answer questions without a minimal example ... I'm pretty sure that your students can't use the heat-wave excuse. \startbuffer[example] <something> <sometex>weird</sometex> </something> \stopbuffer \startbuffer[weird] \color[red]{Looks red to me!} \stopbuffer \startxmlsetups xml:mysetups \xmlsetsetup{#1}{*}{xml:*} \stopxmlsetups \xmlregistersetup{xml:mysetups} \startxmlsetups xml:something \blank \relax [start something] \blank \xmlflush{#1} \blank \relax [stop something] \blank \stopxmlsetups \startxmlsetups xml:sometex \pushcatcodetable \catcodetable\ctxcatcodes \getbuffer[\xmlflush{#1}] \popcatcodetable \stopxmlsetups \starttext \xmlprocessbuffer{main}{example}{} \stoptext I'll replace \processTEXbuffer by: \unexpanded\def\processTEXbuffer {\dosingleempty\doprocessTEXbuffer} \def\doprocessTEXbuffer[#1]% {\pushcatcodetable \catcodetable\ctxcatcodes \getbuffer[#1]% \popcatcodetable} so that you can say: \startxmlsetups xml:sometex \processTEXbuffer[\xmlflush{#1}] \stopxmlsetups 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 -----------------------------------------------------------------
On 08/22/2011 07:19 PM, Hans Hagen wrote:
I know that I should refuse to answer questions without a minimal example ... I'm pretty sure that your students can't use the heat-wave excuse.
You're right, of course, for educational purposes... As for my students: they use the weirdest excuses anyway...
\startbuffer[example] <something> <sometex>weird</sometex> </something> \stopbuffer
\startbuffer[weird] \color[red]{Looks red to me!} \stopbuffer
\startxmlsetups xml:mysetups \xmlsetsetup{#1}{*}{xml:*} \stopxmlsetups
\xmlregistersetup{xml:mysetups}
\startxmlsetups xml:something \blank \relax [start something] \blank \xmlflush{#1} \blank \relax [stop something] \blank \stopxmlsetups
\startxmlsetups xml:sometex \pushcatcodetable \catcodetable\ctxcatcodes \getbuffer[\xmlflush{#1}] \popcatcodetable \stopxmlsetups
\starttext \xmlprocessbuffer{main}{example}{} \stoptext
I'll replace \processTEXbuffer by:
\unexpanded\def\processTEXbuffer {\dosingleempty\doprocessTEXbuffer}
\def\doprocessTEXbuffer[#1]% {\pushcatcodetable \catcodetable\ctxcatcodes \getbuffer[#1]% \popcatcodetable}
so that you can say:
\startxmlsetups xml:sometex \processTEXbuffer[\xmlflush{#1}] \stopxmlsetups
Excellent, it must be less hot in Hasselt then... Thanks for the example, and for the solution! So \processTEXbuffer will end up in the core? All best Thomas
On 22-8-2011 19:31, Thomas A. Schmitz wrote:
Excellent, it must be less hot in Hasselt then... Thanks for the
no, also hot
example, and for the solution! So \processTEXbuffer will end up in the core?
yes, already put in 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 -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
Thomas A. Schmitz