Firefox环境下Plotly/Jupyter中LaTeX公式无法正常渲染问题
问题根因
该问题由Firefox 93版本与Plotly 5.x依赖的MathJax 3渲染引擎兼容性不足导致,常见触发原因如下:
- Firefox增强跟踪保护拦截了MathJax渲染所需的资源
- Firefox 93版本存在WebAssembly兼容缺陷,而MathJax 3依赖WebAssembly实现LaTeX渲染
- LaTeX语法不规范,Firefox端渲染引擎容错率远低于Chromium,语法错误会直接导致渲染失败
解决方案
按优先级从高到低尝试以下操作:
1. 调整Firefox配置
- 打开Firefox设置→隐私与安全→增强跟踪保护,将当前访问的Jupyter站点添加到例外列表,或临时将保护等级切换为「标准」,确认渲染是否恢复
- 在地址栏输入
about:config,搜索dom.webassembly.enabled,确认该配置项值为true
2. 修正LaTeX语法
你当前代码中的平方根语法不符合标准LaTeX规范,将\sqrt(3)修改为\sqrt{3}即可:
import plotly.express as px import numpy as np x = np.linspace(0,10,101) y = np.sin(x) fig = px.line(x=x, y=y) # 修正LaTeX语法 fig.update_xaxes(title=r'$t/\sqrt{3}$') fig.show()
3. 版本适配调整
任选一种方案即可:
- 升级Firefox到94及以上版本,该版本官方修复了与MathJax 3的兼容性问题
- 将Plotly降级到4.14.x版本,该版本使用MathJax 2渲染引擎,对旧版Firefox兼容性更好
4. 预加载MathJax资源(Jupyter环境适用)
将适配旧版Firefox的MathJax静态资源下载到本地后,在Jupyter Notebook的首个代码块中运行以下代码预加载资源,避免远程资源被拦截:
from IPython.display import display, HTML display(HTML(''' <script> MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} }; </script> <script id="MathJax-script" async src="本地MathJax资源路径"></script> '''))
内容的提问来源于stack exchange,提问作者Philo
相关产品推荐
相关产品推荐

