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

如何在MathJax中获得与渲染数学相关联的特克斯标记?

伯庆
2023-03-14

我有一个演示,其中我使用MathJax在网页中呈现数学。js。这个演示是在线演示。

我得到了完美的数学渲染,但是现在我想做数学渲染的相反,即得到与渲染数学相关联的html标记。我尝试了几个方法MathJax。Hub.getJaxFor(div),也div.inner超文本标记语言,但是没有一个给我原始标记。

我想使用MathJax中的一些API获取原始标记,在这个演示中是$$x^2=x2$$

问题

在下面的演示中,我将使用MathJax中的哪个API来获取原始标记?

演示代码

<script>
   function getMathMarkup() {
   var div = document.getElementById("mathMarkup");
   //I need to get the original Tex markup with $$ delimiters
   //once the Math gets rendered
       alert(MathJax.Hub.getJaxFor(div));
       alert(div.innerHTML);
   }
</script>
<script type="text/x-mathjax-config">
   MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript"
   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<button type="button" onclick="getMathMarkup();return false;">Get Math Markup</button>
<div id="mathMarkup">
   $$x^2 = x +2$$
</div>

共有1个答案

宋畅
2023-03-14

我想使用MathJax中的一些API获取原始标记,在这个演示中是$$x^2=x2$$。

这是不可能的;分隔符将在预处理期间删除,并且不会存储。如果需要原始数据,您必须自己跟踪用户输入。

但是,您可以查找显示样式并从中导出分隔符。

这里有一个例子。

html lang-html prettyprint-override"><script>
   function getMathMarkup() {
   var div = document.getElementById("mathMarkup");
   //I need to get the original Tex markup with $$ delimiters
   //once the Math gets rendered
   var math = MathJax.Hub.getAllJax("MathMarkup")[0];
   var text =  '$' + math.originalText + '$';
   if (math.root.display) text = '$' + text + '$';
   alert(text);
   };
</script>
<script type="text/x-mathjax-config">
   MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript"
   src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

<button type="button" onclick="getMathMarkup();return false;">Get Math Markup</button>
<div id="mathMarkup">
   $$x^2 = x+2$$
</div>
 类似资料:
  • 我想知道我是否可以使用MathJax渲染LaTeX符号,而不封装LaTeX符号周围的\(......\)。例如,对于\frac{2}{3}而不是\(\frac{2}{3}\),如果是,我如何设置它? 非常感谢!

  • 问题内容: 我有两个表,一个带有列的表: 和带有列的表: 我正在尝试列出车辆的信息,其默认图像以及该车辆具有的图像总数。目前,我正在使用以下语句: 我最初使用的是: 但是根据数据库中是否有默认图像,图像计数将仅为1或0。我已经尝试使用和其他语句,但是仍然无法获得正确的结果。我是否需要使用两个语句,或者是否有其他方法可以使用或处理它? 问题答案:

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

  • 问题内容: 如何获得元素的渲染高度? 假设您的元素内部包含一些内容。内部的内容将扩大的高度。当您没有明确设置高度时,如何获得“渲染的”高度。显然,我尝试过: 有这样做的技巧吗?如果有帮助,我正在使用jQuery。 问题答案: 应该是 jQuery。这将以数字形式检索包装集中的第一个项目的高度。 尝试使用 仅当您首先将属性设置为有效。不是很有用!

  • 问题内容: 如何获得元素的渲染高度? 假设您的元素内部包含一些内容。内部的内容将扩大的高度。当您没有明确设置高度时,如何获得“渲染的”高度。显然,我尝试过: 有这样做的技巧吗?如果有帮助,我正在使用jQuery。 问题答案: 应该是 jQuery。这将以数字形式检索包装集中的第一个项目的高度。 尝试使用 仅当您首先将属性设置为有效。不是很有用!

  • 下面是我拥有的代码片段: class.block的每个div都有一个data-title属性(每个data-title属性的值不同)。我希望能够在我的匿名函数中访问这个data-title属性。