summaryrefslogtreecommitdiff
path: root/tex/context/base/x-contml.mkii
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/x-contml.mkii')
-rw-r--r--tex/context/base/x-contml.mkii491
1 files changed, 0 insertions, 491 deletions
diff --git a/tex/context/base/x-contml.mkii b/tex/context/base/x-contml.mkii
deleted file mode 100644
index 22fffa50a..000000000
--- a/tex/context/base/x-contml.mkii
+++ /dev/null
@@ -1,491 +0,0 @@
-%M \usemodule [contml] \autoXMLnamespace [context]
-%M \definefilesynonym [context] [x-contml.xsd]
-
-%D \module
-%D [ file=x-contml,
-%D version=mid 2001,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Basic \CONTEXT\ commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This module provides some basic \XML\ elements. These definitions
-% are highly experimental and serve as a playground for interface
-% development.
-
-\unprotect
-
-%D \elements {include}
-%D
-%D \startbuffer
-%D You can include another file in the current document with the
-%D <element>include</element> element. When including the file, &context;
-%D will look at the suffix, in order to decide how to include the file.
-%D
-%D <verbatim>
-%D <line><include name="mine"/></line>
-%D <line><include name="mine" type="txt"/></line>
-%D <line><include name="mine" type="tex"/></line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D \showelements [context] [include]
-
-\defineXMLsingular [context:include] [name=,type=xml]
- {\doifsomethingXMLop{name}
- {\processaction
- [\XMLop{type}]
- [xml=>\readfile{\XMLop{name}}\donothing\donothing,
- tex=>{{\disableXML\readfile{\XMLop{name}}\donothing\donothing}},
- txt=>{{\disableXML\typefile{\XMLop{name}}}}]}}
-
-% or, nicer:
-%
-% \defineXMLsingular [context:include] [name=unknown,type=txt]
-% {\XMLval{include:type}{\XMLop{type}}{}}
-%
-% \mapXMLvalue {include:type} {xml} {\readfile{\XMLop{name}}\donothing\donothing}
-% \mapXMLvalue {include:type} {tex} {{\disableXML\readfile{\XMLop{name}}\donothing\donothing}}
-% \mapXMLvalue {include:type} {txt} {{\disableXML\typefile{\XMLop{name}}}}
-
-%D \elements {compound}
-%D
-%D \startbuffer
-%D Instead of using hard coded compound tokens, you should use the
-%D <element>compound</element> element, as in high<compound token="/" />low.
-%D The overhead in keying is rewarded with proper symbols and hyphenation.
-%D \stopbuffer
-%D
-%D \showelements [context] [compound]
-
-\ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-% \defineXMLsingular [context:compound] [token=]
-% {\expanded{\normalcompound\XMLop{token}}|}
-
-% \defineXMLsingular [context:compound] [token=]
-% {\ifmmode
-% \doifXMLop{token}{\XMLop{token}}{\compoundhyphen}%
-% \else
-% \expanded{\normalcompound\XMLop{token}}|%
-% \fi}
-
-\defineXMLsingular [context:compound] [token=]
- {\mathortext % disc comm looks ahead, so \relax
- {\doifXMLop{token}{\XMLop{token}}\compoundhyphen}%
- {\expanded{\directdiscretionary{\XMLop{token}}}\relax}}
-
-\defineXMLenvironmentsave [context:cp]
- {}
- {\expanded{\directdiscretionary{\XMLflush{cp}}}\relax}
-
-%D \elements {p}
-%D
-%D \startbuffer
-%D <p>Although for &tex; it is often enough to mark the end of a paragraph,
-%D in &xml; we want to add a bit more structure. <p/> This permits a more
-%D robust implementation of begin<compound/>of<compound/>par actions</p>
-%D \stopbuffer
-%D
-%D \showelements [context] [p]
-
-\defineXMLenvironment [context:p] {} \endgraf
-\defineXMLsingular [context:p] \endgraf
-
-%D \elements {pageref,textref,lineref}
-%D
-%D \startbuffer
-%D You can ask for a page (<pageref label="lastpage">the last pagenumber
-%D is</pageref> aka page <pageref label="lastpage"/>), text or line reference
-%D with the following three elements. The label may be any valid &context;
-%D reference label.
-%D \stopbuffer
-%D
-%D \showelements [context] [references]
-
-\defineXMLpickup [context:pageref] [label=] {\at} {[\XMLop{label}]}
-\defineXMLpickup [context:textref] [label=] {\in} {[\XMLop{label}]}
-\defineXMLpickup [context:lineref] [label=] {\inline} {[\XMLop{label}]}
-
-%D \elements{text}
-%D
-%D \startbuffer
-%D If you have a self contained &xml; file, you need to signal &context; the
-%D begin and end of the document. The following elements can be used for
-%D that purpose:
-%D
-%D <verbatim>
-%D <line><text></line>
-%D <line> ...</line>
-%D <line></text></line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D \showelements [context] [text]
-
-\defineXMLenvironment [context:text] \starttext \stoptext
-
-%D \elements {em}
-%D
-%D \startbuffer
-%D Authors often want some control over the way a text is typeset, which is
-%D why we provide the <element>em</element> element. We may only hope that
-%D the author is <em>consistent</em> in his decisions on what to emphasize.
-%D \stopbuffer
-%D
-%D \showelements [context] [em]
-
-\defineXMLgrouped [context:em] \em
-
-%D \elements {b}
-%D
-%D \startbuffer
-%D Bold is not always <b>beautiful</b> but if you really want it, you can
-%D get it by using this element.
-%D \stopbuffer
-%D
-%D \showelements [context] [b]
-
-\defineXMLgrouped [context:b] \bf
-
-%D \elements {verbatim,typing,line,verb,type}
-%D
-%D \startbuffer
-%D Although the following method can be used to typeset a piece of code
-%D verbatim
-%D
-%D <![CDATA[
-%D Dit \is nogal verbatim !
-%D Dit is {nogal} verbatim !
-%D Dit is <nogal> verbatim !
-%D ]]>
-%D
-%D we prefer the more structured:
-%D
-%D <verbatim>
-%D <line>Dit \is nogal verbatim !</line>
-%D <line>Dit is {nogal} verbatim !</line>
-%D <line>Dit is <nogal> verbatim !</line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D The element to tag in<compound/>line verbatim is <type><verb></type>.
-%D
-%D \showelements [context] [verbatim]
-
-\defineXMLenvironment [context:verbatim]
- {\startpacked
- \defineXMLargument[context:line]{\endgraf\type}}
- {\stoppacked}
-
-\defineXMLenvironment [context:typing]
- {\startpacked\defineXMLargument[context:line]{\endgraf\type}}
- {\stoppacked}
-
-\defineXMLargument [context:verb] \type
-\defineXMLargument [context:type] \type
-
-%D \elements {itemize,item}
-%D
-%D \startbuffer
-%D Itemized lists are quite common in documents, al least in the ones that
-%D we produce. For the moment we only provide a few options, later we will
-%D hook it into the &context; attribute handler.
-%D
-%D <itemize type="a">
-%D <item label="bla"> test </item>
-%D <item> test </item>
-%D </itemize>
-%D
-%D <itemize packed="yes">
-%D <item label="more bla"> test </item>
-%D <item> test <em>what?</em></item>
-%D </itemize>
-%D \stopbuffer
-%D
-%D \showelements [context] [itemize]
-
-\defineXMLenvironment [context:itemize] [type=,packed=]
- {\let\XMLoptions\empty
- \doifsomethingXMLop{type}{\addtocommalist{\XMLop{type}}\XMLoptions}%
- \doifXMLop{packed}{yes}{\addtocommalist{packed}\XMLoptions}%
- \expanded{\startitemize[\XMLoptions]}}
- {\stopitemize}
-
-\defineXMLenvironment [context:item] [label=]
- {\expanded{\item[\XMLop{label}]}}
- {\endgraf}
-
-%D \elements {externalfigure}
-%D
-%D \startbuffer
-%D The previous examples already demonstrated how we can include a graphic:
-%D
-%D <verbatim>
-%D <line><externalfigure file="cow" width="5cm" /></line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D \showelements [context] [externalfigure]
-
-\defineXMLsingular [context:externalfigure] [\??ef] [base=,label=,file=]
- {\bgroup % \getXMLta \expandXMLta \expandXMLtp{file}%
- \expandXMLta
- \getXMLta % expand entities first
- \doifelsenothing{\XMLtp{label}}
- {\expanded{\externalfigure[\XMLtp{file}][\XMLta]}}
- {\doifsomething{\XMLtp{base}}{\usefigurebase[\XMLtp{base}]}%
- \expanded{\externalfigure[\XMLtp{label}][\XMLta]}}
- \egroup}
-
-%D \elements {fixed}
-%D \setupexternalfigures[directory={../sample}]
-%D \startbuffer
-%D Something fixed will end up at the place where it defined in the input
-%D stream. The main idea behind this element is that it gives you control
-%D over the placement.
-%D
-%D <itemize>
-%D <item>
-%D <fixed align="high">
-%D <content>
-%D <externalfigure file="cow" frame="on" height="1cm" />
-%D </content>
-%D </fixed>
-%D </item>
-%D </itemize>
-%D \stopbuffer
-%D
-%D \showelements [context] [fixed]
-
-\defineXMLenvironment [context:fixed] [type=figure,location=,label=]
- {\bgroup
- \defineXMLsave[context:caption]
- \defineXMLsave[context:content]}
- {\expanded{\startfixed[\XMLop{location}]}%
- \doifXMLdataelse{context:caption}
- {\startcombination[1*1]
- {\XMLflush{context:content}} {\XMLflush{context:caption}}
- \stopcombination}
- {\XMLflush{context:content}}%
- \stopfixed
- \egroup}
-
-%D \elements {float}
-%D \setupexternalfigures[directory={../sample}]
-%D \startbuffer
-%D A floating body will be placed at the first location available, unless
-%D a location is specified. As with the <element>fixed</element> element,
-%D you can provide a caption.
-%D
-%D <float type="figure">
-%D <content>
-%D <externalfigure file="cow" frame="on" height="3cm" />
-%D </content>
-%D <caption>This is a cow!</caption>
-%D </float>
-%D \stopbuffer
-%D
-%D \showelements [context] [float]
-
-\defineXMLenvironment [context:float] [type=figure,location=here,label=]
- {\bgroup
- \defineXMLsave[context:caption]
- \defineXMLsave[context:content]}
- {\expanded
- {\placefloat
- [\XMLop{type}] [\XMLop{location}] [\XMLop{label}]
- {\XMLflush{context:caption}} {\XMLflush{context:content}}}
- \egroup}
-
-%D \elements {quotation,quote}
-%D
-%D \startbuffer
-%D There is a (not so) subtle difference between a display
-%D <quotation>quotation</quotation> and an <quote>in<compound/>line</quote>
-%D one.
-%D \stopbuffer
-%D
-%D \showelements [context] [table]
-
-\defineXMLgrouped [context:quote] \quote
-\defineXMLgrouped [context:quotation] \quotation
-
-%D \elements {table,tr,td}
-%D
-%D \startbuffer
-%D There are (currently) three table mechanisms in &context;. One of them
-%D resembles the well known &html; tables.
-%D
-%D <?context-command \startlinecorrection[blank] ?>
-%D <table>
-%D <tr> <td>one</td> <td>a</td> <td>first </td> </tr>
-%D <tr> <td>two</td> <td>b</td> <td>second</td> </tr>
-%D </table>
-%D <?context-command \stoplinecorrection ?>
-%D
-%D As you can see here, we use a similar syntax but stick to the &context;
-%D attributes (which provide quite advanced control over the layout).
-%D
-%D <?context-command \startlinecorrection[blank] ?>
-%D <table frame="off" background="color" color="white">
-%D <tr backgroundcolor="red"> <td>xx</td> <td>xx</td> </tr>
-%D <tr backgroundcolor="green"> <td>xx</td> <td>xx</td> </tr>
-%D </table>
-%D <?context-command \stoplinecorrection ?>
-%D \stopbuffer
-%D
-%D \showelements [context] [table]
-
-\defineXMLenvironment [context:table] [\@@tbl\@@tbl]
- {\bgroup
- \defineXMLnested [context:tr] [\@@tbl] {\expanded{\bTR[\theXMLarguments{\@@tbl}}]} \eTR
- \defineXMLnested [context:td] [\@@tbl] {\expanded{\bTD[\theXMLarguments{\@@tbl}}]} \eTD
- \expanded{\bTABLE[\theXMLarguments{\@@tbl\@@tbl}]}}
- {\eTABLE
- \egroup}
-
-%D \elements {tabulate,tspec,thead,tbody,ttail,trule,tr,td}
-%D
-%D \startbuffer
-%D The second mechanism that we support is tabulation. The advantage of this
-%D mechanism is that it it well tuned for tables that have much text in the
-%D cells and cross page boundaires.
-%D
-%D <tabulate>
-%D <tspec>
-%D <tcell align="left"/> <tcell align="middle"/> <tcell align="right"/>
-%D </tspec>
-%D <thead>
-%D <trule/>
-%D <tr> <td> bagger </td> <td> bagger </td> <td> bagger </td> </tr>
-%D <trule/>
-%D </thead>
-%D <ttail>
-%D <trule/>
-%D </ttail>
-%D <tbody>
-%D <tr> <td> bagger </td> <td> bagger </td> <td> bagger </td> </tr>
-%D <tr> <td> bagg </td> <td> ger </td> <td> gr </td> </tr>
-%D <tr> <td> bag </td> <td> er </td> <td> gger </td> </tr>
-%D </tbody>
-%D </tabulate>
-%D \stopbuffer
-%D
-%D \showelements [context] [tabulate]
-
-\newtoks\XMLtabtoks
-
-\defineXMLgrouped [context:tabulate] {\XMLtabtoks{|l|p|}}
-
-\defineXMLpickup [context:tbody]
- {\expanded{\definetabulate[dummy][\the\XMLtabtoks]}
- \startdummy\XMLflush{context:thead}}
- {\XMLflush{context:ttail}\stopdummy}
-
-\defineXMLsave [context:thead]
-\defineXMLsave [context:ttail]
-
-\defineXMLenvironment[context:tspec]
- {\XMLtabtoks\emptytoks}
- {\appendtoks|\to\XMLtabtoks}
-
-\defineXMLsingular [context:trule] % verrrry ugly
- {\crcr\noalign{\kern-\lineheight}\HL}
-
-\defineXMLsingular [context:tcell] [align=]
- {\appendtoks|\to\XMLtabtoks
- \expanded{\processallactionsinset
- [\XMLop{align}]}
- [ paragraph=>\appendtoks p\to\XMLtabtoks,
- left=>\appendtoks l\to\XMLtabtoks,
- right=>\appendtoks r\to\XMLtabtoks,
- center=>\appendtoks c\to\XMLtabtoks,
- middle=>\appendtoks c\to\XMLtabtoks]}
-
-\defineXMLenvironment [context:tr] {\ignorespaces} {\NC\NR}
-\defineXMLenvironment [context:td] {\NC} {\ignorespaces}
-
-%D \elements {hide}
-%D
-%D \startbuffer
-%D This is the way to [<hide>this is gone</hide>] something for the
-%D typesetting engine. Normally this element is only used for testing
-%D purposes.
-%D \stopbuffer
-%D
-%D \showelements [context] [tabulate]
-
-\defineXMLignore[context:hide]
-
-%D \elements {unknown}
-%D
-%D \startbuffer
-%D We can go on and on and <unknown/> with defining elements that map onto
-%D &context; commands, but why not just use &tex; input syntax then?
-%D \stopbuffer
-%D
-%D \showelements [context] [unknown]
-
-\defineXMLsingular [context:unknown] \unknown
-
-%D A (for the moment) private one.
-
-\defineXMLargument [context:element] \type
-
-%D The following common schema definitions apply:
-%D
-%D {\setupcolors[state=stop]\showXSDcomponent[context][definitions]}
-
-\defineXMLargument [context:chapter] [label=] {\chapter[\XMLop{label}]}
-\defineXMLargument [context:section] [label=] {\section[\XMLop{label}]}
-\defineXMLargument [context:subsection] [label=] {\subsection[\XMLop{label}]}
-\defineXMLargument [context:subsubsection] [label=] {\subsubsection[\XMLop{label}]}
-\defineXMLargument [context:subsubsubsection] [label=] {\subsubsubsection[\XMLop{label}]}
-
-\defineXMLargument [context:title] [label=] {\title[\XMLop{label}]}
-\defineXMLargument [context:subject] [label=] {\subject[\XMLop{label}]}
-\defineXMLargument [context:subsubject] [label=] {\subsubject[\XMLop{label}]}
-\defineXMLargument [context:subsubsubject] [label=] {\subsubsubject[\XMLop{label}]}
-\defineXMLargument [context:subsubsubsubject] [label=] {\subsubsubsubject[\XMLop{label}]}
-
-\defineXMLenvironment [context:frontmatter] \startfrontmatter \stopfrontmatter
-\defineXMLenvironment [context:bodymatter] \startbodymatter \stopbodymatter
-\defineXMLenvironment [context:backmatter] \startbackmatter \stopbackmatter
-\defineXMLenvironment [context:appendices] \startappendices \stopappendices
-
-\defineXMLargument [context:index] [key=]
- {\doifelsenothingXMLop{key}{\index}{\expanded{\index[\XMLop{key}]}}}
-
-% \enableXMLfiledata
-
-% Needed for example (stickers and so):
-
-\defineXMLenvironment [context:makeup]
- \startstandardmakeup \stopstandardmakeup
-
-\protect \endinput
-
-% TO DO
-
-\defineXMLenvironment [combination] [columns=2,rows=1]
- {\scratchtoks\emptytoks
- \expanded{\appendtoks \noexpand \startcombination
- [\XMLop{columns}*\XMLop{rows}]}\to \scratchtoks}
- {\appendtoks \stopcombination \to \scratchtoks
- \the\scratchtoks}
-
-\defineXMLprocess[combinationentry]
-
-\defineXMLpickup [combinationitem]
- {\appendtoks\bgroup}{\egroup\to\scratchtoks}
-
-\defineXMLpickup [combinationcaption]
- {\appendtoks\bgroup}{\egroup\to\scratchtoks}
-
-\endinput