summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/buff-ver.mkiv4
-rw-r--r--tex/context/base/char-def.lua37
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4085 -> 4088 bytes
-rw-r--r--tex/context/base/context-version.pngbin105657 -> 106703 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/math-ini.lua28
-rw-r--r--tex/context/base/math-ini.mkiv2
-rw-r--r--tex/context/base/page-set.mkiv6
-rw-r--r--tex/context/base/status-files.pdfbin24381 -> 24382 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin184404 -> 184451 bytes
-rw-r--r--tex/context/base/strc-flt.mkvi113
-rw-r--r--tex/context/base/strc-lnt.mkvi19
-rw-r--r--tex/context/base/strc-sec.mkiv2
-rw-r--r--tex/context/base/x-chemml.lua2
-rw-r--r--tex/context/base/x-chemml.mkiv20
-rw-r--r--tex/context/base/x-mathml.mkiv68
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
20 files changed, 233 insertions, 78 deletions
diff --git a/tex/context/base/buff-ver.mkiv b/tex/context/base/buff-ver.mkiv
index 74e8e392f..8c026d112 100644
--- a/tex/context/base/buff-ver.mkiv
+++ b/tex/context/base/buff-ver.mkiv
@@ -70,6 +70,10 @@
\csname\??typingspace\typeparameter\c!space\endcsname
\relax\the\everyinitializeverbatim\relax}
+\unexpanded\def\doinitializeverbatim % for use elsewhere .. temp hack (see lxml-ini)
+ {\buff_verbatim_initialize_type_one
+ \buff_verbatim_initialize_type_two}
+
\let\buff_verbatim_set_line_margin\relax
\def\buff_verbatim_set_line_margin_indeed
diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua
index e5cd73940..3d111dbe2 100644
--- a/tex/context/base/char-def.lua
+++ b/tex/context/base/char-def.lua
@@ -56832,6 +56832,16 @@ characters.data={
description="OVERLINE",
direction="on",
linebreak="al",
+ mathspec={
+ {
+ class="topaccent",
+ name="overbar",
+ },
+ {
+ class="botaccent",
+ name="underbar",
+ },
+ },
specials={ "compat", 0x0020, 0x0305 },
unicodeslot=0x203E,
},
@@ -60936,15 +60946,16 @@ characters.data={
description="INTEGRAL",
direction="on",
linebreak="ai",
+ mathclass="limop",
mathspec={
{
- class="nothing",
- name="intop",
- },
- {
class="limop",
name="int",
},
+ {
+ class="nothing",
+ name="intop",
+ },
},
unicodeslot=0x222B,
},
@@ -60955,15 +60966,16 @@ characters.data={
description="DOUBLE INTEGRAL",
direction="on",
linebreak="ai",
+ mathclass="limop",
mathspec={
{
- class="nothing",
- name="iintop",
- },
- {
class="limop",
name="iint",
},
+ {
+ class="nothing",
+ name="iintop",
+ },
},
specials={ "compat", 0x222B, 0x222B },
unicodeslot=0x222C,
@@ -60973,15 +60985,16 @@ characters.data={
description="TRIPLE INTEGRAL",
direction="on",
linebreak="al",
+ mathclass="limop",
mathspec={
{
- class="nothing",
- name="iiintop",
- },
- {
class="limop",
name="iiint",
},
+ {
+ class="nothing",
+ name="iiintop",
+ },
},
specials={ "compat", 0x222B, 0x222B, 0x222B },
unicodeslot=0x222D,
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 1ce6d3cff..a21536137 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.07.21 13:05}
+\newcontextversion{2012.07.21 16:50}
%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/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index e8deeca22..dcce901fb 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.07.21 13:05}
+\newcontextversion{2012.07.21 16:50}
%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-version.pdf b/tex/context/base/context-version.pdf
index 979ac35af..28e03a7a8 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index e81da871f..3a1956d13 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index 716ef999d..465eeda2e 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.07.21 13:05}
+\edef\contextversion{2012.07.21 16:50}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 3bad2caba..8ce562746 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.07.21 13:05}
+\edef\contextversion{2012.07.21 16:50}
%D For those who want to use this:
diff --git a/tex/context/base/math-ini.lua b/tex/context/base/math-ini.lua
index 54452282b..1537d3727 100644
--- a/tex/context/base/math-ini.lua
+++ b/tex/context/base/math-ini.lua
@@ -33,6 +33,8 @@ local mathematics = mathematics
mathematics.extrabase = 0xFE000 -- here we push some virtuals
mathematics.privatebase = 0xFF000 -- here we push the ex
+local chardata = characters.data
+
local families = allocate {
mr = 0,
mb = 1,
@@ -63,6 +65,14 @@ local classes = allocate {
nolop = 1, -- mathnolopcomm @@mathnolopcomm
}
+local accents = allocate {
+ topaccent = true, [11] = true,
+ botaccent = true, [12] = true,
+ under = true, [13] = true,
+ over = true, [14] = true,
+ unknown = false,
+}
+
local codes = allocate {
ordinary = 0, [0] = "ordinary",
largeoperator = 1, [1] = "largeoperator",
@@ -76,6 +86,7 @@ local codes = allocate {
mathematics.classes = classes
mathematics.codes = codes
+-----------.accents = codes
mathematics.families = families
classes.alphabetic = classes.alpha
@@ -330,23 +341,29 @@ end
-- needed for mathml analysis
local function utfmathclass(chr, default)
- local cd = characters.data[utfbyte(chr)]
+ local cd = chardata[utfbyte(chr)]
return (cd and cd.mathclass) or default or "unknown"
end
+local function utfmathaccent(chr, default)
+ local cd = chardata[utfbyte(chr)]
+ local mc = cd and cd.mathclass or "unknown"
+ return mc and accents[mc] or false
+end
+
local function utfmathstretch(chr, default) -- "h", "v", "b", ""
- local cd = characters.data[utfbyte(chr)]
+ local cd = chardata[utfbyte(chr)]
return (cd and cd.mathstretch) or default or ""
end
local function utfmathcommand(chr, default)
- local cd = characters.data[utfbyte(chr)]
+ local cd = chardata[utfbyte(chr)]
local cmd = cd and cd.mathname
return cmd or default or ""
end
local function utfmathfiller(chr, default)
- local cd = characters.data[utfbyte(chr)]
+ local cd = chardata[utfbyte(chr)]
local cmd = cd and (cd.mathfiller or cd.mathname)
return cmd or default or ""
end
@@ -363,6 +380,9 @@ function commands.utfmathstretch(chr) context(utfmathstretch(chr)) end
function commands.utfmathcommand(chr) context(utfmathcommand(chr)) end
function commands.utfmathfiller (chr) context(utfmathfiller (chr)) end
+function commands.doifelseutfmathaccent(chr)
+ commands.doifelse(utfmathaccent(chr))
+end
-- helpers
diff --git a/tex/context/base/math-ini.mkiv b/tex/context/base/math-ini.mkiv
index e6a3ae6f3..4f1ef3865 100644
--- a/tex/context/base/math-ini.mkiv
+++ b/tex/context/base/math-ini.mkiv
@@ -252,6 +252,8 @@
\def\utfmathcommand#1{\ctxcommand{utfmathcommand(\!!bs#1\!!es)}}
\def\utfmathfiller #1{\ctxcommand{utfmathfiller (\!!bs#1\!!es)}}
+\unexpanded\def\doifelseutfmathaccent#1{\ctxcommand{doifelseutfmathaccent("#1")}}
+
%D Not used that much:
\installcorenamespace{mathcodecommand}
diff --git a/tex/context/base/page-set.mkiv b/tex/context/base/page-set.mkiv
index fe99080dd..51e4896bc 100644
--- a/tex/context/base/page-set.mkiv
+++ b/tex/context/base/page-set.mkiv
@@ -2405,12 +2405,12 @@
{\!!counta#1\!!countb#2\docalculatecolumnsetspan
\edef\columnsetspanhsize{\the\!!widtha}}
-\unexpanded\def\page_set_command_set_float_hsize
+\unexpanded\def\page_set_command_set_float_hsize % this helper has to be moved to strc-flt
{\hsize % maybe checking optional
- \ifdim\tempfloatwidth>\makeupwidth
+ \ifdim\d_strc_float_temp_width>\makeupwidth
\makeupwidth
\else
- \tempfloatwidth
+ \d_strc_float_temp_width
\fi}
\unexpanded\def\definecolumnsetspan
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 809fb32b8..be3417a1a 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 0a0b624a3..ce3356446 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/strc-flt.mkvi b/tex/context/base/strc-flt.mkvi
index c5399fa5b..5dd292c82 100644
--- a/tex/context/base/strc-flt.mkvi
+++ b/tex/context/base/strc-flt.mkvi
@@ -1176,7 +1176,7 @@
% nothing
\or
% automatic
- \ifnofloatcaption
+ \ifnofloatcaption
\strc_floats_prepare_no_caption
%\page_backgrounds_add_local_to_box\floatbox % was \doglobal but not needed
\else
@@ -1791,29 +1791,102 @@
\fi
\egroup}
+% \def\strc_floats_prepare_side_caption
+% {\dostarttagged\t!floatcaption\empty
+% \edef\p_strc_floats_caption_align{\floatcaptionparameter\c!align}%
+% \doifelse{\floatcaptionparameter\c!width}\v!max
+% {\setbox\b_strc_floats_caption\vbox
+% {\strc_floats_caption_set_align
+% \hsize\wd\b_strc_floats_content
+% \strc_floats_make_complete_caption}}%
+% {\doifelse{\floatcaptionparameter\c!width}\v!fit
+% {\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
+% \setbox\b_strc_floats_caption\vbox
+% {\forgetall % needed?
+% \hsize\wd\b_strc_floats_content
+% \strc_floats_make_complete_caption}%
+% \else
+% \setbox\b_strc_floats_caption\hbox to \wd\b_strc_floats_content
+% {\hss\hbox{\strc_floats_make_complete_caption}\hss}%
+% \fi}
+% {\setbox\b_strc_floats_caption\vbox
+% {\strc_floats_caption_set_align
+% \hsize\floatcaptionparameter\c!width % \wd\b_strc_floats_content
+% \strc_floats_make_complete_caption}}}%
+% \dostoptagged}
+
\def\strc_floats_prepare_side_caption
{\dostarttagged\t!floatcaption\empty
- \doifelse{\floatcaptionparameter\c!width}\v!max
- {\setbox\b_strc_floats_caption\vbox
- {\strc_floats_caption_set_align
- \hsize\wd\b_strc_floats_content
- \strc_floats_make_complete_caption}}%
- {\doifelse{\floatcaptionparameter\c!width}\v!fit
- {\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
- \setbox\b_strc_floats_caption\vbox
- {\forgetall % needed?
- \hsize\wd\b_strc_floats_content
- \strc_floats_make_complete_caption}%
- \else
- \setbox\b_strc_floats_caption\hbox to \wd\b_strc_floats_content
- {\hss\hbox{\strc_floats_make_complete_caption}\hss}%
- \fi}
- {\setbox\b_strc_floats_caption\vbox
- {\strc_floats_caption_set_align
- \hsize\floatcaptionparameter\c!width % \wd\b_strc_floats_content
- \strc_floats_make_complete_caption}}}%
+ \edef\p_strc_floats_caption_width{\floatcaptionparameter\c!width}%
+ \edef\p_strc_floats_caption_align{\floatcaptionparameter\c!align}%
+ \ifx\p_strc_floats_caption_width\v!max
+ \strc_floats_prepare_side_caption_max
+ \else\ifx\p_strc_floats_caption_width\v!fit
+ \strc_floats_prepare_side_caption_fit
+ \else
+ \strc_floats_prepare_side_caption_width
+ \fi\fi
\dostoptagged}
+% these could be \??floatpreparesidecaption
+
+\def\strc_floats_prepare_side_caption_max
+ {\setbox\b_strc_floats_caption\vbox
+ {\strc_floats_caption_set_align
+ \hsize\wd\b_strc_floats_content
+ \strc_floats_make_complete_caption}}
+
+\def\strc_floats_prepare_side_caption_fit
+ {\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
+ \setbox\b_strc_floats_caption\vbox
+ {\forgetall % needed?
+ \hsize\wd\b_strc_floats_content
+ \strc_floats_make_complete_caption}%
+ \else
+ \setbox\b_strc_floats_caption\hbox to \wd\b_strc_floats_content
+ {\hss\hbox{\strc_floats_make_complete_caption}\hss}%
+ \fi}
+
+\def\strc_floats_prepare_side_caption_width
+ {\setbox\b_strc_floats_caption\vbox
+ {\strc_floats_caption_set_align
+ \hsize\p_strc_floats_caption_width % \wd\b_strc_floats_content
+ \strc_floats_make_complete_caption}}
+
+% % maybe (but then also prepare_page that way):
+%
+% \installcorenamespace{floatpreparesidecaption}
+%
+% \def\strc_floats_prepare_side_caption
+% {\dostarttagged\t!floatcaption\empty
+% \edef\p_strc_floats_caption_width{\floatcaptionparameter\c!width}%
+% \edef\p_strc_floats_caption_align{\floatcaptionparameter\c!align}%
+% \expandcheckedcsname\??floatpreparesidecaption\p_strc_floats_caption_width\s!unknown
+% \dostoptagged}
+%
+% \setvalue{\??floatpreparesidecaption\v!max}%
+% {\setbox\b_strc_floats_caption\vbox
+% {\strc_floats_caption_set_align
+% \hsize\wd\b_strc_floats_content
+% \strc_floats_make_complete_caption}}
+%
+% \setvalue{\??floatpreparesidecaption\v!fit}%
+% {\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
+% \setbox\b_strc_floats_caption\vbox
+% {\forgetall % needed?
+% \hsize\wd\b_strc_floats_content
+% \strc_floats_make_complete_caption}%
+% \else
+% \setbox\b_strc_floats_caption\hbox to \wd\b_strc_floats_content
+% {\hss\hbox{\strc_floats_make_complete_caption}\hss}%
+% \fi}
+%
+% \setvalue{\??floatpreparesidecaption\s!unknown}%
+% {\setbox\b_strc_floats_caption\vbox
+% {\strc_floats_caption_set_align
+% \hsize\p_strc_floats_caption_width % \wd\b_strc_floats_content
+% \strc_floats_make_complete_caption}}
+
\def\strc_floats_locate_side_float#1%
{\begingroup
\alignstrutmode\zerocount
diff --git a/tex/context/base/strc-lnt.mkvi b/tex/context/base/strc-lnt.mkvi
index 1366e6cdc..9b93ba07f 100644
--- a/tex/context/base/strc-lnt.mkvi
+++ b/tex/context/base/strc-lnt.mkvi
@@ -27,11 +27,20 @@
{\dotripleempty\strc_linenotes_define}
\def\strc_linenotes_define[#1][#2][#3]%
- {\definenote[#1][#2][#3]%
- \expandafter\let\csname\??linenote#1\expandafter\endcsname\csname#1\endcsname % use copy command
- \setuevalue {#1}{\strc_linenotes_direct{#1}}%
- \setuevalue{\e!start#1}{\strc_linenotes_start {#1}}%
- \setuevalue{\e!stop #1}{\strc_linenotes_stop }}
+ {\ifcsname\??linenote#1\endcsname
+ % there might be files that define the default 'linenote'
+ \ifthirdargument
+ \setupnote[#1][#3]%
+ \else\ifsecondargument
+ \setupnote[#1][#2]%
+ \fi\fi
+ \else
+ \definenote[#1][#2][#3]%
+ \expandafter\let\csname\??linenote#1\expandafter\endcsname\csname#1\endcsname % use copy command
+ \setuevalue {#1}{\strc_linenotes_direct{#1}}%
+ \setuevalue{\e!start#1}{\strc_linenotes_start {#1}}%
+ \setuevalue{\e!stop #1}{\strc_linenotes_stop }%
+ \fi}
\unexpanded\def\strc_linenotes_direct#1#2%
{\global\advance\c_strc_linenotes\plusone
diff --git a/tex/context/base/strc-sec.mkiv b/tex/context/base/strc-sec.mkiv
index 9177c9f57..bc6e62372 100644
--- a/tex/context/base/strc-sec.mkiv
+++ b/tex/context/base/strc-sec.mkiv
@@ -843,7 +843,7 @@
\expandafter\GotoPar
\fi}
-% typesetting
+% typesetting (the getters are public)
\unexpanded\def\strc_rendering_place_head_number_and_text
{\setheadmarking
diff --git a/tex/context/base/x-chemml.lua b/tex/context/base/x-chemml.lua
index 387935c8b..64bbb3408 100644
--- a/tex/context/base/x-chemml.lua
+++ b/tex/context/base/x-chemml.lua
@@ -28,7 +28,7 @@ function chemml.do_graphic(id)
for r, d, k in xml.elements(lxml.id(id),"cml:graphic") do
t[#t+1] = xml.tostring(d[k].dt)
end
- concat(concat(t,","))
+ context(concat(t,","))
end
function chemml.no_graphic(id)
diff --git a/tex/context/base/x-chemml.mkiv b/tex/context/base/x-chemml.mkiv
index 80e8317d8..99a371107 100644
--- a/tex/context/base/x-chemml.mkiv
+++ b/tex/context/base/x-chemml.mkiv
@@ -11,34 +11,34 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% This needs an update!
+
\writestatus{loading}{ConTeXt XML Macros / Chemistry}
\registerctxluafile{x-chemml}{}
\def\ctxmodulechemml#1{\directlua\zerocount{moduledata.chemml.#1}}
-\usemodule[pictex,chemic] % someday we will do structural fomulas in mp
-
%D The following code assumes a load||flush approach to \XML.
\unprotect
\startxmlsetups xml:cml:process
- \xmlstrip {\xmldocument} {cml:chem|cml:ichem|cml:dchem|cml:reaction|cml:molecule|cml:ion|cml:structure}
+ \xmlstrip {#1} {cml:chem|cml:ichem|cml:dchem|cml:reaction|cml:molecule|cml:ion|cml:structure}
- \xmlgrab {\xmldocument} {cml:*} {*}
- \xmlgrab {\xmldocument} {cml:gives|cml:equilibrium|cml:mesomeric} {cml:arrow}
- \xmlgrab {\xmldocument} {cml:plus|cml:minus|cml:equal} {cml:operator}
- \xmlgrab {\xmldocument} {cml:bond|cml:singlebond|cml:doublebound|cml:triplebond} {cml:bond}
+ \xmlgrab {#1} {cml:*} {cml:*}
+ \xmlgrab {#1} {cml:gives|cml:equilibrium|cml:mesomeric} {cml:arrow}
+ \xmlgrab {#1} {cml:plus|cml:minus|cml:equal} {cml:operator}
+ \xmlgrab {#1} {cml:bond|cml:singlebond|cml:doublebound|cml:triplebond} {cml:bond}
- \xmlgrab {\xmldocument} {pi::chemml} {cml:pi}
+ \xmlgrab {#1} {pi::chemml} {cml:pi}
\stopxmlsetups
\xmlregistersetup{xml:cml:process}
\xmlregisterns{cml}{chemml}
-\unexpanded\def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]}
+\unexpanded\def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]} % old stuff
\setupCMLappearance [ion] [\c!alternative=\v!a]
@@ -67,7 +67,7 @@
\xmlflush{#1}
\stopxmlsetups
-\def\doCMLtext#1#2#3% main top bot
+\unexpanded\def\doCMLtext#1#2#3% main top bot
{\setbox0\hbox{\doifsomething{#2}{\txx\setstrut\strut\ignorespaces#2\unskip}}%
\setbox2\hbox{\ignorespaces\strut#1\unskip}%
\setbox4\hbox{\doifsomething{#3}{\txx\setstrut\strut\ignorespaces#3\unskip}}%
diff --git a/tex/context/base/x-mathml.mkiv b/tex/context/base/x-mathml.mkiv
index 2866418e8..f80e5b18c 100644
--- a/tex/context/base/x-mathml.mkiv
+++ b/tex/context/base/x-mathml.mkiv
@@ -2126,27 +2126,45 @@
\setupMMLappearance[scripts][\c!alternative=\v!a] % {} rond base
+% brrr no { } when limop .. todo: better in lua
+% speed up with ifx and setups or just in lua
+
\startxmlsetups mml:msub
- \doifelse\MMLscriptsalternative\v!a {
- {\mmlfirst{#1}}\normalsubscript{\mmlsecond{#1}}
- } {
+ \edef\mmlnucleus{\xmlraw{#1}{/mml:*[1]}}
+ \doifelse {\utfmathclass\mmlnucleus} {limop} {
\mmlfirst{#1} \normalsubscript{\mmlsecond{#1}}
+ } {
+ \doifelse\MMLscriptsalternative\v!a {
+ {\mmlfirst{#1}}\normalsubscript{\mmlsecond{#1}}
+ } {
+ \mmlfirst{#1} \normalsubscript{\mmlsecond{#1}}
+ }
}
\stopxmlsetups
\startxmlsetups mml:msup
- \doifelse\MMLscriptsalternative\v!a {
- {\mmlfirst{#1}}\normalsuperscript{\mmlsecond{#1}}
- } {
+ \edef\mmlnucleus{\xmlraw{#1}{/mml:*[1]}}
+ \doifelse {\utfmathclass\mmlnucleus} {limop} {
\mmlfirst{#1} \normalsuperscript{\mmlsecond{#1}}
+ } {
+ \doifelse\MMLscriptsalternative\v!a {
+ {\mmlfirst{#1}}\normalsuperscript{\mmlsecond{#1}}
+ } {
+ \mmlfirst{#1} \normalsuperscript{\mmlsecond{#1}}
+ }
}
\stopxmlsetups
\startxmlsetups mml:msubsup
- \doifelse\MMLscriptsalternative\v!a {
- {\mmlfirst{#1}}\normalsubscript{\mmlsecond{#1}}\normalsuperscript{\mmlthird{#1}}
+ \edef\mmlnucleus{\xmlraw{#1}{/mml:*[1]}}
+ \doifelse {\utfmathclass\mmlnucleus} {limop} {
+ \mmlfirst{#1}\normalsubscript{\mmlsecond{#1}}\normalsuperscript{\mmlthird{#1}}
} {
- \mmlfirst{#1} \normalsubscript{\mmlsecond{#1}}\normalsuperscript{\mmlthird{#1}}
+ \doifelse\MMLscriptsalternative\v!a {
+ {\mmlfirst{#1}}\normalsubscript{\mmlsecond{#1}}\normalsuperscript{\mmlthird{#1}}
+ } {
+ \mmlfirst{#1}\normalsubscript{\mmlsecond{#1}}\normalsuperscript{\mmlthird{#1}}
+ }
}
\stopxmlsetups
@@ -2163,20 +2181,27 @@
\startxmlsetups mml:mover
% \mathop {
\edef\mmlovertoken{\xmlraw{#1}{/mml:*[2]}}
- \doifelse{\utfmathclass\mmlovertoken}{accent} {
+ \doifelseutfmathaccent\mmlovertoken {
\edef\mmlovercommand{\utfmathcommand\mmlovertoken}
\mmlexecuteifdefined\mmlovercommand\mathematics{\mmlfirst{#1}}
} {
\edef\mmlbasetoken{\xmlraw{#1}{/mml:*[1]}}
\edef\mmlbasecommand{\utfmathfiller\mmlbasetoken}
\edef\mmlovercommand{\utfmathfiller\mmlovertoken}
+% todo: proper math mode/size
\vbox {
\mathsurround\zeropoint \ialign {
- \hss##\hss\crcr
+% \hss##\hss
+\hss$##$\hss
+ \crcr
\noalign{\kern3\onepoint}%
- \mmlexecuteifdefined\mmlovercommand{\mathematics{\mmlsecond{#1}}}\crcr
+% \mmlexecuteifdefined\mmlovercommand{\mathematics{\mmlsecond{#1}}}
+\mmlexecuteifdefined\mmlovercommand{\mmlsecond{#1}}
+ \crcr
\noalign{\kern3\onepoint\nointerlineskip}%
- \mmlexecuteifdefined\mmlbasecommand{\mathematics{\mmlfirst{#1}}}\crcr
+% \mmlexecuteifdefined\mmlbasecommand{\mathematics{\mmlfirst{#1}}}
+\mmlexecuteifdefined\mmlbasecommand{\mmlfirst{#1}}
+ \crcr
}
}
}
@@ -2184,22 +2209,31 @@
% \limits % spoils spacing
\stopxmlsetups
+% messy: <munder><mo>(</mo><mo>&UnderBar;</mo></munder>
+
\startxmlsetups mml:munder
% \mathop {
\edef\mmlundertoken{\xmlraw{#1}{/mml:*[2]}}
- \doifelse{\utfmathclass\mmlundertoken}{accent} {
+ \doifelseutfmathaccent\mmlundertoken {
\edef\mmlundercommand{\utfmathcommand\mmlundertoken}
\mmlexecuteifdefined\mmlundercommand\mathematics{\mmlfirst{#1}}
} {
\edef\mmlbasetoken {\xmlraw{#1}{/mml:*[1]}}
\edef\mmlbasecommand {\utfmathfiller\mmlbasetoken}
\edef\mmlundercommand{\utfmathfiller\mmlundertoken}
+% todo: proper math mode/size
\vtop {
\mathsurround\zeropoint \ialign {
- \hss##\hss\crcr
- \mmlexecuteifdefined\mmlbasecommand {\mathematics{\mmlfirst{#1}}}\crcr
+% \hss##\hss
+\hss$##$\hss
+ \crcr
+% \mmlexecuteifdefined\mmlbasecommand {\mathematics{\mmlfirst{#1}}}
+\mmlexecuteifdefined\mmlbasecommand {\mmlfirst{#1}}
+ \crcr
\noalign{\kern3\onepoint\nointerlineskip}%
- \mmlexecuteifdefined\mmlundercommand{\mathematics{\mmlsecond{#1}}}\crcr
+% \mmlexecuteifdefined\mmlundercommand{\mathematics{\mmlsecond{#1}}}
+\mmlexecuteifdefined\mmlundercommand{\mmlsecond{#1}}
+ \crcr
\noalign{\kern3\onepoint}
}
}
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index dfd812d6a..2fe9e3e29 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 07/21/12 13:05:20
+-- merge date : 07/21/12 16:50:19
do -- begin closure to overcome local limits and interference