我使用KaTeX JavaScript库来解析和渲染LaTeX。它大部分工作,但很多时候,似乎随机有一个EOF(文件结束)错误。
我的脚本尝试做的是遍历一个原始LaTeX代码数组,并在呈现的LaTeX旁边打印出文本字符串。简单来说就是:
<div id='math-constructs'>
<script>
$(document).ready(function() {
$.each([
'frac{abc}{xyz}',
'overline{abc}',
'overrightarrow{abc}',
'underline{abc}',
'overleftarrow{abc}',
'sqrt{abc}',
'widehat{abc}',
'overbrace{abc}',
'sqrt[n]{abc}',
'widetilde{abc}',
'underbrace{abc}'
], function(i, char) {
try {
$('#math-constructs').append('<div><code>\' + char + '</code>' + katex.renderToString('\' + char) + '</div>');
} catch (err) {
$('#math-constructs').append('<div>' + err + '</div>');
}
});
});
</script>
</div>
用于捕获附加在末尾的错误的代码每次遇到错误时都返回相同的结果。
ParseError: KaTeX parse error: Expected 'EOF', got 'overrightarrow' at position 15: overrightarrow̲{abc}
ParseError: KaTeX parse error: Expected 'EOF', got 'widehat' at position 8: widehat̲{abc}
我认为这里发生了一些奇怪的字符转义,因此值得一提的是,我在markdown(特别是GFM)中内联地编写了这些。
下面是我引用的LaTeX文档:http://www.auburn.edu/~tamtiny/Symbols.pdf
这是不支持该函数的一种不幸的说法。#538也适用于这种情况。
KaTeX只支持LaTeX的一个特定子集。由于开发人员的贡献,这个子集正在增长。overrightarrow
跟踪为#402,widehat
跟踪为#407。