Fixing issues with LaTeX and rendering variable pi.
This commit is contained in:
parent
b989a685e9
commit
14e8cef6af
3 changed files with 10 additions and 18 deletions
|
@ -266,11 +266,6 @@ export function roundTo(value, exp) {
|
||||||
return +(value[0] + "e" + (value[1] ? (+value[1] + exp) : exp))
|
return +(value[0] + "e" + (value[1] ? (+value[1] + exp) : exp))
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setVar(name, value, variables) {
|
|
||||||
if(variables) variables[name] = value
|
|
||||||
return value
|
|
||||||
}
|
|
||||||
|
|
||||||
export function arrayIndex(array, index) {
|
export function arrayIndex(array, index) {
|
||||||
return array[index | 0]
|
return array[index | 0]
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ import * as Instruction from "../lib/expr-eval/instruction.mjs"
|
||||||
import { escapeValue } from "../lib/expr-eval/expression.mjs"
|
import { escapeValue } from "../lib/expr-eval/expression.mjs"
|
||||||
import { HelperInterface, LatexInterface } from "./interface.mjs"
|
import { HelperInterface, LatexInterface } from "./interface.mjs"
|
||||||
|
|
||||||
const unicodechars = [
|
const unicodechars = ["pi", "∞",
|
||||||
"α", "β", "γ", "δ", "ε", "ζ", "η",
|
"α", "β", "γ", "δ", "ε", "ζ", "η",
|
||||||
"π", "θ", "κ", "λ", "μ", "ξ", "ρ",
|
"π", "θ", "κ", "λ", "μ", "ξ", "ρ",
|
||||||
"ς", "σ", "τ", "φ", "χ", "ψ", "ω",
|
"ς", "σ", "τ", "φ", "χ", "ψ", "ω",
|
||||||
|
@ -30,9 +30,9 @@ const unicodechars = [
|
||||||
"ₕ", "ₖ", "ₗ", "ₘ", "ₙ", "ₚ", "ₛ",
|
"ₕ", "ₖ", "ₗ", "ₘ", "ₙ", "ₚ", "ₛ",
|
||||||
"ₜ", "¹", "²", "³", "⁴", "⁵", "⁶",
|
"ₜ", "¹", "²", "³", "⁴", "⁵", "⁶",
|
||||||
"⁷", "⁸", "⁹", "⁰", "₁", "₂", "₃",
|
"⁷", "⁸", "⁹", "⁰", "₁", "₂", "₃",
|
||||||
"₄", "₅", "₆", "₇", "₈", "₉", "₀",
|
"₄", "₅", "₆", "₇", "₈", "₉", "₀"
|
||||||
"pi", "∞"]
|
]
|
||||||
const equivalchars = [
|
const equivalchars = ["\\pi", "\\infty",
|
||||||
"\\alpha", "\\beta", "\\gamma", "\\delta", "\\epsilon", "\\zeta", "\\eta",
|
"\\alpha", "\\beta", "\\gamma", "\\delta", "\\epsilon", "\\zeta", "\\eta",
|
||||||
"\\pi", "\\theta", "\\kappa", "\\lambda", "\\mu", "\\xi", "\\rho",
|
"\\pi", "\\theta", "\\kappa", "\\lambda", "\\mu", "\\xi", "\\rho",
|
||||||
"\\sigma", "\\sigma", "\\tau", "\\phi", "\\chi", "\\psi", "\\omega",
|
"\\sigma", "\\sigma", "\\tau", "\\phi", "\\chi", "\\psi", "\\omega",
|
||||||
|
@ -42,7 +42,7 @@ const equivalchars = [
|
||||||
"{}_{t}", "{}^{1}", "{}^{2}", "{}^{3}", "{}^{4}", "{}^{5}", "{}^{6}",
|
"{}_{t}", "{}^{1}", "{}^{2}", "{}^{3}", "{}^{4}", "{}^{5}", "{}^{6}",
|
||||||
"{}^{7}", "{}^{8}", "{}^{9}", "{}^{0}", "{}_{1}", "{}_{2}", "{}_{3}",
|
"{}^{7}", "{}^{8}", "{}^{9}", "{}^{0}", "{}_{1}", "{}_{2}", "{}_{3}",
|
||||||
"{}_{4}", "{}_{5}", "{}_{6}", "{}_{7}", "{}_{8}", "{}_{9}", "{}_{0}",
|
"{}_{4}", "{}_{5}", "{}_{6}", "{}_{7}", "{}_{8}", "{}_{9}", "{}_{0}",
|
||||||
"\\pi", "\\infty"]
|
]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class containing the result of a LaTeX render.
|
* Class containing the result of a LaTeX render.
|
||||||
|
@ -143,9 +143,9 @@ class LatexAPI extends Module {
|
||||||
parif(elem, contents) {
|
parif(elem, contents) {
|
||||||
elem = elem.toString()
|
elem = elem.toString()
|
||||||
const contains = contents.some(x => elem.indexOf(x) > 0)
|
const contains = contents.some(x => elem.indexOf(x) > 0)
|
||||||
if((elem[0] !== "(" || elem.at(-1) !== ")") && contains)
|
if(contains && (elem[0] !== "(" || elem.at(-1) !== ")"))
|
||||||
return this.par(elem)
|
return this.par(elem)
|
||||||
if((elem[0] === "(" || elem.at(-1) === ")") && !contains)
|
if(!contains && elem[0] === "(" && elem.at(-1) === ")")
|
||||||
return elem.removeEnclosure()
|
return elem.removeEnclosure()
|
||||||
return elem
|
return elem
|
||||||
}
|
}
|
||||||
|
@ -191,16 +191,17 @@ class LatexAPI extends Module {
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
variable(vari, wrapIn$ = false) {
|
variable(vari, wrapIn$ = false) {
|
||||||
if(wrapIn$)
|
if(wrapIn$) {
|
||||||
for(let i = 0; i < unicodechars.length; i++) {
|
for(let i = 0; i < unicodechars.length; i++) {
|
||||||
if(vari.includes(unicodechars[i]))
|
if(vari.includes(unicodechars[i]))
|
||||||
vari = vari.replaceAll(unicodechars[i], "$" + equivalchars[i] + "$")
|
vari = vari.replaceAll(unicodechars[i], "$" + equivalchars[i] + "$")
|
||||||
}
|
}
|
||||||
else
|
} else {
|
||||||
for(let i = 0; i < unicodechars.length; i++) {
|
for(let i = 0; i < unicodechars.length; i++) {
|
||||||
if(vari.includes(unicodechars[i]))
|
if(vari.includes(unicodechars[i]))
|
||||||
vari = vari.replaceAll(unicodechars[i], equivalchars[i])
|
vari = vari.replaceAll(unicodechars[i], equivalchars[i])
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return vari
|
return vari
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,10 +331,6 @@ class LatexAPI extends Module {
|
||||||
throw new EvalError("invalid Expression")
|
throw new EvalError("invalid Expression")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(nstack.length > 1) {
|
|
||||||
nstack = [nstack.join(";")]
|
|
||||||
}
|
|
||||||
console.log(nstack[0])
|
|
||||||
return String(nstack[0])
|
return String(nstack[0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
0
common/test/basics/polyfill.mjs
Normal file
0
common/test/basics/polyfill.mjs
Normal file
Loading…
Reference in a new issue