如何在Jupyter Lab中自定义Markdown单元格样式?
在Jupyter Lab中修改Markdown单元格字体的方案
你说的那个在传统Jupyter Notebook里通过加载外部CSS修改字体的方法,到了Jupyter Lab里确实会失效——毕竟Lab的UI架构和老Notebook完全不一样,DOM类名都变了。下面给你两种实用的解决办法:
方案1:全局修改(永久生效)
这个方法会让所有Jupyter Lab里的Markdown单元格都用上你想要的字体,步骤很简单:
- 打开Jupyter Lab,点击左侧边栏的齿轮图标(Settings),选择「Advanced Settings Editor」
- 在顶部的下拉菜单里选中「Theme」
- 切换到右侧的「User Preferences」编辑区,把下面的内容粘贴进去(如果已经有其他配置,记得把
overrides字段合并进去):
{ "overrides": { ".jp-MarkdownCell .jp-RenderedMarkdown": { "font-family": "\"Times New Roman\", Times, serif" } } }
- 保存设置,Jupyter Lab会自动刷新,之后所有Markdown单元格的字体就变成你要的样式了。
方案2:临时修改(仅当前Notebook生效)
如果只是想让当前打开的Notebook生效,不想改全局设置,可以在代码单元格里运行这段代码:
from IPython.core.display import HTML HTML(""" <style> .jp-MarkdownCell .jp-RenderedMarkdown { font-family: "Times New Roman", Times, serif; } </style> """)
运行后,当前Notebook里的所有Markdown单元格字体就会立刻变化,不过关闭Notebook再重新打开的话,需要再次运行这段代码才能生效。
为什么原来的方法在Lab里没用?
传统Jupyter Notebook里的Markdown渲染单元格用的是text_cell_render这个CSS类,但Jupyter Lab重构了UI组件,对应的类名变成了jp-MarkdownCell(单元格容器)和jp-RenderedMarkdown(渲染后的内容区域),所以原来的CSS选择器找不到对应的元素,自然就没效果啦。
内容的提问来源于stack exchange,提问作者Primo Petri
相关产品推荐
相关产品推荐

