AI が生成した LaTeX をコンパイルエラーにしないために
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つの制約
- 独立した例を試すなら、
\documentclassから\end{document}までの完全なコードを求める。 - 1節ずつ生成し、コンパイル後に次へ進む。
- コンパイラーとクラスを伝える。Unicode・フォント・言語の扱いが異なる。
- 行番号付きの元のエラーを渡す。
! Undefined control sequence. l.42 \topruleは具体的な情報になる。 - 必要がない限り、プリアンブルと全体書式を変更させない。
- 最後に成功した版を保持し、どの修正で壊れたか切り分ける。
最初の5つは文脈を補い、最後の1つは誤修正の影響を小さくします。
引用キーを AI が作ってしまい、.bib に存在せず [?] になる場合もあります。引用の確認手順も参考になります。
EasyLaTeXにコンパイルできる基準のプロジェクトを残し、指定した範囲だけを AI に依頼しましょう。