Undefined control sequence

! Undefined control sequence は最もよく出る LaTeX エラーで、LaTeX が 知らないコマンド(\なんとか)に出くわした という意味です。原因はほぼ 3 つ——綴り間違い、読み込み忘れのパッケージ、定義していない自作コマンド。このページで順に潰します。

メッセージの読み方

エラーは ! Undefined control sequence に続けて、l.NN でその行を 未定義コマンドの直後で折り返して 示します。折り返しの 直前のトークン が、LaTeX が知らないコマンドです。次は \frac\fra と打ち間違えた例です(エラーの一般的な読み方は「エラーの読み方・デバッグ」へ)。

terminal
! Undefined control sequence.
l.12 \fra
         c{1}{2}

3 つの原因と対処

  • 綴り違い(最多)— \fra\frac\textbnf\textbf のようなタイプミス。正しい綴りに直す。
  • パッケージ未読込 — そのコマンドを出すパッケージを \usepackage していない(例:\includegraphicsgraphicx\toprulebooktabs、多くの数式記号は amsmath)。プリアンブルで読み込む。
  • 自作コマンド未定義\newcommand での定義忘れ、定義より前での使用、またはスコープ外。定義を(使う前に)置く。

見つけ方のコツ

l.NN の直前のトークンが未定義コマンドなので、エディタでその行を見ます。心当たりがなければ、最近追加したコマンドやパッケージ を疑うのが近道。あるコマンドがどのパッケージのものか分からなければ texdoc パッケージ名 で調べられます。原因の切り分けには、怪しい箇所をコメントアウトして再コンパイルするのも有効です。