使用 KaTeX 和 nodejs 生成 HTML
Generating HTML with KaTeX and nodejs
我 运行 遇到了试图在 HTML 和 CSS 中呈现一个重要公式的问题。它只会在我的屏幕上造成一团乱七八糟的 unicode 字符。
我 downloaded KaTeX 进入目录 ./katex/ 并创建 test.js:
var katex = require('./katex/katex.min.js');
var html = katex.renderToString("x^y");
console.log(html);
我 运行 命令 'nodejs test.js' 并将输出粘贴到这个最小的 html 文件 test.html(带换行符为了便于阅读而插入):
<html>
<head>
<link rel="stylesheet" type="text/css" href="./katex/katex.min.css">
</head>
<body>
<span class="katex"><span class="katex-mathml"><math><semantics>
<mrow><msup><mi>x</mi><mi>y</mi></msup></mrow>
<annotation encoding="application/x-tex">x^y</annotation></semantics>
</math></span><span class="katex-html" aria-hidden="true">
<span class="strut" style="height:0.664392em;"></span>
<span class="strut bottom" style="height:0.664392em;vertical-align:0em;">
</span><span class="base textstyle uncramped"><span class="mord">
<span class="mord mathit">x</span><span class="vlist">
<span style="top:-0.363em;margin-right:0.05em;">
<span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">
</span></span><span class="reset-textstyle scriptstyle uncramped">
<span class="mord mathit" style="margin-right:0.03588em;">y</span>
</span></span><span class="baseline-fix">
<span class="fontsize-ensurer reset-size5 size5">
<span style="font-size:0em;"></span></span></span></span></span>
</span></span></span>
</body>
</html>
你在这里看不到,但也有一些unicode零宽度space字符(200b)。
然后我在浏览器中打开它,发现一堆额外的类似 unicode 的字符。
其他公式如 \sqrt{} 和 \frac{} 也会发生同样的事情。我做错了什么?谢谢。
这是一个编码问题。只需在 html 文件中添加元标记即可解决问题。
<head>
<meta charset="utf-8"/>
<link rel="stylesheet" type="text/css" href="./katex/katex.min.css">
</head>
我 运行 遇到了试图在 HTML 和 CSS 中呈现一个重要公式的问题。它只会在我的屏幕上造成一团乱七八糟的 unicode 字符。
我 downloaded KaTeX 进入目录 ./katex/ 并创建 test.js:
var katex = require('./katex/katex.min.js');
var html = katex.renderToString("x^y");
console.log(html);
我 运行 命令 'nodejs test.js' 并将输出粘贴到这个最小的 html 文件 test.html(带换行符为了便于阅读而插入):
<html>
<head>
<link rel="stylesheet" type="text/css" href="./katex/katex.min.css">
</head>
<body>
<span class="katex"><span class="katex-mathml"><math><semantics>
<mrow><msup><mi>x</mi><mi>y</mi></msup></mrow>
<annotation encoding="application/x-tex">x^y</annotation></semantics>
</math></span><span class="katex-html" aria-hidden="true">
<span class="strut" style="height:0.664392em;"></span>
<span class="strut bottom" style="height:0.664392em;vertical-align:0em;">
</span><span class="base textstyle uncramped"><span class="mord">
<span class="mord mathit">x</span><span class="vlist">
<span style="top:-0.363em;margin-right:0.05em;">
<span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">
</span></span><span class="reset-textstyle scriptstyle uncramped">
<span class="mord mathit" style="margin-right:0.03588em;">y</span>
</span></span><span class="baseline-fix">
<span class="fontsize-ensurer reset-size5 size5">
<span style="font-size:0em;"></span></span></span></span></span>
</span></span></span>
</body>
</html>
你在这里看不到,但也有一些unicode零宽度space字符(200b)。
然后我在浏览器中打开它,发现一堆额外的类似 unicode 的字符。
其他公式如 \sqrt{} 和 \frac{} 也会发生同样的事情。我做错了什么?谢谢。
这是一个编码问题。只需在 html 文件中添加元标记即可解决问题。
<head>
<meta charset="utf-8"/>
<link rel="stylesheet" type="text/css" href="./katex/katex.min.css">
</head>