diff options
Diffstat (limited to 'tex/context/base/x-newmml.tex')
-rw-r--r-- | tex/context/base/x-newmml.tex | 70 |
1 files changed, 49 insertions, 21 deletions
diff --git a/tex/context/base/x-newmml.tex b/tex/context/base/x-newmml.tex index 803190ee4..97562daec 100644 --- a/tex/context/base/x-newmml.tex +++ b/tex/context/base/x-newmml.tex @@ -439,16 +439,17 @@ [csymbol] [encoding=text, definitionURL=] - {} + {\doifsomething{\XMLop{definitionURL}}{\directsetup{mmc:csymbol:apply}}} \startsetups mmc:csymbol:apply \begingroup \startsavingXMLelements \rawXMLstacktext\plusone % still on stack, no check, just attr test \stopsavingXMLelements - % http://www.publisherswhodontcareaboutcosts.com/SomeName - \doifsetupselse{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}} { - \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}}} + % http://www.publishers.com/SomeName + \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL + \doifsetupselse{mmc:csymbol:} {\mmcSymbolURL} { + \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}} } { % SomeName (fallback) \splitfilename{\XMLpar{csymbol}{definitionURL}{}} @@ -880,16 +881,20 @@ \defineXMLcommand [divide] {\directsetup{mmc:divide}} -\setupMMLappearance [divide] [\c!level=\!!maxcard] +\setupMMLappearance [divide] [\c!level=\!!maxcard,\c!alternative=\v!a] \startsetups mmc:divide \increment\MMLcDIVIDElevel - \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space + \doifelse \@@MMLdividealternative\v!b { \getXMLstackdata\plustwo/\getXMLstackdata\plusthree - \else - \MMLcreset - \frac{\MMLcreset\getXMLstackdata\plustwo}{\MMLcreset\getXMLstackdata\plusthree}% - \fi + } { + \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space + \getXMLstackdata\plustwo/\getXMLstackdata\plusthree + \else + \MMLcreset + \frac{\MMLcreset\getXMLstackdata\plustwo}{\MMLcreset\getXMLstackdata\plusthree}% + \fi + } \decrement\MMLcDIVIDElevel \stopsetups @@ -2451,6 +2456,11 @@ \let\MMLdoL\donothing \let\MMLdoR\donothing +\startsetups mmc:apply:start + \begingroup + \startsavingXMLelements +\stopsetups + \startsetups mmc:apply:stop \stopsavingXMLelements \MMLmathinner { @@ -2472,9 +2482,11 @@ \doifelse {\getXMLstackname\plusone} {apply} { % <apply> <apply> ... </apply> <ci> .. </ci> </apply> \doifelseMMCfunctioninapply \plusone {plus,minus} { +% [a] % yet incomplete and rather untested % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply> } { +% [b] \MMLcreset } \MMLdoL @@ -2487,17 +2499,21 @@ \MMLdoR } { \doifelse {\getXMLstackname\plusone} {fn} { +% [c] % \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 +% [d] \directsetup{mmc:csymbol:apply} } { \doifelse {\getXMLstackname\plusone} {ci} { +% [e] % \MMLdoL/R are to be taken care of in the next setup \directsetup{mmc:ci:apply} } { +% [f] \MMLdoL \getXMLstackdata\plusone \MMLdoR @@ -2520,43 +2536,55 @@ \doifelse {\getXMLstackname\plusone} {ci} { \flattenXMLcontent{\getXMLstackdata\plusone} \doifsetupselse{mmc:fn:\flattenedXMLcontent} { -% \MMLdoL/MMLdoR to be handled in plugin + % \MMLdoL/MMLdoR to be handled in plugin \global\defXMLstackdata\XMLfnoperator\plusone \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}} } { \endgroup \MMLcreset -\MMLdoL + \MMLdoL \getXMLstackdata\plusone \ifnum\XMLstacklevel>\plusone \getXMLentity{NegThinSpace} \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right) \fi -\MMLdoR + \MMLdoR } } { \endgroup \MMLcreset -\MMLdoL + \MMLdoL \getXMLstackdata\plusone -\MMLdoR + \MMLdoR } \stopsetups \startsetups mmc:csymbol:apply \begingroup - \startsavingXMLelements - \rawXMLstacktext\plusone % still on stack, no check, just attr test - \stopsavingXMLelements + \defineXMLsave[csymbol][definitionURL=,encoding=] + \rawXMLstackdata\plusone % was text % still on stack, no check, just attr test % \MMLdoL/MMLdoR to be handled in plugin - \doifsetupselse{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}} { - \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\XMLpar{csymbol}{definitionURL}{}}} + \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL + \doifsetupselse{mmc:csymbol:\mmcSymbolURL} { + \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}} } { \endgroup - \XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument} + %\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}% fails when no content + \XMLval{mmc:cs}{\XMLop{encoding}}{} } \stopsetups +\defineXMLsingular + [csymbol] + [encoding=text, + definitionURL=] + {\directsetup{mmc:csymbol:apply:singular}} + +\startsetups mmc:csymbol:apply:singular + \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL + \directsetup{mmc:csymbol:\mmcSymbolURL} +\stopsetups + \startsetups mmc:ci:apply \getXMLstackdata\plusone \ifnum\XMLstacklevel>\plusone |