位置:首页 > Python > Jupyter Notebook如何修改默认编辑器字体设置

Jupyter Notebook如何修改默认编辑器字体设置

时间:2026-08-17  |  作者:电竞小硕  |  阅读:0

Jupyter Notebook 里代码区域的渲染,底层用的是 CodeMirror 这个编辑器组件。想把字体换掉,做法其实很直接:去修改 custom.css,在里面加入类似 .CodeMirror pre { font-family: "Consolas", monospace !important; } 这样的样式即可。

不过别忽略几个细节:目标字体得先安装好,字体名称要写准确,样式里最好带上 !important,而且相关路径也要确认无误,否则看起来像改了,实际可能并不会生效。

Jupyter Notebook怎么更改默认编辑器字体

CodeMirror 是 Jupyter Notebook 实际渲染代码的编辑器组件,改字体本质就是改它用的 font-family

直接改系统或浏览器默认字体无效,也不影响单元格内代码显示——那是骗人的。

直接改 custom.css 最稳妥(推荐)

这个文件是 Jupyter 专门预留的用户样式入口。重启后即生效,且不会被升级覆盖,只要不重装 notebook 包。

  • 先生成配置目录(如果还没创建过):jupyter --data-dir 查看路径,然后进入 custom 子目录(如 C:UsersXXX.jupytercustom
  • 在该目录下新建或编辑 custom.css,写入类似内容:
.CodeMirror pre {
font-family: "Consolas", "Microsoft YaHei Mono", "Segoe UI Mono", monospace !important;
font-size: 14px !important;
}
.rendered_html code {
font-family: "Consolas", monospace !important;
}

注意:!important 很关键,否则会被内置 CSS 覆盖。

字体建议优先列等宽字体,最后 fallback 到 monospace

别碰 codemirror.css(容易翻车)

网上经常有人建议直接去改 notebook/static/components/codemirror/lib/codemirror.css

但这属于源码层面的文件。一旦执行 pip install --upgrade notebook,改动基本都会被覆盖掉。

另外,不同安装方式如 conda、pip、venv,对应路径并不一致。实际操作时,很容易找错目录,或者卡在权限不够这一步。

  • 常见错误:改完没生效 → 实际是改了错误路径下的副本,或没重启服务
  • 更糟情况:误删/改错语法,导致整个 notebook 页面白屏或编辑器不可用
  • Windows 上若用 conda 安装,路径可能藏在 envs/xxx/Lib/site-packages/...,不是主 Anaconda 目录

jupyterthemes 快速换主题+字体(适合想一步到位)

它本质也是写 custom.css,但封装了命令行。

这样可以省去手写 CSS 的麻烦,还附带暗色主题、间距调整等功能。

  • 安装:pip install jupyterthemes(conda 用户可用 conda install -c conda-forge jupyterthemes
  • 查主题:jt -l,挑一个喜欢的(比如 oceans16grade3
  • 设字体+字号:jt -t oceans16 -f firacode -fs 13 -cellw 90%-f 指定等宽字体名,需系统已安装)
  • 还原默认:jt -r,但记得清浏览器缓存(Ctrl+F5),否则旧样式还在

注意:firacode 这类连字字体要提前装好,否则 fallback 到系统默认等宽字体。

-fs 只控制代码区字号,输出区字号得额外加 -ofs 参数。

字体名大小写和引号容易踩坑

Windows 下常见字体如 ConsolasSource Code ProJetBrains Mono,名字必须拼写准确,空格不能少,首字母大写通常要保持。

  • 中文字体必须加英文引号:"Microsoft YaHei Mono",否则解析失败
  • monospace 前面不能漏掉逗号,否则整个声明失效
  • 如果用了未安装的字体(比如写了 "Hack" 但没装),浏览器会静默 fallback 到下一个,你根本看不出问题

真正生效的字体,只取决于你本地是否安装、名字是否匹配、CSS 是否被正确加载。

其他所有“全局设置”“浏览器字体”都是干扰项。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多