Changes

Jump to navigation Jump to search
2,128 bytes added ,  11:23, 17 September 2008
new example code
\stoptext
</texcode>
 
=== Dictionary entries in XML-format ===
 
Just a example how to use XML to store and access information.
 
[Note: I will add the MkIV version when I'm able to find the file]
 
<texcode>
% engine=pdftex
 
\startbuffer[lexicon]
</texcode>
<xmlcode>
<lexicon>
<entry name='LaTeX'>
<name>&latex;</name>
<description>Macro package from Leslie Lamport.</description>
</entry>
<entry name='ConTeXt'>
<name>&context;</name>
<description>Macro package from Hans Hagen.</description>
</entry>
<entry name='TeX'>
<name>&tex;</name>
<description>the program from von Donald E. Knuth.</description>
</entry>
<entry name='Pragma Ade'>
<name>PRAGMA Advanced Document Engineering</name>
<description>Hans Hagens company.</description>
</entry>
</lexicon>
</xmlcode>
<texcode>
\stopbuffer
 
\definesorting[lexiconentry][lexicon]
 
\setupsorting
[lexiconentry]
[criterium=all,
command=\placelexiconentry]
 
\definedescription
[lexicon]
[width=broad,
hang=1]
 
\def\placelexiconentry#1%
{\bgroup
\enableXML
\expanded{\flushXMLelement{name:#1}}%
\egroup}
 
\defineXMLentities [tex] {tex} {\TeX}
\defineXMLentities [latex] {latex} {\LaTeX}
\defineXMLentities [context] {context} {\ConTeXt}
 
\defineXMLenvironment [entry]
{\defineXMLsave[name]
\defineXMLsave[description]}
{\startlexicon{\XMLflush{name}}
\XMLflush{description}
\stoplexicon}
 
\startXMLmapping[lexicon:load]
 
\defineXMLenvironmentsave [entry] [name=]
{}
{\edef\currentLEXICONENTRY{\XMLop{name}}%
\gsaveXMLdatainelement{name:\currentLEXICONENTRY}{entry}{entry}%
\expanded{\lexiconentry[lexicon:\XMLop{name}]{\XMLop{name}}}%
\setbox\scratchbox\hbox{\getvalue{lexicon:\XMLop{name}}}}
 
\stopXMLmapping
 
\def\loaddata
{\dosingleargument\doloaddata}
 
\def\doloaddata[#1]%
{\bgroup
\endlinechar\minusone
\startXMLmapping[lexicon:load]%
%\expanded{\processXMLfilegrouped{#1}}%
\expanded{\processXMLbuffer[#1]}%
\stopXMLmapping
\egroup}
 
\starttext
\loaddata[lexicon]
\placelistoflexicon
\stoptext
</texcode>
 
== Feature Requests ==
* temporary user variable for privat macros (see above),
* macro <code>\defineuvervariable{...}</code> to define namespaces for third party modules.
* New version of the <cmd>startfigure</cmd> environment
 
==Links==
gardener
110

edits

Navigation menu