【问题标题】:Escaping dollar sign in ipython notebook在 ipython 笔记本中转义美元符号
【发布时间】:2013-04-11 22:19:22
【问题描述】:

我在 iPython 中有一个包含四个美元符号的降价单元格。 iPython 将美元符号之间的任何内容解释为 MathJax 表达式,这不是我想要的。我如何摆脱美元符号?用反斜杠转义它们会阻止 MathJax 启动,但反斜杠会显示在编译的 Markdown 中。

关于如何获得美元符号的任何想法?

谢谢

【问题讨论】:

  • 您能粘贴到代码行中,以便我们查看您是如何转义的吗?

标签: python markdown ipython mathjax


【解决方案1】:

在美元符号前放置两个反斜杠。例如:

Some prices: \\$3.10, \\$4.25, \\$8.50.

(运行 Jupyter 笔记本服务器 5.7.0)

【讨论】:

  • 非常有帮助。此答案在引用的文本中效果很好,而其他解决方案在这种情况下效果不佳。引用文本中的单个反斜杠仍会进入数学模式。使用反引号会在文本中突出显示代码块。
  • 当您使用双反斜杠导出时,某些美元符号在导出的 html 中会使用反斜杠,而其他则不会。如果在 Jupyter 中将双反斜杠删除为单反斜杠,则会编译 mathjack。非常混乱。
【解决方案2】:

您可以使用反斜杠以数学模式转义$。试试$\$$

【讨论】:

    【解决方案3】:

    如果您使用<span>$</span>,MathJax 不会将其作为分隔符处理。你应该可以在 Markdown 中输入。例如,我在这里使用过:$ This is not math $.

    【讨论】:

      【解决方案4】:

      我无法让这些解决方案中的大部分工作。不过,一个确实有效的解释是here。它指的是一个 SO 问题here,并且很简单:

      <span class="tex2jax_ignore">$900 vs $4,500</span>
      

      希望这对某人有所帮助!

      【讨论】:

        【解决方案5】:

        我知道这个话题很老,但不知何故它仍然是第一个谷歌结果,它的答案不完整。

        您也可以用“反引号”将 $ 括起来,就像在 Jupyter 中显示代码一样。

        所以 $ 变成了 `$`,并且应该正确显示

        【讨论】:

          【解决方案6】:

          您是否尝试使用等效的 HTML 实体来代替?:

          例如

          【讨论】:

          • 答案太短。需要解释一下吗?
          • 没问题。我已经用一个例子更新了我的答案。请。见上文。
          • 想解释一下它为什么起作用? (关于 HTML 转义码是如何工作的)
          【解决方案7】:

          旧帖子,但它仍然在 Google 的顶部!这是我希望我早点理解的澄清:

          Jupter Notebook Markdown

          Jupyter Notebook“Markdown”单元格允许您在其中编写 HTML,并在大多数情况下按预期呈现 HTML。这与其他一些 Markdown 编辑器不同,在这些编辑器中,您只能使用非常有限的 HTML 子集,或者根本不使用 HTML。

          为什么这对于 $ 字面量很重要

          一个非常有用的方面是当您想要使用特殊字符的 literal 版本时,例如 $。这意味着,您希望 $ 出现在单元格的渲染版本中,而不是使用 $ 来启动 MathJax 块。

          这超出了$ 的其他特殊字符。也许您希望* 出现在呈现的单元格中,而不是指示项目符号点或粗体/斜体文本。我很难想象 # 或 _ 或 [ 的用例,但您可能出于某种原因也想编写这些文字(不要用反引号将它们包围,导致它们被样式化就像我在这里的内联代码块一样)。

          HTML 方法 1:创建 HTML 块

          其他几个答案描述了用 HTML &lt;span&gt; 标记围绕$。这是在做什么(如果你没有像 this GitHub comment shows 这样在中间包含换行符)是告诉 Jupyter Notebook 不要再将内容解释为 Markdown,而是将其解释为 HTML。在 HTML 中,$ 并不意味着您正在启动一个 MathJax 块,因此它会按字面意思呈现。

          我个人不喜欢这种方法,因为很难判断 span 正在解决什么问题,而且它使用 span 更像是一种 hack/workaround,而不是它在 HTML 规范中的使用方式。

          HTML 方法 2:HTML 字符编码

          这就是上面&amp;#36; 的答案所暗示的,尽管我认为它没有得到充分的解释。

          这里的想法是,不要将 $ 文字放在 Markdown 源代码中,而是将 HTML 字符代码版本 &amp;#36; 代替。 Here 是对这些字符代码的更长解释,如果您好奇的话。但基本上你需要知道的是,如果你在编辑 Markdown 单元格的源代码时编写了相关的字符代码,它不会被解释为 Markdown,但它会正确呈现。

          所以不是这个 Markdown 源:

          The price range is $100 to $200
          

          (将 100 to 渲染为 MathJax)

          只需将$s 替换为&amp;#36;s:

          The price range is &#36;100 to &#36;200
          

          (将按字面意思呈现美元符号)

          我更喜欢这种方法,因为 HTML 字符编码的全部目的是转义特殊字符,因此如果将来有人试图了解您的代码在做什么,他们应该能够很快弄清楚。

          我通常也尽量避免在我的 Jupyter Notebook Markdown 中使用 HTML 打开和关闭标签,因为小的拼写错误(比如忘记/)可能会产生令人困惑的级联影响,但您的里程可能会有所不同:)

          如果您正在寻找$ 以外的字符代码,我喜欢this resource,尽管您也可以只搜索“HTML 代码”加上您想要的字符,大多数时候都能得到正确的答案。

          【讨论】:

          • 这个答案是否添加了新信息?这似乎是您如何解决和理解问题的一个很酷的细分,但它似乎没有提供新信息
          • 我添加的特定信息更清楚地解释了“使用等效的 HTML 实体”在 Jupyter Notebook 的上下文中的含义。许多写笔记本的人并不流利地使用 HTML,而使用该措辞的先前答案显示的是 HTML 表格而不是最小示例,因此不清楚该建议如何应用于原始问题。
          • 添加一条评论可能就足够了,比如“换句话说,您可以写“价格范围是 $100”,而不是“价格范围是 100 美元到 200 美元”到 $200'”。但是我是新来的贡献者,并且缺乏足够的声誉来评论其他人的答案,所以它必须是一个答案而不是评论!然后在那一点上,我忍不住用标题等写了更长的解释。?
          • 没问题。正如我所说,故障仍然很酷
          猜你喜欢
          • 2015-06-17
          • 2021-07-01
          • 1970-01-01
          • 2022-11-22
          • 1970-01-01
          • 2018-09-03
          • 2015-05-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多