我使用Node在服务器端运行MathJax,因为我需要将数学表达式呈现为SVG。然而,我真正需要的一个特性,数组中的列行(对扩充矩阵很有用)在转换为SVG时不能正确呈现,尽管它们在直接呈现为HTML时可以正确呈现。
下面是一个简单的例子:
import fs from "fs";
const MathJax = await (await import("mathjax")).init({
loader: {
load: ['input/tex', 'output/svg']
},
});
const mathExpression = String.raw`\left(\begin{array}{cc|c}
2 & 0 & 1\\
0 & 1 & 1
\end{array}\right)`;
const renderedSvg = MathJax.startup.adaptor.innerHTML(
MathJax.tex2svg(mathExpression)
);
fs.writeFileSync("test.svg", renderedSvg);
下面是TeX的外观,由TeX甚至MathJax在HTML中呈现:
下面是它在SVG中的实际显示方式:
特别奇怪的是,在SVG中应该是列行的地方,有一个几乎无法察觉但肯定存在的额外空格,这意味着它肯定在做一些事情。但我不太清楚实际的线条没有呈现的是什么以及为什么。
下面是实际的原始SVG输出:https://pastebin.com/raw/JXVefkft
1条答案
按热度按时间vfh0ocws1#
将以下样式信息添加到文件中
使垂直线对我可见。您可以增大或减小笔划宽度,以使线条更明显或更不明显。