python 无法在字符串中混合显示输出单元格中的代码和数学

sxpgvts3  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(106)

我试图在一个字节笔记本的输出单元格中混合数学和代码字符串:

from IPython.display import Markdown, display
text = """
Formula is $\\lambda = \\rho \\cdot C_p$

It corresponds to the python code:

> ```python
> lambda = rho * Cp
> ```
"""
display(Markdown(text))

字符串
然而,在输出单元格中,只有python字符串正确显示:内联数学公式保持原样,用'$'括起来。删除python代码片段允许正确显示数学公式,这意味着两种模式之间存在某种不一致。为什么以及如何解决这个问题?

83qze16e

83qze16e1#

这个问题是在一个三重引号的多行字符串中整理出三重反引号。这是相当复杂的,我有限的调查似乎经常回归,可能是试图修复其他东西。我看到你的代码工作,因为在不同版本的Answyter。

这里是它工作的地方

  • XueyterLab版本3.4.8和4.0.6.**以及Xueyter Notebook Version: 7.0.4
  • QueryterLab版本4.0.6
  • Xueyter笔记本版本7.0.4
  • Xueyter笔记本版本7.1.0a2

下面是我看到的第一个公式不显示为MathJax

  • NbClassic 0.5.5(我认为它与NbClassic Notebook 6.4.1密切相关,因为系统也有)
  • QueryterLab版本4.1.0b0

建议的解决方案,以消除嵌套的三重引用/打勾的markdown的复杂性,通过使它们成为两个字符串作为一个变通方案,将在任何地方工作。您的示例实现:

from IPython.display import Markdown, display
texta = """
Formula is $\\lambda = \\rho \\cdot C_p$
"""

textb = """
It corresponds to the python code:

> ```python
> lambda = rho * Cp
> ```
"""
display(Markdown(texta))
display(Markdown(textb))

字符串

相关问题