【发布时间】:2019-04-28 04:05:57
【问题描述】:
默认情况下,Jupyter 笔记本输出单元格中较长的文本行将被换行。如何制止这种行为?
【问题讨论】:
-
你想要一个水平滚动条还是输出单元格宽度来适应它的内容?
-
这两个选项都可以接受。水平滚动条会更好。
标签: python-3.x output jupyter-notebook word-wrap
默认情况下,Jupyter 笔记本输出单元格中较长的文本行将被换行。如何制止这种行为?
【问题讨论】:
标签: python-3.x output jupyter-notebook word-wrap
如果你不想弄乱配置文件,你可以通过调用 IPython.core.display 函数来修改笔记本的行为。然后添加@atevm 建议的CSS:
from IPython.core.display import display, HTML
display(HTML("<style>div.output_area pre {white-space: pre;}</style>"))
for line in range(5):
for num in range(70):
print(f" {num}", end="")
print()
【讨论】:
您可以使用 html 魔术命令。通过检查输出单元格来检查 CSS 选择器是否正确,然后相应地编辑下面的内容。
%%html
<style>
div.output_area pre {
white-space: pre;
}
</style>
【讨论】:
我可以通过在我的 Jupyter 用户配置中的 custom/custom.css 文件中添加一个简单的 CSS 规则来解决这个问题:
/*Disable code output line wrapping*/
div.output_area pre {
white-space: pre;
}
结果:
div.output_area pre 选择规则的代码输出区域的pre 预格式化文本区域(css 属性集)。 white-space 属性说明浏览器应如何在选定的 HTML 元素中显示空格,pre 值浏览器仅在换行符 \n 和 <br> 元素处中断。
根据Can I Usewhite-space: pre 的属性和值,我的 Firefox v70.0 和 Chorme v78.0.3904.97 的这个 CSS 渲染良好(带有精细的水平滚动条)应该适用于所有现代桌面浏览器。
您可以通过运行以下 shell 命令找出您的配置所在的位置:
jupyter --config
如果您想进一步修改样式,只需在 Jupyter Notebook 选项卡上使用您喜欢的浏览器的检查器即可。您可以在其中修改 CSS 而不会产生永久效果。
【讨论】:
我无法发表评论,所以我必须回答:也许 Jupyter 的最新版本有些不同。如果接受的答案不起作用,您可以尝试使用“jp-OutputArea-output”而不是“div.output_area”;例如
from IPython.core.display import display, HTML
display(HTML("<style>div.jp-OutputArea-output pre {white-space: pre;}</style>"))
如果你有一个暗模式浏览器并且你不喜欢由此产生的较亮的滚动条,你可以尝试在 Jupyter 添加中设置暗模式
display(HTML("<style>:root {color-scheme: dark;}</style>"))
见:How do I switch to Chromes dark scrollbar like GitHub does?
【讨论】: