M1 MacOS下Jupyter中Matplotlib调用LaTeX缺失字体问题
解决M1 MacBook Air上Jupyter中Matplotlib+LaTeX字体缺失问题
以下是针对你遇到问题的具体解决步骤:
1. 检查并修复Jupyter的环境变量路径
终端运行.py文件正常是因为系统PATH包含了MacTeX的执行路径,但Anaconda启动的Jupyter可能未继承该路径:
- 先在Jupyter Notebook中运行以下代码查看当前PATH:
import os print(os.environ['PATH']) - 如果输出里没有
/Library/TeX/texbin,可以临时在Notebook开头添加路径:import os os.environ['PATH'] += ':/Library/TeX/texbin' - 永久解决的话,在终端启动Jupyter前先执行:
export PATH="/Library/TeX/texbin:$PATH" jupyter notebook # 或jupyter lab/code
2. 正确配置Matplotlib的LaTeX参数
确保Matplotlib的LaTeX配置指向正确的字体和引擎,示例配置:
import matplotlib.pyplot as plt plt.rcParams.update({ "text.usetex": True, "font.family": "serif", "font.serif": ["Computer Modern Roman"], # MacTeX默认自带该字体 "text.latex.engine": "xelatex", # 适配M1 ARM架构的引擎 "text.latex.preamble": r"\usepackage{amsmath}" # 按需添加LaTeX宏包 }) # 测试代码 plt.plot([1,2,3]) plt.title(r"\LaTeX\ Test: $E=mc^2$") plt.show()
3. 清除Matplotlib字体缓存
缓存可能导致字体识别异常,手动删除缓存目录:
- 打开终端,执行:
rm -rf ~/Library/Caches/matplotlib - 重启Jupyter后再测试代码。
4. 补充Anaconda环境的TeX依赖(可选)
如果上述方法无效,可以尝试在Anaconda环境中安装TeX相关包:
conda activate 你的环境名 conda install texlive-core
内容的提问来源于stack exchange,提问作者Bulba
相关产品推荐
相关产品推荐

