// @flow | |
import defineFunction, {ordargument} from "../defineFunction"; | |
import buildCommon from "../buildCommon"; | |
import mathMLTree from "../mathMLTree"; | |
import * as html from "../buildHTML"; | |
import * as mml from "../buildMathML"; | |
// \hbox is provided for compatibility with LaTeX \vcenter. | |
// In LaTeX, \vcenter can act only on a box, as in | |
// \vcenter{\hbox{$\frac{a+b}{\dfrac{c}{d}}$}} | |
// This function by itself doesn't do anything but prevent a soft line break. | |
defineFunction({ | |
type: "hbox", | |
names: ["\\hbox"], | |
props: { | |
numArgs: 1, | |
argTypes: ["text"], | |
allowedInText: true, | |
primitive: true, | |
}, | |
handler({parser}, args) { | |
return { | |
type: "hbox", | |
mode: parser.mode, | |
body: ordargument(args[0]), | |
}; | |
}, | |
htmlBuilder(group, options) { | |
const elements = html.buildExpression(group.body, options, false); | |
return buildCommon.makeFragment(elements); | |
}, | |
mathmlBuilder(group, options) { | |
return new mathMLTree.MathNode( | |
"mrow", mml.buildExpression(group.body, options) | |
); | |
}, | |
}); | |