Перенос строки в уравнении LaTeX: split, aligned, align и multline

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

Чтобы перенести уравнение LaTeX на новую строку, подключите amsmath и выберите многострочное окружение. Для одной формулы с выравниванием и общим номером используйте equation со split, для отдельных номеров строк — align, для длинной формулы без общей точки выравнивания — multline. Один лишь \\ в обычном equation не создаёт нужную многострочную запись.

Код подходит для локальных TeX Live и MiKTeX и для EasyLaTeX. В примерах используются article, pdfLaTeX и английский текст, поэтому настройка кириллицы не требуется. В существующей статье сохраните её класс и движок, перенося только нужные фрагменты формул.

Полный пример для компиляции

Сохраните документ как main.tex. Квадратичная ошибка и два регуляризационных слагаемых размещены на двух строках с одним номером.

LaTeX
\documentclass[a4paper,11pt]{article}\usepackage{amsmath}\begin{document}\begin{equation}\begin{split}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\     &\quad + \lambda w^2 + \mu(w-w_0)^2.\end{split}\label{eq:objective}\end{equation}See Equation~\eqref{eq:objective}.\end{document}

Здесь n — положительное целое число; w, w_0, x_i, y_i — вещественные; \lambda и \mu неотрицательны. Вторая строка продолжает сложение. & задаёт точку выравнивания, \\ разделяет строки. Обычный перевод строки в исходнике сам по себе не переносит формулу в PDF.

Выбор по выравниванию и нумерации

Схема выбора: сначала определите число номеров, затем необходимость выравнивания. Линии обозначают математическое содержимое.

ЗадачаОкружениеНумерация и размещение
Одна длинная формула с выравниваниемequation + splitОдин номер от внешнего окружения
Блок выравнивания внутри большого выраженияalignedВ математическом режиме; номер задаётся снаружи
Отдельные номера у формул или шаговalignПо умолчанию номер каждой строки; самостоятельное окружение
Длинная формула без общей точки выравниванияmultlineОдин номер; самостоятельное окружение
Без номеровalign*, multline* или aligned внутри \[...\]По нужному способу выравнивания

В этих примерах split использует один & на строку и занимает всю выключную формулу. aligned поддерживает несколько пар столбцов и сочетание с внешними скобками. Оба окружения требуют явно выбрать места переноса.

split и aligned: один номер на блок

Полный пример использует split. Та же целевая функция с aligned выглядит так. Последующие фрагменты вставляются в тело существующего документа.

LaTeX
\begin{equation}\begin{aligned}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\     &\quad + \lambda w^2 + \mu(w-w_0)^2.\end{aligned}\label{eq:aligned}\end{equation}

Само aligned не нумерует формулы: внутри equation блок получает один номер, внутри \[...\] — ни одного. Нумерация определяется внешним окружением, без aligned* или split*.

Соответствие исходника и вёрстки. D(w) обозначает ошибку на данных, R(w) — сумму двух регуляризационных слагаемых; отмечены выравнивание и перенос.

\quad добавляет отступ. Чтобы сохранить интервал бинарного оператора у плюса в начале строки, можно написать &\quad {}+ .... Повторяющиеся пробелы в исходнике не выравнивают строки.

align: отдельные ссылки на функцию и производную

При дифференцировании по w величины x_i, y_i, w_0, \lambda, \mu считаются постоянными.

