mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
105 lines
2.8 KiB
JavaScript
105 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
exports.symbols = {
|
|
// GREEK LETTERS
|
|
Alpha: 'A', alpha: '\\alpha',
|
|
Beta: 'B', beta: '\\beta',
|
|
Gamma: '\\Gamma', gamma: '\\gamma',
|
|
Delta: '\\Delta', delta: '\\delta',
|
|
Epsilon: 'E', epsilon: '\\epsilon', varepsilon: '\\varepsilon',
|
|
Zeta: 'Z', zeta: '\\zeta',
|
|
Eta: 'H', eta: '\\eta',
|
|
Theta: '\\Theta', theta: '\\theta', vartheta: '\\vartheta',
|
|
Iota: 'I', iota: '\\iota',
|
|
Kappa: 'K', kappa: '\\kappa', varkappa: '\\varkappa',
|
|
Lambda: '\\Lambda', lambda: '\\lambda',
|
|
Mu: 'M', mu: '\\mu',
|
|
Nu: 'N', nu: '\\nu',
|
|
Xi: '\\Xi', xi: '\\xi',
|
|
Omicron: 'O', omicron: 'o',
|
|
Pi: '\\Pi', pi: '\\pi', varpi: '\\varpi',
|
|
Rho: 'P', rho: '\\rho', varrho: '\\varrho',
|
|
Sigma: '\\Sigma', sigma: '\\sigma', varsigma: '\\varsigma',
|
|
Tau: 'T', tau: '\\tau',
|
|
Upsilon: '\\Upsilon', upsilon: '\\upsilon',
|
|
Phi: '\\Phi', phi: '\\phi', varphi: '\\varphi',
|
|
Chi: 'X', chi: '\\chi',
|
|
Psi: '\\Psi', psi: '\\psi',
|
|
Omega: '\\Omega', omega: '\\omega',
|
|
//logic
|
|
'true': '\\mathrm{True}',
|
|
'false': '\\mathrm{False}',
|
|
//other
|
|
i: 'i', //TODO use \i ??
|
|
inf: '\\infty',
|
|
Inf: '\\infty',
|
|
infinity: '\\infty',
|
|
Infinity: '\\infty',
|
|
oo: '\\infty',
|
|
lim: '\\lim',
|
|
'undefined': '\\mathbf{?}'
|
|
};
|
|
|
|
exports.operators = {
|
|
'transpose': '^\\top',
|
|
'factorial': '!',
|
|
'pow': '^',
|
|
'dotPow': '.^\\wedge', //TODO find ideal solution
|
|
'unaryPlus': '+',
|
|
'unaryMinus': '-',
|
|
'bitNot': '~', //TODO find ideal solution
|
|
'not': '\\neg',
|
|
'multiply': '\\cdot',
|
|
'divide': '\\frac', //TODO how to handle that properly?
|
|
'dotMultiply': '.\\cdot', //TODO find ideal solution
|
|
'dotDivide': '.:', //TODO find ideal solution
|
|
'mod': '\\mod',
|
|
'add': '+',
|
|
'subtract': '-',
|
|
'to': '\\rightarrow',
|
|
'leftShift': '<<',
|
|
'rightArithShift': '>>',
|
|
'rightLogShift': '>>>',
|
|
'equal': '=',
|
|
'unequal': '\\neq',
|
|
'smaller': '<',
|
|
'larger': '>',
|
|
'smallerEq': '\\leq',
|
|
'largerEq': '\\geq',
|
|
'bitAnd': '\\&',
|
|
'bitXor': '\\underline{|}',
|
|
'bitOr': '|',
|
|
'and': '\\wedge',
|
|
'xor': '\\veebar',
|
|
'or': '\\vee'
|
|
};
|
|
|
|
exports.defaultTemplate = '\\mathrm{${name}}\\left(${args}\\right)';
|
|
|
|
var units = {
|
|
deg: '^\\circ'
|
|
};
|
|
|
|
//@param {string} name
|
|
//@param {boolean} isUnit
|
|
exports.toSymbol = function (name, isUnit) {
|
|
isUnit = typeof isUnit === 'undefined' ? false : isUnit;
|
|
if (isUnit) {
|
|
if (units.hasOwnProperty(name)) {
|
|
return units[name];
|
|
}
|
|
return '\\mathrm{' + name + '}';
|
|
}
|
|
|
|
if (exports.symbols.hasOwnProperty(name)) {
|
|
return exports.symbols[name];
|
|
}
|
|
else if (name.indexOf('_') !== -1) {
|
|
//symbol with index (eg. alpha_1)
|
|
var index = name.indexOf('_');
|
|
return exports.toSymbol(name.substring(0, index)) + '_{'
|
|
+ exports.toSymbol(name.substring(index + 1)) + '}';
|
|
}
|
|
return name;
|
|
};
|