Do environment files add implicit \starttext ... \stopttext
Hi, if I process an XML buffer, I've noticed I need to wrap the \xmlprocessbuffer in a \starttext ... \stoptext pair. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \startbuffer[test] <?xml version='1.0' standalone='yes?> <document> <p>a paragraph of text</p> <p>another paragraph of text</p> </document> \stopbuffer \startxmlsetups xml:demo \xmlsetsetup{\xmldocument}{document|p}{xml:*} \stopxmlsetups \xmlregistersetup{xml:demo} \startxmlsetups xml:document \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\endgraf \stopxmlsetups \starttext \xmlprocessbuffer{test}{test}{} \stoptext %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% However, if I have the XML and the setups in dedicated files, there seems to be no need for \starttext ... \stoptext. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% text.xml <?xml version='1.0' standalone='yes?> <document> <p>a paragraph of text</p> <p>another paragraph of text</p> </document> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% setups.tex \startxmlsetups xml:demo \xmlsetsetup{\xmldocument}{document|p}{xml:*} \stopxmlsetups \xmlregistersetup{xml:demo} \startxmlsetups xml:document \xmlflush{#1} \stopxmlsetups \startxmlsetups xml:p \xmlflush{#1}\endgraf \stopxmlsetups %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Running context text.xml -environment=setups.tex gives me a proper PDF without errors. Therefore my question: Does the use -environment automatically wrap the processed file in \starttext ... stoptext ? If not, what's the reason for this behaviour? Am I missing something? Best, Denis
On 11/15/22 13:22, Denis Maier via ntg-context wrote:
Hi,
if I process an XML buffer, I’ve noticed I need to wrap the \xmlprocessbuffer in a \starttext ... \stoptext pair. [] However, if I have the XML and the setups in dedicated files, there seems to be no need for \starttext ... \stoptext. [] Therefore my question:
Does the use –environment automatically wrap the processed file in \starttext ... stoptext ?
Hi Denis, try a source file with this contents: \ConTeXt\ is great. with the following environment: \setuppapersize[A6] \setupbodyfont[pagella] It looks like when --environment is used, ConTeXt assumes that the main source only contains text. Which makes sense (at least, to me). Just in case it might help, Pablo
-----Ursprüngliche Nachricht----- Von: ntg-context
Im Auftrag von Pablo Rodriguez via ntg-context Gesendet: Dienstag, 15. November 2022 16:07 An: Denis Maier via ntg-context Cc: Pablo Rodriguez Betreff: Re: [NTG-context] Do environment files add implicit \starttext ... \stopttext On 11/15/22 13:22, Denis Maier via ntg-context wrote:
Hi,
if I process an XML buffer, I’ve noticed I need to wrap the \xmlprocessbuffer in a \starttext ... \stoptext pair. [] However, if I have the XML and the setups in dedicated files, there seems to be no need for \starttext ... \stoptext. [] Therefore my question:
Does the use –environment automatically wrap the processed file in \starttext ... stoptext ?
Hi Denis,
try a source file with this contents:
\ConTeXt\ is great.
with the following environment:
\setuppapersize[A6] \setupbodyfont[pagella]
It looks like when --environment is used, ConTeXt assumes that the main source only contains text. Which makes sense (at least, to me).
Thanks, Pablo. Yes, that makes sense. Denis
Pablo Rodriguez via ntg-context schrieb am 15.11.2022 um 16:06:
On 11/15/22 13:22, Denis Maier via ntg-context wrote:
Hi,
if I process an XML buffer, I’ve noticed I need to wrap the \xmlprocessbuffer in a \starttext ... \stoptext pair. [] However, if I have the XML and the setups in dedicated files, there seems to be no need for \starttext ... \stoptext. [] Therefore my question:
Does the use –environment automatically wrap the processed file in \starttext ... stoptext ? Hi Denis,
try a source file with this contents:
\ConTeXt\ is great.
with the following environment:
\setuppapersize[A6] \setupbodyfont[pagella]
It looks like when --environment is used, ConTeXt assumes that the main source only contains text. Which makes sense (at least, to me).
The reason why this does work has nothing to do with the environment file, the only thing which is responsible to get a PDF with output is the \setupbodyfont line. Better examples are %%%% begin example 1 \CONTEXT\ is great. %%%% end example 1 and %%%% begin example 2 \setupbodyfont[modern] \CONTEXT\ is great. %%%% begin example 2 where the output of the first example is broken. To ensure the document exists in a proper manner ConTeXt inserts \stoptext at the end of the document but there is never a \starttext inserted at any point when you process a regular tex file. You should also notice a message like system > invalid \starttext ... \stoptext structure on the terminal. Wolfgang
On 11/18/22 15:52, Wolfgang Schuster via ntg-context wrote:
Pablo Rodriguez via ntg-context schrieb am 15.11.2022 um 16:06:
[...] It looks like when --environment is used, ConTeXt assumes that the main source only contains text. Which makes sense (at least, to me).
The reason why this does work has nothing to do with the environment file, the only thing which is responsible to get a PDF with output is the \setupbodyfont line.
Many thanks for your explanation, Wolfgang. Now it is perfectly clear to me why this worked. Many thanks for your help, Pablo
Denis Maier via ntg-context schrieb am 15.11.2022 um 13:22:
Hi,
if I process an XML buffer, I’ve noticed I need to wrap the \xmlprocessbuffer in a \starttext ... \stoptext pair.
[...]
However, if I have the XML and the setups in dedicated files, there seems to be no need for \starttext ... \stoptext.
[...]
Running
context text.xml –environment=setups.tex
gives me a proper PDF without errors.
Therefore my question:
Does the use –environment automatically wrap the processed file in \starttext ... stoptext ?
If not, what’s the reason for this behaviour? Am I missing something?
ConTeXt uses the file extension to decide who it should handle document, in your case the extension is xml and the file is processed as \starttext \xmlprocess{main}{...}{} \stoptext The same thing happens when you have CLD document and use cld as file extension. For more details you can look at the processjob function in cont-run.lmt. Wolfgang
participants (3)
-
denis.maier@unibe.ch
-
Pablo Rodriguez
-
Wolfgang Schuster