add initial marp implementation with sample content and build configuration
This commit is contained in:
197
node_modules/mathjax-full/ts/input/tex/base/BaseConfiguration.ts
generated
vendored
Normal file
197
node_modules/mathjax-full/ts/input/tex/base/BaseConfiguration.ts
generated
vendored
Normal file
@@ -0,0 +1,197 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* Copyright (c) 2018-2022 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @fileoverview Configuration for the Base LaTeX parser.
|
||||
*
|
||||
* @author v.sorge@mathjax.org (Volker Sorge)
|
||||
*/
|
||||
|
||||
import {Configuration} from '../Configuration.js';
|
||||
import {MapHandler} from '../MapHandler.js';
|
||||
import TexError from '../TexError.js';
|
||||
import NodeUtil from '../NodeUtil.js';
|
||||
import TexParser from '../TexParser.js';
|
||||
import {CharacterMap} from '../SymbolMap.js';
|
||||
import * as bitem from './BaseItems.js';
|
||||
import {AbstractTags} from '../Tags.js';
|
||||
import './BaseMappings.js';
|
||||
import {getRange} from '../../../core/MmlTree/OperatorDictionary.js';
|
||||
import {MmlNode} from '../../../core/MmlTree/MmlNode.js';
|
||||
import ParseOptions from '../ParseOptions.js';
|
||||
|
||||
/**
|
||||
* Remapping some ASCII characters to their Unicode operator equivalent.
|
||||
*/
|
||||
new CharacterMap('remap', null, {
|
||||
'-': '\u2212',
|
||||
'*': '\u2217',
|
||||
'`': '\u2018' // map ` to back quote
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Default handling of characters (as <mo> elements).
|
||||
* @param {TexParser} parser The calling parser.
|
||||
* @param {string} char The character to parse.
|
||||
*/
|
||||
export function Other(parser: TexParser, char: string) {
|
||||
const font = parser.stack.env['font'];
|
||||
let def = font ?
|
||||
// @test Other Font
|
||||
{mathvariant: parser.stack.env['font']} : {};
|
||||
const remap = (MapHandler.getMap('remap') as CharacterMap).lookup(char);
|
||||
const range = getRange(char);
|
||||
const type = (range ? range[3] : 'mo');
|
||||
// @test Other
|
||||
// @test Other Remap
|
||||
let mo = parser.create('token', type, def, (remap ? remap.char : char));
|
||||
range[4] && mo.attributes.set('mathvariant', range[4]);
|
||||
if (type === 'mo') {
|
||||
NodeUtil.setProperty(mo, 'fixStretchy', true);
|
||||
parser.configuration.addNode('fixStretchy', mo);
|
||||
}
|
||||
parser.Push(mo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handle undefined control sequence.
|
||||
* @param {TexParser} parser The calling parser.
|
||||
* @param {string} name The name of the control sequence.
|
||||
*/
|
||||
function csUndefined(_parser: TexParser, name: string) {
|
||||
// @test Undefined-CS
|
||||
throw new TexError('UndefinedControlSequence',
|
||||
'Undefined control sequence %1', '\\' + name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handle undefined environments.
|
||||
* @param {TexParser} parser The calling parser.
|
||||
* @param {string} name The name of the control sequence.
|
||||
*/
|
||||
function envUndefined(_parser: TexParser, env: string) {
|
||||
// @test Undefined-Env
|
||||
throw new TexError('UnknownEnv', 'Unknown environment \'%1\'', env);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter for removing spacing following \nonscript
|
||||
* @param{ParseOptions} data The active tex parser.
|
||||
*/
|
||||
function filterNonscript({data}: {data: ParseOptions}) {
|
||||
for (const mml of data.getList('nonscript')) {
|
||||
//
|
||||
// This is the list of mspace elements or mrow > mstyle > mspace
|
||||
// that followed \nonscript macros to be tested for removal.
|
||||
//
|
||||
if (mml.attributes.get('scriptlevel') > 0) {
|
||||
//
|
||||
// The mspace needs to be removed, since we are in a script style.
|
||||
// Remove it from the DOM and from the list of mspace elements.
|
||||
//
|
||||
const parent = mml.parent;
|
||||
parent.childNodes.splice(parent.childIndex(mml), 1);
|
||||
data.removeFromList(mml.kind, [mml]);
|
||||
//
|
||||
// If it is an mrow > mstyle > mspace, then we have just
|
||||
// removed the mrow from its list, and must remove
|
||||
// the mstyle and mspace from their lists as well.
|
||||
//
|
||||
if (mml.isKind('mrow')) {
|
||||
const mstyle = mml.childNodes[0] as MmlNode;
|
||||
data.removeFromList('mstyle', [mstyle]);
|
||||
data.removeFromList('mspace', mstyle.childNodes[0].childNodes as MmlNode[]);
|
||||
}
|
||||
} else if (mml.isKind('mrow')) {
|
||||
//
|
||||
// This is an mrow > mstyle > mspace but we're not in a script
|
||||
// style, so remove the mrow that we had added in the NonscriptItem.
|
||||
//
|
||||
mml.parent.replaceChild(mml.childNodes[0], mml);
|
||||
data.removeFromList('mrow', [mml]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {AbstractTags}
|
||||
*/
|
||||
export class BaseTags extends AbstractTags { }
|
||||
|
||||
|
||||
/**
|
||||
* The base configuration.
|
||||
* @type {Configuration}
|
||||
*/
|
||||
export const BaseConfiguration: Configuration = Configuration.create(
|
||||
'base', {
|
||||
handler: {
|
||||
character: ['command', 'special', 'letter', 'digit'],
|
||||
delimiter: ['delimiter'],
|
||||
// Note, that the position of the delimiters here is important!
|
||||
macro: ['delimiter', 'macros', 'mathchar0mi', 'mathchar0mo', 'mathchar7'],
|
||||
environment: ['environment']
|
||||
},
|
||||
fallback: {
|
||||
character: Other,
|
||||
macro: csUndefined,
|
||||
environment: envUndefined
|
||||
},
|
||||
items: {
|
||||
// BaseItems
|
||||
[bitem.StartItem.prototype.kind]: bitem.StartItem,
|
||||
[bitem.StopItem.prototype.kind]: bitem.StopItem,
|
||||
[bitem.OpenItem.prototype.kind]: bitem.OpenItem,
|
||||
[bitem.CloseItem.prototype.kind]: bitem.CloseItem,
|
||||
[bitem.PrimeItem.prototype.kind]: bitem.PrimeItem,
|
||||
[bitem.SubsupItem.prototype.kind]: bitem.SubsupItem,
|
||||
[bitem.OverItem.prototype.kind]: bitem.OverItem,
|
||||
[bitem.LeftItem.prototype.kind]: bitem.LeftItem,
|
||||
[bitem.Middle.prototype.kind]: bitem.Middle,
|
||||
[bitem.RightItem.prototype.kind]: bitem.RightItem,
|
||||
[bitem.BeginItem.prototype.kind]: bitem.BeginItem,
|
||||
[bitem.EndItem.prototype.kind]: bitem.EndItem,
|
||||
[bitem.StyleItem.prototype.kind]: bitem.StyleItem,
|
||||
[bitem.PositionItem.prototype.kind]: bitem.PositionItem,
|
||||
[bitem.CellItem.prototype.kind]: bitem.CellItem,
|
||||
[bitem.MmlItem.prototype.kind]: bitem.MmlItem,
|
||||
[bitem.FnItem.prototype.kind]: bitem.FnItem,
|
||||
[bitem.NotItem.prototype.kind]: bitem.NotItem,
|
||||
[bitem.NonscriptItem.prototype.kind]: bitem.NonscriptItem,
|
||||
[bitem.DotsItem.prototype.kind]: bitem.DotsItem,
|
||||
[bitem.ArrayItem.prototype.kind]: bitem.ArrayItem,
|
||||
[bitem.EqnArrayItem.prototype.kind]: bitem.EqnArrayItem,
|
||||
[bitem.EquationItem.prototype.kind]: bitem.EquationItem
|
||||
},
|
||||
options: {
|
||||
maxMacros: 1000,
|
||||
baseURL: (typeof(document) === 'undefined' ||
|
||||
document.getElementsByTagName('base').length === 0) ?
|
||||
'' : String(document.location).replace(/#.*$/, '')
|
||||
},
|
||||
tags: {
|
||||
base: BaseTags
|
||||
},
|
||||
postprocessors: [[filterNonscript, -4]]
|
||||
}
|
||||
);
|
||||
1242
node_modules/mathjax-full/ts/input/tex/base/BaseItems.ts
generated
vendored
Normal file
1242
node_modules/mathjax-full/ts/input/tex/base/BaseItems.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
760
node_modules/mathjax-full/ts/input/tex/base/BaseMappings.ts
generated
vendored
Normal file
760
node_modules/mathjax-full/ts/input/tex/base/BaseMappings.ts
generated
vendored
Normal file
@@ -0,0 +1,760 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* Copyright (c) 2017-2022 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @fileoverview Base mappings for TeX Parsing.
|
||||
*
|
||||
* @author v.sorge@mathjax.org (Volker Sorge)
|
||||
*/
|
||||
|
||||
import * as sm from '../SymbolMap.js';
|
||||
import {TexConstant} from '../TexConstants.js';
|
||||
import BaseMethods from './BaseMethods.js';
|
||||
import ParseMethods from '../ParseMethods.js';
|
||||
import ParseUtil from '../ParseUtil.js';
|
||||
import {TEXCLASS} from '../../../core/MmlTree/MmlNode.js';
|
||||
import {MATHSPACE, em} from '../../../util/lengths.js';
|
||||
|
||||
|
||||
/**
|
||||
* Letter pattern for parsing identifiers and operators.
|
||||
*/
|
||||
new sm.RegExpMap('letter', ParseMethods.variable, /[a-z]/i);
|
||||
|
||||
|
||||
/**
|
||||
* Digit pattern for parsing numbers.
|
||||
*/
|
||||
new sm.RegExpMap('digit', ParseMethods.digit, /[0-9.,]/);
|
||||
|
||||
|
||||
/**
|
||||
* Pattern for spotting start of commands.
|
||||
*/
|
||||
new sm.RegExpMap('command', ParseMethods.controlSequence, /^\\/ );
|
||||
|
||||
|
||||
/**
|
||||
* Treatment of special characters in LaTeX.
|
||||
*/
|
||||
new sm.MacroMap('special', {
|
||||
|
||||
// This is now handled with a RegExp!
|
||||
// '\\': 'ControlSequence',
|
||||
|
||||
'{': 'Open',
|
||||
'}': 'Close',
|
||||
'~': 'Tilde',
|
||||
'^': 'Superscript',
|
||||
'_': 'Subscript',
|
||||
' ': 'Space',
|
||||
'\t': 'Space',
|
||||
'\r': 'Space',
|
||||
'\n': 'Space',
|
||||
'\'': 'Prime',
|
||||
'%': 'Comment',
|
||||
'&': 'Entry',
|
||||
'#': 'Hash',
|
||||
'\u00A0': 'Space',
|
||||
'\u2019': 'Prime'
|
||||
}, BaseMethods);
|
||||
|
||||
|
||||
/**
|
||||
* Macros for identifiers.
|
||||
*/
|
||||
new sm.CharacterMap('mathchar0mi', ParseMethods.mathchar0mi, {
|
||||
// Lower-case greek
|
||||
alpha: '\u03B1',
|
||||
beta: '\u03B2',
|
||||
gamma: '\u03B3',
|
||||
delta: '\u03B4',
|
||||
epsilon: '\u03F5',
|
||||
zeta: '\u03B6',
|
||||
eta: '\u03B7',
|
||||
theta: '\u03B8',
|
||||
iota: '\u03B9',
|
||||
kappa: '\u03BA',
|
||||
lambda: '\u03BB',
|
||||
mu: '\u03BC',
|
||||
nu: '\u03BD',
|
||||
xi: '\u03BE',
|
||||
omicron: '\u03BF', // added for completeness
|
||||
pi: '\u03C0',
|
||||
rho: '\u03C1',
|
||||
sigma: '\u03C3',
|
||||
tau: '\u03C4',
|
||||
upsilon: '\u03C5',
|
||||
phi: '\u03D5',
|
||||
chi: '\u03C7',
|
||||
psi: '\u03C8',
|
||||
omega: '\u03C9',
|
||||
varepsilon: '\u03B5',
|
||||
vartheta: '\u03D1',
|
||||
varpi: '\u03D6',
|
||||
varrho: '\u03F1',
|
||||
varsigma: '\u03C2',
|
||||
varphi: '\u03C6',
|
||||
|
||||
// Ord symbols
|
||||
S: ['\u00A7', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
aleph: ['\u2135', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
hbar: ['\u210F', {variantForm: true}],
|
||||
imath: '\u0131',
|
||||
jmath: '\u0237',
|
||||
ell: '\u2113',
|
||||
wp: ['\u2118', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
Re: ['\u211C', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
Im: ['\u2111', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
partial: ['\u2202', {mathvariant: TexConstant.Variant.ITALIC}],
|
||||
infty: ['\u221E', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
prime: ['\u2032', {variantForm: true}],
|
||||
emptyset: ['\u2205', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
nabla: ['\u2207', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
top: ['\u22A4', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
bot: ['\u22A5', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
angle: ['\u2220', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
triangle: ['\u25B3', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
backslash: ['\u2216', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
forall: ['\u2200', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
exists: ['\u2203', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
neg: ['\u00AC', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
lnot: ['\u00AC', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
flat: ['\u266D', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
natural: ['\u266E', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
sharp: ['\u266F', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
clubsuit: ['\u2663', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
diamondsuit: ['\u2662', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
heartsuit: ['\u2661', {mathvariant: TexConstant.Variant.NORMAL}],
|
||||
spadesuit: ['\u2660', {mathvariant: TexConstant.Variant.NORMAL}]
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Macros for operators.
|
||||
*/
|
||||
new sm.CharacterMap('mathchar0mo', ParseMethods.mathchar0mo, {
|
||||
surd: '\u221A',
|
||||
|
||||
// big ops
|
||||
coprod: ['\u2210', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigvee: ['\u22C1', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigwedge: ['\u22C0', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
biguplus: ['\u2A04', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigcap: ['\u22C2', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigcup: ['\u22C3', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
'int': ['\u222B', {texClass: TEXCLASS.OP}],
|
||||
intop: ['\u222B', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true, movablelimits: true}],
|
||||
iint: ['\u222C', {texClass: TEXCLASS.OP}],
|
||||
iiint: ['\u222D', {texClass: TEXCLASS.OP}],
|
||||
prod: ['\u220F', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
sum: ['\u2211', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigotimes: ['\u2A02', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigoplus: ['\u2A01', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
bigodot: ['\u2A00', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
oint: ['\u222E', {texClass: TEXCLASS.OP}],
|
||||
bigsqcup: ['\u2A06', {texClass: TEXCLASS.OP,
|
||||
movesupsub: true}],
|
||||
smallint: ['\u222B', {largeop: false}],
|
||||
|
||||
// binary operations
|
||||
triangleleft: '\u25C3',
|
||||
triangleright: '\u25B9',
|
||||
bigtriangleup: '\u25B3',
|
||||
bigtriangledown: '\u25BD',
|
||||
wedge: '\u2227',
|
||||
land: '\u2227',
|
||||
vee: '\u2228',
|
||||
lor: '\u2228',
|
||||
cap: '\u2229',
|
||||
cup: '\u222A',
|
||||
ddagger: '\u2021',
|
||||
dagger: '\u2020',
|
||||
sqcap: '\u2293',
|
||||
sqcup: '\u2294',
|
||||
uplus: '\u228E',
|
||||
amalg: '\u2A3F',
|
||||
diamond: '\u22C4',
|
||||
bullet: '\u2219',
|
||||
wr: '\u2240',
|
||||
div: '\u00F7',
|
||||
divsymbol: '\u00F7',
|
||||
odot: ['\u2299', {largeop: false}],
|
||||
oslash: ['\u2298', {largeop: false}],
|
||||
otimes: ['\u2297', {largeop: false}],
|
||||
ominus: ['\u2296', {largeop: false}],
|
||||
oplus: ['\u2295', {largeop: false}],
|
||||
mp: '\u2213',
|
||||
pm: '\u00B1',
|
||||
circ: '\u2218',
|
||||
bigcirc: '\u25EF',
|
||||
setminus: '\u2216',
|
||||
cdot: '\u22C5',
|
||||
ast: '\u2217',
|
||||
times: '\u00D7',
|
||||
star: '\u22C6',
|
||||
|
||||
|
||||
// Relations
|
||||
propto: '\u221D',
|
||||
sqsubseteq: '\u2291',
|
||||
sqsupseteq: '\u2292',
|
||||
parallel: '\u2225',
|
||||
mid: '\u2223',
|
||||
dashv: '\u22A3',
|
||||
vdash: '\u22A2',
|
||||
leq: '\u2264',
|
||||
le: '\u2264',
|
||||
geq: '\u2265',
|
||||
ge: '\u2265',
|
||||
lt: '\u003C',
|
||||
gt: '\u003E',
|
||||
succ: '\u227B',
|
||||
prec: '\u227A',
|
||||
approx: '\u2248',
|
||||
succeq: '\u2AB0', // or '227C',
|
||||
preceq: '\u2AAF', // or '227D',
|
||||
supset: '\u2283',
|
||||
subset: '\u2282',
|
||||
supseteq: '\u2287',
|
||||
subseteq: '\u2286',
|
||||
'in': '\u2208',
|
||||
ni: '\u220B',
|
||||
notin: '\u2209',
|
||||
owns: '\u220B',
|
||||
gg: '\u226B',
|
||||
ll: '\u226A',
|
||||
sim: '\u223C',
|
||||
simeq: '\u2243',
|
||||
perp: '\u22A5',
|
||||
equiv: '\u2261',
|
||||
asymp: '\u224D',
|
||||
smile: '\u2323',
|
||||
frown: '\u2322',
|
||||
ne: '\u2260',
|
||||
neq: '\u2260',
|
||||
cong: '\u2245',
|
||||
doteq: '\u2250',
|
||||
bowtie: '\u22C8',
|
||||
models: '\u22A8',
|
||||
|
||||
notChar: '\u29F8',
|
||||
|
||||
|
||||
// Arrows
|
||||
Leftrightarrow: '\u21D4',
|
||||
Leftarrow: '\u21D0',
|
||||
Rightarrow: '\u21D2',
|
||||
leftrightarrow: '\u2194',
|
||||
leftarrow: '\u2190',
|
||||
gets: '\u2190',
|
||||
rightarrow: '\u2192',
|
||||
to: ['\u2192', {accent: false}],
|
||||
mapsto: '\u21A6',
|
||||
leftharpoonup: '\u21BC',
|
||||
leftharpoondown: '\u21BD',
|
||||
rightharpoonup: '\u21C0',
|
||||
rightharpoondown: '\u21C1',
|
||||
nearrow: '\u2197',
|
||||
searrow: '\u2198',
|
||||
nwarrow: '\u2196',
|
||||
swarrow: '\u2199',
|
||||
rightleftharpoons: '\u21CC',
|
||||
hookrightarrow: '\u21AA',
|
||||
hookleftarrow: '\u21A9',
|
||||
longleftarrow: '\u27F5',
|
||||
Longleftarrow: '\u27F8',
|
||||
longrightarrow: '\u27F6',
|
||||
Longrightarrow: '\u27F9',
|
||||
Longleftrightarrow: '\u27FA',
|
||||
longleftrightarrow: '\u27F7',
|
||||
longmapsto: '\u27FC',
|
||||
|
||||
|
||||
// Misc.
|
||||
ldots: '\u2026',
|
||||
cdots: '\u22EF',
|
||||
vdots: '\u22EE',
|
||||
ddots: '\u22F1',
|
||||
dotsc: '\u2026', // dots with commas
|
||||
dotsb: '\u22EF', // dots with binary ops and relations
|
||||
dotsm: '\u22EF', // dots with multiplication
|
||||
dotsi: '\u22EF', // dots with integrals
|
||||
dotso: '\u2026', // other dots
|
||||
|
||||
ldotp: ['\u002E', {texClass: TEXCLASS.PUNCT}],
|
||||
cdotp: ['\u22C5', {texClass: TEXCLASS.PUNCT}],
|
||||
colon: ['\u003A', {texClass: TEXCLASS.PUNCT}]
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Macros for special characters and identifiers.
|
||||
*/
|
||||
new sm.CharacterMap('mathchar7', ParseMethods.mathchar7, {
|
||||
Gamma: '\u0393',
|
||||
Delta: '\u0394',
|
||||
Theta: '\u0398',
|
||||
Lambda: '\u039B',
|
||||
Xi: '\u039E',
|
||||
Pi: '\u03A0',
|
||||
Sigma: '\u03A3',
|
||||
Upsilon: '\u03A5',
|
||||
Phi: '\u03A6',
|
||||
Psi: '\u03A8',
|
||||
Omega: '\u03A9',
|
||||
|
||||
'_': '\u005F',
|
||||
'#': '\u0023',
|
||||
'$': '\u0024',
|
||||
'%': '\u0025',
|
||||
'&': '\u0026',
|
||||
And: '\u0026'
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Macros for delimiters.
|
||||
*/
|
||||
new sm.DelimiterMap('delimiter', ParseMethods.delimiter, {
|
||||
'(': '(',
|
||||
')': ')',
|
||||
'[': '[',
|
||||
']': ']',
|
||||
'<': '\u27E8',
|
||||
'>': '\u27E9',
|
||||
'\\lt': '\u27E8',
|
||||
'\\gt': '\u27E9',
|
||||
'/': '/',
|
||||
'|': ['|', {texClass: TEXCLASS.ORD}],
|
||||
'.': '',
|
||||
'\\\\': '\\',
|
||||
'\\lmoustache': '\u23B0', // non-standard
|
||||
'\\rmoustache': '\u23B1', // non-standard
|
||||
'\\lgroup': '\u27EE', // non-standard
|
||||
'\\rgroup': '\u27EF', // non-standard
|
||||
'\\arrowvert': '\u23D0',
|
||||
'\\Arrowvert': '\u2016',
|
||||
'\\bracevert': '\u23AA', // non-standard
|
||||
'\\Vert': ['\u2016', {texClass: TEXCLASS.ORD}],
|
||||
'\\|': ['\u2016', {texClass: TEXCLASS.ORD}],
|
||||
'\\vert': ['|', {texClass: TEXCLASS.ORD}],
|
||||
'\\uparrow': '\u2191',
|
||||
'\\downarrow': '\u2193',
|
||||
'\\updownarrow': '\u2195',
|
||||
'\\Uparrow': '\u21D1',
|
||||
'\\Downarrow': '\u21D3',
|
||||
'\\Updownarrow': '\u21D5',
|
||||
'\\backslash': '\\',
|
||||
'\\rangle': '\u27E9',
|
||||
'\\langle': '\u27E8',
|
||||
'\\rbrace': '}',
|
||||
'\\lbrace': '{',
|
||||
'\\}': '}',
|
||||
'\\{': '{',
|
||||
'\\rceil': '\u2309',
|
||||
'\\lceil': '\u2308',
|
||||
'\\rfloor': '\u230B',
|
||||
'\\lfloor': '\u230A',
|
||||
'\\lbrack': '[',
|
||||
'\\rbrack': ']'
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Macros for LaTeX commands.
|
||||
*/
|
||||
new sm.CommandMap('macros', {
|
||||
displaystyle: ['SetStyle', 'D', true, 0],
|
||||
textstyle: ['SetStyle', 'T', false, 0],
|
||||
scriptstyle: ['SetStyle', 'S', false, 1],
|
||||
scriptscriptstyle: ['SetStyle', 'SS', false, 2],
|
||||
|
||||
rm: ['SetFont', TexConstant.Variant.NORMAL],
|
||||
mit: ['SetFont', TexConstant.Variant.ITALIC],
|
||||
oldstyle: ['SetFont', TexConstant.Variant.OLDSTYLE],
|
||||
cal: ['SetFont', TexConstant.Variant.CALLIGRAPHIC],
|
||||
it: ['SetFont', TexConstant.Variant.MATHITALIC], // needs special handling
|
||||
bf: ['SetFont', TexConstant.Variant.BOLD],
|
||||
bbFont: ['SetFont', TexConstant.Variant.DOUBLESTRUCK],
|
||||
scr: ['SetFont', TexConstant.Variant.SCRIPT],
|
||||
frak: ['SetFont', TexConstant.Variant.FRAKTUR],
|
||||
sf: ['SetFont', TexConstant.Variant.SANSSERIF],
|
||||
tt: ['SetFont', TexConstant.Variant.MONOSPACE],
|
||||
|
||||
mathrm: ['MathFont', TexConstant.Variant.NORMAL],
|
||||
mathup: ['MathFont', TexConstant.Variant.NORMAL],
|
||||
mathnormal: ['MathFont', ''],
|
||||
mathbf: ['MathFont', TexConstant.Variant.BOLD],
|
||||
mathbfup: ['MathFont', TexConstant.Variant.BOLD],
|
||||
mathit: ['MathFont', TexConstant.Variant.MATHITALIC],
|
||||
mathbfit: ['MathFont', TexConstant.Variant.BOLDITALIC],
|
||||
mathbb: ['MathFont', TexConstant.Variant.DOUBLESTRUCK],
|
||||
Bbb: ['MathFont', TexConstant.Variant.DOUBLESTRUCK],
|
||||
mathfrak: ['MathFont', TexConstant.Variant.FRAKTUR],
|
||||
mathbffrak: ['MathFont', TexConstant.Variant.BOLDFRAKTUR],
|
||||
mathscr: ['MathFont', TexConstant.Variant.SCRIPT],
|
||||
mathbfscr: ['MathFont', TexConstant.Variant.BOLDSCRIPT],
|
||||
mathsf: ['MathFont', TexConstant.Variant.SANSSERIF],
|
||||
mathsfup: ['MathFont', TexConstant.Variant.SANSSERIF],
|
||||
mathbfsf: ['MathFont', TexConstant.Variant.BOLDSANSSERIF],
|
||||
mathbfsfup: ['MathFont', TexConstant.Variant.BOLDSANSSERIF],
|
||||
mathsfit: ['MathFont', TexConstant.Variant.SANSSERIFITALIC],
|
||||
mathbfsfit: ['MathFont', TexConstant.Variant.SANSSERIFBOLDITALIC],
|
||||
mathtt: ['MathFont', TexConstant.Variant.MONOSPACE],
|
||||
mathcal: ['MathFont', TexConstant.Variant.CALLIGRAPHIC],
|
||||
mathbfcal: ['MathFont', TexConstant.Variant.BOLDCALLIGRAPHIC],
|
||||
|
||||
symrm: ['MathFont', TexConstant.Variant.NORMAL],
|
||||
symup: ['MathFont', TexConstant.Variant.NORMAL],
|
||||
symnormal: ['MathFont', ''],
|
||||
symbf: ['MathFont', TexConstant.Variant.BOLD],
|
||||
symbfup: ['MathFont', TexConstant.Variant.BOLD],
|
||||
symit: ['MathFont', TexConstant.Variant.ITALIC],
|
||||
symbfit: ['MathFont', TexConstant.Variant.BOLDITALIC],
|
||||
symbb: ['MathFont', TexConstant.Variant.DOUBLESTRUCK],
|
||||
symfrak: ['MathFont', TexConstant.Variant.FRAKTUR],
|
||||
symbffrak: ['MathFont', TexConstant.Variant.BOLDFRAKTUR],
|
||||
symscr: ['MathFont', TexConstant.Variant.SCRIPT],
|
||||
symbfscr: ['MathFont', TexConstant.Variant.BOLDSCRIPT],
|
||||
symsf: ['MathFont', TexConstant.Variant.SANSSERIF],
|
||||
symsfup: ['MathFont', TexConstant.Variant.SANSSERIF],
|
||||
symbfsf: ['MathFont', TexConstant.Variant.BOLDSANSSERIF],
|
||||
symbfsfup: ['MathFont', TexConstant.Variant.BOLDSANSSERIF],
|
||||
symsfit: ['MathFont', TexConstant.Variant.SANSSERIFITALIC],
|
||||
symbfsfit: ['MathFont', TexConstant.Variant.SANSSERIFBOLDITALIC],
|
||||
symtt: ['MathFont', TexConstant.Variant.MONOSPACE],
|
||||
symcal: ['MathFont', TexConstant.Variant.CALLIGRAPHIC],
|
||||
symbfcal: ['MathFont', TexConstant.Variant.BOLDCALLIGRAPHIC],
|
||||
|
||||
textrm: ['HBox', null, TexConstant.Variant.NORMAL],
|
||||
textup: ['HBox', null, TexConstant.Variant.NORMAL],
|
||||
textnormal: ['HBox'],
|
||||
textit: ['HBox', null, TexConstant.Variant.ITALIC],
|
||||
textbf: ['HBox', null, TexConstant.Variant.BOLD],
|
||||
textsf: ['HBox', null, TexConstant.Variant.SANSSERIF],
|
||||
texttt: ['HBox', null, TexConstant.Variant.MONOSPACE],
|
||||
|
||||
tiny: ['SetSize', 0.5],
|
||||
Tiny: ['SetSize', 0.6], // non-standard
|
||||
scriptsize: ['SetSize', 0.7],
|
||||
small: ['SetSize', 0.85],
|
||||
normalsize: ['SetSize', 1.0],
|
||||
large: ['SetSize', 1.2],
|
||||
Large: ['SetSize', 1.44],
|
||||
LARGE: ['SetSize', 1.73],
|
||||
huge: ['SetSize', 2.07],
|
||||
Huge: ['SetSize', 2.49],
|
||||
|
||||
arcsin: 'NamedFn',
|
||||
arccos: 'NamedFn',
|
||||
arctan: 'NamedFn',
|
||||
arg: 'NamedFn',
|
||||
cos: 'NamedFn',
|
||||
cosh: 'NamedFn',
|
||||
cot: 'NamedFn',
|
||||
coth: 'NamedFn',
|
||||
csc: 'NamedFn',
|
||||
deg: 'NamedFn',
|
||||
det: 'NamedOp',
|
||||
dim: 'NamedFn',
|
||||
exp: 'NamedFn',
|
||||
gcd: 'NamedOp',
|
||||
hom: 'NamedFn',
|
||||
inf: 'NamedOp',
|
||||
ker: 'NamedFn',
|
||||
lg: 'NamedFn',
|
||||
lim: 'NamedOp',
|
||||
liminf: ['NamedOp', 'lim inf'],
|
||||
limsup: ['NamedOp', 'lim sup'],
|
||||
ln: 'NamedFn',
|
||||
log: 'NamedFn',
|
||||
max: 'NamedOp',
|
||||
min: 'NamedOp',
|
||||
Pr: 'NamedOp',
|
||||
sec: 'NamedFn',
|
||||
sin: 'NamedFn',
|
||||
sinh: 'NamedFn',
|
||||
sup: 'NamedOp',
|
||||
tan: 'NamedFn',
|
||||
tanh: 'NamedFn',
|
||||
|
||||
limits: ['Limits', 1],
|
||||
nolimits: ['Limits', 0],
|
||||
|
||||
overline: ['UnderOver', '2015'],
|
||||
underline: ['UnderOver', '2015'],
|
||||
overbrace: ['UnderOver', '23DE', 1],
|
||||
underbrace: ['UnderOver', '23DF', 1],
|
||||
overparen: ['UnderOver', '23DC'],
|
||||
underparen: ['UnderOver', '23DD'],
|
||||
overrightarrow: ['UnderOver', '2192'],
|
||||
underrightarrow: ['UnderOver', '2192'],
|
||||
overleftarrow: ['UnderOver', '2190'],
|
||||
underleftarrow: ['UnderOver', '2190'],
|
||||
overleftrightarrow: ['UnderOver', '2194'],
|
||||
underleftrightarrow: ['UnderOver', '2194'],
|
||||
|
||||
overset: 'Overset',
|
||||
underset: 'Underset',
|
||||
overunderset: 'Overunderset',
|
||||
stackrel: ['Macro', '\\mathrel{\\mathop{#2}\\limits^{#1}}', 2],
|
||||
stackbin: ['Macro', '\\mathbin{\\mathop{#2}\\limits^{#1}}', 2],
|
||||
|
||||
over: 'Over',
|
||||
overwithdelims: 'Over',
|
||||
atop: 'Over',
|
||||
atopwithdelims: 'Over',
|
||||
above: 'Over',
|
||||
abovewithdelims: 'Over',
|
||||
brace: ['Over', '{', '}'],
|
||||
brack: ['Over', '[', ']'],
|
||||
choose: ['Over', '(', ')'],
|
||||
|
||||
frac: 'Frac',
|
||||
sqrt: 'Sqrt',
|
||||
root: 'Root',
|
||||
uproot: ['MoveRoot', 'upRoot'],
|
||||
leftroot: ['MoveRoot', 'leftRoot'],
|
||||
|
||||
left: 'LeftRight',
|
||||
right: 'LeftRight',
|
||||
middle: 'LeftRight',
|
||||
|
||||
llap: 'Lap',
|
||||
rlap: 'Lap',
|
||||
raise: 'RaiseLower',
|
||||
lower: 'RaiseLower',
|
||||
moveleft: 'MoveLeftRight',
|
||||
moveright: 'MoveLeftRight',
|
||||
|
||||
',': ['Spacer', MATHSPACE.thinmathspace],
|
||||
':': ['Spacer', MATHSPACE.mediummathspace],
|
||||
'>': ['Spacer', MATHSPACE.mediummathspace],
|
||||
';': ['Spacer', MATHSPACE.thickmathspace],
|
||||
'!': ['Spacer', MATHSPACE.negativethinmathspace],
|
||||
enspace: ['Spacer', .5],
|
||||
quad: ['Spacer', 1],
|
||||
qquad: ['Spacer', 2],
|
||||
thinspace: ['Spacer', MATHSPACE.thinmathspace],
|
||||
negthinspace: ['Spacer', MATHSPACE.negativethinmathspace],
|
||||
|
||||
hskip: 'Hskip',
|
||||
hspace: 'Hskip',
|
||||
kern: 'Hskip',
|
||||
mskip: 'Hskip',
|
||||
mspace: 'Hskip',
|
||||
mkern: 'Hskip',
|
||||
rule: 'rule',
|
||||
Rule: ['Rule'],
|
||||
Space: ['Rule', 'blank'],
|
||||
nonscript: 'Nonscript',
|
||||
|
||||
big: ['MakeBig', TEXCLASS.ORD, 0.85],
|
||||
Big: ['MakeBig', TEXCLASS.ORD, 1.15],
|
||||
bigg: ['MakeBig', TEXCLASS.ORD, 1.45],
|
||||
Bigg: ['MakeBig', TEXCLASS.ORD, 1.75],
|
||||
bigl: ['MakeBig', TEXCLASS.OPEN, 0.85],
|
||||
Bigl: ['MakeBig', TEXCLASS.OPEN, 1.15],
|
||||
biggl: ['MakeBig', TEXCLASS.OPEN, 1.45],
|
||||
Biggl: ['MakeBig', TEXCLASS.OPEN, 1.75],
|
||||
bigr: ['MakeBig', TEXCLASS.CLOSE, 0.85],
|
||||
Bigr: ['MakeBig', TEXCLASS.CLOSE, 1.15],
|
||||
biggr: ['MakeBig', TEXCLASS.CLOSE, 1.45],
|
||||
Biggr: ['MakeBig', TEXCLASS.CLOSE, 1.75],
|
||||
bigm: ['MakeBig', TEXCLASS.REL, 0.85],
|
||||
Bigm: ['MakeBig', TEXCLASS.REL, 1.15],
|
||||
biggm: ['MakeBig', TEXCLASS.REL, 1.45],
|
||||
Biggm: ['MakeBig', TEXCLASS.REL, 1.75],
|
||||
|
||||
mathord: ['TeXAtom', TEXCLASS.ORD],
|
||||
mathop: ['TeXAtom', TEXCLASS.OP],
|
||||
mathopen: ['TeXAtom', TEXCLASS.OPEN],
|
||||
mathclose: ['TeXAtom', TEXCLASS.CLOSE],
|
||||
mathbin: ['TeXAtom', TEXCLASS.BIN],
|
||||
mathrel: ['TeXAtom', TEXCLASS.REL],
|
||||
mathpunct: ['TeXAtom', TEXCLASS.PUNCT],
|
||||
mathinner: ['TeXAtom', TEXCLASS.INNER],
|
||||
|
||||
vcenter: ['TeXAtom', TEXCLASS.VCENTER],
|
||||
|
||||
buildrel: 'BuildRel',
|
||||
|
||||
hbox: ['HBox', 0],
|
||||
text: 'HBox',
|
||||
mbox: ['HBox', 0],
|
||||
fbox: 'FBox',
|
||||
boxed: ['Macro', '\\fbox{$\\displaystyle{#1}$}', 1],
|
||||
framebox: 'FrameBox',
|
||||
|
||||
strut: 'Strut',
|
||||
mathstrut: ['Macro', '\\vphantom{(}'],
|
||||
phantom: 'Phantom',
|
||||
vphantom: ['Phantom', 1, 0],
|
||||
hphantom: ['Phantom', 0, 1],
|
||||
smash: 'Smash',
|
||||
|
||||
acute: ['Accent', '00B4'], // or 0301 or 02CA
|
||||
grave: ['Accent', '0060'], // or 0300 or 02CB
|
||||
ddot: ['Accent', '00A8'], // or 0308
|
||||
tilde: ['Accent', '007E'], // or 0303 or 02DC
|
||||
bar: ['Accent', '00AF'], // or 0304 or 02C9
|
||||
breve: ['Accent', '02D8'], // or 0306
|
||||
check: ['Accent', '02C7'], // or 030C
|
||||
hat: ['Accent', '005E'], // or 0302 or 02C6
|
||||
vec: ['Accent', '2192'], // or 20D7
|
||||
dot: ['Accent', '02D9'], // or 0307
|
||||
widetilde: ['Accent', '007E', 1], // or 0303 or 02DC
|
||||
widehat: ['Accent', '005E', 1], // or 0302 or 02C6
|
||||
|
||||
matrix: 'Matrix',
|
||||
array: 'Matrix',
|
||||
pmatrix: ['Matrix', '(', ')'],
|
||||
cases: ['Matrix', '{', '', 'left left', null, '.1em', null,
|
||||
true],
|
||||
eqalign: ['Matrix', null, null, 'right left',
|
||||
em(MATHSPACE.thickmathspace), '.5em', 'D'],
|
||||
displaylines: ['Matrix', null, null, 'center', null, '.5em', 'D'],
|
||||
cr: 'Cr',
|
||||
'\\': 'CrLaTeX',
|
||||
newline: ['CrLaTeX', true],
|
||||
hline: ['HLine', 'solid'],
|
||||
hdashline: ['HLine', 'dashed'],
|
||||
// noalign: 'HandleNoAlign',
|
||||
eqalignno: ['Matrix', null, null, 'right left',
|
||||
em(MATHSPACE.thickmathspace), '.5em', 'D', null,
|
||||
'right'],
|
||||
leqalignno: ['Matrix', null, null, 'right left',
|
||||
em(MATHSPACE.thickmathspace), '.5em', 'D', null,
|
||||
'left'],
|
||||
hfill: 'HFill',
|
||||
hfil: 'HFill', // \hfil treated as \hfill for now
|
||||
hfilll: 'HFill', // \hfilll treated as \hfill for now
|
||||
|
||||
// TeX substitution macros
|
||||
bmod: ['Macro', '\\mmlToken{mo}[lspace="thickmathspace"' +
|
||||
' rspace="thickmathspace"]{mod}'],
|
||||
pmod: ['Macro', '\\pod{\\mmlToken{mi}{mod}\\kern 6mu #1}', 1],
|
||||
mod: ['Macro', '\\mathchoice{\\kern18mu}{\\kern12mu}' +
|
||||
'{\\kern12mu}{\\kern12mu}\\mmlToken{mi}{mod}\\,\\,#1',
|
||||
1],
|
||||
pod: ['Macro', '\\mathchoice{\\kern18mu}{\\kern8mu}' +
|
||||
'{\\kern8mu}{\\kern8mu}(#1)', 1],
|
||||
iff: ['Macro', '\\;\\Longleftrightarrow\\;'],
|
||||
skew: ['Macro', '{{#2{#3\\mkern#1mu}\\mkern-#1mu}{}}', 3],
|
||||
|
||||
pmb: ['Macro', '\\rlap{#1}\\kern1px{#1}', 1],
|
||||
TeX: ['Macro', 'T\\kern-.14em\\lower.5ex{E}\\kern-.115em X'],
|
||||
LaTeX: ['Macro', 'L\\kern-.325em\\raise.21em' +
|
||||
'{\\scriptstyle{A}}\\kern-.17em\\TeX'],
|
||||
' ': ['Macro', '\\text{ }'],
|
||||
|
||||
// Specially handled
|
||||
not: 'Not',
|
||||
dots: 'Dots',
|
||||
space: 'Tilde',
|
||||
'\u00A0': 'Tilde',
|
||||
|
||||
|
||||
// LaTeX
|
||||
begin: 'BeginEnd',
|
||||
end: 'BeginEnd',
|
||||
|
||||
label: 'HandleLabel',
|
||||
ref: 'HandleRef',
|
||||
nonumber: 'HandleNoTag',
|
||||
|
||||
// Internal use:
|
||||
mathchoice: 'MathChoice',
|
||||
mmlToken: 'MmlToken'
|
||||
}, BaseMethods);
|
||||
|
||||
|
||||
/**
|
||||
* Macros for LaTeX environments.
|
||||
*/
|
||||
new sm.EnvironmentMap('environment', ParseMethods.environment, {
|
||||
array: ['AlignedArray'],
|
||||
equation: ['Equation', null, true],
|
||||
eqnarray: ['EqnArray', null, true, true, 'rcl',
|
||||
ParseUtil.cols(0, MATHSPACE.thickmathspace), '.5em']
|
||||
}, BaseMethods);
|
||||
|
||||
|
||||
/**
|
||||
* Mapping for negated operators.
|
||||
*/
|
||||
new sm.CharacterMap('not_remap', null, {
|
||||
'\u2190': '\u219A',
|
||||
'\u2192': '\u219B',
|
||||
'\u2194': '\u21AE',
|
||||
'\u21D0': '\u21CD',
|
||||
'\u21D2': '\u21CF',
|
||||
'\u21D4': '\u21CE',
|
||||
'\u2208': '\u2209',
|
||||
'\u220B': '\u220C',
|
||||
'\u2223': '\u2224',
|
||||
'\u2225': '\u2226',
|
||||
'\u223C': '\u2241',
|
||||
'\u007E': '\u2241',
|
||||
'\u2243': '\u2244',
|
||||
'\u2245': '\u2247',
|
||||
'\u2248': '\u2249',
|
||||
'\u224D': '\u226D',
|
||||
'\u003D': '\u2260',
|
||||
'\u2261': '\u2262',
|
||||
'\u003C': '\u226E',
|
||||
'\u003E': '\u226F',
|
||||
'\u2264': '\u2270',
|
||||
'\u2265': '\u2271',
|
||||
'\u2272': '\u2274',
|
||||
'\u2273': '\u2275',
|
||||
'\u2276': '\u2278',
|
||||
'\u2277': '\u2279',
|
||||
'\u227A': '\u2280',
|
||||
'\u227B': '\u2281',
|
||||
'\u2282': '\u2284',
|
||||
'\u2283': '\u2285',
|
||||
'\u2286': '\u2288',
|
||||
'\u2287': '\u2289',
|
||||
'\u22A2': '\u22AC',
|
||||
'\u22A8': '\u22AD',
|
||||
'\u22A9': '\u22AE',
|
||||
'\u22AB': '\u22AF',
|
||||
'\u227C': '\u22E0',
|
||||
'\u227D': '\u22E1',
|
||||
'\u2291': '\u22E2',
|
||||
'\u2292': '\u22E3',
|
||||
'\u22B2': '\u22EA',
|
||||
'\u22B3': '\u22EB',
|
||||
'\u22B4': '\u22EC',
|
||||
'\u22B5': '\u22ED',
|
||||
'\u2203': '\u2204'
|
||||
});
|
||||
1618
node_modules/mathjax-full/ts/input/tex/base/BaseMethods.ts
generated
vendored
Normal file
1618
node_modules/mathjax-full/ts/input/tex/base/BaseMethods.ts
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user