summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/context/ruby/base/tex.rb32
-rw-r--r--scripts/context/ruby/ctxtools.rb2
-rw-r--r--scripts/context/ruby/texexec.rb5
-rw-r--r--tex/context/base/cont-new.tex2
-rw-r--r--tex/context/base/context.tex4
-rw-r--r--tex/context/base/core-lst.tex4
-rw-r--r--tex/context/base/core-rul.tex109
-rw-r--r--tex/context/base/core-snc.tex27
-rw-r--r--tex/context/base/core-spa.tex6
-rw-r--r--tex/context/base/font-ini.tex8
-rw-r--r--tex/context/base/sort-ini.tex2
-rw-r--r--tex/context/base/spec-def.tex1
-rw-r--r--tex/context/base/x-newmml.tex68
-rw-r--r--tex/context/base/x-sm2om.xsl108
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-fr.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
21 files changed, 259 insertions, 133 deletions
diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb
index 61701e501..dc1362e90 100644
--- a/scripts/context/ruby/base/tex.rb
+++ b/scripts/context/ruby/base/tex.rb
@@ -8,8 +8,11 @@
# info : j.hagen@xs4all.nl
# www : www.pragma-ade.com
-# todo: write systemcall for mpost to file so that it can be run
-# faster
+# todo:
+#
+# - write systemcall for mpost to file so that it can be run faster
+# - use -8bit and -progname
+#
# report ?
@@ -83,6 +86,7 @@ class TEX
['tex','pdftex','pdfetex','standard'] .each do |e| @@texengines[e] = 'pdfetex' end
['aleph','omega'] .each do |e| @@texengines[e] = 'aleph' end
['xetex'] .each do |e| @@texengines[e] = 'xetex' end
+ ['luatex'] .each do |e| @@texengines[e] = 'luatex' end
['metapost','mpost', 'standard'] .each do |e| @@mpsengines[e] = 'mpost' end
@@ -118,7 +122,7 @@ class TEX
['plain','mpost'] .each do |f| @@mpsformats[f] = 'plain' end
['metafun','context','standard'] .each do |f| @@mpsformats[f] = 'metafun' end
- ['pdfetex','aleph','omega'] .each do |p| @@prognames[p] = 'context' end
+ ['pdfetex','aleph','omega','xetex','luatex'] .each do |p| @@prognames[p] = 'context' end
['mpost'] .each do |p| @@prognames[p] = 'metafun' end
['plain','default','standard','mptopdf'] .each do |f| @@texmethods[f] = 'plain' end
@@ -138,6 +142,8 @@ class TEX
# @@runoptions['xetex'] = ['--output-driver \\\"-d 4 -V 5\\\"'] # we need the pos pass
@@runoptions['xetex'] = ['--no-pdf'] # from now on we assume (x)dvipdfmx to be used
+ @@runoptions['luatex'] = ['--progname=pdftex']
+
@@booleanvars = [
'batchmode', 'nonstopmode', 'fast', 'fastdisabled', 'silentmode', 'final',
'paranoid', 'notparanoid', 'nobanner', 'once', 'allpatterns',
@@ -338,7 +344,7 @@ class TEX
def prefixed(format,engine)
case engine
- when /etex|eetex|pdfetex|pdfeetex|pdfxtex|xpdfetex|eomega|aleph|xetex/io then
+ when /etex|eetex|pdfetex|pdfeetex|pdfxtex|xpdfetex|eomega|aleph|xetex|luatex/io then
"*#{format}"
else
format
@@ -730,13 +736,23 @@ class TEX
bomdone = true
end
if str =~ /^\%\s*(.*)/o then
- vars = Hash.new
+ # we only accept lines with key=value pairs
+ vars, ok = Hash.new, true
$1.split(/\s+/o).each do |s|
k, v = s.split('=')
- vars[k] = v
+ if k && v then
+ vars[k] = v
+ else
+ ok = false
+ break
+ end
end
- @@preamblekeys.each do |v|
- setvariable(v[1],vars[v[0]]) if vars.key?(v[0])
+ if ok then
+ # we have a valid line
+ @@preamblekeys.each do |v|
+ setvariable(v[1],vars[v[0]]) if vars.key?(v[0]) && vars[v[0]]
+ end
+ break
end
else
break
diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb
index ee967ec31..69c6885b4 100644
--- a/scripts/context/ruby/ctxtools.rb
+++ b/scripts/context/ruby/ctxtools.rb
@@ -2373,7 +2373,7 @@ commandline.registeraction('brandfiles' , 'add context copyright notice [
commandline.registeraction('platformize' , 'replace line-endings [--recurse --force] [pattern]')
commandline.registeraction('dependencies' , 'analyze depedencies witin context [--compact] [rootfile]')
commandline.registeraction('updatecontext' , 'download latest version and remake formats')
-commandline.registeraction('disarmutfbom' , 'remove utf bom [==force]')
+commandline.registeraction('disarmutfbom' , 'remove utf bom [--force]')
commandline.registervalue('type','')
diff --git a/scripts/context/ruby/texexec.rb b/scripts/context/ruby/texexec.rb
index 06e74812d..4194874e9 100644
--- a/scripts/context/ruby/texexec.rb
+++ b/scripts/context/ruby/texexec.rb
@@ -490,13 +490,15 @@ class Commands
job.setvariable('texengine','xetex')
elsif @commandline.oneof('aleph') then
job.setvariable('texengine','aleph')
+ elsif @commandline.oneof('luatex') then
+ job.setvariable('texengine','luatex')
else
job.setvariable('texengine','standard')
end
if (str = @commandline.option('backend')) && ! str.standard? && ! str.empty? then
job.setvariable('backend',str)
- elsif @commandline.oneof('pdfetex','pdftex','pdf') then
+ elsif @commandline.oneof('pdfetex','pdftex','pdf','luatex') then
job.setvariable('backend','pdftex')
elsif @commandline.oneof('dvipdfmx','dvipdfm','dpx','dpm') then
job.setvariable('backend','dvipdfmx')
@@ -511,6 +513,7 @@ class Commands
else
case job.getvariable('texengine')
when 'pdfetex' then job.setvariable('backend','pdftex')
+ when 'luatex' then job.setvariable('backend','pdftex')
when 'xetex' then job.setvariable('backend','xetex')
when 'aleph' then job.setvariable('backend','dvipdfmx')
else
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index b2f73df50..83b1c647e 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2006.05.18 20:03}
+\newcontextversion{2006.05.23 16:32}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index d279b2339..e072063cd 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2006.05.18 20:03}
+\def\contextversion{2006.05.23 16:32}
%D For those who want to use this:
@@ -357,7 +357,7 @@
%D Sorting:
-% \input sort-ini.tex
+\input sort-ini.tex
%D Only the basic XML parser and remapper are part of the core.
%D These macrosa re loaded last since they overload and|/|or
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index e63212575..74a6e34d7 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -1040,10 +1040,10 @@
\setvalue{\e!complete#1}%
{\dodoubleempty\docompletecombinedlist[#1]}}
-\def\definecombinedlist%
+\def\definecombinedlist
{\dotripleempty\dodefinecombinedlist}
-\def\placecombinedlist%
+\def\placecombinedlist
{\dodoubleempty\doplacecombinedlist}
% new and yet undocumented (used in cocoa qa)
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index 509422e3d..c7c480c1b 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -3060,7 +3060,9 @@
%D Although we could have used a scratch one, we first
%D declare a boolean.
-\newif\ifbackgroundsplit
+% 0=no-split, 1=no-split+indent, 2=split, 3=split+indent
+
+\chardef\backgroundsplitmode\plusthree
%D The \type{\vbox to \lineheight{}\vskip\zeropoint}
%D construction gives the first real line a decent height by
@@ -3082,62 +3084,73 @@
%D lineheight. I'll probably forget to apply this trick
%D elsewhere.
-\def\dostopbackground% improved version (i hope)
+\def\dostopbackground % improved version (i hope)
{\endgraf
\removelastskip
\egroup
\dimen2\leftskip % new **
\forgetall
- \splitmaxdepth\boxmaxdepth
- \splittopskip\topskip
- \setbox2\vsplit0 to \lineheight % get rid of fake line
- \loop
- \ifdim\pagetotal=\zeropoint % empty page
- \scratchdimen\textheight
- \chardef\backgroundsplit\plusone % split to max height
- \else
- \scratchdimen\pagegoal
- \setbox\scratchbox\vbox{\@@agbefore}%
- \advance\scratchdimen -\ht\scratchbox
- \advance\scratchdimen -\pagetotal
- \chardef\backgroundsplit\plustwo % split to partial height
- \fi
- \advance\scratchdimen -\@@agtopoffset
- \advance\scratchdimen -\@@agbottomoffset \relax
- \ifdim\scratchdimen>2\lineheight\relax % reasonable, will be configurable
- \ifdim\ht0>\scratchdimen % larger than page
- \setbox2\vsplit0 to \scratchdimen
+ \ifinsidefloat
+ \chardef\backgroundsplitmode\zerocount
+ \fi
+ \ifcase\backgroundsplitmode
+ \localframed[\??ag][\c!offset=\v!overlay]{\box0}%
+ \or
+ \hskip\dimen2
+ \localframed[\??ag][\c!offset=\v!overlay]{\box0}%
+ \else
+ \splitmaxdepth\boxmaxdepth
+ \splittopskip\topskip
+ \setbox2\vsplit0 to \lineheight % get rid of fake line
+ \loop
+ \ifdim\pagetotal=\zeropoint % empty page
+ \scratchdimen\textheight
+ \chardef\backgroundsplit\plusone % split to max height
\else
- \setbox2\box0
- \chardef\backgroundsplit\zerocount % no split
+ \scratchdimen\pagegoal
+ \setbox\scratchbox\vbox{\@@agbefore}%
+ \advance\scratchdimen -\ht\scratchbox
+ \advance\scratchdimen -\pagetotal
+ \chardef\backgroundsplit\plustwo % split to partial height
\fi
- \setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split
- {\vskip\@@agtopoffset
- \popsplitproperties
- \unvcopy2
- \prevdepth\dp2
- \obeydepth
- \vskip\@@agbottomoffset
- \vfill}
- \@@agbefore
- \ifcase\backgroundsplit\or\or % partial split
- \ifdim\pagegoal<\maxdimen
- \pagegoal=1.2\pagegoal % be a bit more tolerant
+ \advance\scratchdimen -\@@agtopoffset
+ \advance\scratchdimen -\@@agbottomoffset \relax
+ \ifdim\scratchdimen>2\lineheight\relax % reasonable, will be configurable
+ \ifdim\ht0>\scratchdimen % larger than page
+ \setbox2\vsplit0 to \scratchdimen
+ \else
+ \setbox2\box0
+ \chardef\backgroundsplit\zerocount % no split
\fi
+ \setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split
+ {\vskip\@@agtopoffset
+ \popsplitproperties
+ \unvcopy2
+ \prevdepth\dp2
+ \obeydepth
+ \vskip\@@agbottomoffset
+ \vfill}
+ \@@agbefore
+ \ifcase\backgroundsplit\or\or % partial split
+ \ifdim\pagegoal<\maxdimen
+ \pagegoal=1.2\pagegoal % be a bit more tolerant
+ \fi
+ \fi
+ \startlinecorrection
+ %\localframed[\??ag][\c!offset=\v!overlay]{\hskip\@@agleftoffset\box2\hskip\@@agrightoffset}%
+ \ifnum\backgroundsplitmode=\plusthree \hskip\dimen2 \fi %
+ \localframed[\??ag][\c!offset=\v!overlay]{\box2}% new **
+ \stoplinecorrection
+ \ifcase\backgroundsplit % no split
+ \@@agafter
+ \else % some split
+ \vfill\eject % geen \page !
+ \fi
+ \else
+ \page
\fi
- \startlinecorrection
- %\localframed[\??ag][\c!offset=\v!overlay]{\hskip\@@agleftoffset\box2\hskip\@@agrightoffset}%
- \hskip\dimen2\localframed[\??ag][\c!offset=\v!overlay]{\box2}% new **
- \stoplinecorrection
- \ifcase\backgroundsplit % no split
- \@@agafter
- \else % some split
- \vfill\eject % geen \page !
- \fi
- \else
- \page
- \fi
- \ifdim\ht0>\zeropoint \repeat
+ \ifdim\ht0>\zeropoint \repeat
+ \fi
\egroup
\endgraf}
diff --git a/tex/context/base/core-snc.tex b/tex/context/base/core-snc.tex
index 55c6e15df..ac6960f4d 100644
--- a/tex/context/base/core-snc.tex
+++ b/tex/context/base/core-snc.tex
@@ -116,8 +116,21 @@
\def\dopresyncposition[#1][#2]{\setxvalue{\s!preset:\s!syncpos:#1}{\noexpand\dodopresyncposition{#1}{#2}}}
\def\flushsyncpositions % this order !
- {\the\presetsyncpositions
- \the\resetsyncpositions}
+ {\begingroup
+ \the\presetsyncpositions
+ \the\resetsyncpositions
+ \endgroup}
+
+\def\flushsyncxxsets#1%
+ {\setbox\scratchbox\hbox{\the#1}%
+ \ifvoid\scratchbox\else
+ \prewordbreak \let\prewordbreak\relax % only once
+ \smashbox\scratchbox
+ \box\scratchbox
+ \fi}
+
+\def\flushsyncresets {\flushsyncxxsets\resetsyncpositions }
+\def\flushsyncpresets{\flushsyncxxsets\presetsyncpositions}
% \appendtoks \flushsyncpositions \to \everypar
% \appendtoks \flushsyncpositions \to \everyheadstart
@@ -126,16 +139,6 @@
%
% \appendtoks \flushsyncpositions \to \neverypar
-\def\flushsyncxxsets#1#2%
- {\setbox\scratchbox\hbox{\the#1}%
- \ifvoid\scratchbox\else
- \smashbox\scratchbox
- #2\box\scratchbox
- \fi}
-
-\def\flushsyncresets {\flushsyncxxsets\resetsyncpositions \relax}
-\def\flushsyncpresets{\flushsyncxxsets\presetsyncpositions\prewordbreak} % check prewordbreak
-
\protect \endinput
\starttext
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 406a50ef5..4e53a6dcf 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -3932,14 +3932,14 @@
% see later for the real definition, which in the simple case is:
\def\doalignline#1#2% \\ == newline
- {\bgroup
+ {\begingroup
\setlocalhsize % new
\def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
\dowithnextbox
- {\noindent
+ {\noindentation % was \ noindent
\hbox to \localhsize
{\ifcase\alignstrutmode\or\strut\fi
- #1\unhbox\nextbox#2}\egroup}
+ #1\unhbox\nextbox#2}\endgroup}
\hbox}
% directe commando's
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index d8a06d68c..75c59605b 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -3846,6 +3846,13 @@
\def\definestyle{\definealternativestyle}
+%D Maybe too geneneric, but probably ok is the following. (Maybe one
+%D day we will use a dedicated grouped command for styles.)
+
+\appendtoks
+ \let\groupedcommand\thirdofthreearguments
+\to \simplifiedcommands
+
%D This command also defines the keyword as command. This means
%D that the example definition of \type{bold} we gave before,
%D results in a command \type{\bold} which can be used as:
@@ -4675,6 +4682,7 @@
\definealternativestyle [\v!normal] [\tf] []
\definealternativestyle [\v!bold] [\bf] []
\definealternativestyle [\v!type] [\tt] []
+\definealternativestyle [\v!mono] [\tt] []
\definealternativestyle [\v!slanted] [\sl] []
\definealternativestyle [\v!italic] [\it] []
\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
diff --git a/tex/context/base/sort-ini.tex b/tex/context/base/sort-ini.tex
index e3c6daa28..86f3091c0 100644
--- a/tex/context/base/sort-ini.tex
+++ b/tex/context/base/sort-ini.tex
@@ -97,7 +97,7 @@
{\edef\utfsortb{\@EA\string\csname\doutfunihash{#1}{\recurselevel}\endcsname}%
\ifx\utfsortb\utfsorta \else
\edef\utfsortc{\numbertoutf{\numexpr#1*256+\recurselevel\relax}}%
- \expanded{\exportsortshortcut{\utfsortc}{\utfsortb}}%
+ \expanded{\exportsortshortcut{\utfsortc}{\utfsortb\space}}% space is really needed
\fi}%
\egroup}
diff --git a/tex/context/base/spec-def.tex b/tex/context/base/spec-def.tex
index a4db1b544..62313585e 100644
--- a/tex/context/base/spec-def.tex
+++ b/tex/context/base/spec-def.tex
@@ -964,6 +964,7 @@
\defineoutput [xetex] [dpx]
\defineoutput [xtx] [dpx]
\defineoutput [xdv] [dvi,xtx]
+\defineoutput [xdv2pdf] [dvi,xtx]
%D Please let me know if we need more. From now on we default
%D to:
diff --git a/tex/context/base/x-newmml.tex b/tex/context/base/x-newmml.tex
index 517d67f55..e45f52bc0 100644
--- a/tex/context/base/x-newmml.tex
+++ b/tex/context/base/x-newmml.tex
@@ -2375,50 +2375,50 @@
\doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
\doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
\fi
- \doifXMLparelse{apply}{open}
- {\def\MMLdoL{\left \XMLpar{apply}{open} {(}}
- \def\MMLdoR{\right\XMLpar{apply}{close}{)}}}
- {\let\MMLdoL\donothing
- \let\MMLdoR\donothing}
\advance\MMLapplydepth\plusone
\begingroup
- \let\MMLctempresetlist\empty
- \doifelse {\getXMLstackname\plusone} {apply} {
- % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
- % yet incomplete and rather untested
- % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
- } {
- \MMLcreset
- }
- \MMLdoL
- \getXMLstackdata\plusone
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \else
- \left(\MMLcreset\getXMLstackdata\plustwo\right)
- \fi
- \MMLdoR
+ \doifXMLparelse{apply}{open} % now inside the group
+ {\edef\MMLdoL{\noexpand\left \XMLpar{apply}{open} {(}}
+ \edef\MMLdoR{\noexpand\right\XMLpar{apply}{close}{)}}}
+ {\let\MMLdoL\donothing
+ \let\MMLdoR\donothing}
+ \let\MMLctempresetlist\empty
+ \doifelse {\getXMLstackname\plusone} {apply} {
+ % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
+ \doifelseMMCfunctioninapply \plusone {plus,minus} {
+ % yet incomplete and rather untested
+ % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
} {
- \doifelse {\getXMLstackname\plusone} {fn} {
+ \MMLcreset
+ }
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \ifconditional\somepostponedMMLactions
+ \postponedMMLactions
+ \else
+ \left(\MMLcreset\getXMLstackdata\plustwo\right)
+ \fi
+ \MMLdoR
+ } {
+ \doifelse {\getXMLstackname\plusone} {fn} {
+ % \MMLdoL/R are to be taken care of in the next setup
+ \directsetup{mmc:fn:apply}
+ } {
+ \doifelse {\getXMLstackname\plusone} {csymbol} {
% \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:fn:apply}
+ \directsetup{mmc:csymbol:apply}
} {
- \doifelse {\getXMLstackname\plusone} {csymbol} {
+ \doifelse {\getXMLstackname\plusone} {ci} {
% \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:csymbol:apply}
+ \directsetup{mmc:ci:apply}
} {
- \doifelse {\getXMLstackname\plusone} {ci} {
- % \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:ci:apply}
- } {
- \MMLdoL
- \getXMLstackdata\plusone
- \MMLdoR
- }
+ \MMLdoL
+ \getXMLstackdata\plusone
+ \MMLdoR
}
}
}
+ }
\endgroup
\advance\MMLapplydepth\minusone
\directsetup{apply:flush}
diff --git a/tex/context/base/x-sm2om.xsl b/tex/context/base/x-sm2om.xsl
index a37ce1e75..241452dbf 100644
--- a/tex/context/base/x-sm2om.xsl
+++ b/tex/context/base/x-sm2om.xsl
@@ -39,6 +39,25 @@
<xsl:variable name='openmath-to-content-mathml'><value-of select='$stylesheet-path'/>/x-openmath.xsl</xsl:variable>
+ <xsl:template name='om-minus'>
+ <OMS cd="arith1" name="unary_minus"/>
+ </xsl:template>
+ <xsl:template name='om-infinity'>
+ <OMS cd="nums1" name="infinity"/>
+ </xsl:template>
+ <xsl:template name='om-interval-oo'>
+ <OMS cd="interval1" name="interval_oo"/>
+ </xsl:template>
+ <xsl:template name='om-interval-oc'>
+ <OMS cd="interval1" name="interval_oc"/>
+ </xsl:template>
+ <xsl:template name='om-interval-co'>
+ <OMS cd="interval1" name="interval_co"/>
+ </xsl:template>
+ <xsl:template name='om-interval-cc'>
+ <OMS cd="interval1" name="interval_cc"/>
+ </xsl:template>
+
<xsl:template name='om-kind-of-data'>
<xsl:param name='arg'/>
<xsl:choose>
@@ -62,9 +81,26 @@
</xsl:element>
</xsl:when>
<xsl:when test="number($arg)">
- <xsl:element name="OMI">
- <xsl:value-of select="$arg"/>
- </xsl:element>
+ <xsl:choose>
+ <xsl:when test="contains($arg,'-')">
+ <xsl:element name="OMA">
+ <xsl:call-template name='om-minus'/>
+ <xsl:element name="OMI">
+ <xsl:value-of select="substring-after($arg,'-')"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="contains($arg,'+')">
+ <xsl:element name="OMI">
+ <xsl:value-of select="substring-after($arg,'+')"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="OMI">
+ <xsl:value-of select="$arg"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:element name="OMV">
@@ -111,16 +147,62 @@
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
- <xsl:element name="OMS">
- <xsl:attribute name="cd">interval1</xsl:attribute>
- <xsl:attribute name="name">interval_<xsl:value-of select="$type"/></xsl:attribute>
- </xsl:element>
- <xsl:call-template name="om-kind-of-data">
- <xsl:with-param name='arg' select="substring-before(text(),':')"/>
- </xsl:call-template>
- <xsl:call-template name="om-kind-of-data">
- <xsl:with-param name='arg' select="substring-after(text(),':')"/>
- </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="@type='io'">
+ <xsl:call-template name='om-interval-oo'/>
+ <xsl:element name="OMA">
+ <xsl:call-template name='om-minus'/>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:element>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@type='oi'">
+ <xsl:call-template name='om-interval-oo'/>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:when>
+ <xsl:when test="@type='ic'">
+ <xsl:call-template name='om-interval-oc'/>
+ <xsl:element name="OMA">
+ <xsl:call-template name='om-minus'/>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:element>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@type='ci'">
+ <xsl:call-template name='om-interval-co'/>
+ <xsl:element name="OMI">
+ <xsl:call-template name='om-kind-of-data'>
+ <xsl:with-param name='arg' select='text()'/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:call-template name='om-infinity'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="OMS">
+ <xsl:attribute name="cd">interval1</xsl:attribute>
+ <xsl:attribute name="name">interval_<xsl:value-of select="$type"/></xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-before(text(),':')"/>
+ </xsl:call-template>
+ <xsl:call-template name="om-kind-of-data">
+ <xsl:with-param name='arg' select="substring-after(text(),':')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:element>
</xsl:element>
</xsl:template>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index e165887d8..c9a48bcf6 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 281f596ba..47813d71e 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 1e5439012..d6114118b 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index 5977c0a3a..156aebbb7 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="un"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index c5422a6c6..0d1c06664 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index a65e8f658..d0c54aed9 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 204033ebd..7a80b3881 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.05.18 20:03">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.05.23 16:32">
<cd:variables>
<cd:variable name="one" value="unu"/>