如何在Python Django中配置Mathjax

时间:2012-05-12 16:36:58

标签: django mathjax

我想知道如何在Q& A系统中配置Django中的Mathjax,其中问题和答案将基于LaTeX格式。

我试图添加:

<script type="text/javascript"
   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

进入html模板,其中的问题和答案将显示无效。

感谢。

3 个答案:

答案 0 :(得分:3)

如果页面的内容是动态创建的,则需要在内容加密后调用MathJax。有关详细信息,请参阅the documentation。主要想法是你必须包括

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

在内容到位后执行的javascript中。

答案 1 :(得分:0)

针对动态内容,这是有效的解决方案。我将AsciiMath Input用作合并了ASCIIMathML的mathjax中的输入格式。 在base.html中,添加以下脚本:

<script>
  MathJax = {
    loader: {load: ['input/asciimath', 'output/chtml']}
  }
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/startup.js"></script>
<script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">

,并记住用反引号将动态文本括起来”,即“ ...”,因此在django-admin中,您可以简单地将sqrt(50)输入为`sqrt(50)`或`x ^ 2`以及从视图传递到模板的动态内容,在模板中,您将{{e1}}用反引号括起来

`{{e1}}`

代替
{{e1}},其中e1是动态内容。因此,如果先前以纯文本形式显示为2 * sqrt(2)的e1现在将显示为2√2。

有关更多详细信息:http://docs.mathjax.org/en/latest/input/asciimath.html#asciimath-support

答案 2 :(得分:0)

https://docs.mathjax.org/en/latest/web/configuration.html。要使演示指示 here 正常工作,您还应该将 ['\(', '\)'] 添加到 inlineMath:


<script>
MathJax = {
  tex: {
    inlineMath: [['$', '$'], ['\\(', '\\)']]
  },
  svg: {
    fontCache: 'global'
  }
};
</script>
<script type="text/javascript" id="MathJax-script" async
  src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
</script>