[NTG-context] XML in ConTeXt & verbatim text
Hans Hagen
pragma at wxs.nl
Wed Dec 15 17:57:11 CET 2004
Richard Gabriel wrote:
> Hi Adam,
>
> I did so right now (thanks for the hint!).
> But in that file ther's only solved a case when each line of the
> verbatim text is placed in a special tag:
>
> <verbatim>
> <line>Dit \is nogal verbatim !</line>
> <line>Dit is {nogal} verbatim !</line>
> <line>Dit is <nogal> verbatim !</line>
> </verbatim>
>
> This is trivial because you can pass the contents of each <line> element
> as an argument to the \type command ( \defineXMLargument[line]{\type} )
>
> But this solution is unusable e.g. for longer program or configuration
> file listings, and, mainly, the DocBook DTD doesn't define such tags.
> I need to process multiline verbatims enclosed in a single tag:
>
> <programlisting>
> Line 1
> Line 2
> Line 3
> </programlisting>
>
> ---
> Of course I have some "dirty" workaround, but the result is really ugly...
>
> \defineXMLenvironment[programlisting]{
> \bgroup
> \startpacked
> \tttf
> \obeylines\obeyspaces\obeytabs
> }{
> \stoppacked
> \egroup
> }
>
> The line breaks are processed correctly. But all the tabs and spaces are
> treated as a single space. It seems the \obeyspaces and \obeytabs
> command are ignored or they do not work the way I'd expect. This will
> totally break the indentation and tabulation of the verbatim text...
maybe the following is better
\defineXMLenvironment
[programlisting]
{\processtaggeddisplayverbatim{</programlisting>}}
{}
\startbuffer
<programlisting>
Line 1
Line 2
Line 3
</programlisting>
\stopbuffer
\starttext
\processXMLbuffer
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
More information about the ntg-context
mailing list