If a stretchy character exists without a non-stretched version, use the minimal stretched version for the unstretched one. Also, fix munderover to recompute the width after stretching the stretchy elements. (Resolves issue #112.)
This commit is contained in:
parent
bb09608b23
commit
7680604b23
|
@ -12,5 +12,5 @@
|
|||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.OutputJax["HTML-CSS"]=MathJax.OutputJax({id:"HTML-CSS",version:"1.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:{scale:100,minScaleAdjust:50,availableFonts:["STIX","TeX"],preferredFont:"TeX",webFont:"TeX",imageFont:"TeX",showMathMenu:true,styles:{".MathJax_Display":{"text-align":"center",margin:"1em 0em"},".MathJax .merror":{"background-color":"#FFFF88",color:"#CC0000",border:"1px solid #CC0000",padding:"1px 3px","font-family":"serif","font-style":"normal","font-size":"90%"},".MathJax_Preview":{color:"#888888"},"#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"}}}});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.id==="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("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:"1.1.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:{scale:100,minScaleAdjust:50,availableFonts:["STIX","TeX"],preferredFont:"TeX",webFont:"TeX",imageFont:"TeX",showMathMenu:true,styles:{".MathJax_Display":{"text-align":"center",margin:"1em 0em"},".MathJax .merror":{"background-color":"#FFFF88",color:"#CC0000",border:"1px solid #CC0000",padding:"1px 3px","font-family":"serif","font-style":"normal","font-size":"90%"},".MathJax_Preview":{color:"#888888"},"#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"}}}});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.id==="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("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
|
@ -24,7 +24,7 @@
|
|||
|
||||
MathJax.OutputJax["HTML-CSS"] = MathJax.OutputJax({
|
||||
id: "HTML-CSS",
|
||||
version: "1.1",
|
||||
version: "1.1.1",
|
||||
directory: MathJax.OutputJax.directory + "/HTML-CSS",
|
||||
extensionDir: MathJax.OutputJax.extensionDir + "/HTML-CSS",
|
||||
autoloadDir: MathJax.OutputJax.directory + "/HTML-CSS/autoload",
|
||||
|
|
|
@ -850,7 +850,7 @@
|
|||
var mid = {bbox: {h:-this.BIGDIMEN, d:-this.BIGDIMEN}};
|
||||
this.placeBox(left,-left.bbox.lw,0,true);
|
||||
var w = (left.bbox.rw - left.bbox.lw) + (right.bbox.rw - right.bbox.lw) - .05,
|
||||
x = left.bbox.rw - left.bbox.lw - .025;
|
||||
x = left.bbox.rw - left.bbox.lw - .025, dx;
|
||||
if (delim.mid) {
|
||||
mid = this.createBox(stack); this.createChar(mid,delim.mid,scale,font);
|
||||
w += mid.bbox.w;
|
||||
|
@ -858,15 +858,14 @@
|
|||
if (W > w) {
|
||||
var rW = rep.bbox.rw-rep.bbox.lw, rw = rW - .05, n, N, k = (delim.mid ? 2 : 1);
|
||||
N = n = Math.ceil((W-w)/(k*rw)); rw = (W-w)/(k*n);
|
||||
var dx = (n/(n+1))*(rW - rw); rw = rW - dx; x -= rep.bbox.lw + dx;
|
||||
dx = (n/(n+1))*(rW - rw); rw = rW - dx; x -= rep.bbox.lw + dx;
|
||||
while (k-- > 0) {
|
||||
while (n-- > 0) {this.placeBox(this.addBox(stack,rep.cloneNode(true)),x,0,true); x += rw}
|
||||
if (delim.mid && k) {this.placeBox(mid,x,0,true); x += mid.bbox.w - dx; n = N}
|
||||
}
|
||||
} else {
|
||||
x -= (w - W)/2;
|
||||
if (delim.mid) {this.placeBox(mid,x,0,true); x += mid.bbox.w}
|
||||
x -= (w - W)/2;
|
||||
dx = Math.min(w - W,left.bbox.w/2);
|
||||
x -= dx/2; if (delim.mid) {this.placeBox(mid,x,0,true); x += mid.bbox.w}; x -= dx/2;
|
||||
}
|
||||
this.placeBox(right,x,0,true);
|
||||
span.bbox = {
|
||||
|
@ -999,6 +998,14 @@
|
|||
handleChar: function (span,font,c,n,text) {
|
||||
var C = c[5];
|
||||
if (C.img) {return this.handleImg(span,font,c,n,text)}
|
||||
if (C.isUnknown && this.FONTDATA.DELIMITERS[n]) {
|
||||
var scale = span.scale;
|
||||
HTMLCSS.createDelimiter(span,n,0,1,font);
|
||||
span.scale = scale;
|
||||
c[0] = span.bbox.h*1000; c[1] = span.bbox.d*1000;
|
||||
c[2] = span.bbox.w*1000; c[3] = span.bbox.lw*1000; c[4] = span.bbox.rw*1000;
|
||||
return "";
|
||||
}
|
||||
if (C.c == null) {
|
||||
if (n <= 0xFFFF) {C.c = String.fromCharCode(n)}
|
||||
else {C.c = this.PLANE1 + String.fromCharCode(n-0x1D400+0xDC00)}
|
||||
|
@ -1909,15 +1916,20 @@
|
|||
if (!stretch[i] && WW > W) {W = WW}
|
||||
}
|
||||
}
|
||||
if (W == -HTMLCSS.BIGDIMEN) {W = WW}
|
||||
if (D == null && HW != null) {W = WW = HW}
|
||||
if (D == null && HW != null) {W = HW} else if (W == -HTMLCSS.BIGDIMEN) {W = WW}
|
||||
for (i = WW = 0, m = this.data.length; i < m; i++) {if (this.data[i]) {
|
||||
box = boxes[i];
|
||||
debug([this.data[i],this.data[i].HTMLspanElement().scale]);
|
||||
if (stretch[i]) {box.bbox = this.data[i].HTMLstretchH(box,W).bbox}
|
||||
debug([this.data[i],this.data[i].HTMLspanElement().scale]);
|
||||
if (box.bbox.w > WW) {WW = box.bbox.w}
|
||||
}}
|
||||
var t = HTMLCSS.TeX.rule_thickness, factor = HTMLCSS.FONTDATA.TeX_factor;
|
||||
var base = boxes[this.base] || {bbox: this.HTMLzeroBBox()}, delta = (base.bbox.ic || 0);
|
||||
var x, y, z1, z2, z3, dw, k;
|
||||
for (i = 0, m = this.data.length; i < m; i++) {
|
||||
if (this.data[i] != null) {
|
||||
box = boxes[i];
|
||||
if (stretch[i]) {box.bbox = this.data[i].HTMLstretchH(box,W).bbox}
|
||||
z3 = HTMLCSS.TeX.big_op_spacing5 * scale;
|
||||
var accent = (i != this.base && values[this.ACCENTS[i]]);
|
||||
if (accent && box.bbox.w <= 1/HTMLCSS.em+.0001) { // images can get the width off by 1px
|
||||
|
@ -1926,7 +1938,7 @@
|
|||
{box.insertBefore(HTMLCSS.createSpace(box.parentNode,0,0,-box.bbox.lw),box.firstChild)}
|
||||
HTMLCSS.createBlank(box,0,0,box.bbox.rw+.1);
|
||||
}
|
||||
dw = {left:0, center:(W-box.bbox.w)/2, right:W-box.bbox.w}[values.align];
|
||||
dw = {left:0, center:(WW-box.bbox.w)/2, right:WW-box.bbox.w}[values.align];
|
||||
x = dw; y = 0;
|
||||
if (i == this.over) {
|
||||
if (accent) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user