codemirror 是 jupyter notebook 渲染代码的编辑器组件,改字体需修改 custom.css 文件,写入 .codemirror pre { font-family: "consolas", monospace !important; } 等样式,并确保字体已安装、名称准确、含 !important 且路径正确。

CodeMirror 是 Jupyter Notebook 实际渲染代码的编辑器组件,改字体本质就是改它用的 font-family。直接改系统或浏览器默认字体无效,也不影响单元格内代码显示——那是骗人的。
直接改 custom.css 最稳妥(推荐)
这个文件是 Jupyter 专门预留的用户样式入口,重启后即生效,且不会被升级覆盖(只要不重装 notebook 包)。
- 先生成配置目录(如果还没创建过):
jupyter --data-dir查看路径,然后进入custom子目录(如C:\Users\XXX\.jupyter\custom\) - 在该目录下新建或编辑
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,挑一个喜欢的(比如oceans16或grade3) - 设字体+字号:
jt -t oceans16 -f firacode -fs 13 -cellw 90%(-f指定等宽字体名,需系统已安装) - 还原默认:
jt -r,但记得清浏览器缓存(Ctrl+F5),否则旧样式还在
注意:firacode 这类连字字体要提前装好,否则 fallback 到系统默认等宽字体;-fs 只控制代码区字号,输出区字号得额外加 -ofs 参数。
字体名大小写和引号容易踩坑
Windows 下常见字体如 Consolas、Source Code Pro、JetBrains Mono,名字必须拼写准确,空格不能少,首字母大写通常要保持。
- 中文字体必须加英文引号:
"Microsoft YaHei Mono",否则解析失败 -
monospace前面不能漏掉逗号,否则整个声明失效 - 如果用了未安装的字体(比如写了
"Hack"但没装),浏览器会静默 fallback 到下一个,你根本看不出问题
真正生效的字体,只取决于你本地是否安装、名字是否匹配、CSS 是否被正确加载——其他所有“全局设置”“浏览器字体”都是干扰项。











