Runaway argument

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의 관련 명령 다수는 이미 \long입니다).

latex
% NG: } を閉じ忘れ / missing closing }
\textbf{重要な点 …(ここで閉じ忘れ)
次の段落。

% OK
\textbf{重要な点}
次の段落。