【问题标题】:Is it possible to display the source of MathJax-rendered TeX inline?是否可以内联显示 MathJax 渲染的 TeX 的源代码?
【发布时间】:2019-01-26 03:34:58
【问题描述】:

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

【问题讨论】:

  • MathJax 公式是什么意思?您使用\(...\)TeX 形式编写数学表达式作为内联分隔符。一旦网页使用 MathJax 显示数学,您可以右键单击数学,然后出现的菜单为您提供复制与相应数学表达式关联的 MathML 和 Tex 命令的选项。您可以使用quadratic formula here 进行尝试。如果我误解了你的问题,你可以再澄清一点。
  • 嘿@nam,我澄清了这个问题。请看一下。并提前一百万谢谢:)
  • @nam 的评论告诉你如何得到单个方程。对于较大的段,最好的方法是将 MathJax 切换到其 PlainSource 输出,这会将 TeX 留在页面中。不过,您仍然需要在复制后添加数学分隔符。
  • @PeterKrautzberger 我之前尝试过,非常耗时。我想知道是否可以启用一个标志以在上下文中嵌入公式的 TeX 命令。然后我可以进行正常的复制/粘贴。

标签: ipython mathjax jupyter-notebook


【解决方案1】:

更新

TL;DR

  1. 右键单击公式 > 数学设置 > 数学渲染器 > MathML
  2. 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>'; } })() 创建一个bookmarklet
  3. 在页面上按下小书签来运行它
  4. 享受更轻松的复制和粘贴!

加长版

This Github issue 已解决此问题。它不适用于this page,所以我像上面一样对其进行了一些更改。这不是一个通用的解决方案,但您可以根据页面的具体情况对其进行调整。如果你比较热心,可以细说一下,做个浏览器扩展给大家欣赏一下:)。

旧答案

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

方法一:

  1. 通过以下方式更改设置以呈现为 MathML:右键单击公式 > 数学设置 > 数学渲染器 > MathML
  2. 打开页面源,例如Ctrl + U 在 Chrome 上或右键单击并按“查看源代码”。
  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 的提示:)

【讨论】:

    【解决方案2】:

    这是我对@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 + '$'; } }); })()

    【讨论】:

      猜你喜欢
      • 2017-02-17
      • 2022-08-16
      • 2018-02-07
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      相关资源
      最近更新 更多