跳转至

RStudio 调用 MiKTeX 问题

控制台报错
command line: E:\LaTeX\MiKTeX\miktex\bin\x64\pdflatex.exe -halt-on-error -interaction=batchmode ***.tex
2026-xx-xx xx:xx:xx,580+1300 INFO pdflatex - running on Windows 10.0.19045
2026-xx-xx xx:xx:xx,594+1300 WARN pdflatex - security risk: running with elevated privileges
2026-xx-xx xx:xx:xx,597+1300 INFO pdflatex - this is MiKTeX-PDFTEX 4.26.0 (1.40.29) (MiKTeX 26.2)
2026-xx-xx xx:xx:xx,601+1300 INFO pdflatex - allowing known shell commands
2026-xx-xx xx:xx:xx,872+1300 FATAL pdflatex.core - GUI framework cannot be initialized.
2026-xx-xx xx:xx:xx,872+1300 FATAL pdflatex.core - Data:
2026-xx-xx xx:xx:xx,872+1300 FATAL pdflatex.core - Source: Libraries\MiKTeX\UI\Qt\mikuiqt.cpp:126
2026-xx-xx xx:xx:xx,872+1300 FATAL pdflatex - GUI framework cannot be initialized.
2026-xx-xx xx:xx:xx,873+1300 FATAL pdflatex - Info:
2026-xx-xx xx:xx:xx,873+1300 FATAL pdflatex - Source: Libraries\MiKTeX\UI\Qt\mikuiqt.cpp
2026-xx-xx xx:xx:xx,873+1300 FATAL pdflatex - Line: 126
2026-xx-xx xx:xx:xx,873+1300 INFO pdflatex - this process (4200) finishes with exit code 1
2026-xx-xx xx:xx:xx,874+1300 ERROR pdflatex - major issue: So far, you have not checked for MiKTeX updates.
2026-xx-xx xx:xx:xx,874+1300 WARN pdflatex.core - still open: ***.tex
2026-xx-xx xx:xx:xx,874+1300 WARN pdflatex.core - still open: ***.log

为什么会这样?RStudio + MikTex 遇到了以上的报错

这个错误 “GUI framework cannot be initialized” 是 MiKTeX 历史上非常经典且反复出现的问题,尤其在非交互式环境(比如 RStudio 的 Knit、R Markdown 转 PDF、cmd check、后台调用 pdflatex)下特别容易触发。

你的日志已经很清楚了:

  • MiKTeX 版本是 26.2
  • 错误发生在 mikuiqt.cpp:126 → 这就是 MiKTeX 试图弹出 Qt GUI 窗口失败了
  • Rterm(R 的终端)在调用 pdflatex → 属于无图形界面的子进程,没法显示弹窗

最常见的原因(99% 的情况都是这个)

MiKTeX 的“Install missing packages on-the-fly”(自动安装缺失包)设置成了 “Ask me first”(每次问我)。

如果你使用的是 TexStudio + MiKTeX,通常不会出现这样的问题

当你的 .tex 文档需要某个没装的包(比如 amsmath、geometry、ulem、float、caption 之类很常见的),pdflatex 想弹窗问你是否允许下载,但因为是在 RStudio/Rterm 后台跑的,根本没有桌面环境可以显示弹窗 → 直接崩溃,报 GUI framework cannot be initialized。

解决办法(最简单)

  • 开始菜单找到 MiKTeX Console(不是 MiKTeX Settings,是 Console)
  • 打开后点 Settings(右上角齿轮)
  • Packages 标签
  • Install missing packages on-the-fly 改成 Yes(或 Install)
  • 确定 → 关闭
  • 最好两个都改:普通用户模式 和 Administrator 模式(右上角可以切换 User / Admin)