我正在使用mathjax-node
尝试将mathjax代码转换为SVG。目前,我在这里设置的代码如下:
const mathjax = require("mathjax-node");
process.stdin.on("data", data => {
mathjax.typeset({
math: data.slice(1),
format: [...data][0] == "Y" ? "inline-TeX" : "TeX",
svg: true
}).then(data => {
process.stdout.write(data.svg + String.fromCodePoint(0));
});
});
它接受输入,第一个字符决定它是否是内联的,其他的都是代码。python文件使用它,如下所示:
# -*- coding: utf-8 -*-
from subprocess import *
from pathlib import Path
cdir = "/".join(str(Path(__file__)).split("/")[:-1])
if cdir:
cdir += "/"
converter = Popen(["node", cdir + "mathjax-converter.js"], stdin = PIPE, stdout = PIPE)
def convert_mathjax(mathjax, inline = True):
converter.stdin.write(bytes(("Y" if inline else "N") + mathjax, "utf-8"))
converter.stdin.flush()
result = ""
while True:
char = converter.stdout.read(1)
if not char: return ""
if ord(char) == 0:
return result
result += char.decode("utf-8")
因此convert_markdown
是将代码转换为SVG的函数。但是,当我尝试仅使用data:text/html,<svg>...</svg>
呈现输出时,控制台中会出现以下错误:
Error: <path> attribute d: Expected number, "…3T381 315T301241Q265 210 201 149…".
使用带有_SVG
config选项的MathJax客户端可以很好地工作,那么如何解决这个问题呢
我可以确认SVG路径中存在错误。
T
命令应该有两个坐标参数。但中间有一个没有。可能应该是:
要么mathjax SVG生成器中存在错误,要么代码中的其他内容意外地剥离了随机字符
相关问题 更多 >
编程相关推荐