讓 AI 根據已有格式繼續寫 LaTeX?

部落格EasyLaTeX 官方發布日期

讓 AI 續寫卻格式走樣時:先交給它格式定義的來源

格式的定義集中在檔案開頭那一段:字號、行距、編號與引用樣式由 \documentclass 和 \usepackage 選項決定,專案還會定義自己的指令。這些都不在正文裡,只貼正文時,AI 只能按通用寫法補內容。

下面這份 main.tex 與同目錄的 refs.bib 合起來可以直接編譯。導言區定義了術語指令 \method,正文裡的 Convergence 小節是要交給 AI 的樣板:

main.tex:

LaTeX
\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:

bibtex
@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 一起貼過去,續寫的表格才會沿用同一套線型與列寬寫法:

LaTeX
\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 範圍

把下面這份請求模板連同樣板原始碼一起提交:

Plain text
按給出的樣板續寫一個小節,只輸出新增內容。保留文件類、導言區和現有巨集定義。只使用已提供的指令與引用鍵,不新增新的套件。新標籤使用 sec: 字首,不與已有標籤重複。不確定的術語、資料或引用先標記待確認,不自行補全。

.bib 的 key 列表也一併給出,或說明「只用已出現過的 key」。看不到列表時,生成的引用可能指向不存在的條目,表現為 Citation '...' undefined 與 PDF 中的 [?]。

續寫完成後:編譯一次再核對指令、標籤與引用

續寫結果接回專案後先編譯一次。日誌裡出現未定義指令或未定義引用,說明生成內容用了上下文之外的名字。核對三處:

  1. 指令:把續寫部分裡的 \ 指令與導言區清單對一遍,未定義的刪掉或替換;

  2. 標籤:\ref 指向的物件有沒有對應的 \label,字首是否與專案規則一致;

  3. 引用:\cite 的 key 是否都在 .bib 中,改動過 .bib 時在平台重新編譯,並等待參考文獻處理完成。

排版本身對不對,日誌不會提示。字號、縮排、編號樣式這類偏差靠新舊兩段對照:把續寫部分與樣板小節放在同一頁比較,層級不一致時先檢查新增內容是否遵守模板,不要讓 AI 改動全域導言區,不要在結果裡手工補 \vspace。

常見偏差與處理

錯誤訊息觸發原因處理
! Undefined control sequence. \method使用了上下文裡沒有的專案自訂指令把導言區的指令定義一起提供,再核對指令清單
LaTeX Warning: Citation 'x' undefinedkey 由生成時編造,.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 編輯器,編譯一次,日誌中可以檢視有沒有未定義的指令與引用。