Как избежать кода LaTeX от ИИ, который не компилируется

БлогEasyLaTeX OfficialОпубликовано

Генерируя LaTeX, ИИ может не знать подключённых пакетов, компилятора и правил шаблона проекта. Поэтому он вызывает неопределённые команды, помещает математические обозначения в обычный текст или использует неподдерживаемые символы. Журнал указывает затронутую строку, а не недостаток контекста, вызвавший ошибку.

Зафиксируйте преамбулу до генерации содержимого

Предоставьте ИИ известную преамбулу вместе с задачей и скажите: «Не добавляй \usepackage; используй только поддерживаемые здесь команды». Полный русский пример для XeLaTeX:

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

Сообщения указывают проблемы исходника, а не «ошибки ИИ». Помните также: % начинает комментарий. Неэкранированный процент скрывает остаток строки и может вызвать поздние, менее очевидные ошибки.

Шесть ограничений для запроса

  1. При проверке самостоятельной идеи просите полный компилируемый пример от \documentclass до \end{document}.
  2. Генерируйте по одному разделу. Компилируйте его до продолжения.
  3. Укажите компилятор и класс документа. Они по-разному обрабатывают Unicode, шрифты и языки.
  4. Приведите исходную ошибку с номером строки. ! Undefined control sequence. l.42 \toprule даёт основание для действия, а «не работает» — нет.
  5. Не меняйте преамбулу и глобальное оформление без конкретной необходимости.
  6. Сохраните успешно компилировавшуюся версию. Возврат к ней помогает определить, какая правка внесла ошибку.

Первые пять пунктов восполняют контекст, шестой ограничивает цену неудачной правки.

Ссылки подвержены той же проблеме: выдуманного ключа цитирования может не быть в .bib, и в PDF останется [?]. См. руководство по проверке цитирования.

Храните компилируемый базовый проект в EasyLaTeX, затем просите ИИ менять только нужный раздел.

Как избежать кода LaTeX от ИИ, который не компилируется | EasyLaTeX