如何在Jupyter笔记本中以编程方式生成markdown输出?


94

我想为Jupyter笔记本中的班级写一份报告。我想计算一些东西,生成一些结果,并将它们包括在markdown中。我可以将单元格的输出设置为降价吗?
我想要这样的命令:print '$\phi$'生成phi符号,就像在markdown中一样。
换句话说,我想在markdown中制作一个模板,并插入由笔记本中编写的程序生成的值。重新计算笔记本应生成新结果,并插入新值并进行新的减价。使用此软件是否可能,或者我需要自己替换这些值?

Answers:


137

所需的功能在IPython.display模块中

from IPython.display import display, Markdown, Latex
display(Markdown('*some markdown* $\phi$'))
# If you particularly want to display maths, this is more direct:
display(Latex('\phi'))

1
非常感谢,我想这应该对我有很大帮助。如果我要问的话,有没有办法用代码隐藏单元格?我的意思是,当我“编译”降价单元格时,“代码”消失,只有编译后的降价输出可见。我希望能够重复此操作,但要有display_markdown功能。
fulaphex

2
不幸的是,您的代码对我不起作用,它不会产生任何输出。
fulaphex

1
现在确实可以工作了,谢谢。是否有隐藏单元格的命令,以便我可以生成此Markdown,并且其行为类似于普通的Markdown单元格?
fulaphex

2
先前评论中的链接不再起作用,现在可以在以下位置
BioGeek

1
我得到的不是印刷品:<IPython.core.display.Markdown object>
loretoparisi,

30

您基本上是在要求两种不同的东西:

  1. Markdown单元输出代码结果。

    我想计算一些东西,生成一些结果,并将它们包括在markdown中。[...]我想在Markdown中一个模板,并在笔记本中插入程序生成的

  2. 代码单元输出降价

    我想要这样的命令:print '$\phi$'生成phi符号,就像在markdown中一样。

由于2.已经被另一个答案覆盖(基本上是:使用Latex()Markdown()从中导入IPython.display),因此我将重点关注第一个:


1.带有插入变量的Markdown模板

使用Jupyter扩展Python Markdown,实际上可以完全按照您的描述进行操作。

安装说明可以在nbextensions的github页面上找到。确保使用jupyter命令扩展配置程序启用python markdown扩展。

使用扩展名,可通过访问变量{{var-name}}。此类降价模板的示例如下所示:

Markdown单元中的Python代码

变量a为{{a}}

您也可以在此处嵌入LateX:{{b}}!

甚至可以嵌入图像:{{i}}

当然,所有的变量或图像abi应该在前面的代码中设置。当然,您也可以$\phi$不使用print命令而使用Markdown-Latex样式的表达式(例如)。该图像来自扩展的Wiki,展示了该功能。

来自Wiki的示例


有关集成到ipython / jupyter中的此功能的更多信息,请参阅ipythonjupyter的问题跟踪器。


在Jupyter Lab中可用吗?
BND

我不使用它,因此没有经验。但是我在jupyter-lab扩展列表中找不到“ Python Markdown”:github.com/topics/jupyterlab-extension ? q=&unscoped_q= -因此:也许没有?
Honeybear
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.