From 47928642a20f4b615df4ffb0202420199a2dabf2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 13:09:49 -0400 Subject: [PATCH] Add support for displayIndent and displayAlign --- unpacked/jax/output/CommonHTML/jax.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index a5330ac53..48ad79c2e 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -184,7 +184,7 @@ var BIGDIMEN = 1000000; var V = "V", H = "H"; - var LINEBREAKS = {}; + var LINEBREAKS = {}, CONFIG = MathJax.Hub.config; CHTML.Augment({ settings: HUB.config.menuSettings, @@ -1564,6 +1564,28 @@ if (this.CHTML.pwidth) { node.parentNode.style.width = this.CHTML.pwidth; node.parentNode.style.minWidth = this.CHTML.mwidth; + } else if (!this.isMultiline && this.Get("display") === "block") { + var values = this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift"); + if (values.indentalignfirst !== MML.INDENTALIGN.INDENTALIGN) values.indentalign = values.indentalignfirst; + if (values.indentalign === MML.INDENTALIGN.AUTO) values.indentalign = CONFIG.displayAlign; + if (values.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) values.indentshift = values.indentshiftfirst; + if (values.indentshift === "auto") values.indentshift = "0"; + var shift = CHTML.length2em(values.indentshift,CHTML.cwidth); + if (CONFIG.displayIndent !== "0") { + var indent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + shift += (values.indentalign === MML.INDENTALIGN.RIGHT ? -indent : indent); + } + var styles = node.parentNode.parentNode.style; + styles.textAlign = values.indentalign; + // ### FIXME: make percentage widths respond to changes in container + if (shift) { + shift *= CHTML.em/CHTML.outerEm; + HUB.Insert(styles,({ + left: {marginLeft: CHTML.Em(shift)}, + right: {marginLeft: CHTML.Em(Math.max(0,this.CHTML.w+shift)), marginRight: CHTML.Em(-shift)}, + center: {marginLeft: CHTML.Em(shift), marginRight: CHTML.Em(-shift)} + })[values.indentalign]); + } } return node; }