Fixing issues with LaTeX and rendering variable pi.

This commit is contained in:
Ad5001 2024-10-22 02:50:00 +02:00
parent b989a685e9
commit 14e8cef6af
Signed by: Ad5001
GPG key ID: EF45F9C6AFE20160
3 changed files with 10 additions and 18 deletions

View file

@ -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]
} }

View file

@ -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])
} }
} }

View file