← Back to blog

The article body for this language is not available yet; showing the other language.

Blog & updates

TikZ usegdlibrary 报错 Undefined control sequence?必须用 LuaLaTeX 编译

2026-05-24

「tikz usegdlibrary 报错」「graphdrawing 编译失败」因 pdfLaTeX 不支持图布局引擎。说明 Overleaf 切换 LuaLaTeX 与不用自动布局的替代方案。

TikZ usegdlibrary 报错?graphdrawing 必须用 LuaLaTeX

报错关键词:
! Undefined control sequence.
l.xx \usegdlibrary{layered}
\usetikzlibrary{graphdrawing} 相关。百度上「tikz usegdlibrary 报错」「graphdrawing 需要 lualatex」几乎都指向同一件事:图自动布局引擎只跑在 LuaTeX 上,用默认 pdfLaTeX 编不过
📌 全部 TikZ 编译坑: TikZ 编译失败 7 类排查

谁需要 LuaLaTeX?

只要导言区出现类似:
\usetikzlibrary{graphs, graphdrawing}
\usegdlibrary{layered, force, circular}
并在 tikzpicture 里用 自动布局(如 layout=layeredlayout=force),就必须用 LuaLaTeX 编译。

Overleaf 怎么改

  1. 左上角 Menu
  2. Compiler → 选 LuaLaTeX
  3. 重新 Recompile
本地 TeX 则用:
lualatex main.tex

不想换编译器怎么办?

三条路任选:
  1. 删掉 graphdrawing — 改用手写坐标 \node at (x,y)positioningright=of(需 positioning 库)。
  2. 图在 standalone 里用 LuaLaTeX 出 PDF,主文档用 \includegraphics 插图(主文仍可用 pdfLaTeX)。
  3. 用 DrawFig 做布局 — 在画布上一键圆周/树形/力导向布局,再 导出 TikZ,导出的代码通常不依赖 usegdlibrary

常见误区

误区 事实
「装了最新 TeX Live 就能用」 引擎不对照样报错
「XeLaTeX 也行」 graphdrawing 要的是 LuaLaTeX,不是 XeLaTeX
「报错在 usegdlibrary 这一行」 根因是编译器,不是拼写

DrawFig 推荐

图论论文里最常见:不需要 Lua 布局引擎,也能要矢量图。
  1. 打开 DrawFig 编辑器
  2. 画有向图/无向图/带权图,用内置布局
  3. 导出 → TikZ,粘贴进 pdfLaTeX 论文
适合「学校模板锁死 pdfLaTeX、又不能改编译器」的同学。

总结

  • \usegdlibrary / graphdrawingLuaLaTeX
  • 不能换引擎 → 手动坐标、插图 PDF,或 DrawFig 布局 + TikZ 导出
  • 其它报错:分号问题xcolor 冲突主文总览