Improve MathML for \tag (#1915)

* Improve MathML for \tag

* Make a duplicate pad

* Add TODO

* Add semi-colon
This commit is contained in:
Ron Kok
2019-04-02 09:39:31 -07:00
committed by GitHub
parent 31c02f2976
commit 5d29a28c14
2 changed files with 32 additions and 12 deletions

View File

@@ -4,21 +4,37 @@ import mathMLTree from "../mathMLTree";
import * as mml from "../buildMathML";
const pad = () => {
const padNode = new mathMLTree.MathNode("mtd", []);
padNode.setAttribute("width", "50%");
return padNode;
};
defineFunctionBuilders({
type: "tag",
mathmlBuilder(group, options) {
const table = new mathMLTree.MathNode("mtable", [
new mathMLTree.MathNode("mlabeledtr", [
new mathMLTree.MathNode("mtd", [
mml.buildExpressionRow(group.tag, options),
]),
new mathMLTree.MathNode("mtr", [
pad(),
new mathMLTree.MathNode("mtd", [
mml.buildExpressionRow(group.body, options),
]),
pad(),
new mathMLTree.MathNode("mtd", [
mml.buildExpressionRow(group.tag, options),
]),
]),
]);
table.setAttribute("side", "right");
table.setAttribute("width", "100%");
return table;
// TODO: Left-aligned tags.
// Currently, the group and options passed here do not contain
// enough info to set tag alignment. `leqno` is in Settings but it is
// not passed to Options. On the HTML side, leqno is
// set by a CSS class applied in buildTree.js. That would have worked
// in MathML if browsers supported <mlabeledtr>. Since they don't, we
// need to rewrite the way this function is called.
},
});