当前位置: 首页 > 知识库问答 >
问题:

使用KaTeX或MathJax渲染TeX

桂宏旷
2023-03-14

我有一个html文档

<div>
  <p>One paragraph</p>
  <p>Another paragraph</p>
</div>

在一些段落中,我有

<p>Some text and a formula $a = b + c$.</p>

我希望带$符号的文本使用KaTeX呈现为TeX math。

问题是,如果我想在浏览器中使用它,我必须使用

katex.render("c = \\pm\\sqrt{a^2 + b^2}", element);

所以我需要分配一个元素。

那么,我真的应该这样编写html文档,还是有其他选择:

<div>
  <p>One paragraph</p>
  <p>Another paragraph</p>
  <p>Some text and a formula <span id="firstFormula"></span>.</p>
  <p>More text and another formula <span id="secondFormula"></span>.</p>
</div>
<script>
  const firstFormula = document.getElementById('firstFormula');
  katex.render("c = \\pm\\sqrt{a^2 + b^2}", firstFormula);

  const secondFormula = document.getElementById('secondFormula');
  katex.render("c = \\pm\\sqrt{a^2 + b^2}", secondFormula);
</script>

对每个配方重复相同的模式?

这似乎有点奇怪,我不能只写文本并用tex渲染的输出替换所有文本公式。

例如,汗学院是如何在这个页面上结合文本和公式的?他们是否在服务器上呈现所有内容并将其发送到客户端?

在这种情况下使用MathJax更好吗?我只是更喜欢KaTeX,因为它速度更快。

共有1个答案

姚麒
2023-03-14

默认情况下,MathJax不使用$作为分隔符。因此,您必须手动配置它们。

下面使用MathJax的示例来自其文档。

<!DOCTYPE html>
<html>
<head>
<title>MathJax TeX Test Page</title>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript" async
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
</script>
</head>
<body>
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</body>
</html>

如果您想使用KaTeX,您需要包含自动渲染的脚本,并使其使用$作为分隔符。有关说明,请参阅https://github.com/Khan/KaTeX/blob/master/contrib/auto-render/README.md。下面是一个示例。

 类似资料:
  • 我想知道我是否可以使用MathJax渲染LaTeX符号,而不封装LaTeX符号周围的\(......\)。例如,对于\frac{2}{3}而不是\(\frac{2}{3}\),如果是,我如何设置它? 非常感谢!

  • 我有一个MathJax演示,可以在在线演示中查看。 在这个演示中,我在一个div中有一些Tex标记,由MathJax完美渲染。 但是,如果我通过单击按钮,然后单击按钮,以编程方式将一些Tex标记添加到上面的div中,那么它会导致重复渲染以前渲染的Math标记。这可以在以下视频中看到:数学被重复渲染 当点击按钮时,我所做的就是调用以下方法。divElement是通过编程向其添加Tex标记的div。

  • 问题内容: 渲染模板后如何运行方法?我要设置和之后,我需要使用JQuery进行更改(例如,在模板内容的DOM中)。正在“之前”渲染工作(模板的DOM尚不可用)。谢谢。 问题答案: 创建在链接函数中运行代码的指令。构建模板后,将调用链接功能。 请参阅ng-click以获取想法。

  • 我有我的html如下: 现在,我使用这个javascript动态更新

  • 问题内容: 我的Node.js服务器的外观如下所示: 这是一个包含PNG图像的Base64表示形式的字符串。有什么方法可以将其发送给客户端,该客户端访问编码并显示为图像的路由(例如,可以在标记中使用URL )? 问题答案: 是的,您可以对base64字符串进行编码,然后将其作为图像返回给客户端:

  • 问题内容: 我知道如何在AngularJS中创建 视图 条件,该条件将根据条件显示或隐藏dom元素: 但是如何创建确定是否渲染div 的 渲染 条件? 问题答案: 针对angularjs 1.1.5及更高版本用户的更新(在1.0.7中不受支持): 相关提交:https : //github.com/angular/angular.js/commit/2f96fbd17577685bc013a4f7