AI が生成した LaTeX をコンパイルエラーにしないために

ブログEasyLaTeX公開日

AI は、読み込み済みパッケージ・コンパイラー・テンプレート独自の規則を知らないまま LaTeX を生成することがあります。そのため、未定義コマンド、本文中の数式記号、未対応文字などを使ってしまいます。ログは問題の行を示しますが、原因が文脈不足だとは教えてくれません。

生成前にプリアンブルを固定する

動作するプリアンブルと依頼を一緒に渡し、「\usepackage を追加せず、この範囲のコマンドだけを使う」と指定します。次は完全な例です。

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}   % pdfLaTeX 用。XeLaTeX では省略
\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}  % 数式環境と記号
\usepackage{graphicx}         % \includegraphics
\usepackage{booktabs}         % \toprule \midrule \bottomrule
\usepackage{hyperref}         % リンク。通常は後方で読み込む

\begin{document}
\section{Method}
We minimise the objective
\begin{equation}\label{eq:obj}
  J(\theta) = \frac{1}{n}\sum_{i=1}^{n}\ell\bigl(f(x_i;\theta), y_i\bigr)
\end{equation}
where $\theta \in \mathbb{R}^{d}$.

\begin{table}[htbp]
  \centering
  \begin{tabular}{lcc}
    \toprule
    Model     & Accuracy & F1    \\
    \midrule
    Baseline  & 0.812    & 0.794 \\
    Ours      & 0.867    & 0.851 \\
    \bottomrule
  \end{tabular}
  \caption{Illustrative results.}
  \label{tab:results}
\end{table}

\end{document}

使えるコマンドはパッケージで決まります。\toprule は booktabs、\bm は bm、\SI は siunitx が必要です。AI が推測すると Undefined control sequence. や File 'xxx.sty' not found. につながります。

よくある5つのエラー

エラー主な原因対処
Undefined control sequence.\toprule・\bm・\SI などに必要なパッケージがない対応するパッケージを使うか、既存の書き方に戻す
File 'xxx.sty' not found.名前の誤記・架空のパッケージ・環境での不足名前を確認し、利用できるパッケージに置き換える
Missing $ inserted.数式コマンドや添字を数式モードの外に書いた\(\alpha\) や \(x^2\) にする。本文の百分率は別途 \% と書く
Unicode character θ (U+03B8) not set up for use with LaTeX.現在の設定ではその文字を扱えない\(\theta\) を優先する。エンジン変更時も対応する字体・数式設定が必要
Extra alignment tab has been changed to \cr.通常の表の行で区切りが多い列の指定と区切りを確認し、\multicolumn の結合は別に数える

ログは「AI の誤り」ではなくソース上の問題を示します。% はコメントの開始でもあるため、エスケープしないと行の後半を消し、別の場所でエラーを起こす場合があります。

依頼に含める6つの制約

  1. 独立した例を試すなら、\documentclass から \end{document} までの完全なコードを求める。
  2. 1節ずつ生成し、コンパイル後に次へ進む。
  3. コンパイラーとクラスを伝える。Unicode・フォント・言語の扱いが異なる。
  4. 行番号付きの元のエラーを渡す。! Undefined control sequence. l.42 \toprule は具体的な情報になる。
  5. 必要がない限り、プリアンブルと全体書式を変更させない。
  6. 最後に成功した版を保持し、どの修正で壊れたか切り分ける。

最初の5つは文脈を補い、最後の1つは誤修正の影響を小さくします。

引用キーを AI が作ってしまい、.bib に存在せず [?] になる場合もあります。引用の確認手順も参考になります。

EasyLaTeXにコンパイルできる基準のプロジェクトを残し、指定した範囲だけを AI に依頼しましょう。