Как избежать кода LaTeX от ИИ, который не компилируется
Генерируя LaTeX, ИИ может не знать подключённых пакетов, компилятора и правил шаблона проекта. Поэтому он вызывает неопределённые команды, помещает математические обозначения в обычный текст или использует неподдерживаемые символы. Журнал указывает затронутую строку, а не недостаток контекста, вызвавший ошибку.
Зафиксируйте преамбулу до генерации содержимого
Предоставьте ИИ известную преамбулу вместе с задачей и скажите: «Не добавляй \usepackage; используй только поддерживаемые здесь команды». Полный русский пример для XeLaTeX:
\documentclass[11pt]{article}\usepackage{fontspec}\setmainfont{CMU Serif}\setsansfont{CMU Sans Serif}\setmonofont{CMU Typewriter Text}\usepackage[russian]{babel}\usepackage{amsmath,amssymb} % Математические окружения и символы\usepackage{graphicx} % \includegraphics\usepackage{booktabs} % \toprule \midrule \bottomrule\usepackage{hyperref} % Ссылки; обычно подключается ближе к концу\begin{document}\section{Метод}Мы минимизируем целевую функцию\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}где $\theta \in \mathbb{R}^{d}$.\begin{table}[htbp] \centering \begin{tabular}{lcc} \toprule Модель & Точность & F1 \\ \midrule Базовая & 0.812 & 0.794 \\ Наша & 0.867 & 0.851 \\ \bottomrule \end{tabular} \caption{Иллюстративные результаты.} \label{tab:results}\end{table}\end{document}Список пакетов задаёт доступные команды: \toprule нужен booktabs, \bm — bm, а \SI — siunitx. Без этих сведений ИИ угадывает по распространённым шаблонам, что может вызвать Undefined control sequence. или File 'xxx.sty' not found.
Пять распространённых ошибок и их причины
| Ошибка | Вероятная причина | Исправление |
|---|---|---|
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 |
Сообщения указывают проблемы исходника, а не «ошибки ИИ». Помните также: % начинает комментарий. Неэкранированный процент скрывает остаток строки и может вызвать поздние, менее очевидные ошибки.
Шесть ограничений для запроса
- При проверке самостоятельной идеи просите полный компилируемый пример от
\documentclassдо\end{document}. - Генерируйте по одному разделу. Компилируйте его до продолжения.
- Укажите компилятор и класс документа. Они по-разному обрабатывают Unicode, шрифты и языки.
- Приведите исходную ошибку с номером строки.
! Undefined control sequence. l.42 \topruleдаёт основание для действия, а «не работает» — нет. - Не меняйте преамбулу и глобальное оформление без конкретной необходимости.
- Сохраните успешно компилировавшуюся версию. Возврат к ней помогает определить, какая правка внесла ошибку.
Первые пять пунктов восполняют контекст, шестой ограничивает цену неудачной правки.
Ссылки подвержены той же проблеме: выдуманного ключа цитирования может не быть в .bib, и в PDF останется [?]. См. руководство по проверке цитирования.
Храните компилируемый базовый проект в EasyLaTeX, затем просите ИИ менять только нужный раздел.