javascript MathJax不呈现数组中的列行

nnsrf1az  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(106)

我使用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

vfh0ocws

vfh0ocws1#

将以下样式信息添加到文件中

<style>
.mjx-solid {
  stroke-width: 80px;
}
</style>

使垂直线对我可见。您可以增大或减小笔划宽度,以使线条更明显或更不明显。

相关问题