讓 AI 根據已有格式繼續寫 LaTeX?
讓 AI 續寫卻格式走樣時:先交給它格式定義的來源
格式的定義集中在檔案開頭那一段:字號、行距、編號與引用樣式由 \documentclass 和 \usepackage 選項決定,專案還會定義自己的指令。這些都不在正文裡,只貼正文時,AI 只能按通用寫法補內容。
下面這份 main.tex 與同目錄的 refs.bib 合起來可以直接編譯。導言區定義了術語指令 \method,正文裡的 Convergence 小節是要交給 AI 的樣板:
main.tex:
\documentclass[11pt]{article}\usepackage{amsmath,booktabs}\usepackage[backend=biber]{biblatex}\addbibresource{refs.bib}\newcommand{\method}[1]{\textsc{#1}}\begin{document}\section{Convergence}\label{sec:convergence}We use \method{gradient descent}; see~\cite{knuth1984}.This subsection demonstrates the project's notation.\printbibliography\end{document}refs.bib:
@book{knuth1984, author = {Donald E. Knuth}, title = {The TeXbook}, publisher = {Addison-Wesley}, year = {1984}}@book{lamport1994, author = {Leslie Lamport}, title = {LaTeX: A Document Preparation System}, edition = {2}, publisher = {Addison-Wesley}, year = {1994}}樣板裡的 \method{...}、\cite{...}、\label{sec:...} 就是格式的樣本。
只貼一段正文不夠時:連同同型別小節一起給出
「請保持格式一致」沒有可對照的物件。要續寫小節,就給一個已排好的小節;要續寫表格,就給一個已排好的表格環境。
專案用 booktabs 的三線表時,把已有的表格連同 \toprule / \midrule / \bottomrule 一起貼過去,續寫的表格才會沿用同一套線型與列寬寫法:
\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}提交續寫請求時:寫明可用指令、標籤字首與 key 範圍
把下面這份請求模板連同樣板原始碼一起提交:
按給出的樣板續寫一個小節,只輸出新增內容。保留文件類、導言區和現有巨集定義。只使用已提供的指令與引用鍵,不新增新的套件。新標籤使用 sec: 字首,不與已有標籤重複。不確定的術語、資料或引用先標記待確認,不自行補全。.bib 的 key 列表也一併給出,或說明「只用已出現過的 key」。看不到列表時,生成的引用可能指向不存在的條目,表現為 Citation '...' undefined 與 PDF 中的 [?]。
續寫完成後:編譯一次再核對指令、標籤與引用
續寫結果接回專案後先編譯一次。日誌裡出現未定義指令或未定義引用,說明生成內容用了上下文之外的名字。核對三處:
-
指令:把續寫部分裡的
\指令與導言區清單對一遍,未定義的刪掉或替換; -
標籤:
\ref指向的物件有沒有對應的\label,字首是否與專案規則一致; -
引用:
\cite的 key 是否都在.bib中,改動過.bib時在平台重新編譯,並等待參考文獻處理完成。
排版本身對不對,日誌不會提示。字號、縮排、編號樣式這類偏差靠新舊兩段對照:把續寫部分與樣板小節放在同一頁比較,層級不一致時先檢查新增內容是否遵守模板,不要讓 AI 改動全域導言區,不要在結果裡手工補 \vspace。
常見偏差與處理
| 錯誤訊息 | 觸發原因 | 處理 |
|---|---|---|
! Undefined control sequence. \method | 使用了上下文裡沒有的專案自訂指令 | 把導言區的指令定義一起提供,再核對指令清單 |
| LaTeX Warning: Citation 'x' undefined | key 由生成時編造,.bib 中沒有 | 提交請求時附上 key 列表;在 .bib 中檢索該 key |
| LaTeX Warning: Reference 'fig:x' undefined | \ref 指向的標籤未定義,或字首與專案規則不符 | 按字首規則補 \label,完整編譯一次 |
| ! LaTeX Error: Environment tabularx undefined. | 續寫內容換了專案裡未載入的套件 | 在導言區補該套件,或要求沿用已有的表格寫法 |
Overfull \hbox (30.0pt too wide) in paragraph | 生成的表格或公式超出欄寬 | 收窄列寬或減少列數;雙欄模板裡更常見 |
總結
-
先給格式來源:文件類、導言區與自訂指令決定新內容的樣子,正文裡看不到;
-
給同型別樣板:續寫小節就給已排好的小節,續寫表格就給已排好的表格;
-
請求裡寫邊界:可用指令、標籤字首、key 範圍一次說清;
-
接回後編譯核對:未定義的指令與引用看日誌,排版偏差靠新舊兩段對照。
續寫的內容接回專案後,把整個目錄匯入 EasyLaTeX 編輯器,編譯一次,日誌中可以檢視有沒有未定義的指令與引用。