首页 > 解决方案 > 动态内容的 Django 模板和数学表达式

问题描述

如何设置从视图传递到模板的动态内容以使用 mathjax 或 Latex。更准确地说,如果 2*sqrt(2) 将通过 pprint 函数显示为 2√2,则在终端中更准确。但是在 django 模板中,它输出为 2*sqrt(2) 而不是 2√2?

标签: djangotemplateslatexsympymathjax

解决方案


终于想通了,以防其他人遇到同样的问题,这是可行的解决方案。我在包含ASCIIMathML的 mathjax 中使用 AsciiMath Input 作为输入格式。

在 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


推荐阅读