Runaway argument? 表示某个命令的参数缺少闭合的 },因此 TeX 会不断吞入后续文本来寻找它。通常最后会出现 ! Paragraph ended before \cmd was complete 或 ! File ended while scanning use of \cmd。原因几乎总是花括号不匹配。
发生了什么
TeX 读到 \command{... 时,会等待匹配的 }。如果闭合的 } 一直不来,它就会继续吞入正文。错误会打印被吞入的文字(runaway text),其开头指向未闭合的 {。如果在不允许段落的“短”参数中出现空行,会得到 Paragraph ended before ... was complete;如果直到文件末尾都没有 },则会得到 File ended while scanning use of ...。
原因
{对应的}缺失(最常见)。- 不允许段落断开的参数中出现空行(例如
\section{...}中的空行)。 \command{...之后没有}。
解决方法
让花括号成对:runaway text 的开头通常指向未闭合的 { 附近。用编辑器的括号匹配功能快速查找。删除误入短参数的空行。如果某个参数确实需要包含段落(空行),该宏必须以 \long 定义(LaTeX 中许多接收这类内容的命令已经如此)。
latex
% NG: } を閉じ忘れ / missing closing }
\textbf{重要な点 …(ここで閉じ忘れ)
次の段落。
% OK
\textbf{重要な点}
次の段落。