[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