Fix processing errors with various table and menclose attributes. Issue #367.
This commit is contained in:
parent
96a3bc7d92
commit
332642c659
|
@ -1732,7 +1732,13 @@ MathJax.Hub = {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
return dst;
|
return dst;
|
||||||
}
|
},
|
||||||
|
|
||||||
|
// Old browsers (e.g. Internet Explorer <= 8) do not support trim().
|
||||||
|
SplitList: ("trim" in String.prototype ?
|
||||||
|
function (list) {return list.trim().split(/\s+/)} :
|
||||||
|
function (list) {return list.replace(/^\s+/,'').
|
||||||
|
replace(/\s+$/,'').split(/\s+/)})
|
||||||
};
|
};
|
||||||
MathJax.Hub.Insert(MathJax.Hub.config.styles,MathJax.Message.styles);
|
MathJax.Hub.Insert(MathJax.Hub.config.styles,MathJax.Message.styles);
|
||||||
MathJax.Hub.Insert(MathJax.Hub.config.styles,{".MathJax_Error":MathJax.Hub.config.errorSettings.style});
|
MathJax.Hub.Insert(MathJax.Hub.config.styles,{".MathJax_Error":MathJax.Hub.config.errorSettings.style});
|
||||||
|
|
|
@ -51,7 +51,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
var frame = HTMLCSS.createFrame(stack,H+D,0,W,t,"none");
|
var frame = HTMLCSS.createFrame(stack,H+D,0,W,t,"none");
|
||||||
frame.id = "MathJax-frame-"+this.spanID;
|
frame.id = "MathJax-frame-"+this.spanID;
|
||||||
HTMLCSS.addBox(stack,frame); stack.insertBefore(frame,base); // move base to above background
|
HTMLCSS.addBox(stack,frame); stack.insertBefore(frame,base); // move base to above background
|
||||||
var notation = values.notation.split(/ /);
|
var notation = MathJax.Hub.SplitList(values.notation);
|
||||||
var T = 0, B = 0, R = 0, L = 0, dx = 0, dy = 0; var svg, vml;
|
var T = 0, B = 0, R = 0, L = 0, dx = 0, dy = 0; var svg, vml;
|
||||||
var w, h, r;
|
var w, h, r;
|
||||||
if (!values.mathcolor) {values.mathcolor = "black"} else {span.style.color = values.mathcolor}
|
if (!values.mathcolor) {values.mathcolor = "black"} else {span.style.color = values.mathcolor}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||||
|
/* vim: set ts=2 et sw=2 tw=80: */
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
*
|
*
|
||||||
* MathJax/jax/output/HTML-CSS/autoload/mtable.js
|
* MathJax/jax/output/HTML-CSS/autoload/mtable.js
|
||||||
|
@ -93,13 +95,14 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
//
|
//
|
||||||
// Determine spacing and alignment
|
// Determine spacing and alignment
|
||||||
//
|
//
|
||||||
var CSPACE = values.columnspacing.split(/ /),
|
var SPLIT = MathJax.Hub.SplitList;
|
||||||
RSPACE = values.rowspacing.split(/ /),
|
var CSPACE = SPLIT(values.columnspacing),
|
||||||
CALIGN = values.columnalign.split(/ /),
|
RSPACE = SPLIT(values.rowspacing),
|
||||||
RALIGN = values.rowalign.split(/ /),
|
CALIGN = SPLIT(values.columnalign),
|
||||||
CLINES = values.columnlines.split(/ /),
|
RALIGN = SPLIT(values.rowalign),
|
||||||
RLINES = values.rowlines.split(/ /),
|
CLINES = SPLIT(values.columnlines),
|
||||||
CWIDTH = values.columnwidth.split(/ /),
|
RLINES = SPLIT(values.rowlines),
|
||||||
|
CWIDTH = SPLIT(values.columnwidth),
|
||||||
RCALIGN = [];
|
RCALIGN = [];
|
||||||
for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = HTMLCSS.length2em(CSPACE[i],mu)}
|
for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = HTMLCSS.length2em(CSPACE[i],mu)}
|
||||||
for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = HTMLCSS.length2em(RSPACE[i],mu)}
|
for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = HTMLCSS.length2em(RSPACE[i],mu)}
|
||||||
|
@ -121,7 +124,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
row = this.data[i]; RCALIGN[i] = [];
|
row = this.data[i]; RCALIGN[i] = [];
|
||||||
if (row.rowalign) {RALIGN[i] = row.rowalign}
|
if (row.rowalign) {RALIGN[i] = row.rowalign}
|
||||||
if (row.columnalign) {
|
if (row.columnalign) {
|
||||||
RCALIGN[i] = row.columnalign.split(/ /);
|
RCALIGN[i] = SPLIT(row.columnalign);
|
||||||
while (RCALIGN[i].length <= J) {RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1])}
|
while (RCALIGN[i].length <= J) {RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1])}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -149,8 +152,13 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||||
var fx = 0, fy = 0, fW, fH = HD;
|
var fx = 0, fy = 0, fW, fH = HD;
|
||||||
if (values.frame !== "none" ||
|
if (values.frame !== "none" ||
|
||||||
(values.columnlines+values.rowlines).match(/solid|dashed/)) {
|
(values.columnlines+values.rowlines).match(/solid|dashed/)) {
|
||||||
fx = HTMLCSS.length2em(values.framespacing.split(/[, ]+/)[0],mu);
|
var frameSpacing = SPLIT(values.framespacing);
|
||||||
fy = HTMLCSS.length2em(values.framespacing.split(/[, ]+/)[1],mu);
|
if (frameSpacing.length != 2) {
|
||||||
|
// invalid attribute value: use the default.
|
||||||
|
frameSpacing = SPLIT(this.defaults.framespacing);
|
||||||
|
}
|
||||||
|
fx = HTMLCSS.length2em(frameSpacing[0],mu);
|
||||||
|
fy = HTMLCSS.length2em(frameSpacing[1],mu);
|
||||||
fH = HD + 2*fy; // fW waits until stack.bbox.w is determined
|
fH = HD + 2*fy; // fW waits until stack.bbox.w is determined
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||||
|
/* vim: set ts=2 et sw=2 tw=80: */
|
||||||
/*************************************************************
|
/*************************************************************
|
||||||
*
|
*
|
||||||
* MathJax/jax/output/SVG/autoload/menclose.js
|
* MathJax/jax/output/SVG/autoload/menclose.js
|
||||||
|
@ -108,7 +110,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||||
var p = SVG.length2em(values.padding,mu,1/SVG.em) * scale; // padding for enclosure
|
var p = SVG.length2em(values.padding,mu,1/SVG.em) * scale; // padding for enclosure
|
||||||
var t = SVG.length2em(values.thickness,mu,1/SVG.em); // thickness of lines (not scaled, see issue #414)
|
var t = SVG.length2em(values.thickness,mu,1/SVG.em); // thickness of lines (not scaled, see issue #414)
|
||||||
var H = base.h+p+t, D = base.d+p+t, W = base.w+2*(p+t);
|
var H = base.h+p+t, D = base.d+p+t, W = base.w+2*(p+t);
|
||||||
var notation = values.notation.split(/ /);
|
var notation = MathJax.Hub.SplitList(values.notation);
|
||||||
var dx = 0, w, h, i, m, borders = [false,false,false,false];
|
var dx = 0, w, h, i, m, borders = [false,false,false,false];
|
||||||
if (!values.mathcolor) {values.mathcolor = "black"}
|
if (!values.mathcolor) {values.mathcolor = "black"}
|
||||||
|
|
||||||
|
|
|
@ -91,13 +91,14 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||||
//
|
//
|
||||||
// Determine spacing and alignment
|
// Determine spacing and alignment
|
||||||
//
|
//
|
||||||
var CSPACE = values.columnspacing.split(/ /),
|
var SPLIT = MathJax.Hub.SplitList;
|
||||||
RSPACE = values.rowspacing.split(/ /),
|
var CSPACE = SPLIT(values.columnspacing),
|
||||||
CALIGN = values.columnalign.split(/ /),
|
RSPACE = SPLIT(values.rowspacing),
|
||||||
RALIGN = values.rowalign.split(/ /),
|
CALIGN = SPLIT(values.columnalign),
|
||||||
CLINES = values.columnlines.split(/ /),
|
RALIGN = SPLIT(values.rowalign),
|
||||||
RLINES = values.rowlines.split(/ /),
|
CLINES = SPLIT(values.columnlines),
|
||||||
CWIDTH = values.columnwidth.split(/ /),
|
RLINES = SPLIT(values.rowlines),
|
||||||
|
CWIDTH = SPLIT(values.columnwidth),
|
||||||
RCALIGN = [];
|
RCALIGN = [];
|
||||||
for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = SVG.length2em(CSPACE[i],mu)}
|
for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = SVG.length2em(CSPACE[i],mu)}
|
||||||
for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = SVG.length2em(RSPACE[i],mu)}
|
for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = SVG.length2em(RSPACE[i],mu)}
|
||||||
|
@ -119,7 +120,7 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||||
row = this.data[i]; RCALIGN[i] = [];
|
row = this.data[i]; RCALIGN[i] = [];
|
||||||
if (row.rowalign) {RALIGN[i] = row.rowalign}
|
if (row.rowalign) {RALIGN[i] = row.rowalign}
|
||||||
if (row.columnalign) {
|
if (row.columnalign) {
|
||||||
RCALIGN[i] = row.columnalign.split(/ /);
|
RCALIGN[i] = SPLIT(row.columnalign);
|
||||||
while (RCALIGN[i].length <= J) {RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1])}
|
while (RCALIGN[i].length <= J) {RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1])}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -148,8 +149,13 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||||
var fx = 0, fy = 0, fW, fH = HD;
|
var fx = 0, fy = 0, fW, fH = HD;
|
||||||
if (values.frame !== "none" ||
|
if (values.frame !== "none" ||
|
||||||
(values.columnlines+values.rowlines).match(/solid|dashed/)) {
|
(values.columnlines+values.rowlines).match(/solid|dashed/)) {
|
||||||
fx = SVG.length2em(values.framespacing.split(/[, ]+/)[0],mu);
|
var frameSpacing = SPLIT(values.framespacing);
|
||||||
fy = SVG.length2em(values.framespacing.split(/[, ]+/)[1],mu);
|
if (frameSpacing.length != 2) {
|
||||||
|
// invalid attribute value: use the default.
|
||||||
|
frameSpacing = SPLIT(this.defaults.framespacing);
|
||||||
|
}
|
||||||
|
fx = SVG.length2em(frameSpacing[0],mu);
|
||||||
|
fy = SVG.length2em(frameSpacing[1],mu);
|
||||||
fH = HD + 2*fy; // fW waits until svg.w is determined
|
fH = HD + 2*fy; // fW waits until svg.w is determined
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue
Block a user