在 Django 中渲染 latex/mathjax 方程

Car*_*los 6 python django latex mathjax python-3.x

我想做的第一件事是非常感谢任何花时间阅读本文的人。这篇文章看起来很长,但这主要是因为我用项目符号对其进行了格式化,并且我希望尽可能详细并提供一个最小的工作示例。这是我第一次开始一个独立的编码项目,也是我第一次在 Stack Exchange 上发表文章,所以即使我检查没有违反任何规则,我也可能错过了一些东西。

我正在做我的第一个 django 项目(应该是一个简单的博客),我想我遇到了很多未知的未知数。我想: - 在我正在使用的文章模板中呈现 [;\LaTeX] 样式的数学公式。该模板是一个 HTML 文件,可在此处找到源代码。它扩展了这个基本模板

我试过了

这一刻,我绝望了。然后我尝试:

  • django-tex
  • django-latexify
  • 我读了这篇堆栈交换帖子,这几乎是有道理的
  • /r/django 中的这篇文章确实说要使用 mathjax,但不幸的是,到目前为止我一直在失败 基于所有这些,我有一些问题希望你们能帮我解决。
    1. 假设你想用 python 做一些事情。你在github上随便找了一个包,声称可以为你做,但你之前没听说过,2年没更新了。你相信吗?如果项目/目标需要使用的包不是您知道可以信任的规范包之一(如 numpy),您如何为项目/目标选择包?
    2. 为什么 MathJax 是将 Latex 样式方程合并到网站/HTML/CSS 的最佳方式
    3. 我觉得第一个包应该可以工作,也许我在我的虚拟环境中犯了一个错误。有没有办法确认这一点(对不起,我知道这太模糊了)
    4. 最重要的是:鉴于我尝试了很多不同的事情,但都没有奏效,我该如何辨别下一步是什么。我的模板是 HTML 文件这一事实应该指导我吗?
    5. 如果我的困境的答案在 MathJax 文档或 Django 文档中,我将如何有效地搜索它?

Ken*_*ama 3

恭喜你发表第一篇 SO 帖子。我想说你在提问方面已经做到了;挑剔的话,我只会内联代码。

不幸的是,看起来mathjax 从 Cloudflare 广告的主镜像现在无法访问(给我一个 403),所以也许这给您带来了问题。

Django 模板渲染 HTML,最终您只是渲染 HTML 页面。尝试在本地浏览器中运行以下 HTML 文件。它应该可以工作。Django 使用模板所做的所有事情都是动态注入我在这里硬编码的主体:本质上,您只需要渲染一个字符字段(而不是硬编码),就可以了。

<html>
<head>
  <script type="text/javascript" id="MathJax-script" async
    src="https://cdn.jsdelivr.net/npm/mathjax@3.0.0/es5/tex-mml-chtml.js">
  </script>
</head>
<body>
  $$x=\frac{-b+\sqrt{b^2-4ac}}{2a}$$
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

你在 github 上找到一个随机包,声称可以为你做这件事,但你以前从未听说过它,它已经 2 年没有更新了。你相信它吗?

这实际上是一个相当棘手的问题,如果有人给出明确的答案,我会感到惊讶。我会根据具体情况对待所有事情。在这种情况下,如果你深入研究源代码,基本上整个库就是这一个文件。该库本质上只是注入 mathjax 脚本。所以,简而言之,在这种情况下我不会打扰图书馆。

  • 非常感谢你的帮助!结合使用你和 @nigel222 的答案,我能够让 MathJax 工作。如果可以的话,我稍后可能会提出后续问题,因为我对此很陌生,而且我不太明白您答案的每个部分 (2认同)