Merge branch 'issue119' into develop

This commit is contained in:
Davide P. Cervone 2012-08-20 10:13:25 -04:00
commit f47dbc4cc0
24 changed files with 77 additions and 55 deletions

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

@ -46,6 +46,10 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
/******************************************************************************/ /******************************************************************************/
TEXDEF.Add({ TEXDEF.Add({
mathchar0mo: {
iiiint: ['2A0C',{texClass: MML.TEXCLASS.OP}]
},
macros: { macros: {
mathring: ['Accent','2DA'], // or 0x30A mathring: ['Accent','2DA'], // or 0x30A
@ -53,14 +57,16 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
negmedspace: ['Spacer',MML.LENGTH.NEGATIVEMEDIUMMATHSPACE], negmedspace: ['Spacer',MML.LENGTH.NEGATIVEMEDIUMMATHSPACE],
negthickspace: ['Spacer',MML.LENGTH.NEGATIVETHICKMATHSPACE], negthickspace: ['Spacer',MML.LENGTH.NEGATIVETHICKMATHSPACE],
intI: ['Macro','\\mathchoice{\\!}{}{}{}\\!\\!\\int'], // intI: ['Macro','\\mathchoice{\\!}{}{}{}\\!\\!\\int'],
// iint: ['MultiIntegral','\\int\\intI'], // now in core TeX input jax // iint: ['MultiIntegral','\\int\\intI'], // now in core TeX input jax
// iiint: ['MultiIntegral','\\int\\intI\\intI'], // now in core TeX input jax // iiint: ['MultiIntegral','\\int\\intI\\intI'], // now in core TeX input jax
iiiint: ['MultiIntegral','\\int\\intI\\intI\\intI'], // iiiint: ['MultiIntegral','\\int\\intI\\intI\\intI'], // now in mathchar0mo above
idotsint: ['MultiIntegral','\\int\\cdots\\int'], idotsint: ['MultiIntegral','\\int\\cdots\\int'],
dddot: ['Macro','\\mathop{#1}\\limits^{\\textstyle \\mathord{.}\\mathord{.}\\mathord{.}}',1], // dddot: ['Macro','\\mathop{#1}\\limits^{\\textstyle \\mathord{.}\\mathord{.}\\mathord{.}}',1],
ddddot: ['Macro','\\mathop{#1}\\limits^{\\textstyle \\mathord{.}\\mathord{.}\\mathord{.}\\mathord{.}}',1], // ddddot: ['Macro','\\mathop{#1}\\limits^{\\textstyle \\mathord{.}\\mathord{.}\\mathord{.}\\mathord{.}}',1],
dddot: ['Accent','20DB'],
ddddot: ['Accent','20DC'],
sideset: ['Macro','\\mathop{\\mathop{\\rlap{\\phantom{#3}}}\\nolimits#1\\!\\mathop{#3}\\nolimits#2}',3], sideset: ['Macro','\\mathop{\\mathop{\\rlap{\\phantom{#3}}}\\nolimits#1\\!\\mathop{#3}\\nolimits#2}',3],

View File

@ -878,18 +878,18 @@
hphantom: ['Phantom',0,1], hphantom: ['Phantom',0,1],
smash: 'Smash', smash: 'Smash',
acute: ['Accent', "02CA"], // or 0301 acute: ['Accent', "00B4"], // or 0301 or 02CA
grave: ['Accent', "02CB"], // or 0300 grave: ['Accent', "0060"], // or 0300 or 02CB
ddot: ['Accent', "00A8"], // or 0308 ddot: ['Accent', "00A8"], // or 0308
tilde: ['Accent', "02DC"], // or 0303 tilde: ['Accent', "007E"], // or 0303 or 02DC
bar: ['Accent', "02C9"], // or 0304 bar: ['Accent', "00AF"], // or 0304 or 02C9
breve: ['Accent', "02D8"], // or 0306 breve: ['Accent', "02D8"], // or 0306
check: ['Accent', "02C7"], // or 030C check: ['Accent', "02C7"], // or 030C
hat: ['Accent', "02C6"], // or 0302 hat: ['Accent', "005E"], // or 0302 or 02C6
vec: ['Accent', "20D7"], vec: ['Accent', "2192"], // or 20D7
dot: ['Accent', "02D9"], // or 0307 dot: ['Accent', "02D9"], // or 0307
widetilde: ['Accent', "02DC",1], // or 0303 widetilde: ['Accent', "007E",1], // or 0303 or 02DC
widehat: ['Accent', "02C6",1], // or 0302 widehat: ['Accent', "005E",1], // or 0302 or 02C6
matrix: 'Matrix', matrix: 'Matrix',
array: 'Matrix', array: 'Matrix',
@ -1205,6 +1205,7 @@
var sup = ""; this.i--; var sup = ""; this.i--;
do {sup += this.PRIME; this.i++, c = this.GetNext()} do {sup += this.PRIME; this.i++, c = this.GetNext()}
while (c === "'" || c === this.SMARTQUOTE); while (c === "'" || c === this.SMARTQUOTE);
sup = ["","\u2032","\u2033","\u2034","\u2057"][sup.length] || sup;
this.Push(STACKITEM.prime(base,this.mmlToken(MML.mo(sup)))); this.Push(STACKITEM.prime(base,this.mmlToken(MML.mo(sup))));
}, },
mi2mo: function (mi) { mi2mo: function (mi) {

View File

@ -204,15 +204,21 @@
0x22E2: "\u2291\u0338", // \not\sqsubseteq 0x22E2: "\u2291\u0338", // \not\sqsubseteq
0x22E3: "\u2292\u0338", // \not\sqsupseteq 0x22E3: "\u2292\u0338", // \not\sqsupseteq
0x2A0C: "\u222C\u222C", // quadruple integral
0x2033: "\u2032\u2032", // double prime 0x2033: "\u2032\u2032", // double prime
0x2034: "\u2032\u2032\u2032", // triple prime 0x2034: "\u2032\u2032\u2032", // triple prime
0x2036: "\u2035\u2035", // double back prime 0x2036: "\u2035\u2035", // double back prime
0x2037: "\u2035\u2035\u2035", // trile back prime 0x2037: "\u2035\u2035\u2035", // trile back prime
0x2057: "\u2032\u2032\u2032\u2032" // quadruple prime 0x2057: "\u2032\u2032\u2032\u2032", // quadruple prime
0x20DB: "...", // combining three dots above (only works with mover/under)
0x20DC: "...." // combining four dots above (only works with mover/under)
}, },
REMAPACCENT: { REMAPACCENT: {
"\u2192":"\u20D7" "\u2192":"\u20D7",
"\u2032":"'",
"\u2035":"`"
}, },
REMAPACCENTUNDER: { REMAPACCENTUNDER: {
}, },

View File

@ -1861,8 +1861,9 @@
} }
}); });
MML.entity.Augment({ MML.entity.Augment({
toHTML: function (span,variant) { toHTML: function (span,variant,remap,chars) {
var text = this.toString().replace(/[\u2061-\u2064]/g,""); // remove invisibles var text = this.toString().replace(/[\u2061-\u2064]/g,""); // remove invisibles
if (remap) {text = remap(text,chars)}
if (variant.fontInherit) { if (variant.fontInherit) {
var scale = Math.floor(100/HTMLCSS.scale+.5) + "%"; var scale = Math.floor(100/HTMLCSS.scale+.5) + "%";
HTMLCSS.addElement(span,"span",{style:{"font-size":scale}},[text]); HTMLCSS.addElement(span,"span",{style:{"font-size":scale}},[text]);
@ -1937,7 +1938,7 @@
// //
// STIX and TeX fonts need quotes from variant font // STIX and TeX fonts need quotes from variant font
// //
if (isScript && text.match(/['`"\u00B4\u2032-\u2037]/)) if (isScript && text.match(/['`"\u00B4\u2032-\u2037\u2057]/))
{variant = HTMLCSS.FONTDATA.VARIANT["-"+HTMLCSS.fontInUse+"-variant"]} {variant = HTMLCSS.FONTDATA.VARIANT["-"+HTMLCSS.fontInUse+"-variant"]}
// //
// Typeset contents // Typeset contents

View File

@ -113,7 +113,7 @@
remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48,
0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F,
0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}},
"-TeX-variant": {fonts:[MAIN]}, "-TeX-variant": {fonts:[MAIN]}, // HACK: to get larger prime for \prime
"-largeOp": {fonts:[SIZE2,SIZE1,MAIN]}, "-largeOp": {fonts:[SIZE2,SIZE1,MAIN]},
"-smallOp": {fonts:[SIZE1,MAIN]} "-smallOp": {fonts:[SIZE1,MAIN]}
}, },
@ -200,15 +200,21 @@
0x22E2: "\u2291\u0338", // \not\sqsubseteq 0x22E2: "\u2291\u0338", // \not\sqsubseteq
0x22E3: "\u2292\u0338", // \not\sqsupseteq 0x22E3: "\u2292\u0338", // \not\sqsupseteq
0x2A0C: "\u222C\u222C", // quadruple integral
0x2033: "\u2032\u2032", // double prime 0x2033: "\u2032\u2032", // double prime
0x2034: "\u2032\u2032\u2032", // triple prime 0x2034: "\u2032\u2032\u2032", // triple prime
0x2036: "\u2035\u2035", // double back prime 0x2036: "\u2035\u2035", // double back prime
0x2037: "\u2035\u2035\u2035", // trile back prime 0x2037: "\u2035\u2035\u2035", // trile back prime
0x2057: "\u2032\u2032\u2032\u2032" // quadruple prime 0x2057: "\u2032\u2032\u2032\u2032", // quadruple prime
0x20DB: "...", // combining three dots above (only works with mover/under)
0x20DC: "...." // combining four dots above (only works with mover/under)
}, },
REMAPACCENT: { REMAPACCENT: {
"\u2192":"\u20D7" "\u2192":"\u20D7",
"\u2032":"'",
"\u2035":"`"
}, },
REMAPACCENTUNDER: { REMAPACCENTUNDER: {
}, },

View File

@ -1235,8 +1235,10 @@
} }
}); });
MML.entity.Augment({ MML.entity.Augment({
toSVG: function (variant,scale) { toSVG: function (variant,scale,remap,chars) {
return this.SVGhandleVariant(variant,scale,this.toString().replace(/[\u2061-\u2064]/g,"")); // remove invisibles var text = this.toString().replace(/[\u2061-\u2064]/g,""); // remove invisibles
if (remap) {text = remap(text,chars)}
return this.SVGhandleVariant(variant,scale,text);
} }
}); });
@ -1267,7 +1269,7 @@
// //
// Primes must come from another font // Primes must come from another font
// //
if (isScript && this.data.join("").match(/['`"\u00B4\u2032-\u2037]/)) if (isScript && this.data.join("").match(/['`"\u00B4\u2032-\u2037\u2057]/))
{variant = SVG.FONTDATA.VARIANT["-TeX-variant"]} {variant = SVG.FONTDATA.VARIANT["-TeX-variant"]}
// //
// Typeset contents // Typeset contents