微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MathJax未处理包含的外部文件

如何解决MathJax未处理包含的外部文件

我想在html文件中包含一个外部文件,该文件具有应由MathJax处理的数学内容。我尝试了几种方法来执行此操作,并且将外部文件包含在html文件中时,将不处理其中的数学内容一个最小的例子来证明这一点:

tst.html:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
  </head>
  <body>
    This displays correctly: \(\phi\). 
    <inc></inc>
    <script>
     fetch("./tst.txt")
       .then(response => {
         return response.text()
       })
       .then(data => {
         document.querySelector("inc").innerHTML = data;
       });
    </script>
    <div id="abc"></div>
    <div id="def">
      <script>$("#def").load("tst.txt");</script>
    </div>
    <script>
     $(function(){
       $('#abc').load('tst.txt');
     });
    </script>
  </body>
</html>

tst.txt:

\(\phi = 0\)

在浏览器中,html文件中的数学内容正确显示,但包含的文件中的文本却未正确显示。有没有一种方法可以正确处理外部文件中的数学内容

解决方法

也许问题是只有在MathJax渲染了Maths之后才将文件拉入页面。因此,您需要“询问” MathJax以在页面中搜索更多的数学并呈现新的数学。

来自MathJax文档:

如果您正在编写一个动态网页,其中在MathJax已经排版了页面的其余部分之后,可能会出现包含数学的内容,那么当产生新内容时,您将需要告诉MathJax在页面中再次寻找数学。为此,您需要使用MathJax.typeset()方法。这将导致MathJax在页面上查找未处理的数学并将其排版,而保留所有已经排版的数学。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。