Merge pull request #1382 from mathjax/develop

Merge develop into master for 2.6.1 release
This commit is contained in:
Peter Krautzberger 2016-02-08 17:46:12 +01:00
commit d4ab1b35c9
76 changed files with 579 additions and 437 deletions

18
.travis.yml Normal file
View File

@ -0,0 +1,18 @@
language: node_js
node_js:
- '5'
sudo: false
script:
- npm install
- npm test
branches:
only:
- master
- /^\d+\.\d+/
deploy:
provider: npm
email: manager@mathjax.org
api_key:
secure: q7e4haV9hAHng28w6EBnOc6ptorxjxeATW6ZocYiPk68To3IUHMt615rzyotfA5TBCcPJyeUJiqNcuUXbh+r8HmER4bJsjaGMpETPSkdvzQ1bYg2EJEvT6V/xc+sRGoj5ri/F2uH99AYnF99IugjeWvjpp5F5z370fJIMiUmXX8=
on:
tags: true

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -240,12 +240,18 @@ MathJax.Hub.Config({
ALT: false, // require Alt or Option? ALT: false, // require Alt or Option?
CMD: false, // require CMD? CMD: false, // require CMD?
Shift: false, // require Shift? Shift: false, // require Shift?
discoverable: false, // make math menu discoverable on hover?
zscale: "200%", // the scaling factor for MathZoom zscale: "200%", // the scaling factor for MathZoom
renderer: null, // set when Jax are loaded
font: "Auto", // what font HTML-CSS should use font: "Auto", // what font HTML-CSS should use
context: "MathJax", // or "Browser" for pass-through to browser menu context: "MathJax", // or "Browser" for pass-through to browser menu
locale: null, // the language to use for messages
mpContext: false, // true means pass menu events to MathPlayer in IE mpContext: false, // true means pass menu events to MathPlayer in IE
mpMouse: false, // true means pass mouse events to MathPlayer in IE mpMouse: false, // true means pass mouse events to MathPlayer in IE
texHints: true, // include class names for TeXAtom elements texHints: true, // include class names for TeXAtom elements
FastPreview: null, // use PreviewHTML output as preview?
assistiveMML: null, // include hidden MathML for screen readers?
inTabOrder: true, // set to true if math elements should be included in the tabindex
semantics: false // add semantics tag with original form in MathML output semantics: false // add semantics tag with original form in MathML output
}, },

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
(function(a,e,b,f){var c=b.config.menuSettings;var d=MathJax.Extension.AssistiveMML={version:"2.6.0",config:{disabled:false,styles:{".MJX_Assistive_MathML":{position:"absolute!important",top:0,left:0,clip:(b.Browser.isMSIE&&(document.documentMode||0)<8?"rect(1px 1px 1px 1px)":"rect(1px, 1px, 1px, 1px)"),padding:"1px 0 0 0!important",border:"0!important",height:"1px!important",width:"1px!important",overflow:"hidden!important",display:"block!important"},".MJX_Assistive_MathML.MJX_Assistive_MathML_Block":{width:"100%!important"}}},Config:function(){if(!this.config.disabled&&c.assistiveMML==null){b.Config({menuSettings:{assistiveMML:true}})}a.Styles(this.config.styles);b.Register.MessageHook("End Math",function(g){if(c.assistiveMML){return d.AddAssistiveMathML(g[1])}})},AddAssistiveMathML:function(g){var h={jax:b.getAllJax(g),i:0,callback:MathJax.Callback({})};this.HandleMML(h);return h.callback},RemoveAssistiveMathML:function(k){var h=b.getAllJax(k),l;for(var j=0,g=h.length;j<g;j++){l=document.getElementById(h[j].inputID+"-Frame");if(l&&l.getAttribute("data-mathml")){l.removeAttribute("data-mathml");if(l.lastChild&&l.lastChild.className.match(/MJX_Assistive_MathML/)){l.removeChild(l.lastChild)}}}},HandleMML:function(l){var g=l.jax.length,h,i,n,j;while(l.i<g){h=l.jax[l.i];n=document.getElementById(h.inputID+"-Frame");if(h.outputJax!=="NativeMML"&&n&&!n.getAttribute("data-mathml")){try{i=h.root.toMathML("").replace(/\n */g,"").replace(/<!--.*?-->/g,"")}catch(k){if(!k.restart){throw k}return MathJax.Callback.After(["HandleMML",this,l],k.restart)}n.setAttribute("data-mathml",i);j=f.addElement(n,"span",{isMathJax:true,className:"MJX_Assistive_MathML"+(h.root.Get("display")==="block"?" MJX_Assistive_MathML_Block":"")});j.innerHTML=i;n.style.position="relative";n.setAttribute("role","presentation");n.firstChild.setAttribute("aria-hidden","true");j.setAttribute("role","presentation")}l.i++}l.callback()}};b.Startup.signal.Post("AssistiveMML Ready")})(MathJax.Ajax,MathJax.Callback,MathJax.Hub,MathJax.HTML);MathJax.Callback.Queue(["Require",MathJax.Ajax,"[MathJax]/extensions/toMathML.js"],["loadComplete",MathJax.Ajax,"[MathJax]/extensions/AssistiveMML.js"],function(){MathJax.Hub.Register.StartupHook("End Config",["Config",MathJax.Extension.AssistiveMML])}); (function(a,e,b,f){var c=b.config.menuSettings;var d=MathJax.Extension.AssistiveMML={version:"2.6.1",config:b.CombineConfig("AssistiveMML",{disabled:false,styles:{".MJX_Assistive_MathML":{position:"absolute!important",top:0,left:0,clip:(b.Browser.isMSIE&&(document.documentMode||0)<8?"rect(1px 1px 1px 1px)":"rect(1px, 1px, 1px, 1px)"),padding:"1px 0 0 0!important",border:"0!important",height:"1px!important",width:"1px!important",overflow:"hidden!important",display:"block!important","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none"},".MJX_Assistive_MathML.MJX_Assistive_MathML_Block":{width:"100%!important"}}}),Config:function(){if(!this.config.disabled&&c.assistiveMML==null){b.Config({menuSettings:{assistiveMML:true}})}a.Styles(this.config.styles);b.Register.MessageHook("End Math",function(g){if(c.assistiveMML){return d.AddAssistiveMathML(g[1])}})},AddAssistiveMathML:function(g){var h={jax:b.getAllJax(g),i:0,callback:MathJax.Callback({})};this.HandleMML(h);return h.callback},RemoveAssistiveMathML:function(k){var h=b.getAllJax(k),l;for(var j=0,g=h.length;j<g;j++){l=document.getElementById(h[j].inputID+"-Frame");if(l&&l.getAttribute("data-mathml")){l.removeAttribute("data-mathml");if(l.lastChild&&l.lastChild.className.match(/MJX_Assistive_MathML/)){l.removeChild(l.lastChild)}}}},HandleMML:function(l){var g=l.jax.length,h,i,n,j;while(l.i<g){h=l.jax[l.i];n=document.getElementById(h.inputID+"-Frame");if(h.outputJax!=="NativeMML"&&n&&!n.getAttribute("data-mathml")){try{i=h.root.toMathML("").replace(/\n */g,"").replace(/<!--.*?-->/g,"")}catch(k){if(!k.restart){throw k}return MathJax.Callback.After(["HandleMML",this,l],k.restart)}n.setAttribute("data-mathml",i);j=f.addElement(n,"span",{isMathJax:true,unselectable:"on",className:"MJX_Assistive_MathML"+(h.root.Get("display")==="block"?" MJX_Assistive_MathML_Block":"")});j.innerHTML=i;n.style.position="relative";n.setAttribute("role","presentation");n.firstChild.setAttribute("aria-hidden","true");j.setAttribute("role","presentation")}l.i++}l.callback()}};b.Startup.signal.Post("AssistiveMML Ready")})(MathJax.Ajax,MathJax.Callback,MathJax.Hub,MathJax.HTML);MathJax.Callback.Queue(["Require",MathJax.Ajax,"[MathJax]/extensions/toMathML.js"],["loadComplete",MathJax.Ajax,"[MathJax]/extensions/AssistiveMML.js"],function(){MathJax.Hub.Register.StartupHook("End Config",["Config",MathJax.Extension.AssistiveMML])});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.InputJax.MathML=MathJax.InputJax({id:"MathML",version:"2.6.0",directory:MathJax.InputJax.directory+"/MathML",extensionDir:MathJax.InputJax.extensionDir+"/MathML",entityDir:MathJax.InputJax.directory+"/MathML/entities",config:{useMathMLspacing:false}});MathJax.InputJax.MathML.Register("math/mml");MathJax.InputJax.MathML.loadComplete("config.js"); MathJax.InputJax.MathML=MathJax.InputJax({id:"MathML",version:"2.6.1",directory:MathJax.InputJax.directory+"/MathML",extensionDir:MathJax.InputJax.extensionDir+"/MathML",entityDir:MathJax.InputJax.directory+"/MathML/entities",config:{useMathMLspacing:false}});MathJax.InputJax.MathML.Register("math/mml");MathJax.InputJax.MathML.loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.InputJax.TeX=MathJax.InputJax({id:"TeX",version:"2.6.0",directory:MathJax.InputJax.directory+"/TeX",extensionDir:MathJax.InputJax.extensionDir+"/TeX",config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%",equationNumbers:{autoNumber:"none",formatNumber:function(a){return a},formatTag:function(a){return"("+a+")"},formatID:function(a){return"mjx-eqn-"+String(a).replace(/[:"'<>&]/g,"")},formatURL:function(a){return"#"+escape(a)},useLabelIds:true}}});MathJax.InputJax.TeX.Register("math/tex");MathJax.InputJax.TeX.loadComplete("config.js"); MathJax.InputJax.TeX=MathJax.InputJax({id:"TeX",version:"2.6.1",directory:MathJax.InputJax.directory+"/TeX",extensionDir:MathJax.InputJax.extensionDir+"/TeX",config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%",equationNumbers:{autoNumber:"none",formatNumber:function(a){return a},formatTag:function(a){return"("+a+")"},formatID:function(a){return"mjx-eqn-"+String(a).replace(/[:"'<>&]/g,"")},formatURL:function(a){return"#"+escape(a)},useLabelIds:true}}});MathJax.InputJax.TeX.Register("math/tex");MathJax.InputJax.TeX.loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.OutputJax.CommonHTML=MathJax.OutputJax({id:"CommonHTML",version:"2.6.0",directory:MathJax.OutputJax.directory+"/CommonHTML",extensionDir:MathJax.OutputJax.extensionDir+"/CommonHTML",autoloadDir:MathJax.OutputJax.directory+"/CommonHTML/autoload",fontDir:MathJax.OutputJax.directory+"/CommonHTML/fonts",webfontDir:MathJax.OutputJax.fontDir+"/HTML-CSS",config:{matchFontHeight:true,scale:100,minScaleAdjust:50,mtextFontInherit:false,undefinedFamily:"STIXGeneral,'Cambria Math','Arial Unicode MS',serif",EqnChunk:(MathJax.Hub.Browser.isMobile?20:100),EqnChunkFactor:1.5,EqnChunkDelay:100,linebreaks:{automatic:false,width:"container"}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.CommonHTML.Register("jax/mml")}MathJax.OutputJax.CommonHTML.loadComplete("config.js"); MathJax.OutputJax.CommonHTML=MathJax.OutputJax({id:"CommonHTML",version:"2.6.1",directory:MathJax.OutputJax.directory+"/CommonHTML",extensionDir:MathJax.OutputJax.extensionDir+"/CommonHTML",autoloadDir:MathJax.OutputJax.directory+"/CommonHTML/autoload",fontDir:MathJax.OutputJax.directory+"/CommonHTML/fonts",webfontDir:MathJax.OutputJax.fontDir+"/HTML-CSS",config:{matchFontHeight:true,scale:100,minScaleAdjust:50,mtextFontInherit:false,undefinedFamily:"STIXGeneral,'Cambria Math','Arial Unicode MS',serif",EqnChunk:(MathJax.Hub.Browser.isMobile?20:100),EqnChunkFactor:1.5,EqnChunkDelay:100,linebreaks:{automatic:false,width:"container"}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.CommonHTML.Register("jax/mml")}MathJax.OutputJax.CommonHTML.loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.OutputJax["HTML-CSS"]=MathJax.OutputJax({id:"HTML-CSS",version:"2.6.0",directory:MathJax.OutputJax.directory+"/HTML-CSS",extensionDir:MathJax.OutputJax.extensionDir+"/HTML-CSS",autoloadDir:MathJax.OutputJax.directory+"/HTML-CSS/autoload",fontDir:MathJax.OutputJax.directory+"/HTML-CSS/fonts",webfontDir:MathJax.OutputJax.fontDir+"/HTML-CSS",config:{noReflows:true,matchFontHeight:true,scale:100,minScaleAdjust:50,availableFonts:["STIX","TeX"],preferredFont:"TeX",webFont:"TeX",imageFont:"TeX",undefinedFamily:"STIXGeneral,'Arial Unicode MS',serif",mtextFontInherit:false,EqnChunk:(MathJax.Hub.Browser.isMobile?10:50),EqnChunkFactor:1.5,EqnChunkDelay:100,linebreaks:{automatic:false,width:"container"},styles:{".MathJax_Display":{"text-align":"center",margin:"1em 0em"},".MathJax .merror":{"background-color":"#FFFF88",color:"#CC0000",border:"1px solid #CC0000",padding:"1px 3px","font-style":"normal","font-size":"90%"},".MathJax .MJX-monospace":{"font-family":"monospace"},".MathJax .MJX-sans-serif":{"font-family":"sans-serif"},"#MathJax_Tooltip":{"background-color":"InfoBackground",color:"InfoText",border:"1px solid black","box-shadow":"2px 2px 5px #AAAAAA","-webkit-box-shadow":"2px 2px 5px #AAAAAA","-moz-box-shadow":"2px 2px 5px #AAAAAA","-khtml-box-shadow":"2px 2px 5px #AAAAAA",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')",padding:"3px 4px","z-index":401}}}});if(MathJax.Hub.Browser.isMSIE&&document.documentMode>=9){delete MathJax.OutputJax["HTML-CSS"].config.styles["#MathJax_Tooltip"].filter}if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax["HTML-CSS"].Register("jax/mml")}MathJax.Hub.Register.StartupHook("End Config",[function(b,c){var a=b.Insert({minBrowserVersion:{Firefox:3,Opera:9.52,MSIE:6,Chrome:0.3,Safari:2,Konqueror:4},inlineMathDelimiters:["$","$"],displayMathDelimiters:["$$","$$"],multilineDisplay:true,minBrowserTranslate:function(f){var e=b.getJaxFor(f),k=["[Math]"],j;var h=document.createElement("span",{className:"MathJax_Preview"});if(e.inputJax==="TeX"){if(e.root.Get("displaystyle")){j=a.displayMathDelimiters;k=[j[0]+e.originalText+j[1]];if(a.multilineDisplay){k=k[0].split(/\n/)}}else{j=a.inlineMathDelimiters;k=[j[0]+e.originalText.replace(/^\s+/,"").replace(/\s+$/,"")+j[1]]}}for(var g=0,d=k.length;g<d;g++){h.appendChild(document.createTextNode(k[g]));if(g<d-1){h.appendChild(document.createElement("br"))}}f.parentNode.insertBefore(h,f)}},(b.config["HTML-CSS"]||{}));if(b.Browser.version!=="0.0"&&!b.Browser.versionAtLeast(a.minBrowserVersion[b.Browser]||0)){c.Translate=a.minBrowserTranslate;b.Config({showProcessingMessages:false});MathJax.Message.Set(["MathJaxNotSupported","Your browser does not support MathJax"],null,4000);b.Startup.signal.Post("MathJax not supported")}},MathJax.Hub,MathJax.OutputJax["HTML-CSS"]]);MathJax.OutputJax["HTML-CSS"].loadComplete("config.js"); MathJax.OutputJax["HTML-CSS"]=MathJax.OutputJax({id:"HTML-CSS",version:"2.6.1",directory:MathJax.OutputJax.directory+"/HTML-CSS",extensionDir:MathJax.OutputJax.extensionDir+"/HTML-CSS",autoloadDir:MathJax.OutputJax.directory+"/HTML-CSS/autoload",fontDir:MathJax.OutputJax.directory+"/HTML-CSS/fonts",webfontDir:MathJax.OutputJax.fontDir+"/HTML-CSS",config:{noReflows:true,matchFontHeight:true,scale:100,minScaleAdjust:50,availableFonts:["STIX","TeX"],preferredFont:"TeX",webFont:"TeX",imageFont:"TeX",undefinedFamily:"STIXGeneral,'Arial Unicode MS',serif",mtextFontInherit:false,EqnChunk:(MathJax.Hub.Browser.isMobile?10:50),EqnChunkFactor:1.5,EqnChunkDelay:100,linebreaks:{automatic:false,width:"container"},styles:{".MathJax_Display":{"text-align":"center",margin:"1em 0em"},".MathJax .merror":{"background-color":"#FFFF88",color:"#CC0000",border:"1px solid #CC0000",padding:"1px 3px","font-style":"normal","font-size":"90%"},".MathJax .MJX-monospace":{"font-family":"monospace"},".MathJax .MJX-sans-serif":{"font-family":"sans-serif"},"#MathJax_Tooltip":{"background-color":"InfoBackground",color:"InfoText",border:"1px solid black","box-shadow":"2px 2px 5px #AAAAAA","-webkit-box-shadow":"2px 2px 5px #AAAAAA","-moz-box-shadow":"2px 2px 5px #AAAAAA","-khtml-box-shadow":"2px 2px 5px #AAAAAA",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')",padding:"3px 4px","z-index":401}}}});if(MathJax.Hub.Browser.isMSIE&&document.documentMode>=9){delete MathJax.OutputJax["HTML-CSS"].config.styles["#MathJax_Tooltip"].filter}if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax["HTML-CSS"].Register("jax/mml")}MathJax.Hub.Register.StartupHook("End Config",[function(b,c){var a=b.Insert({minBrowserVersion:{Firefox:3,Opera:9.52,MSIE:6,Chrome:0.3,Safari:2,Konqueror:4},inlineMathDelimiters:["$","$"],displayMathDelimiters:["$$","$$"],multilineDisplay:true,minBrowserTranslate:function(f){var e=b.getJaxFor(f),k=["[Math]"],j;var h=document.createElement("span",{className:"MathJax_Preview"});if(e.inputJax==="TeX"){if(e.root.Get("displaystyle")){j=a.displayMathDelimiters;k=[j[0]+e.originalText+j[1]];if(a.multilineDisplay){k=k[0].split(/\n/)}}else{j=a.inlineMathDelimiters;k=[j[0]+e.originalText.replace(/^\s+/,"").replace(/\s+$/,"")+j[1]]}}for(var g=0,d=k.length;g<d;g++){h.appendChild(document.createTextNode(k[g]));if(g<d-1){h.appendChild(document.createElement("br"))}}f.parentNode.insertBefore(h,f)}},(b.config["HTML-CSS"]||{}));if(b.Browser.version!=="0.0"&&!b.Browser.versionAtLeast(a.minBrowserVersion[b.Browser]||0)){c.Translate=a.minBrowserTranslate;b.Config({showProcessingMessages:false});MathJax.Message.Set(["MathJaxNotSupported","Your browser does not support MathJax"],null,4000);b.Startup.signal.Post("MathJax not supported")}},MathJax.Hub,MathJax.OutputJax["HTML-CSS"]]);MathJax.OutputJax["HTML-CSS"].loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.OutputJax.NativeMML=MathJax.OutputJax({id:"NativeMML",version:"2.6.0",directory:MathJax.OutputJax.directory+"/NativeMML",extensionDir:MathJax.OutputJax.extensionDir+"/NativeMML",config:{matchFontHeight:true,scale:100,minScaleAdjust:50,styles:{"div.MathJax_MathML":{"text-align":"center",margin:".75em 0px"}}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.NativeMML.Register("jax/mml")}MathJax.OutputJax.NativeMML.loadComplete("config.js"); MathJax.OutputJax.NativeMML=MathJax.OutputJax({id:"NativeMML",version:"2.6.1",directory:MathJax.OutputJax.directory+"/NativeMML",extensionDir:MathJax.OutputJax.extensionDir+"/NativeMML",config:{matchFontHeight:true,scale:100,minScaleAdjust:50,styles:{"div.MathJax_MathML":{"text-align":"center",margin:".75em 0px"}}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.NativeMML.Register("jax/mml")}MathJax.OutputJax.NativeMML.loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.OutputJax.PlainSource=MathJax.OutputJax({id:"PlainSource",version:"2.6.0",directory:MathJax.OutputJax.directory+"/PlainSource",extensionDir:MathJax.OutputJax.extensionDir+"/PlainSource",config:{styles:{".MathJax_PlainSource_Display":{"text-align":"center",margin:".75em 0px","white-space":"pre"},".MathJax_PlainSource_Display > span":{display:"inline-block","text-align":"left"}}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.PlainSource.Register("jax/mml")}MathJax.OutputJax.PlainSource.loadComplete("config.js"); MathJax.OutputJax.PlainSource=MathJax.OutputJax({id:"PlainSource",version:"2.6.1",directory:MathJax.OutputJax.directory+"/PlainSource",extensionDir:MathJax.OutputJax.extensionDir+"/PlainSource",config:{styles:{".MathJax_PlainSource_Display":{"text-align":"center",margin:".75em 0px","white-space":"pre"},".MathJax_PlainSource_Display > span":{display:"inline-block","text-align":"left"}}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.PlainSource.Register("jax/mml")}MathJax.OutputJax.PlainSource.loadComplete("config.js");

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
(function(a,b,f,c){var e,g,d;c.Augment({settings:b.config.menuSettings,Config:function(){if(!this.require){this.require=[]}this.SUPER(arguments).Config.call(this);this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js")},Startup:function(){e=MathJax.Extension.MathEvents.Event;g=MathJax.Extension.MathEvents.Touch;d=MathJax.Extension.MathEvents.Hover;this.ContextMenu=e.ContextMenu;this.Mousedown=e.AltContextMenu;this.Mouseover=d.Mouseover;this.Mouseout=d.Mouseout;this.Mousemove=d.Mousemove;return a.Styles(this.config.styles)},preTranslate:function(k){var o=k.jax[this.id],p,l=o.length,q,n,r,j,h;for(p=0;p<l;p++){q=o[p];if(!q.parentNode){continue}n=q.previousSibling;if(n&&String(n.className).match(/^MathJax_PlainSource(_Display)?( MathJax_Processing)?$/)){n.parentNode.removeChild(n)}h=q.MathJax.elementJax;if(!h){continue}h.PlainSource={display:(h.root.Get("display")==="block")};r=j=f.Element("span",{className:"MathJax_PlainSource",id:h.inputID+"-Frame",isMathJax:true,jaxID:this.id,oncontextmenu:e.Menu,onmousedown:e.Mousedown,onmouseover:e.Mouseover,onmouseout:e.Mouseout,onmousemove:e.Mousemove,onclick:e.Click,ondblclick:e.DblClick,onkeydown:e.Keydown,tabIndex:"0"},[["span"]]);if(b.Browser.noContextMenu){r.ontouchstart=g.start;r.ontouchend=g.end}if(h.PlainSource.display){j=f.Element("div",{className:"MathJax_PlainSource_Display"});j.appendChild(r)}q.parentNode.insertBefore(j,q)}},Translate:function(j,n){if(!j.parentNode){return}var i=j.MathJax.elementJax,l=i.root,k=document.getElementById(i.inputID+"-Frame");this.initPlainSource(l,k);var m=i.originalText;if(i.inputJax==="MathML"){if((i.root.data[0].data.length>0)&&(i.root.data[0].data[0].type==="semantics")){var o=i.root.data[0].data[0].data;for(var h=0;h<o.length;h++){if(o[h].attr.encoding==="application/x-tex"){m=i.root.data[0].data[0].data[h].data[0].data[0];break}if(o[h].attr.encoding==="text/x-asciimath"){m=i.root.data[0].data[0].data[h].data[0].data[0]}}}}i.PlainSource.source=m;f.addText(k.firstChild,m)},postTranslate:function(h){},getJaxFromMath:function(h){if(h.parentNode.className==="MathJax_PlainSource_Display"){h=h.parentNode}do{h=h.nextSibling}while(h&&h.nodeName.toLowerCase()!=="script");return b.getJaxFor(h)},Zoom:function(i,q,p,h,n){var k=Math.round(q.parentNode.offsetWidth/2);q.style.whiteSpace="pre";f.addText(q,i.PlainSource.source);var l=p.offsetWidth,r=p.offsetHeight,o=q.offsetWidth,m=q.offsetHeight;var j=-Math.round((m+r)/2)-(i.PlainSource.display?0:k);return{mW:l,mH:r,zW:o,zH:m,Y:j}},initPlainSource:function(i,h){},Remove:function(h){var i=document.getElementById(h.inputID+"-Frame");if(i){if(h.PlainSource.display){i=i.parentNode}i.parentNode.removeChild(i)}delete h.PlainSource}});MathJax.Hub.Register.StartupHook("mml Jax Ready",function(){MathJax.Hub.Register.StartupHook("onLoad",function(){setTimeout(MathJax.Callback(["loadComplete",c,"jax.js"]),0)})});MathJax.Hub.Register.StartupHook("End Cookie",function(){if(b.config.menuSettings.zoom!=="None"){a.Require("[MathJax]/extensions/MathZoom.js")}})})(MathJax.Ajax,MathJax.Hub,MathJax.HTML,MathJax.OutputJax.PlainSource); (function(a,b,f,c){var e,g,d;c.Augment({settings:b.config.menuSettings,Config:function(){if(!this.require){this.require=[]}this.SUPER(arguments).Config.call(this);this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js")},Startup:function(){e=MathJax.Extension.MathEvents.Event;g=MathJax.Extension.MathEvents.Touch;d=MathJax.Extension.MathEvents.Hover;this.ContextMenu=e.ContextMenu;this.Mousedown=e.AltContextMenu;this.Mouseover=d.Mouseover;this.Mouseout=d.Mouseout;this.Mousemove=d.Mousemove;return a.Styles(this.config.styles)},preTranslate:function(k){var o=k.jax[this.id],p,l=o.length,q,n,r,j,h;for(p=0;p<l;p++){q=o[p];if(!q.parentNode){continue}n=q.previousSibling;if(n&&String(n.className).match(/^MathJax_PlainSource(_Display)?( MathJax_Processing)?$/)){n.parentNode.removeChild(n)}h=q.MathJax.elementJax;if(!h){continue}h.PlainSource={display:(h.root.Get("display")==="block")};r=j=f.Element("span",{className:"MathJax_PlainSource",id:h.inputID+"-Frame",isMathJax:true,jaxID:this.id,oncontextmenu:e.Menu,onmousedown:e.Mousedown,onmouseover:e.Mouseover,onmouseout:e.Mouseout,onmousemove:e.Mousemove,onclick:e.Click,ondblclick:e.DblClick,onkeydown:e.Keydown,tabIndex:b.getTabOrder(h)},[["span"]]);if(b.Browser.noContextMenu){r.ontouchstart=g.start;r.ontouchend=g.end}if(h.PlainSource.display){j=f.Element("div",{className:"MathJax_PlainSource_Display"});j.appendChild(r)}q.parentNode.insertBefore(j,q)}},Translate:function(j,n){if(!j.parentNode){return}var i=j.MathJax.elementJax,l=i.root,k=document.getElementById(i.inputID+"-Frame");this.initPlainSource(l,k);var m=i.originalText;if(i.inputJax==="MathML"){if((i.root.data[0].data.length>0)&&(i.root.data[0].data[0].type==="semantics")){var o=i.root.data[0].data[0].data;for(var h=0;h<o.length;h++){if(o[h].attr.encoding==="application/x-tex"){m=i.root.data[0].data[0].data[h].data[0].data[0];break}if(o[h].attr.encoding==="text/x-asciimath"){m=i.root.data[0].data[0].data[h].data[0].data[0]}}}}i.PlainSource.source=m;f.addText(k.firstChild,m)},postTranslate:function(h){},getJaxFromMath:function(h){if(h.parentNode.className==="MathJax_PlainSource_Display"){h=h.parentNode}do{h=h.nextSibling}while(h&&h.nodeName.toLowerCase()!=="script");return b.getJaxFor(h)},Zoom:function(i,q,p,h,n){var k=Math.round(q.parentNode.offsetWidth/2);q.style.whiteSpace="pre";f.addText(q,i.PlainSource.source);var l=p.offsetWidth,r=p.offsetHeight,o=q.offsetWidth,m=q.offsetHeight;var j=-Math.round((m+r)/2)-(i.PlainSource.display?0:k);return{mW:l,mH:r,zW:o,zH:m,Y:j}},initPlainSource:function(i,h){},Remove:function(h){var i=document.getElementById(h.inputID+"-Frame");if(i){if(h.PlainSource.display){i=i.parentNode}i.parentNode.removeChild(i)}delete h.PlainSource}});MathJax.Hub.Register.StartupHook("mml Jax Ready",function(){MathJax.Hub.Register.StartupHook("onLoad",function(){setTimeout(MathJax.Callback(["loadComplete",c,"jax.js"]),0)})});MathJax.Hub.Register.StartupHook("End Cookie",function(){if(b.config.menuSettings.zoom!=="None"){a.Require("[MathJax]/extensions/MathZoom.js")}})})(MathJax.Ajax,MathJax.Hub,MathJax.HTML,MathJax.OutputJax.PlainSource);

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.OutputJax.PreviewHTML=MathJax.OutputJax({id:"PreviewHTML",version:"2.6.0",directory:MathJax.OutputJax.directory+"/PreviewHTML",extensionDir:MathJax.OutputJax.extensionDir+"/PreviewHTML",noFastPreview:true,config:{scale:100,minScaleAdjust:50,mtextFontInherit:false,linebreaks:{automatic:false,width:"container"}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.PreviewHTML.Register("jax/mml")}MathJax.OutputJax.PreviewHTML.loadComplete("config.js"); MathJax.OutputJax.PreviewHTML=MathJax.OutputJax({id:"PreviewHTML",version:"2.6.1",directory:MathJax.OutputJax.directory+"/PreviewHTML",extensionDir:MathJax.OutputJax.extensionDir+"/PreviewHTML",noFastPreview:true,config:{scale:100,minScaleAdjust:50,mtextFontInherit:false,linebreaks:{automatic:false,width:"container"}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.PreviewHTML.Register("jax/mml")}MathJax.OutputJax.PreviewHTML.loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -16,4 +16,4 @@
* limitations under the License. * limitations under the License.
*/ */
MathJax.OutputJax.SVG=MathJax.OutputJax({id:"SVG",version:"2.6.0",directory:MathJax.OutputJax.directory+"/SVG",extensionDir:MathJax.OutputJax.extensionDir+"/SVG",autoloadDir:MathJax.OutputJax.directory+"/SVG/autoload",fontDir:MathJax.OutputJax.directory+"/SVG/fonts",config:{scale:100,minScaleAdjust:50,font:"TeX",blacker:1,mtextFontInherit:false,undefinedFamily:"STIXGeneral,'Arial Unicode MS',serif",addMMLclasses:false,useFontCache:true,useGlobalCache:true,EqnChunk:(MathJax.Hub.Browser.isMobile?10:50),EqnChunkFactor:1.5,EqnChunkDelay:100,linebreaks:{automatic:false,width:"container"},merrorStyle:{fontSize:"90%",color:"#C00",background:"#FF8",border:"1px solid #C00",padding:"3px"},styles:{".MathJax_SVG_Display":{"text-align":"center",margin:"1em 0em"},".MathJax_SVG .MJX-monospace":{"font-family":"monospace"},".MathJax_SVG .MJX-sans-serif":{"font-family":"sans-serif"},"#MathJax_SVG_Tooltip":{"background-color":"InfoBackground",color:"InfoText",border:"1px solid black","box-shadow":"2px 2px 5px #AAAAAA","-webkit-box-shadow":"2px 2px 5px #AAAAAA","-moz-box-shadow":"2px 2px 5px #AAAAAA","-khtml-box-shadow":"2px 2px 5px #AAAAAA",padding:"3px 4px","z-index":401}}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.SVG.Register("jax/mml")}MathJax.OutputJax.SVG.loadComplete("config.js"); MathJax.OutputJax.SVG=MathJax.OutputJax({id:"SVG",version:"2.6.1",directory:MathJax.OutputJax.directory+"/SVG",extensionDir:MathJax.OutputJax.extensionDir+"/SVG",autoloadDir:MathJax.OutputJax.directory+"/SVG/autoload",fontDir:MathJax.OutputJax.directory+"/SVG/fonts",config:{scale:100,minScaleAdjust:50,font:"TeX",blacker:1,mtextFontInherit:false,undefinedFamily:"STIXGeneral,'Arial Unicode MS',serif",addMMLclasses:false,useFontCache:true,useGlobalCache:true,EqnChunk:(MathJax.Hub.Browser.isMobile?10:50),EqnChunkFactor:1.5,EqnChunkDelay:100,linebreaks:{automatic:false,width:"container"},merrorStyle:{fontSize:"90%",color:"#C00",background:"#FF8",border:"1px solid #C00",padding:"3px"},styles:{".MathJax_SVG_Display":{"text-align":"center",margin:"1em 0em"},".MathJax_SVG .MJX-monospace":{"font-family":"monospace"},".MathJax_SVG .MJX-sans-serif":{"font-family":"sans-serif"},"#MathJax_SVG_Tooltip":{"background-color":"InfoBackground",color:"InfoText",border:"1px solid black","box-shadow":"2px 2px 5px #AAAAAA","-webkit-box-shadow":"2px 2px 5px #AAAAAA","-moz-box-shadow":"2px 2px 5px #AAAAAA","-khtml-box-shadow":"2px 2px 5px #AAAAAA",padding:"3px 4px","z-index":401}}}});if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax.SVG.Register("jax/mml")}MathJax.OutputJax.SVG.loadComplete("config.js");

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "mathjax", "name": "mathjax",
"version": "2.6.0", "version": "2.6.1",
"description": "Beautiful math in all browsers. MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all browsers.", "description": "Beautiful math in all browsers. MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all browsers.",
"keywords": [ "keywords": [
"math", "math",
@ -23,5 +23,8 @@
"type": "git", "type": "git",
"url": "git://github.com/mathjax/MathJax.git" "url": "git://github.com/mathjax/MathJax.git"
}, },
"main": "./MathJax.js" "main": "./MathJax.js",
"scripts": {
"test": "echo 'No tests here!'"
}
} }

View File

@ -45,9 +45,9 @@ if (window.MathJax) {window.MathJax = {AuthorConfig: window.MathJax}}
// MathJax.isPacked = true; // This line is uncommented by the packer. // MathJax.isPacked = true; // This line is uncommented by the packer.
MathJax.version = "2.6.0"; MathJax.version = "2.6.1";
MathJax.fileversion = "2.6.0"; MathJax.fileversion = "2.6.1";
MathJax.cdnVersion = "2.6.0"; // specifies a revision to break caching MathJax.cdnVersion = "2.6.1"; // specifies a revision to break caching
MathJax.cdnFileVersions = {}; // can be used to specify revisions for individual files MathJax.cdnFileVersions = {}; // can be used to specify revisions for individual files
/**********************************************************/ /**********************************************************/
@ -1889,13 +1889,16 @@ MathJax.Hub = {
Shift: false, // require Shift? Shift: false, // require Shift?
discoverable: false, // make math menu discoverable on hover? discoverable: false, // make math menu discoverable on hover?
zscale: "200%", // the scaling factor for MathZoom zscale: "200%", // the scaling factor for MathZoom
renderer: "", // set when Jax are loaded renderer: null, // set when Jax are loaded
font: "Auto", // what font HTML-CSS should use font: "Auto", // what font HTML-CSS should use
context: "MathJax", // or "Browser" for pass-through to browser menu context: "MathJax", // or "Browser" for pass-through to browser menu
locale: "en", // the language to use for messages locale: null, // the language to use for messages
mpContext: false, // true means pass menu events to MathPlayer in IE mpContext: false, // true means pass menu events to MathPlayer in IE
mpMouse: false, // true means pass mouse events to MathPlayer in IE mpMouse: false, // true means pass mouse events to MathPlayer in IE
texHints: true, // include class names for TeXAtom elements texHints: true, // include class names for TeXAtom elements
FastPreview: null, // use PreviewHTML output as preview?
assistiveMML: null, // include hidden MathML for screen readers?
inTabOrder: true, // set to false if math elements should be included in the tabindex
semantics: false // add semantics tag with original form in MathML output semantics: false // add semantics tag with original form in MathML output
}, },
@ -2126,6 +2129,7 @@ MathJax.Hub = {
if (script.MathJax.state !== STATE.PENDING) {this.scriptAction[action](script)} if (script.MathJax.state !== STATE.PENDING) {this.scriptAction[action](script)}
} }
if (!script.MathJax) {script.MathJax = {state: STATE.PENDING}} if (!script.MathJax) {script.MathJax = {state: STATE.PENDING}}
if (script.MathJax.error) delete script.MathJax.error;
if (script.MathJax.state !== STATE.PROCESSED) {state.scripts.push(script)} if (script.MathJax.state !== STATE.PROCESSED) {state.scripts.push(script)}
} }
} }
@ -2349,7 +2353,8 @@ MathJax.Hub = {
if (err.line||err.lineNumber) message += "\n"+LOCALIZE("ErrorLine","line: %1",err.line||err.lineNumber); if (err.line||err.lineNumber) message += "\n"+LOCALIZE("ErrorLine","line: %1",err.line||err.lineNumber);
message += "\n\n"+LOCALIZE("ErrorTips","Debugging tips: use %1, inspect %2 in the browser console","'unpacked/MathJax.js'","'MathJax.Hub.lastError'"); message += "\n\n"+LOCALIZE("ErrorTips","Debugging tips: use %1, inspect %2 in the browser console","'unpacked/MathJax.js'","'MathJax.Hub.lastError'");
script.MathJax.error = MathJax.OutputJax.Error.Jax(message,script); script.MathJax.error = MathJax.OutputJax.Error.Jax(message,script);
if (script.MathJax.elementJax)
script.MathJax.error.inputID = script.MathJax.elementJax.inputID;
// //
// Create the [Math Processing Error] span // Create the [Math Processing Error] span
// //
@ -2358,28 +2363,23 @@ MathJax.Hub = {
var error = MathJax.HTML.Element("span", { var error = MathJax.HTML.Element("span", {
className:"MathJax_Error", jaxID:"Error", isMathJax:true, className:"MathJax_Error", jaxID:"Error", isMathJax:true,
id: script.MathJax.error.inputID+"-Frame" id: script.MathJax.error.inputID+"-Frame"
},errorText); },[["span",null,errorText]]);
// //
// Attach the menu events // Attach the menu events
// //
if (MathJax.Extension.MathEvents) { MathJax.Ajax.Require("[MathJax]/extensions/MathEvents.js",function () {
var EVENT = MathJax.Extension.MathEvents.Event; var EVENT = MathJax.Extension.MathEvents.Event,
HUB = MathJax.Hub;
error.oncontextmenu = EVENT.Menu; error.oncontextmenu = EVENT.Menu;
error.onmousedown = EVENT.Mousedown; error.onmousedown = EVENT.Mousedown;
error.onkeydown = EVENT.Keydown; error.onkeydown = EVENT.Keydown;
error.tabIndex = 0; error.tabIndex = HUB.getTabOrder(HUB.getJaxFor(script));
} else {
MathJax.Ajax.Require("[MathJax]/extensions/MathEvents.js",function () {
var EVENT = MathJax.Extension.MathEvents.Event;
error.oncontextmenu = EVENT.Menu;
error.onmousedown = EVENT.Mousedown;
error.keydown = EVENT.Keydown;
error.tabIndex = 0;
}); });
}
// //
// Insert the error into the page and remove any preview // Insert the error into the page and remove any preview
// //
var node = document.getElementById(error.id);
if (node) node.parentNode.removeChild(node);
script.parentNode.insertBefore(error,script); script.parentNode.insertBefore(error,script);
if (script.MathJax.preview) {script.MathJax.preview.innerHTML = ""} if (script.MathJax.preview) {script.MathJax.preview.innerHTML = ""}
// //
@ -2462,6 +2462,10 @@ MathJax.Hub = {
return dst; return dst;
}, },
getTabOrder: function(script) {
return this.config.menuSettings.inTabOrder ? 0 : -1;
},
// Old browsers (e.g. Internet Explorer <= 8) do not support trim(). // Old browsers (e.g. Internet Explorer <= 8) do not support trim().
SplitList: ("trim" in String.prototype ? SplitList: ("trim" in String.prototype ?
function (list) {return list.trim().split(/\s+/)} : function (list) {return list.trim().split(/\s+/)} :

View File

@ -240,12 +240,18 @@ MathJax.Hub.Config({
ALT: false, // require Alt or Option? ALT: false, // require Alt or Option?
CMD: false, // require CMD? CMD: false, // require CMD?
Shift: false, // require Shift? Shift: false, // require Shift?
discoverable: false, // make math menu discoverable on hover?
zscale: "200%", // the scaling factor for MathZoom zscale: "200%", // the scaling factor for MathZoom
renderer: null, // set when Jax are loaded
font: "Auto", // what font HTML-CSS should use font: "Auto", // what font HTML-CSS should use
context: "MathJax", // or "Browser" for pass-through to browser menu context: "MathJax", // or "Browser" for pass-through to browser menu
locale: null, // the language to use for messages
mpContext: false, // true means pass menu events to MathPlayer in IE mpContext: false, // true means pass menu events to MathPlayer in IE
mpMouse: false, // true means pass mouse events to MathPlayer in IE mpMouse: false, // true means pass mouse events to MathPlayer in IE
texHints: true, // include class names for TeXAtom elements texHints: true, // include class names for TeXAtom elements
FastPreview: null, // use PreviewHTML output as preview?
assistiveMML: null, // include hidden MathML for screen readers?
inTabOrder: true, // set to true if math elements should be included in the tabindex
semantics: false // add semantics tag with original form in MathML output semantics: false // add semantics tag with original form in MathML output
}, },

View File

@ -29,9 +29,9 @@
var SETTINGS = HUB.config.menuSettings; var SETTINGS = HUB.config.menuSettings;
var AssistiveMML = MathJax.Extension["AssistiveMML"] = { var AssistiveMML = MathJax.Extension["AssistiveMML"] = {
version: "2.6.0", version: "2.6.1",
config: { config: HUB.CombineConfig("AssistiveMML",{
disabled: false, disabled: false,
styles: { styles: {
".MJX_Assistive_MathML": { ".MJX_Assistive_MathML": {
@ -44,13 +44,22 @@
height: "1px!important", height: "1px!important",
width: "1px!important", width: "1px!important",
overflow: "hidden!important", overflow: "hidden!important",
display:"block!important" display:"block!important",
//
// Don't allow the assistive MathML become part of the selection
//
"-webkit-touch-callout": "none",
"-webkit-user-select": "none",
"-khtml-user-select": "none",
"-moz-user-select": "none",
"-ms-user-select": "none",
"user-select": "none"
}, },
".MJX_Assistive_MathML.MJX_Assistive_MathML_Block": { ".MJX_Assistive_MathML.MJX_Assistive_MathML_Block": {
width: "100%!important" width: "100%!important"
} }
} }
}, }),
Config: function () { Config: function () {
if (!this.config.disabled && SETTINGS.assistiveMML == null) if (!this.config.disabled && SETTINGS.assistiveMML == null)
@ -115,7 +124,7 @@
} }
frame.setAttribute("data-mathml",mml); frame.setAttribute("data-mathml",mml);
span = HTML.addElement(frame,"span",{ span = HTML.addElement(frame,"span",{
isMathJax: true, isMathJax: true, unselectable: "on",
className: "MJX_Assistive_MathML" className: "MJX_Assistive_MathML"
+ (jax.root.Get("display") === "block" ? " MJX_Assistive_MathML_Block" : "") + (jax.root.Get("display") === "block" ? " MJX_Assistive_MathML_Block" : "")
}); });

View File

@ -27,7 +27,7 @@
*/ */
(function (HUB,HTML,AJAX,CALLBACK,OUTPUT) { (function (HUB,HTML,AJAX,CALLBACK,OUTPUT) {
var VERSION = "2.6.0"; var VERSION = "2.6.1";
var SIGNAL = MathJax.Callback.Signal("menu"); // signal for menu events var SIGNAL = MathJax.Callback.Signal("menu"); // signal for menu events
@ -544,18 +544,12 @@
MENU.FocusNode(menu); MENU.FocusNode(menu);
}, },
Activate: function(event, menu) { Activate: function(event, menu) {
var jaxs = MENU.AllNodes(); MENU.UnsetTabIndex();
for (var j = 0, jax; jax = jaxs[j]; j++) {
jax.tabIndex = -1;
}
MENU.posted = true; MENU.posted = true;
}, },
Unfocus: function() { Unfocus: function() {
MENU.ActiveNode().tabIndex = -1; MENU.ActiveNode().tabIndex = -1;
var jaxs = MENU.AllNodes(); MENU.SetTabIndex();
for (var j = 0, jax; jax = jaxs[j]; j++) {
jax.tabIndex = 0;
}
MENU.FocusNode(MENU.CurrentNode()); MENU.FocusNode(MENU.CurrentNode());
MENU.posted = false; MENU.posted = false;
}, },
@ -577,6 +571,26 @@
Left: function(event, menu) { Left: function(event, menu) {
MENU.MoveHorizontal(event, menu, function(x) {return x - 1;}); MENU.MoveHorizontal(event, menu, function(x) {return x - 1;});
}, },
UnsetTabIndex: function () {
var jaxs = MENU.AllNodes();
for (var j = 0, jax; jax = jaxs[j]; j++) {
if (jax.tabIndex > 0) {
jax.oldTabIndex = jax.tabIndex;
}
jax.tabIndex = -1;
}
},
SetTabIndex: function () {
var jaxs = MENU.AllNodes();
for (var j = 0, jax; jax = jaxs[j]; j++) {
if (jax.oldTabIndex !== undefined) {
jax.tabIndex = jax.oldTabIndex
delete jax.oldTabIndex;
} else {
jax.tabIndex = HUB.getTabOrder(jax);
}
}
},
//TODO: Move to utility class. //TODO: Move to utility class.
// Computes a mod n. // Computes a mod n.
@ -1328,6 +1342,9 @@
} }
}; };
/*
* Toggle assistive MML settings
*/
MENU.AssistiveMML = function (item,restart) { MENU.AssistiveMML = function (item,restart) {
var AMML = MathJax.Extension.AssistiveMML; var AMML = MathJax.Extension.AssistiveMML;
if (!AMML) { if (!AMML) {
@ -1526,15 +1543,16 @@
), ),
ITEM.RULE(), ITEM.RULE(),
ITEM.SUBMENU(["Renderer","Math Renderer"], {hidden:!CONFIG.showRenderer}, ITEM.SUBMENU(["Renderer","Math Renderer"], {hidden:!CONFIG.showRenderer},
ITEM.RADIO("HTML-CSS", "renderer", {action: MENU.Renderer}), ITEM.RADIO(["HTML-CSS","HTML-CSS"], "renderer", {action: MENU.Renderer}),
ITEM.RADIO("Common HTML","renderer", {action: MENU.Renderer, value:"CommonHTML"}), ITEM.RADIO(["CommonHTML","Common HTML"], "renderer", {action: MENU.Renderer, value:"CommonHTML"}),
ITEM.RADIO("Fast HTML", "renderer", {action: MENU.Renderer, value:"PreviewHTML"}), ITEM.RADIO(["PreviewHTML","Preview HTML"],"renderer", {action: MENU.Renderer, value:"PreviewHTML"}),
ITEM.RADIO("MathML", "renderer", {action: MENU.Renderer, value:"NativeMML"}), ITEM.RADIO(["MathML","MathML"], "renderer", {action: MENU.Renderer, value:"NativeMML"}),
ITEM.RADIO("SVG", "renderer", {action: MENU.Renderer}), ITEM.RADIO(["SVG","SVG"], "renderer", {action: MENU.Renderer}),
ITEM.RADIO("PlainSource","renderer", {action: MENU.Renderer, value:"PlainSource"}), ITEM.RADIO(["PlainSource","Plain Source"],"renderer", {action: MENU.Renderer, value:"PlainSource"}),
ITEM.RULE(), ITEM.RULE(),
ITEM.CHECKBOX("Fast Preview", "FastPreview"), ITEM.CHECKBOX(["FastPreview","Fast Preview"], "FastPreview"),
ITEM.CHECKBOX("Assistive MathML", "assistiveMML", {action:MENU.AssistiveMML}) ITEM.CHECKBOX(["AssistiveMML","Assistive MathML"], "assistiveMML", {action:MENU.AssistiveMML}),
ITEM.CHECKBOX(["InTabOrder","Include in Tab Order"], "inTabOrder")
), ),
ITEM.SUBMENU("MathPlayer", {hidden:!HUB.Browser.isMSIE || !CONFIG.showMathPlayer, ITEM.SUBMENU("MathPlayer", {hidden:!HUB.Browser.isMSIE || !CONFIG.showMathPlayer,
disabled:!HUB.Browser.hasMathPlayer}, disabled:!HUB.Browser.hasMathPlayer},
@ -1561,7 +1579,7 @@
ITEM.RADIO(["NeoEulerWeb","Neo Euler (web)"], "font", {action: MENU.Font}) ITEM.RADIO(["NeoEulerWeb","Neo Euler (web)"], "font", {action: MENU.Font})
), ),
ITEM.SUBMENU(["ContextMenu","Contextual Menu"], {hidden:!CONFIG.showContext}, ITEM.SUBMENU(["ContextMenu","Contextual Menu"], {hidden:!CONFIG.showContext},
ITEM.RADIO("MathJax", "context"), ITEM.RADIO(["MathJax","MathJax"], "context"),
ITEM.RADIO(["Browser","Browser"], "context") ITEM.RADIO(["Browser","Browser"], "context")
), ),
ITEM.COMMAND(["Scale","Scale All Math ..."],MENU.Scale), ITEM.COMMAND(["Scale","Scale All Math ..."],MENU.Scale),

View File

@ -25,7 +25,7 @@
*/ */
MathJax.Extension["TeX/AMSmath"] = { MathJax.Extension["TeX/AMSmath"] = {
version: "2.6.0", version: "2.6.1",
number: 0, // current equation number number: 0, // current equation number
startNumber: 0, // current starting equation number (for when equation is restarted) startNumber: 0, // current starting equation number (for when equation is restarted)
@ -94,8 +94,8 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
projlim: ['NamedOp','proj&thinsp;lim'], projlim: ['NamedOp','proj&thinsp;lim'],
varliminf: ['Macro','\\mathop{\\underline{\\mmlToken{mi}{lim}}}'], varliminf: ['Macro','\\mathop{\\underline{\\mmlToken{mi}{lim}}}'],
varlimsup: ['Macro','\\mathop{\\overline{\\mmlToken{mi}{lim}}}'], varlimsup: ['Macro','\\mathop{\\overline{\\mmlToken{mi}{lim}}}'],
varinjlim: ['Macro','\\mathop{\\underrightarrow{\\mmlToken{mi}{lim}\\Rule{-1pt}{0pt}{1pt}}\\Rule{0pt}{0pt}{.45em}}'], varinjlim: ['Macro','\\mathop{\\underrightarrow{\\mmlToken{mi}{lim}}}'],
varprojlim: ['Macro','\\mathop{\\underleftarrow{\\mmlToken{mi}{lim}\\Rule{-1pt}{0pt}{1pt}}\\Rule{0pt}{0pt}{.45em}}'], varprojlim: ['Macro','\\mathop{\\underleftarrow{\\mmlToken{mi}{lim}}}'],
DeclareMathOperator: 'HandleDeclareOp', DeclareMathOperator: 'HandleDeclareOp',
operatorname: 'HandleOperatorName', operatorname: 'HandleOperatorName',

View File

@ -26,7 +26,7 @@
*/ */
MathJax.Hub.Register.LoadHook("[MathJax]/jax/element/mml/jax.js",function () { MathJax.Hub.Register.LoadHook("[MathJax]/jax/element/mml/jax.js",function () {
var VERSION = "2.6.0"; var VERSION = "2.6.1";
var MML = MathJax.ElementJax.mml, var MML = MathJax.ElementJax.mml,
SETTINGS = MathJax.Hub.config.menuSettings; SETTINGS = MathJax.Hub.config.menuSettings;
@ -78,7 +78,10 @@ MathJax.Hub.Register.LoadHook("[MathJax]/jax/element/mml/jax.js",function () {
var CLASS = []; if (this["class"]) {CLASS.push(this["class"])} var CLASS = []; if (this["class"]) {CLASS.push(this["class"])}
if (this.isa(MML.TeXAtom) && SETTINGS.texHints) { if (this.isa(MML.TeXAtom) && SETTINGS.texHints) {
var TEXCLASS = ["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER","VCENTER"][this.texClass]; var TEXCLASS = ["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER","VCENTER"][this.texClass];
if (TEXCLASS) {CLASS.push("MJX-TeXAtom-"+TEXCLASS)} if (TEXCLASS) {
CLASS.push("MJX-TeXAtom-"+TEXCLASS)
if (TEXCLASS === "OP" && !this.movablelimits) CLASS.push("MJX-fixedlimits");
}
} }
if (this.mathvariant && this.toMathMLvariants[this.mathvariant]) if (this.mathvariant && this.toMathMLvariants[this.mathvariant])
{CLASS.push("MJX"+this.mathvariant)} {CLASS.push("MJX"+this.mathvariant)}
@ -186,8 +189,15 @@ MathJax.Hub.Register.LoadHook("[MathJax]/jax/element/mml/jax.js",function () {
MML.munderover.Augment({ MML.munderover.Augment({
toMathML: function (space) { toMathML: function (space) {
var tag = this.type; var tag = this.type;
var base = this.data[this.base];
if (base && base.isa(MML.TeXAtom) && base.movablelimits && !base.Get("displaystyle")) {
type = "msubsup";
if (this.data[this.under] == null) {tag = "msup"}
if (this.data[this.over] == null) {tag = "msub"}
} else {
if (this.data[this.under] == null) {tag = "mover"} if (this.data[this.under] == null) {tag = "mover"}
if (this.data[this.over] == null) {tag = "munder"} if (this.data[this.over] == null) {tag = "munder"}
}
var attr = this.toMathMLattributes(); var attr = this.toMathMLattributes();
delete this.data[0].inferred; delete this.data[0].inferred;
var data = []; var data = [];

View File

@ -27,7 +27,7 @@
MathJax.InputJax.MathML = MathJax.InputJax({ MathJax.InputJax.MathML = MathJax.InputJax({
id: "MathML", id: "MathML",
version: "2.6.0", version: "2.6.1",
directory: MathJax.InputJax.directory + "/MathML", directory: MathJax.InputJax.directory + "/MathML",
extensionDir: MathJax.InputJax.extensionDir + "/MathML", extensionDir: MathJax.InputJax.extensionDir + "/MathML",
entityDir: MathJax.InputJax.directory + "/MathML/entities", entityDir: MathJax.InputJax.directory + "/MathML/entities",

View File

@ -76,7 +76,7 @@
var mml, type = node.nodeName.toLowerCase().replace(/^[a-z]+:/,""); var mml, type = node.nodeName.toLowerCase().replace(/^[a-z]+:/,"");
var match = (CLASS.match(/(^| )MJX-TeXAtom-([^ ]*)/)); var match = (CLASS.match(/(^| )MJX-TeXAtom-([^ ]*)/));
if (match) { if (match) {
mml = this.TeXAtom(match[2]); mml = this.TeXAtom(match[2],match[2] === "OP" && !CLASS.match(/MJX-fixedlimits/));
} else if (!(MML[type] && MML[type].isa && MML[type].isa(MML.mbase))) { } else if (!(MML[type] && MML[type].isa && MML[type].isa(MML.mbase))) {
MathJax.Hub.signal.Post(["MathML Jax - unknown node type",type]); MathJax.Hub.signal.Post(["MathML Jax - unknown node type",type]);
return MML.Error(_("UnknownNodeType","Unknown node type: %1",type)); return MML.Error(_("UnknownNodeType","Unknown node type: %1",type));
@ -88,9 +88,9 @@
if (MATHML.config.useMathMLspacing) {mml.useMMLspacing = 0x08} if (MATHML.config.useMathMLspacing) {mml.useMMLspacing = 0x08}
return mml; return mml;
}, },
TeXAtom: function (mclass) { TeXAtom: function (mclass,movablelimits) {
var mml = MML.TeXAtom().With({texClass:MML.TEXCLASS[mclass]}); var mml = MML.TeXAtom().With({texClass:MML.TEXCLASS[mclass]});
if (mml.texClass === MML.TEXCLASS.OP) {mml.movesupsub = mml.movablelimits = true} if (movablelimits) {mml.movesupsub = mml.movablelimits = true}
return mml; return mml;
}, },
CheckClass: function (mml,CLASS) { CheckClass: function (mml,CLASS) {

View File

@ -27,7 +27,7 @@
MathJax.InputJax.TeX = MathJax.InputJax({ MathJax.InputJax.TeX = MathJax.InputJax({
id: "TeX", id: "TeX",
version: "2.6.0", version: "2.6.1",
directory: MathJax.InputJax.directory + "/TeX", directory: MathJax.InputJax.directory + "/TeX",
extensionDir: MathJax.InputJax.extensionDir + "/TeX", extensionDir: MathJax.InputJax.extensionDir + "/TeX",

View File

@ -1264,6 +1264,8 @@
{if (mo.defaults.hasOwnProperty(id) && mi[id] != null) {mo[id] = mi[id]}} {if (mo.defaults.hasOwnProperty(id) && mi[id] != null) {mo[id] = mi[id]}}
for (id in MML.copyAttributes) for (id in MML.copyAttributes)
{if (MML.copyAttributes.hasOwnProperty(id) && mi[id] != null) {mo[id] = mi[id]}} {if (MML.copyAttributes.hasOwnProperty(id) && mi[id] != null) {mo[id] = mi[id]}}
mo.lspace = mo.rspace = "0"; // prevent mo from having space in NativeMML
mo.useMMLspacing &= ~(mo.SPACE_ATTR.lspace | mo.SPACE_ATTR.rspace); // don't count these explicit settings
return mo; return mo;
}, },
@ -1367,6 +1369,7 @@
} }
op.movesupsub = (limits ? true : false); op.movesupsub = (limits ? true : false);
op.Core().movablelimits = false; op.Core().movablelimits = false;
if (op.movablelimits) op.movablelimits = false;
}, },
Over: function (name,open,close) { Over: function (name,open,close) {
@ -1452,10 +1455,12 @@
Overset: function (name) { Overset: function (name) {
var top = this.ParseArg(name), base = this.ParseArg(name); var top = this.ParseArg(name), base = this.ParseArg(name);
if (base.movablelimits) base.movablelimits = false;
this.Push(MML.mover(base,top)); this.Push(MML.mover(base,top));
}, },
Underset: function (name) { Underset: function (name) {
var bot = this.ParseArg(name), base = this.ParseArg(name); var bot = this.ParseArg(name), base = this.ParseArg(name);
if (base.movablelimits) base.movablelimits = false;
this.Push(MML.munder(base,bot)); this.Push(MML.munder(base,bot));
}, },
@ -2021,7 +2026,6 @@
/* /*
* Break up a string into text and math blocks * Break up a string into text and math blocks
* @@@ FIXME: pass environment to TEX.Parse? @@@
*/ */
InternalMath: function (text,level) { InternalMath: function (text,level) {
var def = (this.stack.env.font ? {mathvariant: this.stack.env.font} : {}); var def = (this.stack.env.font ? {mathvariant: this.stack.env.font} : {});
@ -2031,7 +2035,7 @@
c = text.charAt(i++); c = text.charAt(i++);
if (c === '$') { if (c === '$') {
if (match === '$' && braces === 0) { if (match === '$' && braces === 0) {
mml.push(MML.TeXAtom(TEX.Parse(text.slice(k,i-1),{}).mml().With(def))); mml.push(MML.TeXAtom(TEX.Parse(text.slice(k,i-1),{}).mml()));
match = ''; k = i; match = ''; k = i;
} else if (match === '') { } else if (match === '') {
if (k < i-1) mml.push(this.InternalText(text.slice(k,i-1),def)); if (k < i-1) mml.push(this.InternalText(text.slice(k,i-1),def));
@ -2057,7 +2061,7 @@
if (k < i-2) mml.push(this.InternalText(text.slice(k,i-2),def)); if (k < i-2) mml.push(this.InternalText(text.slice(k,i-2),def));
match = ')'; k = i; match = ')'; k = i;
} else if (c === ')' && match === ')' && braces === 0) { } else if (c === ')' && match === ')' && braces === 0) {
mml.push(MML.TeXAtom(TEX.Parse(text.slice(k,i-2),{}).mml().With(def))); mml.push(MML.TeXAtom(TEX.Parse(text.slice(k,i-2),{}).mml()));
match = ''; k = i; match = ''; k = i;
} else if (c.match(/[${}\\]/) && match === '') { } else if (c.match(/[${}\\]/) && match === '') {
i--; text = text.substr(0,i-1) + text.substr(i); // remove \ from \$, \{, \}, or \\ i--; text = text.substr(0,i-1) + text.substr(i); // remove \ from \$, \{, \}, or \\

View File

@ -27,7 +27,7 @@
MathJax.OutputJax.CommonHTML = MathJax.OutputJax({ MathJax.OutputJax.CommonHTML = MathJax.OutputJax({
id: "CommonHTML", id: "CommonHTML",
version: "2.6.0", version: "2.6.1",
directory: MathJax.OutputJax.directory + "/CommonHTML", directory: MathJax.OutputJax.directory + "/CommonHTML",
extensionDir: MathJax.OutputJax.extensionDir + "/CommonHTML", extensionDir: MathJax.OutputJax.extensionDir + "/CommonHTML",
autoloadDir: MathJax.OutputJax.directory + "/CommonHTML/autoload", autoloadDir: MathJax.OutputJax.directory + "/CommonHTML/autoload",

View File

@ -81,7 +81,8 @@
".mjx-numerator": {display:"block", "text-align":"center"}, ".mjx-numerator": {display:"block", "text-align":"center"},
".mjx-denominator": {display:"block", "text-align":"center"}, ".mjx-denominator": {display:"block", "text-align":"center"},
".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, ".MJXc-stacked": {height:0, position:"relative"},
".MJXc-stacked > *": {position: "absolute"},
".MJXc-bevelled > *": {display:"inline-block"}, ".MJXc-bevelled > *": {display:"inline-block"},
".mjx-stack": {display:"inline-block"}, ".mjx-stack": {display:"inline-block"},
@ -128,8 +129,9 @@
".mjx-row": {display:"table-row"}, ".mjx-row": {display:"table-row"},
".mjx-cell": {display:"table-cell"}, ".mjx-cell": {display:"table-cell"},
".mjx-table": {display:"table", width:"100%"}, ".mjx-table": {display:"table", width:"100%"},
".mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, ".mjx-line": {display:"block", height:0},
".mjx-strut": {width:0, "padding-top":STRUTHEIGHT+"em"}, ".mjx-strut": {width:0, "padding-top":STRUTHEIGHT+"em"},
".mjx-vsize": {width:0},
".MJXc-space1": {"margin-left":".167em"}, ".MJXc-space1": {"margin-left":".167em"},
".MJXc-space2": {"margin-left":".222em"}, ".MJXc-space2": {"margin-left":".222em"},
@ -334,21 +336,33 @@
ucMatch: HTML.ucMatch, ucMatch: HTML.ucMatch,
setScript: HTML.setScript, setScript: HTML.setScript,
// getNodesByClass: (document.getElementsByClassName ?
// This replaces node.getElementsByTagName(type)[0] function (node,type) {return node.getElementsByClassName(type)} :
// and should be replaced by that if we go back to using
// custom tags
//
getNode: (document.getElementsByClassName ?
function (node,type) {return node.getElementsByClassName(type)[0]} :
function (node,type) { function (node,type) {
var NODES = [];
var nodes = node.getElementsByTagName("span"); var nodes = node.getElementsByTagName("span");
var name = RegExp("\\b"+type+"\\b"); var name = RegExp("\\b"+type+"\\b");
for (var i = 0, m = nodes.length; i < m; i++) { for (var i = 0, m = nodes.length; i < m; i++) {
if (name.test(nodes[i].className)) return nodes[i]; if (name.test(nodes[i].className)) NODES.push = nodes[i];
} }
return NODES;
} }
), ),
getNode: function (node,type) {
var nodes = this.getNodesByClass(node,type);
if (nodes.length === 1) return nodes[0];
var closest = nodes[0], N = this.getNodeDepth(node,closest);
for (var i = 1, m = nodes.length; i < m; i++) {
var n = this.getNodeDepth(node,nodes[i]);
if (n < N) {closest = nodes[i]; N = n}
}
return closest;
},
getNodeDepth: function (parent,node) {
var n = 0;
while (node && node !== parent) {node = node.parentNode; n++}
return n;
},
/********************************************/ /********************************************/
@ -389,7 +403,7 @@
onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove,
onclick:EVENT.Click, ondblclick:EVENT.DblClick, onclick:EVENT.Click, ondblclick:EVENT.DblClick,
// Added for keyboard accessible menu. // Added for keyboard accessible menu.
onkeydown: EVENT.Keydown, tabIndex: "0" onkeydown: EVENT.Keydown, tabIndex: HUB.getTabOrder(jax)
}); });
if (jax.CHTML.display) { if (jax.CHTML.display) {
// //
@ -858,10 +872,17 @@
var test2 = CHTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c,["mjx-box"]]]]); var test2 = CHTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c,["mjx-box"]]]]);
test1.firstChild.style.fontSize = test2.firstChild.style.fontSize = ""; test1.firstChild.style.fontSize = test2.firstChild.style.fontSize = "";
var em = 5*CHTML.em; var em = 5*CHTML.em;
var d = (test2.offsetHeight-1000)/em; var H1 = test1.offsetHeight, H2 = test2.offsetHeight, W = test1.offsetWidth;
var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d;
CHTML.CHTMLnode.removeChild(test1); CHTML.CHTMLnode.removeChild(test1);
CHTML.CHTMLnode.removeChild(test2); CHTML.CHTMLnode.removeChild(test2);
if (H2 === 0) {
em = 5*CHTML.defaultEm;
var test = document.body.appendChild(document.createElement("div"));
test.appendChild(test1); test.appendChild(test2);
H1 = test1.offsetHeight, H2 = test2.offsetHeight, W = test1.offsetWidth;
document.body.removeChild(test);
}
var d = (H2-1000)/em, w = W/em, h = H1/em - d;
return {h:h, d:d, w:w} return {h:h, d:d, w:w}
}, },
@ -1619,7 +1640,7 @@
CHTMLdrawBBox: function (node,bbox) { CHTMLdrawBBox: function (node,bbox) {
if (!bbox) bbox = this.CHTML; if (!bbox) bbox = this.CHTML;
var box = CHTML.Element("mjx-box", var box = CHTML.Element("mjx-box",
{style:{"font-size":node.style.fontSize, opacity:.25,"margin-left":CHTML.Em(-(bbox.w+(bbox.R||0)))}},[ {style:{opacity:.25,"margin-left":CHTML.Em(-(bbox.w+(bbox.R||0)))}},[
["mjx-box",{style:{ ["mjx-box",{style:{
height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w), height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w),
"background-color":"red" "background-color":"red"
@ -2054,17 +2075,18 @@
MML.munderover.Augment({ MML.munderover.Augment({
toCommonHTML: function (node,stretch) { toCommonHTML: function (node,stretch) {
var values = this.getValues("displaystyle","accent","accentunder","align"); var values = this.getValues("displaystyle","accent","accentunder","align");
if (!values.displaystyle && this.data[this.base] != null && var base = this.data[this.base];
this.data[this.base].CoreMO().Get("movablelimits")) if (!values.displaystyle && base != null &&
(base.movablelimits || base.CoreMO().Get("movablelimits")))
return MML.msubsup.prototype.toCommonHTML.call(this,node,stretch); return MML.msubsup.prototype.toCommonHTML.call(this,node,stretch);
// //
// Get the nodes for base and limits // Get the nodes for base and limits
// //
var base, under, over, nodes = []; var under, over, nodes = [];
if (stretch) { if (stretch) {
base = CHTML.getNode(node,"mjx-op"); if (this.data[this.base]) base = CHTML.getNode(node,"mjx-op");
under = CHTML.getNode(node,"mjx-under"); if (this.data[this.under]) under = CHTML.getNode(node,"mjx-under");
over = CHTML.getNode(node,"mjx-over"); if (this.data[this.over]) over = CHTML.getNode(node,"mjx-over");
nodes[0] = base; nodes[1] = under||over; nodes[2] = over; nodes[0] = base; nodes[1] = under||over; nodes[2] = over;
} else { } else {
var types = ["mjx-op","mjx-under","mjx-over"]; var types = ["mjx-op","mjx-under","mjx-over"];
@ -2111,6 +2133,7 @@
bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0; bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0;
if (this.data[i]) bbox[i].stretch = this.data[i].CHTMLcanStretch("Horizontal"); if (this.data[i]) bbox[i].stretch = this.data[i].CHTMLcanStretch("Horizontal");
scale = (i === this.base ? 1 : bbox[i].rscale); scale = (i === this.base ? 1 : bbox[i].rscale);
if (i !== this.base) {delete bbox[i].L; delete bbox[i].R} // these are overriden by CSS
W = Math.max(W,scale*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); W = Math.max(W,scale*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0)));
if (!bbox[i].stretch && W > w) w = W; if (!bbox[i].stretch && W > w) w = W;
} }
@ -2247,7 +2270,12 @@
this.CHTML = BBOX; this.CHTML = BBOX;
}, },
CHTMLstretchV: MML.mbase.CHTMLstretchV, CHTMLstretchV: MML.mbase.CHTMLstretchV,
CHTMLstretchH: MML.mbase.CHTMLstretchH CHTMLstretchH: MML.mbase.CHTMLstretchH,
CHTMLchildNode: function (node,i) {
var types = ["mjx-op","mjx-under","mjx-over"];
if (this.over === 1) types[1] = types[2];
return CHTML.getNode(node,types[i]);
}
}); });
/********************************************************/ /********************************************************/
@ -2262,9 +2290,9 @@
// //
var base, sub, sup; var base, sub, sup;
if (stretch) { if (stretch) {
base = CHTML.getNode(node,"mjx-base"); if (this.data[this.base]) base = CHTML.getNode(node,"mjx-base");
sub = CHTML.getNode(node,"mjx-sub"); if (this.data[this.sub]) sub = CHTML.getNode(node,"mjx-sub");
sup = CHTML.getNode(node,"mjx-sup"); if (this.data[this.sup]) sup = CHTML.getNode(node,"mjx-sup");
stack = CHTML.getNode(node,"mjx-stack"); stack = CHTML.getNode(node,"mjx-stack");
} else { } else {
var types = ["mjx-base","mjx-sub","mjx-sup"]; var types = ["mjx-base","mjx-sub","mjx-sup"];
@ -2353,7 +2381,12 @@
return node; return node;
}, },
CHTMLstretchV: MML.mbase.CHTMLstretchV, CHTMLstretchV: MML.mbase.CHTMLstretchV,
CHTMLstretchH: MML.mbase.CHTMLstretchH CHTMLstretchH: MML.mbase.CHTMLstretchH,
CHTMLchildNode: function (node,i) {
var types = ["mjx-base","mjx-sub","mjx-sup"];
if (this.over === 1) types[1] = types[2];
return CHTML.getNode(node,types[i]);
}
}); });
/********************************************************/ /********************************************************/
@ -2400,22 +2433,22 @@
BBOX.combine(dbox,nscale*nbox.w+bbox.w-delta,v); BBOX.combine(dbox,nscale*nbox.w+bbox.w-delta,v);
BBOX.clean(); BBOX.clean();
} else { } else {
frac.className += " MJXc-stacked";
if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1}
else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2} else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2}
if (t === 0) { // \atop if (t === 0) { // \atop
p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px
q = (u - nbox.d*nscale) - (dbox.h*dscale - v); q = (u - nbox.d*nscale) - (dbox.h*dscale - v);
if (q < p) {u += (p - q)/2; v += (p - q)/2} if (q < p) {u += (p - q)/2; v += (p - q)/2}
frac.style.verticalAlign = CHTML.Em(-v);
} else { // \over } else { // \over
p = Math.max((isDisplay ? 2 : 0) * mt + t, t/2 + 1.5*mt); p = Math.max((isDisplay ? 2 : 0) * mt + t, t/2 + 1.5*mt);
t = Math.max(t,mt); t = Math.max(t,mt);
q = (u - nbox.d*nscale) - (a + t/2); if (q < p) u += (p - q); q = (u - nbox.d*nscale) - (a + t/2); if (q < p) u += (p - q);
q = (a - t/2) - (dbox.h*dscale - v); if (q < p) v += (p - q); q = (a - t/2) - (dbox.h*dscale - v); if (q < p) v += (p - q);
frac.style.verticalAlign = CHTML.Em(t/2-v); nbox.L = nbox.R = dbox.L = dbox.R = .1; // account for padding in BBOX width
num.style.borderBottom = CHTML.Px(t/nscale*nbox.scale,1)+" solid"; var rule = CHTML.addElement(frac,"mjx-line",{style: {
num.className += " MJXc-fpad"; nbox.L = nbox.R = .1; "border-bottom":CHTML.Px(t*BBOX.scale,1)+" solid", top: CHTML.Em(-t/2-a)
denom.className += " MJXc-fpad"; dbox.L = dbox.R = .1; }});
} }
// //
// Determine the new bounding box and place the parts // Determine the new bounding box and place the parts
@ -2423,9 +2456,24 @@
BBOX.combine(nbox,0,u); BBOX.combine(nbox,0,u);
BBOX.combine(dbox,0,-v); BBOX.combine(dbox,0,-v);
BBOX.clean(); BBOX.clean();
u -= nscale*nbox.d + a + t/2; v -= dscale*dbox.h - a + t/2; //
if (u) num.style[u > 0 ? "paddingBottom" : "marginBottom"] = CHTML.Em(u/nscale); // Force elements to the correct width
if (v) denom.style[v > 0 ? "paddingTop" : "marginTop"] = CHTML.Em(v/dscale); //
frac.style.width = CHTML.Em(BBOX.w);
num.style.width = CHTML.Em(BBOX.w/nscale);
denom.style.width = CHTML.Em(BBOX.w/dscale);
if (rule) rule.style.width = frac.style.width;
//
// Place the numerator and denominator in relation to the baseline
//
num.style.top = CHTML.Em(-BBOX.h/nscale);
denom.style.bottom = CHTML.Em(-BBOX.d/dscale);
//
// Force the size of the surrounding box, since everything is absolutely positioned
//
CHTML.addElement(node,"mjx-vsize",{style: {
height: CHTML.Em(BBOX.h+BBOX.d), verticalAlign: CHTML.Em(-BBOX.d)
}});
} }
// //
// Add nulldelimiterspace around the fraction // Add nulldelimiterspace around the fraction

View File

@ -27,7 +27,7 @@
MathJax.OutputJax["HTML-CSS"] = MathJax.OutputJax({ MathJax.OutputJax["HTML-CSS"] = MathJax.OutputJax({
id: "HTML-CSS", id: "HTML-CSS",
version: "2.6.0", version: "2.6.1",
directory: MathJax.OutputJax.directory + "/HTML-CSS", directory: MathJax.OutputJax.directory + "/HTML-CSS",
extensionDir: MathJax.OutputJax.extensionDir + "/HTML-CSS", extensionDir: MathJax.OutputJax.extensionDir + "/HTML-CSS",
autoloadDir: MathJax.OutputJax.directory + "/HTML-CSS/autoload", autoloadDir: MathJax.OutputJax.directory + "/HTML-CSS/autoload",

View File

@ -578,7 +578,7 @@
onmousemove:EVENT.Mousemove, onclick:EVENT.Click, onmousemove:EVENT.Mousemove, onclick:EVENT.Click,
ondblclick:EVENT.DblClick, ondblclick:EVENT.DblClick,
// Added for keyboard accessible menu. // Added for keyboard accessible menu.
onkeydown: EVENT.Keydown, tabIndex: "0" onkeydown: EVENT.Keydown, tabIndex: HUB.getTabOrder(jax)
}); });
if (HUB.Browser.noContextMenu) { if (HUB.Browser.noContextMenu) {
span.ontouchstart = TOUCH.start; span.ontouchstart = TOUCH.start;
@ -1606,6 +1606,8 @@
+ String.fromCharCode((N&0x3FF)+0xDC00); + String.fromCharCode((N&0x3FF)+0xDC00);
} }
} }
if (HTMLCSS.ffFontOptimizationBug && c[4] - c[2] > 125)
{span.style.textRendering = "optimizeLegibility"}
if (C.rfix) {this.addText(span,text+C.c); HTMLCSS.createShift(span,C.rfix/1000); return ""} if (C.rfix) {this.addText(span,text+C.c); HTMLCSS.createShift(span,C.rfix/1000); return ""}
if (c[2] || !this.msieAccentBug || text.length) {return text + C.c} if (c[2] || !this.msieAccentBug || text.length) {return text + C.c}
// Handle IE accent clipping bug // Handle IE accent clipping bug
@ -2713,8 +2715,9 @@
MML.munderover.Augment({ MML.munderover.Augment({
toHTML: function (span,HW,D) { toHTML: function (span,HW,D) {
var values = this.getValues("displaystyle","accent","accentunder","align"); var values = this.getValues("displaystyle","accent","accentunder","align");
if (!values.displaystyle && this.data[this.base] != null && var base = this.data[this.base];
this.data[this.base].CoreMO().Get("movablelimits")) if (!values.displaystyle && base != null &&
(base.movablelimits || base.CoreMO().Get("movablelimits")))
{return MML.msubsup.prototype.toHTML.call(this,span)} {return MML.msubsup.prototype.toHTML.call(this,span)}
span = this.HTMLcreateSpan(span); var scale = this.HTMLgetScale(); span = this.HTMLcreateSpan(span); var scale = this.HTMLgetScale();
var stack = HTMLCSS.createStack(span); var stack = HTMLCSS.createStack(span);
@ -2753,8 +2756,8 @@
if (box.bbox.w > WW) {WW = box.bbox.w} if (box.bbox.w > WW) {WW = box.bbox.w}
}} }}
var t = HTMLCSS.TeX.rule_thickness * this.mscale, factor = HTMLCSS.FONTDATA.TeX_factor; var t = HTMLCSS.TeX.rule_thickness * this.mscale, factor = HTMLCSS.FONTDATA.TeX_factor;
var base = boxes[this.base] || {bbox: this.HTMLzeroBBox()};
var x, y, z1, z2, z3, dw, k, delta = 0; var x, y, z1, z2, z3, dw, k, delta = 0;
base = boxes[this.base] || {bbox: this.HTMLzeroBBox()};
if (base.bbox.ic) {delta = 1.3*base.bbox.ic + .05} // adjust faked IC to be more in line with expeted results if (base.bbox.ic) {delta = 1.3*base.bbox.ic + .05} // adjust faked IC to be more in line with expeted results
for (i = 0, m = this.data.length; i < m; i++) { for (i = 0, m = this.data.length; i < m; i++) {
if (this.data[i] != null) { if (this.data[i] != null) {
@ -3106,7 +3109,8 @@
HTMLCSS.Augment({ HTMLCSS.Augment({
ffVerticalAlignBug: !browser.versionAtLeast("20.0"), // not sure when this bug was fixed ffVerticalAlignBug: !browser.versionAtLeast("20.0"), // not sure when this bug was fixed
AccentBug: true, AccentBug: true,
allowWebFonts: webFonts allowWebFonts: webFonts,
ffFontOptimizationBug: true
}); });
}, },

View File

@ -27,7 +27,7 @@
MathJax.OutputJax.NativeMML = MathJax.OutputJax({ MathJax.OutputJax.NativeMML = MathJax.OutputJax({
id: "NativeMML", id: "NativeMML",
version: "2.6.0", version: "2.6.1",
directory: MathJax.OutputJax.directory + "/NativeMML", directory: MathJax.OutputJax.directory + "/NativeMML",
extensionDir: MathJax.OutputJax.extensionDir + "/NativeMML", extensionDir: MathJax.OutputJax.extensionDir + "/NativeMML",

View File

@ -328,7 +328,7 @@
container.ondblclick = EVENT.DblClick; container.ondblclick = EVENT.DblClick;
// Added for keyboard accessible menu. // Added for keyboard accessible menu.
container.onkeydown = EVENT.Keydown; container.onkeydown = EVENT.Keydown;
container.tabIndex = "0"; container.tabIndex = HUB.getTabOrder(jax);
if (HUB.Browser.noContextMenu) { if (HUB.Browser.noContextMenu) {
container.ontouchstart = TOUCH.start; container.ontouchstart = TOUCH.start;
container.ontouchend = TOUCH.end; container.ontouchend = TOUCH.end;
@ -533,7 +533,10 @@
var CLASS = []; if (this["class"]) {CLASS.push(this["class"])} var CLASS = []; if (this["class"]) {CLASS.push(this["class"])}
if (this.isa(MML.TeXAtom)) { if (this.isa(MML.TeXAtom)) {
var TEXCLASS = ["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER","VCENTER"][this.texClass]; var TEXCLASS = ["ORD","OP","BIN","REL","OPEN","CLOSE","PUNCT","INNER","VCENTER"][this.texClass];
if (TEXCLASS) {CLASS.push("MJX-TeXAtom-"+TEXCLASS)} if (TEXCLASS) {
CLASS.push("MJX-TeXAtom-"+TEXCLASS)
if (TEXCLASS === "OP" && !this.movablelimits) CLASS.push("MJX-fixedlimits");
}
} }
if (this.mathvariant && this.NativeMMLvariants[this.mathvariant]) if (this.mathvariant && this.NativeMMLvariants[this.mathvariant])
{CLASS.push("MJX"+this.mathvariant)} {CLASS.push("MJX"+this.mathvariant)}
@ -630,12 +633,19 @@
MML.munderover.Augment({ MML.munderover.Augment({
// //
// Use proper version of munder, mover, or munderover, depending on // Use proper version of munder, mover, or munderover, depending on
// which items are present // which items are present. Handle movablelimits on TeXAtom base.
// //
toNativeMML: function (parent) { toNativeMML: function (parent) {
var type = this.type; var type = this.type;
var base = this.data[this.base];
if (base && base.isa(MML.TeXAtom) && base.movablelimits && !base.Get("displaystyle")) {
type = "msubsup";
if (this.data[this.under] == null) {type = "msup"}
if (this.data[this.over] == null) {type = "msub"}
} else {
if (this.data[this.under] == null) {type = "mover"} if (this.data[this.under] == null) {type = "mover"}
if (this.data[this.over] == null) {type = "munder"} if (this.data[this.over] == null) {type = "munder"}
}
var tag = this.NativeMMLelement(type); var tag = this.NativeMMLelement(type);
this.NativeMMLattributes(tag); this.NativeMMLattributes(tag);
if (this.data[0]) {delete this.data[0].inferred} if (this.data[0]) {delete this.data[0].inferred}

View File

@ -24,7 +24,7 @@
MathJax.OutputJax.PlainSource = MathJax.OutputJax({ MathJax.OutputJax.PlainSource = MathJax.OutputJax({
id: "PlainSource", id: "PlainSource",
version: "2.6.0", version: "2.6.1",
directory: MathJax.OutputJax.directory + "/PlainSource", directory: MathJax.OutputJax.directory + "/PlainSource",
extensionDir: MathJax.OutputJax.extensionDir + "/PlainSource", extensionDir: MathJax.OutputJax.extensionDir + "/PlainSource",

View File

@ -91,7 +91,7 @@
ondblclick: EVENT.DblClick, ondblclick: EVENT.DblClick,
// Added for keyboard accessible menu. // Added for keyboard accessible menu.
onkeydown: EVENT.Keydown, onkeydown: EVENT.Keydown,
tabIndex: "0" tabIndex: HUB.getTabOrder(jax)
},[["span"]]); },[["span"]]);
if (HUB.Browser.noContextMenu) { if (HUB.Browser.noContextMenu) {
span.ontouchstart = TOUCH.start; span.ontouchstart = TOUCH.start;

View File

@ -27,7 +27,7 @@
MathJax.OutputJax.PreviewHTML = MathJax.OutputJax({ MathJax.OutputJax.PreviewHTML = MathJax.OutputJax({
id: "PreviewHTML", id: "PreviewHTML",
version: "2.6.0", version: "2.6.1",
directory: MathJax.OutputJax.directory + "/PreviewHTML", directory: MathJax.OutputJax.directory + "/PreviewHTML",
extensionDir: MathJax.OutputJax.extensionDir + "/PreviewHTML", extensionDir: MathJax.OutputJax.extensionDir + "/PreviewHTML",
noFastPreview: true, // don't do fast preview for this output jax noFastPreview: true, // don't do fast preview for this output jax

View File

@ -199,7 +199,7 @@
onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove,
onclick:EVENT.Click, ondblclick:EVENT.DblClick, onclick:EVENT.Click, ondblclick:EVENT.DblClick,
// Added for keyboard accessible menu. // Added for keyboard accessible menu.
onkeydown: EVENT.Keydown, tabIndex: "0" onkeydown: EVENT.Keydown, tabIndex: HUB.getTabOrder(jax)
}); });
if (HUB.Browser.noContextMenu) { if (HUB.Browser.noContextMenu) {
span.ontouchstart = TOUCH.start; span.ontouchstart = TOUCH.start;
@ -750,8 +750,9 @@
MML.munderover.Augment({ MML.munderover.Augment({
toPreviewHTML: function (span) { toPreviewHTML: function (span) {
var values = this.getValues("displaystyle","accent","accentunder","align"); var values = this.getValues("displaystyle","accent","accentunder","align");
if (!values.displaystyle && this.data[this.base] != null && var base = this.data[this.base];
this.data[this.base].CoreMO().Get("movablelimits")) { if (!values.displaystyle && base != null &&
(base.movablelimits || base.CoreMO().Get("movablelimits"))) {
span = MML.msubsup.prototype.toPreviewHTML.call(this,span); span = MML.msubsup.prototype.toPreviewHTML.call(this,span);
// //
// Change class to msubsup for CSS rules. // Change class to msubsup for CSS rules.

View File

@ -27,7 +27,7 @@
MathJax.OutputJax.SVG = MathJax.OutputJax({ MathJax.OutputJax.SVG = MathJax.OutputJax({
id: "SVG", id: "SVG",
version: "2.6.0", version: "2.6.1",
directory: MathJax.OutputJax.directory + "/SVG", directory: MathJax.OutputJax.directory + "/SVG",
extensionDir: MathJax.OutputJax.extensionDir + "/SVG", extensionDir: MathJax.OutputJax.extensionDir + "/SVG",
autoloadDir: MathJax.OutputJax.directory + "/SVG/autoload", autoloadDir: MathJax.OutputJax.directory + "/SVG/autoload",

View File

@ -222,7 +222,7 @@
onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove,
onclick:EVENT.Click, ondblclick:EVENT.DblClick, onclick:EVENT.Click, ondblclick:EVENT.DblClick,
// Added for keyboard accessible menu. // Added for keyboard accessible menu.
onkeydown: EVENT.Keydown, tabIndex: "0" onkeydown: EVENT.Keydown, tabIndex: HUB.getTabOrder(jax)
}); });
if (HUB.Browser.noContextMenu) { if (HUB.Browser.noContextMenu) {
span.ontouchstart = TOUCH.start; span.ontouchstart = TOUCH.start;
@ -1882,8 +1882,9 @@
toSVG: function (HW,D) { toSVG: function (HW,D) {
this.SVGgetStyles(); this.SVGgetStyles();
var values = this.getValues("displaystyle","accent","accentunder","align"); var values = this.getValues("displaystyle","accent","accentunder","align");
if (!values.displaystyle && this.data[this.base] != null && var base = this.data[this.base];
this.data[this.base].CoreMO().Get("movablelimits")) if (!values.displaystyle && base != null &&
(base.movablelimits || base.CoreMO().Get("movablelimits")))
{return MML.msubsup.prototype.toSVG.call(this)} {return MML.msubsup.prototype.toSVG.call(this)}
var svg = this.SVG(), scale = this.SVGgetScale(svg); this.SVGhandleSpace(svg); var svg = this.SVG(), scale = this.SVGgetScale(svg); this.SVGhandleSpace(svg);
var boxes = [], stretch = [], box, i, m, W = -SVG.BIGDIMEN, WW = W; var boxes = [], stretch = [], box, i, m, W = -SVG.BIGDIMEN, WW = W;
@ -1909,8 +1910,8 @@
if (boxes[i].w > WW) {WW = boxes[i].w} if (boxes[i].w > WW) {WW = boxes[i].w}
}} }}
var t = SVG.TeX.rule_thickness * this.mscale; var t = SVG.TeX.rule_thickness * this.mscale;
var base = boxes[this.base] || {w:0, h:0, d:0, H:0, D:0, l:0, r:0, y:0, scale:scale};
var x, y, z1, z2, z3, dw, k, delta = 0; var x, y, z1, z2, z3, dw, k, delta = 0;
base = boxes[this.base] || {w:0, h:0, d:0, H:0, D:0, l:0, r:0, y:0, scale:scale};
if (base.ic) {delta = 1.3*base.ic + .05} // adjust faked IC to be more in line with expeted results if (base.ic) {delta = 1.3*base.ic + .05} // adjust faked IC to be more in line with expeted results
for (i = 0, m = this.data.length; i < m; i++) { for (i = 0, m = this.data.length; i < m; i++) {
if (this.data[i] != null) { if (this.data[i] != null) {