如何在ipython/jupyter笔记本中更改markdown单元格的颜色?

181

我只想格式化单元格中特定的字符串。我将该单元格的格式更改为"Markdown",但不确定如何更改单个单词的文本颜色。

我不想通过CSS文件更改整个笔记本的外观。

10个回答

247

您可以直接使用原始的 HTML 标签,例如:

foo <font color='red'>bar</font> foo

请注意,这将无法在笔记本转换为latex后生效。

由于有人投诉提议解决方案的淘汰。它们是完全有效的,Scott已经用更近期、基于CSS的方法回答了这个问题。尽管如此,这个答案展示了一些IPython中使用HTML标签来对Markdown单元格内容进行样式设置的一般方法,超出了可用的纯Markdown功能。


1
@jayarjo 在IPython 2.1中,这仍然完美地工作!你能提供更多关于你尝试过什么的信息吗? - Jakob
在我的 Jupyter NB 版本 4.3.1 上可以工作。 - Austin
“font”标签现已被弃用。您可以使用带有样式属性的“span”标签代替。 - Paul
1
当执行 文件 > 导出笔记本为... > PDF 时,此答案无效,因为生成的 PDF 文档中显示的彩色单词会变成黑色。是否有其他替代方法? - Gian Arauz

86

与Jakob的回答类似,您可以使用HTML标记。只需注意fontcolor属性(<font color=...>)在HTML5中已被弃用。以下语法将符合HTML5标准:

This <span style="color:red">word</span> is not black.

Jakob提出的同样的注意事项可能仍然适用:

请注意,这将无法在将笔记本转换为latex时保留。


@jayarjo 我刚在 IPython 1.1.0 中尝试了我的解决方案,对我来说运行良好。你能提供更多关于你尝试过什么以及你的环境设置的信息吗?记得将单元格类型更改为 Markdown,可以通过 Cell > Cell Type 菜单完成。 - Scott H
我正在GitHub上尝试这个。 - jayarjo
@jayarjo,这个问题特别涉及在允许使用Markdown文本的IPython笔记本中着色文本。关于GitHub Markdown文件中颜色的行为,请参见以下专门针对该问题的问题。简短的答案是,在GitHub Markdown文档中似乎目前没有指定文本颜色的方法。https://dev59.com/cmgu5IYBdhLWcg3wMkQm - Scott H
@ScottH:我不明白你所说的“将笔记本转换为latex”的意思。我能够将span中的部分文本转换为latex,而jupyter会以红色呈现latex。 - Shishir Pandey
@ShishirPandey:我所指的“将笔记本转换为LaTeX”是指通常可以使用ipython nbconvert --to latex mynotebook.ipynb将笔记本转换为LaTeX(一种排版语言)。或者,在打开的笔记本中,您可以转到“文件”>“下载为...”>“通过LaTeX下载PDF”。但是,我认为通过html/css样式的颜色规范可能无法正确地转换为LaTeX。我目前没有安装LaTeX,因此无法重新验证,但我认为情况是如此。 - Scott H
它应用了颜色。但它删除了标签之间的Markdown语法。例如,所有带有“code”单词的内容显示为与代码的其余部分相同... 有任何想法吗? - Martin

37

另一种方法是在笔记本中输入LaTeX环境,并从那里更改颜色(如果您比HTML更熟悉LaTeX,则非常适用)。 示例:

$\color{red}{\text{ciao}}$

将显示红色的ciao


1
值得注意的是,如果您计划将笔记本导出为Latex或PDF格式,或者使用pandoc等工具进行处理,那么这个解决方案将成功地通过latex,而原始HTML解决方案更有可能在转换为latex时被pandoc剥离或导致latex错误。 - flutefreak7
1
只是提一下可能的缺点,LaTeX 可能会以不同于 markdown 其余部分的字体呈现(至少在使用上述逐字模式时,这是我在 Jupyter 笔记本中的经验)。此外,对于长文本段落,此解决方案效果不佳,因为文本不会自动换行,因为它位于数学模式内的文本部分。 - j_v_wow_d

20
例如,如果你想让 "文本" 的颜色变为绿色,只需输入:
<font color='green'>text</font>

5

我在Google Colab中测试了这些答案中的想法。

<span style='color:red'>green</span> 
$\color{green}{\text{blue}}$ 
<font color='red'>orange</font>

其中第二个版本(LaTeX $…$ 和 html 字体)可用,样式版本不可用。

注:html font 元素已被弃用。因此我正在使用 LaTeX 版本。


LaTeX版本非常好用!感谢您的添加。 - haltersweb

4
如果以上建议都不适用于您,请尝试使用style属性。
**Notes**
<p style="color:red;">ERROR: Setting focus didn't work for me when I tried from jupyter. However it worked well when I ran it from the terminal</p>

这给我以下结果:

在此输入图像描述


3

可以使用以下方法更改文本颜色:

<span style='color:green'> message/text </span>

2
<span style='color:blue '> your message/text </span>

这里是在notebook ipynb文件中完美的html css样式条目。

当然,您可以在这里选择您喜欢的颜色,然后输入您的文本。


1
<p style="font-family: Arial; font-size:1.4em;color:gold;"> Golden </p>

或者

Text <span style="font-family: Arial; font-size:1.4em;color:gold;"> Golden </p> Text

1
这是一个非常简单而有效的谷歌Colab技巧。 使用Markdown的(空)链接语法。 [your_message]() 然后你会得到蓝色的文本(带下划线)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接