From 86a5122e2c2370f4b190374fcbb68d6bcb63149b Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sat, 21 Jul 2012 16:50:00 +0200 Subject: beta 2012.07.21 16:50 --- tex/context/base/buff-ver.mkiv | 4 + tex/context/base/char-def.lua | 37 ++++--- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4085 -> 4088 bytes tex/context/base/context-version.png | Bin 105657 -> 106703 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/math-ini.lua | 28 ++++- tex/context/base/math-ini.mkiv | 2 + tex/context/base/page-set.mkiv | 6 +- tex/context/base/status-files.pdf | Bin 24381 -> 24382 bytes tex/context/base/status-lua.pdf | Bin 184404 -> 184451 bytes tex/context/base/strc-flt.mkvi | 113 +++++++++++++++++---- tex/context/base/strc-lnt.mkvi | 19 +++- tex/context/base/strc-sec.mkiv | 2 +- tex/context/base/x-chemml.lua | 2 +- tex/context/base/x-chemml.mkiv | 20 ++-- tex/context/base/x-mathml.mkiv | 68 +++++++++---- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 20 files changed, 233 insertions(+), 78 deletions(-) (limited to 'tex') 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 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index e81da871f..3a1956d13 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png 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 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 0a0b624a3..ce3356446 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf 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: (_ + \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 -- cgit v1.2.3