M1 MacBook Air 原生ARM版MacTeX环境搭建与优化实践
1. 为什么选择原生ARM版MacTeX去年刚拿到M1 MacBook Air时我就被它的性能惊艳到了。但很快发现很多软件还在用Rosetta转译运行包括我当时装的Intel版TeX发行版。每次编译文档时风扇都会轻微转动这让我开始寻找原生ARM解决方案。MacTeX作为macOS上最完整的TeX发行版其实从2020版本就开始提供Universal Binary支持。不过官方文档藏得比较深很多朋友可能不知道。我实测下来原生ARM版编译速度比转译版本快约30%特别是处理复杂图表时差异更明显。举个例子编译一个200页的学术论文原先需要8秒现在只要5秒左右。这里要特别说明MacTeX-no-gui版本相比完整版节省了约2GB空间对256GB存储的MacBook Air非常友好。它保留了所有核心功能只是去除了图形界面反正我用VS Code写LaTeX。如果你需要LyX这类可视化编辑器建议还是装完整版。2. 彻底卸载旧版TeX环境很多教程直接跳过了这步但我强烈建议先清理旧环境。之前我图省事直接覆盖安装结果遇到各种路径冲突。最稳妥的方法是先用Homebrew卸载# 查看已安装的TeX相关包 brew list | grep -i tex # 常见需要卸载的包 brew uninstall basictex brew uninstall tex-live-utility brew uninstall --cask mactex如果之前手动安装过TeX Live还需要清理残留文件# 删除TeX Live安装目录 sudo rm -rf /usr/local/texlive # 清理配置文件 rm -rf ~/.texlive2020有个坑要注意Mac自带的/usr/texbin目录不要动这是系统保留的。我有次手贱删了这个结果系统更新时出问题了。3. 安装ARM原生版MacTeX-no-gui现在进入正题。首先通过Homebrew安装基础版本brew install --cask mactex-no-gui这里有个小技巧建议插网线安装。我第一次用Wi-Fi下载2GB的安装包下了半小时后来换有线网络只要5分钟。安装完成后先验证架构cd /usr/local/texlive/2023/bin/universal-darwin lipo -archs pdftex这时应该只显示x86_64。接下来去TUG官网下载Universal补丁包搜索MacTeX ARM universal就能找到。这个约500MB的包会把所有二进制文件替换为通用版本。安装后再次检查架构lipo -archs pdftex # 现在应该显示x86_64 arm64我遇到过补丁包安装失败的情况通常是权限问题。解决办法是sudo chown -R $(whoami) /usr/local/texlive4. 配置国内镜像加速TeX Live默认的服务器在国外更新宏包速度很慢。换成清华镜像后速度能提升10倍不止sudo tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet配置完成后建议先更新管理器自身sudo tlmgr update --self这里有个实用技巧用--verify-downloads参数可以避免下载损坏的包sudo tlmgr update --all --verify-downloads如果更新过程中断可以用这个命令恢复sudo tlmgr update --reinstall-forcibly-removed --all5. 日常使用优化技巧经过几个月的使用我总结了几个提升效率的方法缓存清理TeX生成的临时文件很占空间建议在~/.bash_profile添加alias texcleanfind . -type f \( -name *.aux -o -name *.log -o -name *.out \) -delete字体优化M1对字体的渲染很挑剔我推荐用这些设置\usepackage{fontspec} \setmainfont{TeX Gyre Termes}[ Extension.otf, UprightFont*-regular, BoldFont*-bold, ItalicFont*-italic, BoldItalicFont*-bolditalic ]并行编译在Makefile中加入PDFLATEXpdflatex -shell-escape -synctex1 -file-line-error -interactionnonstopmode compile: $(PDFLATEX) main.tex bibtex main $(PDFLATEX) main.tex $(PDFLATEX) main.tex内存管理编辑/usr/local/texlive/2023/texmf.cnf增加main_memory 2000000 extra_mem_bot 1000000 pool_size 5000006. 常见问题解决方案Q: 编译时报字体错误A: 这是M1特有的问题解决方法sudo texhash sudo updmap-sysQ: 中文支持异常A: 需要额外配置\usepackage{xeCJK} \setCJKmainfont{PingFang SC}Q: 图形路径问题A: 在文档开头添加\graphicspath{{./figures/}}Q: BibTeX找不到引用A: 按这个顺序编译pdflatexbibtexpdflatexpdflatex最近遇到个棘手问题某些宏包在ARM架构下会段错误。解决办法是指定x86_64模式arch -x86_64 pdflatex document.tex不过这种情况越来越少了随着TeX Live 2023的更新大部分包都已经完美适配M1。