summaryrefslogtreecommitdiff
path: root/tex/context/base/x-xml-11.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/x-xml-11.tex')
-rw-r--r--tex/context/base/x-xml-11.tex134
1 files changed, 134 insertions, 0 deletions
diff --git a/tex/context/base/x-xml-11.tex b/tex/context/base/x-xml-11.tex
new file mode 100644
index 000000000..c1b185b55
--- /dev/null
+++ b/tex/context/base/x-xml-11.tex
@@ -0,0 +1,134 @@
+%D \module
+%D [ file=x-xml-11,
+%D version=2004.09.16,
+%D title=\CONTEXT\ XML Style File,
+%D subtitle=Formatting X?? files,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% xmltools --analyze yourfile.xml
+% texexec --use=xml-analyze yourfile.*
+
+% \doifnothing {\inputfilename} {\end}
+% \doiffileelse {\inputfilename} {} {\end}
+
+\doifnothing {\jobfullname} {\end}
+\doiffileelse {\jobfullname} {} {\end}
+
+\useXMLfilter[ent]
+\useXMLfilter[utf]
+
+\chardef\XMLtokensreduction\plustwo
+
+\definehead
+ [SomeElement]
+ [subsection]
+
+\setuphead
+ [SomeElement]
+ [ownnumber=yes,
+ style=\tfb,
+ numberstyle=\tfxx,
+ alternative=margin]
+
+\setuplayout
+ [width=middle,
+ height=middle,
+ backspace=2cm,
+ cutspace=1cm,
+ topspace=1cm,
+ header=0pt]
+
+\setupfootertexts
+ [\jobfullname] % [\inputfilename]
+
+\usetypescript[modern][texnansi] \setupbodyfont[modern,tt,10pt]
+
+\defineXMLenvironment
+ [document]
+ {}
+ {}
+
+\defineXMLpickup
+ [entities][n=0]
+ {\expanded{\SomeElement{\XMLop{n}}{Entities}}
+ \starttabulate[|l|l|l|]}
+ {\stoptabulate}
+
+\defineXMLcommand % ugly hack (make macro of it)
+ [entity][name=,n=0]
+ {\startexpanded
+ \noexpand \NC \XMLop{name}
+ \noexpand \NC \XMLop{n}
+ \noexpand \NC \noexpand\doXMLentity\XMLop{name};
+ \noexpand \NC
+ \noexpand \NR
+ \stopexpanded}
+
+\defineXMLpickup
+ [characters][n=0]
+ {\expanded{\SomeElement{\XMLop{n}}{Characters}}
+ \bgroup
+ \let\nonbreakablespace\empty % messes up the table
+ \starttabulate[|l|r|r|l|l|l|l|]}
+ {\stoptabulate
+ \egroup}
+
+% todo: narrowtt
+
+\defineXMLcommand
+ [character][number=,utf=,n=0,uname=,pname=,cname=]
+ {\startexpanded
+ \noexpand \NC \noexpand \unicodehexnumber{\XMLop{number}}
+ \noexpand \NC \XMLop{number}
+ \noexpand \NC \XMLop{n}
+ \noexpand \NC \noexpand \unicodechar {\XMLop{number}}
+ \noexpand \NC \tx \lowercase\expandafter{\XMLop{uname}}
+ \noexpand \NC \tx \noexpand \unicodepair {\XMLop{number}}
+ \noexpand \NC \tx \XMLop{cname}
+ \noexpand \NC
+ \noexpand \NR
+ \stopexpanded}
+
+\defineXMLenvironment
+ [elements]
+ {}
+ {}
+
+\newtoks \TabulateToks
+
+\defineXMLpickup
+ [element][name=,n=0]
+ {\expanded{\SomeElement{\XMLop{n}}{\XMLop{name}}}
+ \TabulateToks\emptytoks}
+ {\starttabulate[|l|r|p|]
+ \the\TabulateToks
+ \stoptabulate}
+
+\defineXMLenvironment
+ [attribute][name=]
+ {\xdef\AttributeName{\XMLop{name}}}
+ {}
+
+\defineXMLenvironment
+ [instance][value=,n=0]
+ {\appendetoks
+ \noexpand \NC \AttributeName
+ \noexpand \NC \XMLop{n}
+ \noexpand \NC \XMLop{value}
+ \noexpand \NC
+ \noexpand \NR
+ \to \TabulateToks}
+ {\xdef\AttributeName{}}
+
+\starttext
+
+% \processXMLfilegrouped{\inputfilename}
+\processXMLfilegrouped{\jobfullname}
+
+\stoptext