我正在使用MathJax解析一些LaTeX方程。下面的工作都很好:
<head>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
</head>
<body>
<div id="question">
We like, $$e = mc^2$$
</div>
</body>问题出现了,因为我不是硬编码#question的内容,而是从另一个文件加载它们。
<head>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
<script src="jquery-cdn"></script>
<script src="questionLoader.js"></script>
</head>
<body>
<div id="question">
</div>
</body>
---------------
//This is questionLoader.js
$(document).ready(function() {
var theQuestion = "question1.html"; //file to load
$("#question").load(theQuestion);
});
--------------
//This is question1.html
We like, $$e = mc^2$$现在,LaTeX有时被正确解析,有时不被解析(更多的是没有被解析)。我推测如果MathJax解析在questionLoader完成加载之前完成,那么加载的LaTeX就不会被解析。
有没有一种方法可以确保questionLoader在MathJax完成解析之前先完成加载?或者在加载theQuestion后对MathJax进行回调。我应该做些什么来确保解析?
发布于 2020-11-15 02:08:40
在加载数学之后调用MathJax.typeset()函数。
从文档中:
如果您正在编写一个动态网页,其中包含数学的内容可能会在MathJax排版完页面的其余部分后出现,那么您将需要告诉MathJax在生成新内容时再次在页面中查找数学。为此,需要使用MathJax.typeset()方法。这将导致MathJax在页面上查找未处理的数学并对其进行排版,而对已排版的任何数学保持不变。
https://stackoverflow.com/questions/64836689
复制相似问题