单元格宽度设为100%或95%等百分比值才能实现全屏自适应,设为像素值(如980px)则固定不变;需重启Jupyter服务生效,且应配合pd.set_option('display.max_colwidth', None)和合理lineh值使用。

单元格宽度设为100%还是980px?关键看cellwidth参数怎么填
默认单元格宽度是固定980px,不是“自适应”,所以拉宽浏览器窗口它也不会变。要实现真正意义上的全屏(即占满浏览器可用宽度),必须把cellwidth设成百分比值,比如100%或95%——像素值(如1200)永远只是固定宽度。
常见错误:执行jt -t onedork -cellw 1200后发现没变宽,其实是命令生效了,但1200px在大屏上依然留白;又或者写了-cellw 100(漏掉%),jupyter-themes会当成像素处理,结果还是固定宽。
-
-cellw 100%:严格占满父容器,可能贴边太紧,建议用95%或90%留点呼吸感 -
-cellw 100(无%):等价于100px,极窄,慎用 - 主题切换时
-cellw参数不会继承,每次换主题都得重新指定
执行jt命令后没变化?先确认是否重启了Notebook服务
修改cellwidth后,仅刷新网页标签页无效。jupyter-themes的样式注入发生在服务启动阶段,所以必须彻底重启Jupyter服务进程。
具体操作:关闭所有Notebook标签页 → 在终端中按Ctrl+C终止正在运行的jupyter notebook进程 → 再执行一次jt -t xxx -cellw 95% → 运行jupyter notebook新开服务。
如果用了Anaconda Navigator启动,也要关掉它再重开;VS Code内置Notebook不走jt流程,此法无效。
全屏显示≠内容不换行,lineheight和max_colwidth得配合调
单元格变宽后,长字符串(如URL、JSON字段)仍可能被截断成...,这不是宽度问题,而是pandas的display.max_colwidth限制在起作用。
同时,过大的cellwidth配上过高lineheight(比如-lineh 200)会让代码行间距松散、视觉发虚,建议控制在140–160之间。
- 前端宽度:
jt -t oceans16 -cellw 95% -lineh 150 - 后端显示:
pd.set_option('display.max_colwidth', None)(对object列生效) - 避免输出区滚动条遮挡:点击输出右上角
⋮→ 取消勾选Enable Scrolling for Outputs
永久生效别改stylefx.py,直接写进IPython启动脚本更稳
靠jt命令每次手动设,容易遗漏;想一劳永逸,与其去动jupyterthemes/stylefx.py(升级后会被覆盖),不如把常用配置固化到IPython启动流程里。
创建文件~/.ipython/profile_default/startup/00-jt-setup.py,内容只需一行:
import os; os.system("jt -t chesterish -cellw 92% -lineh 145 &>/dev/null")
下次启动Notebook时自动执行,且不影响kernel重启后的pandas设置。注意:该脚本在Notebook服务启动时运行,不是每个cell执行时跑,所以不会拖慢运行速度。
真正麻烦的是混合使用场景——比如同一台机器既用本地Notebook又连远程JupyterHub,jt只作用于本地前端,远程服务器得单独配;这点很容易被忽略,直到换环境发现样式回退。


















