1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.escapeLatex = escapeLatex;
|
7 | exports.toSymbol = toSymbol;
|
8 | exports.defaultTemplate = exports.latexFunctions = exports.latexOperators = exports.latexSymbols = void 0;
|
9 |
|
10 | var _escapeLatex = _interopRequireDefault(require("escape-latex"));
|
11 |
|
12 | var _object = require("./object.js");
|
13 |
|
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
15 |
|
16 |
|
17 | var latexSymbols = {
|
18 |
|
19 | Alpha: 'A',
|
20 | alpha: '\\alpha',
|
21 | Beta: 'B',
|
22 | beta: '\\beta',
|
23 | Gamma: '\\Gamma',
|
24 | gamma: '\\gamma',
|
25 | Delta: '\\Delta',
|
26 | delta: '\\delta',
|
27 | Epsilon: 'E',
|
28 | epsilon: '\\epsilon',
|
29 | varepsilon: '\\varepsilon',
|
30 | Zeta: 'Z',
|
31 | zeta: '\\zeta',
|
32 | Eta: 'H',
|
33 | eta: '\\eta',
|
34 | Theta: '\\Theta',
|
35 | theta: '\\theta',
|
36 | vartheta: '\\vartheta',
|
37 | Iota: 'I',
|
38 | iota: '\\iota',
|
39 | Kappa: 'K',
|
40 | kappa: '\\kappa',
|
41 | varkappa: '\\varkappa',
|
42 | Lambda: '\\Lambda',
|
43 | lambda: '\\lambda',
|
44 | Mu: 'M',
|
45 | mu: '\\mu',
|
46 | Nu: 'N',
|
47 | nu: '\\nu',
|
48 | Xi: '\\Xi',
|
49 | xi: '\\xi',
|
50 | Omicron: 'O',
|
51 | omicron: 'o',
|
52 | Pi: '\\Pi',
|
53 | pi: '\\pi',
|
54 | varpi: '\\varpi',
|
55 | Rho: 'P',
|
56 | rho: '\\rho',
|
57 | varrho: '\\varrho',
|
58 | Sigma: '\\Sigma',
|
59 | sigma: '\\sigma',
|
60 | varsigma: '\\varsigma',
|
61 | Tau: 'T',
|
62 | tau: '\\tau',
|
63 | Upsilon: "\\Upsilon",
|
64 | upsilon: "\\upsilon",
|
65 | Phi: '\\Phi',
|
66 | phi: '\\phi',
|
67 | varphi: '\\varphi',
|
68 | Chi: 'X',
|
69 | chi: '\\chi',
|
70 | Psi: '\\Psi',
|
71 | psi: '\\psi',
|
72 | Omega: '\\Omega',
|
73 | omega: '\\omega',
|
74 |
|
75 | "true": '\\mathrm{True}',
|
76 | "false": '\\mathrm{False}',
|
77 |
|
78 | i: 'i',
|
79 |
|
80 | inf: '\\infty',
|
81 | Inf: '\\infty',
|
82 | infinity: '\\infty',
|
83 | Infinity: '\\infty',
|
84 | oo: '\\infty',
|
85 | lim: '\\lim',
|
86 | undefined: '\\mathbf{?}'
|
87 | };
|
88 | exports.latexSymbols = latexSymbols;
|
89 | var latexOperators = {
|
90 | transpose: '^\\top',
|
91 | ctranspose: '^H',
|
92 | factorial: '!',
|
93 | pow: '^',
|
94 | dotPow: '.^\\wedge',
|
95 |
|
96 | unaryPlus: '+',
|
97 | unaryMinus: '-',
|
98 | bitNot: '\\~',
|
99 |
|
100 | not: '\\neg',
|
101 | multiply: '\\cdot',
|
102 | divide: '\\frac',
|
103 |
|
104 | dotMultiply: '.\\cdot',
|
105 |
|
106 | dotDivide: '.:',
|
107 |
|
108 | mod: '\\mod',
|
109 | add: '+',
|
110 | subtract: '-',
|
111 | to: '\\rightarrow',
|
112 | leftShift: '<<',
|
113 | rightArithShift: '>>',
|
114 | rightLogShift: '>>>',
|
115 | equal: '=',
|
116 | unequal: '\\neq',
|
117 | smaller: '<',
|
118 | larger: '>',
|
119 | smallerEq: '\\leq',
|
120 | largerEq: '\\geq',
|
121 | bitAnd: '\\&',
|
122 | bitXor: "\\underline{|}",
|
123 | bitOr: '|',
|
124 | and: '\\wedge',
|
125 | xor: '\\veebar',
|
126 | or: '\\vee'
|
127 | };
|
128 | exports.latexOperators = latexOperators;
|
129 | var latexFunctions = {
|
130 |
|
131 | abs: {
|
132 | 1: '\\left|${args[0]}\\right|'
|
133 | },
|
134 | add: {
|
135 | 2: "\\left(${args[0]}".concat(latexOperators.add, "${args[1]}\\right)")
|
136 | },
|
137 | cbrt: {
|
138 | 1: '\\sqrt[3]{${args[0]}}'
|
139 | },
|
140 | ceil: {
|
141 | 1: '\\left\\lceil${args[0]}\\right\\rceil'
|
142 | },
|
143 | cube: {
|
144 | 1: '\\left(${args[0]}\\right)^3'
|
145 | },
|
146 | divide: {
|
147 | 2: '\\frac{${args[0]}}{${args[1]}}'
|
148 | },
|
149 | dotDivide: {
|
150 | 2: "\\left(${args[0]}".concat(latexOperators.dotDivide, "${args[1]}\\right)")
|
151 | },
|
152 | dotMultiply: {
|
153 | 2: "\\left(${args[0]}".concat(latexOperators.dotMultiply, "${args[1]}\\right)")
|
154 | },
|
155 | dotPow: {
|
156 | 2: "\\left(${args[0]}".concat(latexOperators.dotPow, "${args[1]}\\right)")
|
157 | },
|
158 | exp: {
|
159 | 1: '\\exp\\left(${args[0]}\\right)'
|
160 | },
|
161 | expm1: "\\left(e".concat(latexOperators.pow, "{${args[0]}}-1\\right)"),
|
162 | fix: {
|
163 | 1: '\\mathrm{${name}}\\left(${args[0]}\\right)'
|
164 | },
|
165 | floor: {
|
166 | 1: '\\left\\lfloor${args[0]}\\right\\rfloor'
|
167 | },
|
168 | gcd: '\\gcd\\left(${args}\\right)',
|
169 | hypot: '\\hypot\\left(${args}\\right)',
|
170 | log: {
|
171 | 1: '\\ln\\left(${args[0]}\\right)',
|
172 | 2: '\\log_{${args[1]}}\\left(${args[0]}\\right)'
|
173 | },
|
174 | log10: {
|
175 | 1: '\\log_{10}\\left(${args[0]}\\right)'
|
176 | },
|
177 | log1p: {
|
178 | 1: '\\ln\\left(${args[0]}+1\\right)',
|
179 | 2: '\\log_{${args[1]}}\\left(${args[0]}+1\\right)'
|
180 | },
|
181 | log2: '\\log_{2}\\left(${args[0]}\\right)',
|
182 | mod: {
|
183 | 2: "\\left(${args[0]}".concat(latexOperators.mod, "${args[1]}\\right)")
|
184 | },
|
185 | multiply: {
|
186 | 2: "\\left(${args[0]}".concat(latexOperators.multiply, "${args[1]}\\right)")
|
187 | },
|
188 | norm: {
|
189 | 1: '\\left\\|${args[0]}\\right\\|',
|
190 | 2: undefined
|
191 |
|
192 | },
|
193 | nthRoot: {
|
194 | 2: '\\sqrt[${args[1]}]{${args[0]}}'
|
195 | },
|
196 | nthRoots: {
|
197 | 2: '\\{y : $y^{args[1]} = {${args[0]}}\\}'
|
198 | },
|
199 | pow: {
|
200 | 2: "\\left(${args[0]}\\right)".concat(latexOperators.pow, "{${args[1]}}")
|
201 | },
|
202 | round: {
|
203 | 1: '\\left\\lfloor${args[0]}\\right\\rceil',
|
204 | 2: undefined
|
205 |
|
206 | },
|
207 | sign: {
|
208 | 1: '\\mathrm{${name}}\\left(${args[0]}\\right)'
|
209 | },
|
210 | sqrt: {
|
211 | 1: '\\sqrt{${args[0]}}'
|
212 | },
|
213 | square: {
|
214 | 1: '\\left(${args[0]}\\right)^2'
|
215 | },
|
216 | subtract: {
|
217 | 2: "\\left(${args[0]}".concat(latexOperators.subtract, "${args[1]}\\right)")
|
218 | },
|
219 | unaryMinus: {
|
220 | 1: "".concat(latexOperators.unaryMinus, "\\left(${args[0]}\\right)")
|
221 | },
|
222 | unaryPlus: {
|
223 | 1: "".concat(latexOperators.unaryPlus, "\\left(${args[0]}\\right)")
|
224 | },
|
225 |
|
226 | bitAnd: {
|
227 | 2: "\\left(${args[0]}".concat(latexOperators.bitAnd, "${args[1]}\\right)")
|
228 | },
|
229 | bitNot: {
|
230 | 1: latexOperators.bitNot + '\\left(${args[0]}\\right)'
|
231 | },
|
232 | bitOr: {
|
233 | 2: "\\left(${args[0]}".concat(latexOperators.bitOr, "${args[1]}\\right)")
|
234 | },
|
235 | bitXor: {
|
236 | 2: "\\left(${args[0]}".concat(latexOperators.bitXor, "${args[1]}\\right)")
|
237 | },
|
238 | leftShift: {
|
239 | 2: "\\left(${args[0]}".concat(latexOperators.leftShift, "${args[1]}\\right)")
|
240 | },
|
241 | rightArithShift: {
|
242 | 2: "\\left(${args[0]}".concat(latexOperators.rightArithShift, "${args[1]}\\right)")
|
243 | },
|
244 | rightLogShift: {
|
245 | 2: "\\left(${args[0]}".concat(latexOperators.rightLogShift, "${args[1]}\\right)")
|
246 | },
|
247 |
|
248 | bellNumbers: {
|
249 | 1: '\\mathrm{B}_{${args[0]}}'
|
250 | },
|
251 | catalan: {
|
252 | 1: '\\mathrm{C}_{${args[0]}}'
|
253 | },
|
254 | stirlingS2: {
|
255 | 2: '\\mathrm{S}\\left(${args}\\right)'
|
256 | },
|
257 |
|
258 | arg: {
|
259 | 1: '\\arg\\left(${args[0]}\\right)'
|
260 | },
|
261 | conj: {
|
262 | 1: '\\left(${args[0]}\\right)^*'
|
263 | },
|
264 | im: {
|
265 | 1: '\\Im\\left\\lbrace${args[0]}\\right\\rbrace'
|
266 | },
|
267 | re: {
|
268 | 1: '\\Re\\left\\lbrace${args[0]}\\right\\rbrace'
|
269 | },
|
270 |
|
271 | and: {
|
272 | 2: "\\left(${args[0]}".concat(latexOperators.and, "${args[1]}\\right)")
|
273 | },
|
274 | not: {
|
275 | 1: latexOperators.not + '\\left(${args[0]}\\right)'
|
276 | },
|
277 | or: {
|
278 | 2: "\\left(${args[0]}".concat(latexOperators.or, "${args[1]}\\right)")
|
279 | },
|
280 | xor: {
|
281 | 2: "\\left(${args[0]}".concat(latexOperators.xor, "${args[1]}\\right)")
|
282 | },
|
283 |
|
284 | cross: {
|
285 | 2: '\\left(${args[0]}\\right)\\times\\left(${args[1]}\\right)'
|
286 | },
|
287 | ctranspose: {
|
288 | 1: "\\left(${args[0]}\\right)".concat(latexOperators.ctranspose)
|
289 | },
|
290 | det: {
|
291 | 1: '\\det\\left(${args[0]}\\right)'
|
292 | },
|
293 | dot: {
|
294 | 2: '\\left(${args[0]}\\cdot${args[1]}\\right)'
|
295 | },
|
296 | expm: {
|
297 | 1: '\\exp\\left(${args[0]}\\right)'
|
298 | },
|
299 | inv: {
|
300 | 1: '\\left(${args[0]}\\right)^{-1}'
|
301 | },
|
302 | sqrtm: {
|
303 | 1: "{${args[0]}}".concat(latexOperators.pow, "{\\frac{1}{2}}")
|
304 | },
|
305 | trace: {
|
306 | 1: '\\mathrm{tr}\\left(${args[0]}\\right)'
|
307 | },
|
308 | transpose: {
|
309 | 1: "\\left(${args[0]}\\right)".concat(latexOperators.transpose)
|
310 | },
|
311 |
|
312 | combinations: {
|
313 | 2: '\\binom{${args[0]}}{${args[1]}}'
|
314 | },
|
315 | combinationsWithRep: {
|
316 | 2: '\\left(\\!\\!{\\binom{${args[0]}}{${args[1]}}}\\!\\!\\right)'
|
317 | },
|
318 | factorial: {
|
319 | 1: "\\left(${args[0]}\\right)".concat(latexOperators.factorial)
|
320 | },
|
321 | gamma: {
|
322 | 1: '\\Gamma\\left(${args[0]}\\right)'
|
323 | },
|
324 |
|
325 | equal: {
|
326 | 2: "\\left(${args[0]}".concat(latexOperators.equal, "${args[1]}\\right)")
|
327 | },
|
328 | larger: {
|
329 | 2: "\\left(${args[0]}".concat(latexOperators.larger, "${args[1]}\\right)")
|
330 | },
|
331 | largerEq: {
|
332 | 2: "\\left(${args[0]}".concat(latexOperators.largerEq, "${args[1]}\\right)")
|
333 | },
|
334 | smaller: {
|
335 | 2: "\\left(${args[0]}".concat(latexOperators.smaller, "${args[1]}\\right)")
|
336 | },
|
337 | smallerEq: {
|
338 | 2: "\\left(${args[0]}".concat(latexOperators.smallerEq, "${args[1]}\\right)")
|
339 | },
|
340 | unequal: {
|
341 | 2: "\\left(${args[0]}".concat(latexOperators.unequal, "${args[1]}\\right)")
|
342 | },
|
343 |
|
344 | erf: {
|
345 | 1: 'erf\\left(${args[0]}\\right)'
|
346 | },
|
347 |
|
348 | max: '\\max\\left(${args}\\right)',
|
349 | min: '\\min\\left(${args}\\right)',
|
350 | variance: '\\mathrm{Var}\\left(${args}\\right)',
|
351 |
|
352 | acos: {
|
353 | 1: '\\cos^{-1}\\left(${args[0]}\\right)'
|
354 | },
|
355 | acosh: {
|
356 | 1: '\\cosh^{-1}\\left(${args[0]}\\right)'
|
357 | },
|
358 | acot: {
|
359 | 1: '\\cot^{-1}\\left(${args[0]}\\right)'
|
360 | },
|
361 | acoth: {
|
362 | 1: '\\coth^{-1}\\left(${args[0]}\\right)'
|
363 | },
|
364 | acsc: {
|
365 | 1: '\\csc^{-1}\\left(${args[0]}\\right)'
|
366 | },
|
367 | acsch: {
|
368 | 1: '\\mathrm{csch}^{-1}\\left(${args[0]}\\right)'
|
369 | },
|
370 | asec: {
|
371 | 1: '\\sec^{-1}\\left(${args[0]}\\right)'
|
372 | },
|
373 | asech: {
|
374 | 1: '\\mathrm{sech}^{-1}\\left(${args[0]}\\right)'
|
375 | },
|
376 | asin: {
|
377 | 1: '\\sin^{-1}\\left(${args[0]}\\right)'
|
378 | },
|
379 | asinh: {
|
380 | 1: '\\sinh^{-1}\\left(${args[0]}\\right)'
|
381 | },
|
382 | atan: {
|
383 | 1: '\\tan^{-1}\\left(${args[0]}\\right)'
|
384 | },
|
385 | atan2: {
|
386 | 2: '\\mathrm{atan2}\\left(${args}\\right)'
|
387 | },
|
388 | atanh: {
|
389 | 1: '\\tanh^{-1}\\left(${args[0]}\\right)'
|
390 | },
|
391 | cos: {
|
392 | 1: '\\cos\\left(${args[0]}\\right)'
|
393 | },
|
394 | cosh: {
|
395 | 1: '\\cosh\\left(${args[0]}\\right)'
|
396 | },
|
397 | cot: {
|
398 | 1: '\\cot\\left(${args[0]}\\right)'
|
399 | },
|
400 | coth: {
|
401 | 1: '\\coth\\left(${args[0]}\\right)'
|
402 | },
|
403 | csc: {
|
404 | 1: '\\csc\\left(${args[0]}\\right)'
|
405 | },
|
406 | csch: {
|
407 | 1: '\\mathrm{csch}\\left(${args[0]}\\right)'
|
408 | },
|
409 | sec: {
|
410 | 1: '\\sec\\left(${args[0]}\\right)'
|
411 | },
|
412 | sech: {
|
413 | 1: '\\mathrm{sech}\\left(${args[0]}\\right)'
|
414 | },
|
415 | sin: {
|
416 | 1: '\\sin\\left(${args[0]}\\right)'
|
417 | },
|
418 | sinh: {
|
419 | 1: '\\sinh\\left(${args[0]}\\right)'
|
420 | },
|
421 | tan: {
|
422 | 1: '\\tan\\left(${args[0]}\\right)'
|
423 | },
|
424 | tanh: {
|
425 | 1: '\\tanh\\left(${args[0]}\\right)'
|
426 | },
|
427 |
|
428 | to: {
|
429 | 2: "\\left(${args[0]}".concat(latexOperators.to, "${args[1]}\\right)")
|
430 | },
|
431 |
|
432 | numeric: function numeric(node, options) {
|
433 |
|
434 | return node.args[0].toTex();
|
435 | },
|
436 |
|
437 | number: {
|
438 | 0: '0',
|
439 | 1: '\\left(${args[0]}\\right)',
|
440 | 2: '\\left(\\left(${args[0]}\\right)${args[1]}\\right)'
|
441 | },
|
442 | string: {
|
443 | 0: '\\mathtt{""}',
|
444 | 1: '\\mathrm{string}\\left(${args[0]}\\right)'
|
445 | },
|
446 | bignumber: {
|
447 | 0: '0',
|
448 | 1: '\\left(${args[0]}\\right)'
|
449 | },
|
450 | complex: {
|
451 | 0: '0',
|
452 | 1: '\\left(${args[0]}\\right)',
|
453 | 2: "\\left(\\left(${args[0]}\\right)+".concat(latexSymbols.i, "\\cdot\\left(${args[1]}\\right)\\right)")
|
454 | },
|
455 | matrix: {
|
456 | 0: '\\begin{bmatrix}\\end{bmatrix}',
|
457 | 1: '\\left(${args[0]}\\right)',
|
458 | 2: '\\left(${args[0]}\\right)'
|
459 | },
|
460 | sparse: {
|
461 | 0: '\\begin{bsparse}\\end{bsparse}',
|
462 | 1: '\\left(${args[0]}\\right)'
|
463 | },
|
464 | unit: {
|
465 | 1: '\\left(${args[0]}\\right)',
|
466 | 2: '\\left(\\left(${args[0]}\\right)${args[1]}\\right)'
|
467 | }
|
468 | };
|
469 | exports.latexFunctions = latexFunctions;
|
470 | var defaultTemplate = '\\mathrm{${name}}\\left(${args}\\right)';
|
471 | exports.defaultTemplate = defaultTemplate;
|
472 | var latexUnits = {
|
473 | deg: '^\\circ'
|
474 | };
|
475 |
|
476 | function escapeLatex(string) {
|
477 | return (0, _escapeLatex["default"])(string, {
|
478 | preserveFormatting: true
|
479 | });
|
480 | }
|
481 |
|
482 |
|
483 |
|
484 | function toSymbol(name, isUnit) {
|
485 | isUnit = typeof isUnit === 'undefined' ? false : isUnit;
|
486 |
|
487 | if (isUnit) {
|
488 | if ((0, _object.hasOwnProperty)(latexUnits, name)) {
|
489 | return latexUnits[name];
|
490 | }
|
491 |
|
492 | return '\\mathrm{' + escapeLatex(name) + '}';
|
493 | }
|
494 |
|
495 | if ((0, _object.hasOwnProperty)(latexSymbols, name)) {
|
496 | return latexSymbols[name];
|
497 | }
|
498 |
|
499 | return escapeLatex(name);
|
500 | } |
\ | No newline at end of file |