LaTeX
\begin{align}J(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2       + \lambda w^2 + \mu(w-w_0)^2       \label{eq:loss} \\J'(w) &= \frac{2}{n}\sum_{i=1}^{n}x_i(w x_i-y_i)        + 2\lambda w + 2\mu(w-w_0).        \label{eq:gradient}\end{align}

Ссылайтесь через \eqref{eq:loss} и \eqref{eq:gradient}. Здесь каждая строка — отдельное равенство. Не добавляйте знак равенства перед строкой, которая лишь продолжает сумму.

align* убирает все номера. Для отдельных ненумеруемых строк используйте \notag:

LaTeX
\begin{align}(x+1)^2 &= x^2+2x+1 \notag \\        &= x(x+2)+1. \label{eq:expansion}\end{align}

Метка относится к строке с номером. Если ссылка показывает ??, локально повторите компиляцию и проверьте дублирующиеся метки. На платформе дождитесь завершения текущей задачи.

multline: перенос без точки выравнивания

Та же функция записывается без &:

LaTeX
\begin{multline}J(w) = \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2 \\       + \lambda w^2 + \mu(w-w_0)^2.\label{eq:multline}\end{multline}

При стандартной правой нумерации этого примера первая строка смещена влево, последняя вправо, с небольшими отступами от краёв. Промежуточные строки центрируются, номер расположен в последней. Класс и параметры amsmath могут менять размещение. Для записи без номера используйте multline*; не вкладывайте его в equation или \[...\].

Если перенос не работает

Симптом или сообщениеЧто проверить
Environment align undefinedПодключить amsmath в преамбуле главного файла, проверить локальную установку
\\ не переносит строку в equationДобавить split или aligned либо использовать самостоятельные align или multline
Erroneous nesting of equation structuresНайти align внутри equation
Misplaced alignment tab character &Использовать & в окружении выравнивания, но не в multline
Ошибка скобок или Missing \right.Проверить, не разделены ли \left и \right переносом
PDF создан, но формула выходит за крайИзменить перенос, проверить Overfull \hbox и PDF

Неверное вложение:

LaTeX
% Incorrect nesting\begin{equation}\begin{align}a &= b \\  &= c\end{align}\end{equation}

Для одного номера исправьте его так:

LaTeX
\begin{equation}\begin{split}a &= b \\  &= c\end{split}\end{equation}

Нельзя связывать \left( и \right) через границу строк выравнивания. Подойдут скобки фиксированного размера:

LaTeX
\[\begin{aligned}F(x) &= \Bigl(a+b+c \\     &\qquad +d+e\Bigr).\end{aligned}\]

Здесь a–e — слагаемые. Не вставляйте пустые абзацы в математические окружения; в последней строке дополнительный \\ обычно не нужен.

Двухколоночная статья: сократите каждую строку

Доступная ширина равна ширине одной колонки. Отдельные обозначения для ошибки и регуляризации сохраняют целевую функцию и сокращают строки:

LaTeX
\begin{equation}\begin{split}J(w) &= D(w)+R(w), \\D(w) &= \frac{1}{n}\sum_{i=1}^{n}(w x_i-y_i)^2, \\R(w) &= \lambda w^2+\mu(w-w_0)^2.\end{split}\label{eq:compact}\end{equation}

Проверьте ширину, номера и скобки в настоящем шаблоне подачи. Предпочитайте осмысленные математические переносы уменьшению всей формулы через \resizebox. Для формул на две колонки соблюдайте инструкции издателя.

Проверка локально и в EasyLaTeX

Схема компиляции. Оба пути заканчиваются проверкой полей и номеров в актуальном PDF.

Локально сохраните полный пример как main.tex и выполните команду дважды в его каталоге, чтобы обновить ссылку. При сборке кнопкой редактора проверьте корневой файл и движок.

Shell
pdflatex -interaction=nonstopmode -halt-on-error main.tex

Сначала исправьте первую ошибку в main.log, затем проверьте предупреждения о выходе за границы. В новом main.pdf должны быть две полные строки, один номер и ссылка в скобках без ??. При отличии от онлайн-результата сравните класс, движок, версии пакетов и ширину колонки.

В пустом тестовом проекте EasyLaTeX создайте main.tex, выберите его главным файлом в верхнем списке и укажите pdfLaTeX в настройках редактора. Запустите компиляцию и дождитесь текущей задачи. В существующей статье сохраните главный файл, движок и шаблон. Выбор компилятора хранится для каждого пользователя проекта отдельно, поэтому соавторам нужно проверить собственные настройки.

Проверьте PDF. При ошибках откройте Bug, затем Original Log. Кнопка AI Fix может запустить запрос к Agent. В Chat & Agent можно задать точные ограничения:

Разбей текущую целевую функцию на две строки с одним номером и прежней меткой. Сохрани все слагаемые, коэффициенты, скобки и знаки. Проверь главный файл и пакеты, измени только соответствующий блок формулы, скомпилируй и сообщи об оставшихся ошибках или выходах за границы.

Просмотрите изменения исходника и результат текущей компиляции. Видимый старый PDF не подтверждает успешность последней сборки. Сравните слагаемые с исходной формулой, затем скачайте PDF или LaTeX-проект для подачи или дальнейшей локальной работы.

См. также: многострочные формулы, нумерация и ссылки, начало работы в EasyLaTeX, ошибки компиляции.

Источники

Переносы формул LaTeX: split, aligned, align, multline | EasyLaTeX