diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js
index 616e43b08..c49710e38 100644
--- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js
+++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js
@@ -32,20 +32,28 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
MML.mmultiscripts.Augment({
toCommonHTML: function (node,stretch) {
- node = this.CHTMLcreateNode(node);
- this.CHTMLhandleStyle(node);
- this.CHTMLhandleScale(node);
- this.CHTMLgetVariant();
+ if (!stretch) {
+ node = this.CHTMLcreateNode(node);
+ this.CHTMLhandleStyle(node);
+ this.CHTMLhandleScale(node);
+ this.CHTMLgetVariant();
+ }
CHTML.BBOX.empty(this.CHTML);
//
// Get base node
//
- this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true});
- var base = node.firstChild, bbox = this.CHTMLbboxFor(0);
+ var base, bbox;
+ if (stretch) {
+ base = node.getElementsByTagName("mjx-base")[0];
+ } else {
+ this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true});
+ base = node.firstChild;
+ }
+ bbox = this.CHTMLbboxFor(0);
if (bbox.ic) {
bbox.R -= bbox.ic; // remove IC (added by mo and mi)
- base.style.marginRight = CHTML.Em(-bbox.ic);
+ if (!stretch) base.style.marginRight = CHTML.Em(-bbox.ic);
delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results
}
@@ -53,10 +61,10 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
// Collect scripts into horizontal boxes and add them into the node
//
var BOX = {}, BBOX = {};
- this.CHTMLgetScripts(BOX,BBOX,stretch);
+ this.CHTMLgetScripts(BOX,BBOX,stretch,node);
var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup;
var sbox = BBOX.sub, Sbox = BBOX.sup, pbox = BBOX.presub, Pbox = BBOX.presup;
- this.CHTMLaddBoxes(node,base,BOX);
+ if (!stretch) this.CHTMLaddBoxes(node,base,BOX);
//
// Get the initial values for the variables
@@ -127,7 +135,19 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
// Get the subscript, superscript, presubscript, and presuperscript
// boxes, with proper spacing, and computer their bounding boxes.
//
- CHTMLgetScripts: function (BOX,BBOX,stretch) {
+ CHTMLgetScripts: function (BOX,BBOX,stretch,node) {
+ if (stretch) {
+ BOX.sub = node.getElementsByTagName("mjx-sub")[0];
+ BOX.sup = node.getElementsByTagName("mjx-sup")[0];
+ BOX.presub = node.getElementsByTagName("mjx-presub")[0];
+ BOX.presup = node.getElementsByTagName("mjx-presup")[0];
+ BBOX.sub = this.CHTMLbbox.sub;
+ BBOX.sup = this.CHTMLbbox.sup;
+ BBOX.presub = this.CHTMLbbox.presub;
+ BBOX.presup = this.CHTMLbbox.presup;
+ return;
+ }
+ this.CHTMLbbox = BBOX; // save for when stretched
var state = {i:1, w:0, BOX:BOX, BBOX:BBOX}, m = this.data.length;
var sub = "sub", sup = "sup";
while (state.i < m) {