Address review comments for issue #481.

This commit is contained in:
Frédéric Wang 2013-05-31 09:14:47 +02:00
parent cc34c39def
commit 96f16e1868
4 changed files with 43 additions and 41 deletions

View File

@ -96,7 +96,7 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
var value = this.ParseArg(name), var value = this.ParseArg(name),
attr = this.GetBrackets(name,""), attr = this.GetBrackets(name,""),
math = this.ParseArg(name); math = this.ParseArg(name);
var def = CANCEL.setAttributes({notation: MML.NOTATION.UPDIAGONALARROW},attr); var def = CANCEL.setAttributes({notation: MML.NOTATION.UPDIAGONALSTRIKE+" "+MML.NOTATION.UPDIAGONALARROW},attr);
value = MML.mpadded(value).With({depth:"-.1em",height:"+.1em",voffset:".1em"}); value = MML.mpadded(value).With({depth:"-.1em",height:"+.1em",voffset:".1em"});
this.Push(MML.msup(MML.menclose(math).With(def),value)); this.Push(MML.msup(MML.menclose(math).With(def),value));
} }

View File

@ -96,11 +96,11 @@
for (var i = 0, m = CLASS.length; i < m; i++) { for (var i = 0, m = CLASS.length; i < m; i++) {
if (CLASS[i].substr(0,4) === "MJX-") { if (CLASS[i].substr(0,4) === "MJX-") {
if (CLASS[i] === "MJX-arrow") { if (CLASS[i] === "MJX-arrow") {
// This class was used in former version of MathJax to add an // This class was used in former versions of MathJax to attach an
// arrow to the updiagonalstrike notation. For backward // arrow to the updiagonalstrike notation. For backward
// compatibility, continue to handle this as updiagonalarrow. // compatibility, let's continue to accept this case. See issue 481.
mml.notation = mml.notation.replace(MML.NOTATION.UPDIAGONALSTRIKE, if (!mml.notation.match("/"+MML.NOTATION.UPDIAGONALARROW+"/"))
MML.NOTATION.UPDIAGONALARROW); mml.notation += " "+MML.NOTATION.UPDIAGONALARROW;
} else if (CLASS[i] === "MJX-variant") { } else if (CLASS[i] === "MJX-variant") {
mml.variantForm = true; mml.variantForm = true;
// //

View File

@ -62,7 +62,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
if (notation[MML.NOTATION.UPDIAGONALARROW]) notation[MML.NOTATION.UPDIAGONALSTRIKE] = false; if (notation[MML.NOTATION.UPDIAGONALARROW]) notation[MML.NOTATION.UPDIAGONALSTRIKE] = false;
for (var n in notation) { for (var n in notation) {
if (!notation[n]) continue; if (!notation.hasOwnProperty(n) || !notation[n]) continue;
switch (n) { switch (n) {
case MML.NOTATION.BOX: case MML.NOTATION.BOX:
frame.style.border = SOLID; if (!HTMLCSS.msieBorderWidthBug) {T = B = L = R = t} frame.style.border = SOLID; if (!HTMLCSS.msieBorderWidthBug) {T = B = L = R = t}
@ -135,36 +135,39 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
break; break;
case MML.NOTATION.UPDIAGONALSTRIKE: case MML.NOTATION.UPDIAGONALSTRIKE:
if (HTMLCSS.useVML) {
if (!vml) {vml = this.HTMLvml(stack,H,D,W,t,values.mathcolor)}
var line = this.HTMLvmlElement(vml,"line",{from: "0,"+this.HTMLpx(H+D-t), to: this.HTMLpx(W)+",0"});
} else {
if (!svg) {svg = this.HTMLsvg(stack,H,D,W,t,values.mathcolor)}
this.HTMLsvgElement(svg.firstChild,"line",{
x1:1, y1:this.HTMLpx(H+D-t), x2:this.HTMLpx(W-t), y2:this.HTMLpx(t)
});
}
break;
case MML.NOTATION.UPDIAGONALARROW: case MML.NOTATION.UPDIAGONALARROW:
if (HTMLCSS.useVML) { if (HTMLCSS.useVML) {
if (!vml) {vml = this.HTMLvml(stack,H,D,W,t,values.mathcolor)} if (!vml) {vml = this.HTMLvml(stack,H,D,W,t,values.mathcolor)}
var line = this.HTMLvmlElement(vml,"line",{from: "0,"+this.HTMLpx(H+D-t), to: this.HTMLpx(W)+",0"}); var line = this.HTMLvmlElement(vml,"line",{from: "0,"+this.HTMLpx(H+D-t), to: this.HTMLpx(W)+",0"});
if (n == MML.NOTATION.UPDIAGONALARROW) { this.HTMLvmlElement(line,"stroke",{endarrow:"classic"});
this.HTMLvmlElement(line,"stroke",{endarrow:"classic"}); line.to = this.HTMLpx(W)+","+this.HTMLpx(t);
line.to = this.HTMLpx(W)+","+this.HTMLpx(t);
}
} else { } else {
if (!svg) {svg = this.HTMLsvg(stack,H,D,W,t,values.mathcolor)} if (!svg) {svg = this.HTMLsvg(stack,H,D,W,t,values.mathcolor)}
if (n == MML.NOTATION.UPDIAGONALARROW) { var l = Math.sqrt(W*W + (H+D)*(H+D)), f = 1/l * 10*scale/HTMLCSS.em * t/.075;
var l = Math.sqrt(W*W + (H+D)*(H+D)), f = 1/l * 10*scale/HTMLCSS.em * t/.075; w = W * f; h = (H+D) * f; var x = W - t/2, y = t/2;
w = W * f; h = (H+D) * f; var x = W - t/2, y = t/2; if (y+h-.4*w < 0) {y = .4*w-h}
if (y+h-.4*w < 0) {y = .4*w-h} this.HTMLsvgElement(svg.firstChild,"line",{
this.HTMLsvgElement(svg.firstChild,"line",{ x1:1, y1:this.HTMLpx(H+D-t), x2:this.HTMLpx(x-.7*w), y2:this.HTMLpx(y+.7*h)
x1:1, y1:this.HTMLpx(H+D-t), x2:this.HTMLpx(x-.7*w), y2:this.HTMLpx(y+.7*h) });
}); this.HTMLsvgElement(svg.firstChild,"polygon",{
this.HTMLsvgElement(svg.firstChild,"polygon",{ points: this.HTMLpx(x)+","+this.HTMLpx(y)+" "
points: this.HTMLpx(x)+","+this.HTMLpx(y)+" " +this.HTMLpx(x-w-.4*h)+","+this.HTMLpx(y+h-.4*w)+" "
+this.HTMLpx(x-w-.4*h)+","+this.HTMLpx(y+h-.4*w)+" " +this.HTMLpx(x-.7*w)+","+this.HTMLpx(y+.7*h)+" "
+this.HTMLpx(x-.7*w)+","+this.HTMLpx(y+.7*h)+" " +this.HTMLpx(x-w+.4*h)+","+this.HTMLpx(y+h+.4*w)+" "
+this.HTMLpx(x-w+.4*h)+","+this.HTMLpx(y+h+.4*w)+" " +this.HTMLpx(x)+","+this.HTMLpx(y),
+this.HTMLpx(x)+","+this.HTMLpx(y), fill:values.mathcolor, stroke:"none"
fill:values.mathcolor, stroke:"none" });
});
} else {
this.HTMLsvgElement(svg.firstChild,"line",{
x1:1, y1:this.HTMLpx(H+D-t), x2:this.HTMLpx(W-t), y2:this.HTMLpx(t)
});
}
} }
break; break;

View File

@ -120,7 +120,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
if (notation[MML.NOTATION.UPDIAGONALARROW]) notation[MML.NOTATION.UPDIAGONALSTRIKE] = false; if (notation[MML.NOTATION.UPDIAGONALARROW]) notation[MML.NOTATION.UPDIAGONALSTRIKE] = false;
for (var n in notation) { for (var n in notation) {
if (!notation[n]) continue; if (!notation.hasOwnProperty(n) || !notation[n]) continue;
switch (n) { switch (n) {
case MML.NOTATION.BOX: case MML.NOTATION.BOX:
borders = [true,true,true,true]; borders = [true,true,true,true];
@ -162,17 +162,16 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
break; break;
case MML.NOTATION.UPDIAGONALSTRIKE: case MML.NOTATION.UPDIAGONALSTRIKE:
svg.Add(BBOX.DLINE(H,D,W,t,values.mathcolor,"up"));
break;
case MML.NOTATION.UPDIAGONALARROW: case MML.NOTATION.UPDIAGONALARROW:
if (n == MML.NOTATION.UPDIAGONALARROW) { var l = Math.sqrt(W*W + (H+D)*(H+D)), f = 1/l * 10/SVG.em * t/.075;
var l = Math.sqrt(W*W + (H+D)*(H+D)), f = 1/l * 10/SVG.em * t/.075; w = W * f; h = (H+D) * f; var x = .4*h;
w = W * f; h = (H+D) * f; var x = .4*h; svg.Add(BBOX.DLINE(H-.5*h,D,W-.5*w,t,values.mathcolor,"up"));
svg.Add(BBOX.DLINE(H-.5*h,D,W-.5*w,t,values.mathcolor,"up")); svg.Add(BBOX.FPOLY(
svg.Add(BBOX.FPOLY( [[x+w,h], [x-.4*h,.4*w], [x+.3*w,.3*h], [x+.4*h,-.4*w], [x+w,h]],
[[x+w,h], [x-.4*h,.4*w], [x+.3*w,.3*h], [x+.4*h,-.4*w], [x+w,h]], values.mathcolor),W-w-x,H-h);
values.mathcolor),W-w-x,H-h);
} else {
svg.Add(BBOX.DLINE(H,D,W,t,values.mathcolor,"up"));
}
break; break;
case MML.NOTATION.DOWNDIAGONALSTRIKE: case MML.NOTATION.DOWNDIAGONALSTRIKE: