90 lines
3.7 KiB
JavaScript
90 lines
3.7 KiB
JavaScript
"use strict";
|
|
var __read = (this && this.__read) || function (o, n) {
|
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
if (!m) return o;
|
|
var i = m.call(o), r, ar = [], e;
|
|
try {
|
|
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
}
|
|
catch (error) { e = { error: error }; }
|
|
finally {
|
|
try {
|
|
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
}
|
|
finally { if (e) throw e.error; }
|
|
}
|
|
return ar;
|
|
};
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.MathtoolsUtil = void 0;
|
|
var BaseItems_js_1 = require("../base/BaseItems.js");
|
|
var ParseUtil_js_1 = __importDefault(require("../ParseUtil.js"));
|
|
var TexParser_js_1 = __importDefault(require("../TexParser.js"));
|
|
var TexError_js_1 = __importDefault(require("../TexError.js"));
|
|
var Symbol_js_1 = require("../Symbol.js");
|
|
var Options_js_1 = require("../../../util/Options.js");
|
|
var MathtoolsMethods_js_1 = require("./MathtoolsMethods.js");
|
|
var MathtoolsConfiguration_js_1 = require("./MathtoolsConfiguration.js");
|
|
exports.MathtoolsUtil = {
|
|
setDisplayLevel: function (mml, style) {
|
|
if (!style)
|
|
return;
|
|
var _a = __read((0, Options_js_1.lookup)(style, {
|
|
'\\displaystyle': [true, 0],
|
|
'\\textstyle': [false, 0],
|
|
'\\scriptstyle': [false, 1],
|
|
'\\scriptscriptstyle': [false, 2]
|
|
}, [null, null]), 2), display = _a[0], script = _a[1];
|
|
if (display !== null) {
|
|
mml.attributes.set('displaystyle', display);
|
|
mml.attributes.set('scriptlevel', script);
|
|
}
|
|
},
|
|
checkAlignment: function (parser, name) {
|
|
var top = parser.stack.Top();
|
|
if (top.kind !== BaseItems_js_1.EqnArrayItem.prototype.kind) {
|
|
throw new TexError_js_1.default('NotInAlignment', '%1 can only be used in aligment environments', name);
|
|
}
|
|
return top;
|
|
},
|
|
addPairedDelims: function (config, cs, args) {
|
|
var delims = config.handlers.retrieve(MathtoolsConfiguration_js_1.PAIREDDELIMS);
|
|
delims.add(cs, new Symbol_js_1.Macro(cs, MathtoolsMethods_js_1.MathtoolsMethods.PairedDelimiters, args));
|
|
},
|
|
spreadLines: function (mtable, spread) {
|
|
if (!mtable.isKind('mtable'))
|
|
return;
|
|
var rowspacing = mtable.attributes.get('rowspacing');
|
|
if (rowspacing) {
|
|
var add_1 = ParseUtil_js_1.default.dimen2em(spread);
|
|
rowspacing = rowspacing
|
|
.split(/ /)
|
|
.map(function (s) { return ParseUtil_js_1.default.Em(Math.max(0, ParseUtil_js_1.default.dimen2em(s) + add_1)); })
|
|
.join(' ');
|
|
}
|
|
else {
|
|
rowspacing = spread;
|
|
}
|
|
mtable.attributes.set('rowspacing', rowspacing);
|
|
},
|
|
plusOrMinus: function (name, n) {
|
|
n = n.trim();
|
|
if (!n.match(/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/)) {
|
|
throw new TexError_js_1.default('NotANumber', 'Argument to %1 is not a number', name);
|
|
}
|
|
return (n.match(/^[-+]/) ? n : '+' + n);
|
|
},
|
|
getScript: function (parser, name, pos) {
|
|
var arg = ParseUtil_js_1.default.trimSpaces(parser.GetArgument(name));
|
|
if (arg === '') {
|
|
return parser.create('node', 'none');
|
|
}
|
|
var format = parser.options.mathtools["prescript-".concat(pos, "-format")];
|
|
format && (arg = "".concat(format, "{").concat(arg, "}"));
|
|
return new TexParser_js_1.default(arg, parser.stack.env, parser.configuration).mml();
|
|
}
|
|
};
|
|
//# sourceMappingURL=MathtoolsUtil.js.map
|