是否可以内联显示 MathJax 渲染的 TeX 的源代码?

Is it possible to display the source of MathJax-rendered TeX inline?

我正在阅读 this book 那里有 MathJax 公式。我正在 Ipython 笔记本上做笔记。从带有数学公式的段落中记笔记是不方便的。有没有一种简单的方法可以将带有方程式的文本复制为 Tex 命令(在 Ipython 上可以渲染)?

更新

TL;DR

  1. 右键单击公式 > 数学设置 > 数学渲染器 > MathML
  2. 创建 bookmarklet 来自:javascript:(function() { var inline = document.getElementsByClassName("MathJax_MathML"); for (var i = 0; i < inline.length; i++) { var math = inline[i]; math.innerHTML = '<span>$</span>' + math.innerHTML + '<span>$</span>'; } })()
  3. 运行 按下页面上的小书签
  4. 享受更轻松的复制和粘贴!

长版

This Github issue has a fix for the problem. It didn't work well for this page 所以我像上面那样稍微改了一下。这不是一个通用的解决方案,但您可以根据页面的具体情况对其进行调整。如果你比较急,可以细说一下,做个浏览器扩展供大家欣赏:).

旧答案

我在 this example 上尝试了几种方法:

方法一:

  1. 通过以下方式更改设置以呈现为 MathML:右键单击公式 > 数学设置 > 数学渲染器 > MathML
  2. 打开页面源,例如Chrome 上的 Ctrl + U 或右键单击并按 'View Source'。
  3. 找到您要查找的文本。它应该以正确的格式显示:
bla bla $a \ne 0$ bla bla \(ax^2 + bx + c = 0\) bla bla 
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$

方法二:

  1. 执行前面方法的第 1 步。示例页面将使用公式呈现,但没有包含公式的字符。

  2. 在 TeX 命令周围添加单美元符号或双美元符号,以获得与前面方法的步骤 3 相同的格式。

最好是将这两种方法结合起来;即直接在页面中获取正确的格式。如果您找到了方法,请告诉我们。

感谢@nam 和@PeterKrautzberger 的提示:)

这是我对@Thoran 的回答的扩展bookmarklet,它可以自动将渲染器更改为 MathML 并内联显示 MathJax 公式源:

javascript: (function() { MathJax.Hub.setRenderer("NativeMML"); MathJax.Hub.Queue(["Rerender", MathJax.Hub]); MathJax.Hub.Queue(function () { var inline = document.getElementsByClassName("MathJax_MathML"); for (var i = 0; i < inline.length; i++) { var math = inline[i]; math.innerHTML = '$' + math.innerHTML + '$'; } }); })()

这里是 PlainSource 版本:

javascript: (function() { MathJax.Hub.setRenderer("PlainSource"); MathJax.Hub.Queue(["Rerender", MathJax.Hub]); MathJax.Hub.Queue(function () { var inline = document.getElementsByClassName("MathJax_PlainSource"); for (var i = 0; i < inline.length; i++) { var math = inline[i]; math.innerHTML = '$' + math.innerHTML + '$'; } }); })()