Копирование формулы из чата в редактор почти всегда заканчивается одинаково: на странице появляется R_{in} = \frac{\Delta U}{\Delta I} вместо дроби. Причина не в модели и не в WordPress, а в трёх несовпадениях — формулы из ChatGPT приходят в одном формате, плагин ждёт другого, а символ % в LaTeX вообще начинает комментарий. Ниже — рабочий порядок: выбрать рендерер, выровнять разделители, заставить модель отдавать готовый формат и проверить результат предпросмотром.

latex formuly wordpress cover

TL;DR: три шага и одна проверка

  1. Выбрать рендерер. Либо клиентский (MathJax), либо серверный (внешний сервис, отдающий SVG), либо встроенные средства темы.
  2. Совпасть разделителями. \[ … \] для выносной формулы, \( … \) для строчной, $…$ — только если плагин это понимает.
  3. Запросить формат заранее. В промте указать разделители, экранирование %, отсутствие обрамляющих блоков кода.
  4. Проверка. Предпросмотр в редакторе или страница на сайте — но не «на глаз в чате».
Формула-источник:  R_{in} = \frac{\Delta U}{\Delta I}
В статье должно быть: \[ R_{in} = \frac{\Delta U}{\Delta I} \]
Проценты: 100\% — а не 100%, иначе всё после % станет комментарием

Проблема, которую это решает

LaTeX и WordPress живут в разных мирах. LaTeX-строка — это текст с обратными слэшами и фигурными скобками; Gutenberg — это HTML-блоки, где обратный слэш сам по себе ничего не значит, пока его не начнёт разбирать рендерер.

Три типовые поломки, и все три выглядят одинаково — «формула не отрисовалась».

Первая: разделители. Модель часто отдаёт формулу в $…$ или вообще без разделителей, а плагин ждёт \[ … \]. Итог — текст вместо дроби.

Вторая: проценты. 100% в LaTeX — это 100 и комментарий до конца строки. Формула обрезается на середине, а если она занимает несколько строк, потеряется и хвост.

Третья: обёртка. Ответ приходит в блоке кода (тройные обратные кавычки). Если вставить такой блок в Gutenberg как обычный параграф, читатель увидит служебные кавычки и подсветку синтаксиса вместо формулы.

Отдельная проблема — сам выбор плагина: часть решений рендерит на клиенте скриптом, часть отправляет формулу на внешний сервис и получает картинку, а часть уже не поддерживается.

Что такое рендеринг формул в Gutenberg

flowchart TB
  GPT["ChatGPT: LaTeX в ответе"] --> PASTE["вставка в Gutenberg"]
  PASTE --> KIND{"как рендерится?"}
  KIND -- клиентски --> JS["MathJax или KaTeX: скрипт в браузере"]
  KIND -- сервер --> SVC["внешний сервис: формула в SVG"]
  KIND -- без плагина --> RAW["сырой текст с обратными слэшами"]
  JS --> VIEW["читаемая формула"]
  SVC --> VIEW
Подход Что происходит
Клиентский рендер браузер загружает библиотеку (MathJax, KaTeX) и рисует формулу из разметки
Серверный рендер формула уходит на внешний сервис, возвращается изображение или SVG
Встроенные средства тема или платформа сама поддерживает ограниченный набор
Без рендерера читатель видит исходный LaTeX как текст

Разница практическая: клиентский рендер даёт выделяемый текст и масштабирование без потерь, но требует загрузки скрипта. Серверный не грузит ничего, зато зависит от доступности службы и даёт картинку.

Возможности: что умеют решения

Сравнение подходов

Решение Вставка Рендер Живой предпросмотр
MathJax-блок отдельный блок или кнопка для строчной клиентский, MathJax есть в редакторе
Внешний сервис (QuickLaTeX) LaTeX прямо в тексте плюс шорткод-переключатель серверный, SVG нет
MathJax через шорткод [latex]…[/latex] клиентский, по требованию только предпросмотр страницы
Jetpack $latex …$ в блоке HTML изображение с сервиса нет
KaTeX-плагин блок и шорткоды клиентский, быстрый был, плагин закрыт в 2024

Почему это ломается именно при копировании

Когда формула живёт в чате, всё выглядит нормально: модель рисует дробь, подставляет индексы, переводит единицы. Ломается не формула, а её транспорт.

В чате вы видите отрендеренный результат, а в буфер обмена уходит исходная строка. Если скопировать её мышкой из прямоугольника ответа, можно получить уже «сплющенный» текст: обратные слэши пропали, фигурные скобки потерялись, индексы склеились. Если копировать через кнопку копирования блока кода, приедут ещё и сами кавычки блока. Отсюда два разных пути и два разных способа испортить строку — и оба заканчиваются одинаковым результатом на странице.

Второй источник поломок — сам редактор. Gutenberg честно хранит текст, но вставляет его как HTML. Обратный слэш для HTML — обычный символ, поэтому он и попадает в статью как есть. Пока в цепочке нет рендерера, который знает, что обратный слэш — часть разметки, ничего не произойдёт.

Третий — модели, которые «улучшают» ответ по дороге. Одна и та же просьба может вернуться в трёх видах: с долларами, с обратными слэшами в скобках, или вообще в виде Unicode-символов (когда дробь нарисована похожими буквами). Последний вариант опаснее всего: на вид всё правильно, но формулы как таковой нет — есть текст, который нельзя ни отредактировать, ни масштабировать.

Поэтому правило номер один звучит скучно: договоритесь о формате до того, как начнёте вставлять. Один раз попросить „в \[ … \], проценты через \%, без блоков кода“ дешевле, чем потом искать, почему из пяти формул две стали текстом.

Как выбрать рендерер под свой случай

Выбор сводится к трём вопросам, и отвечать надо по порядку.

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

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

Можно ли зависеть от внешнего сервиса? Серверный рендер отправляет формулу наружу и получает изображение. Это нормально, пока сервис жив и пока политика проекта это допускает. Для внутренней документации с закрытыми данными такой путь иногда неприемлем.

flowchart TD
  M["MathJax: клиентский рендер"] --> P1["плюс: качество, минус: скрипт на странице"]
  Q["внешний сервис: SVG"] --> P2["плюс: без JS, минус: зависимость от сети"]
  K["встроенные средства темы"] --> P3["плюс: ничего не ставить, минус: качество и поддержка"]

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

Практика: как выглядит рабочий цикл

Опишу порядок, к которому я пришёл после нескольких испорченных вставок.

Сначала — пустая статья и один тестовый абзац. В него вставляется формула с максимальным набором элементов: дробь, корень, индекс с двумя символами и процент. Если это отрисовалось, дальше можно работать; если нет — проблема в настройке, и искать её надо сейчас, а не после пятнадцатой формулы.

Затем в чат уходит просьба о формате. Важно просить не «LaTeX», а конкретно: какие разделители, как экранировать процент, нужны ли фигурные скобки в индексах, не оборачивать ли ответ в блок кода. Модель отвечает на то, что попросили, — но только если попросили явно.

Дальше вставка. Выносные формулы — отдельным блоком или шорткодом, строчные — внутри абзаца. Смешивать не стоит: часть плагинов обрабатывает только один тип, и вторая половина формул остаётся текстом. После вставки — предпросмотр, а не публикация. Это правило экономит больше времени, чем всё остальное вместе.

После публикации — проверка на телефоне и сброс кеша. Кеш страниц способен неделю показывать старую версию статьи, и пока вы ищете ошибку в разметке, редактор уже содержит правильный текст. Если формула отрисована в редакторе и не отрисована на сайте, начинать надо с кеша, а не с плагина.

Что важно в каждом варианте

Критерий Почему влияет на выбор
Разделители определяют, что именно можно вставлять как есть
Где грузится скрипт все страницы или только с формулами
Зависимость от сети серверный рендер не работает в офлайне
Поддержка закрытый плагин — риск при обновлении WordPress
Кеширование изображения кешируются иначе, чем текст

Три способа, три компромисса

flowchart TD
  M["MathJax: клиентский рендер"] --> P1["плюс: качество, минус: скрипт на странице"]
  Q["внешний сервис: SVG"] --> P2["плюс: без JS, минус: зависимость от сети"]
  K["встроенные средства темы"] --> P3["плюс: ничего не ставить, минус: качество и поддержка"]
Способ Плюс Минус
MathJax на клиенте качество, выделяемый текст, масштаб скрипт на странице, нужен правильный разделитель
Внешний сервис ничего не грузится в браузере зависимость от службы и её политики
Встроенные средства ничего не ставить ограниченный набор, качество как повезёт

Практическое правило: если формул в статье много, клиентский рендер предпочтительнее — текст остаётся текстом, поиск и копирование работают. Если формула одна и нужна как иллюстрация, серверный вариант проще и не тянет библиотеку.

Как это делается по шагам

flowchart LR
  ASK["запрос к модели с условиями формата"] --> OUT["LaTeX с экранированием"]
  OUT --> CHECK{"разделители совпадают с плагином?"}
  CHECK -- нет --> FIX["замена разделителей и процентов"]
  CHECK -- да --> BLOCK["блок или шорткод в статье"]
  FIX --> BLOCK
  BLOCK --> PREV["проверка предпросмотром, а не на глаз"]
Шаг Действие Что проверять
1 выбрать рендерер и записать его разделители какие именно строки он понимает
2 запросить у модели формулу в этом формате нет блоков кода вокруг формулы
3 вставить как блок или шорткод не как «классический» параграф
4 проверить предпросмотр дробь нарисована, а не напечатана
5 проверить проценты и индексы \%, _{…} на месте
6 проверить на телефоне длинная формула не вылезает за экран

Шестой шаг пропускают чаще всего, а зря: дроби с длинными числителями на узком экране обрезаются или растягивают страницу.

Замеры и цифры

Проверено 10.11.2026 на самом блоге, где эта статья и живёт.

Что проверено Значение Как
Плагинов на сайте 24, активны все wp plugin list
Плагинов рендеринга формул 0 — ни MathJax, ни KaTeX, ни QuickLaTeX, ни MathML поиск по списку плагинов
Записей с \frac в тексте 1 запрос к базе
Эта единственная запись ID 2420 — сама статья про формулы там же
Формулы в этом блоге: плагинов ноль, записей с LaTeX одна
Формулы в этом блоге: плагинов ноль, записей с LaTeX одна

Что это значит на практике. На сайте нет рендерера, поэтому исходный LaTeX в тексте честно виден как текст — и это, кстати, лучший аргумент за то, чтобы сначала выбрать плагин, а потом уже вставлять формулы. Второй вывод: одна запись с \frac — это ровно тот случай, когда ставить тяжёлый рендерер ради одной статьи нерационально, а проще оформить формулу картинкой или аккуратной таблицей.

Чего замеры не показывают: как выглядят формулы после установки конкретного плагина. Для этого нужен прогон на тестовой копии сайта — ставить плагин на боевой блог ради статьи я не стал.

Сильные стороны продукта

  • Текст остаётся текстом. При клиентском рендере формула копируется и находится поиском.
  • Разделители решают всё. Один раз выровняв формат, вы перестаёте ловить «формула не отрисовалась».
  • Промт снимает ручную правку. Если попросить нужный формат заранее, вставлять можно как есть.
  • Масштабирование без потерь. Векторный рендер читается на любом экране.
  • Рендер по требованию. Часть решений грузит скрипт только на страницах с формулами.
  • Ограниченная, но достаточная грамматика. Дроби, индексы, корни, греческие буквы, суммы покрывают инженерные тексты.
  • Проверяемость. Видно сразу: либо дробь, либо строка с обратными слэшами.

Установка

# поиск и установка плагина рендеринга
wp plugin search "mathjax"
wp plugin install mathjax-latex --activate
wp plugin list --fields=name,status,version
Шаг Что проверять
Плагин активирован status = active
Разделители известны какие именно строки понимает плагин
Скрипт подключён загружается только там, где есть формулы
Тестовая статья одна дробь и одна строчная формула

На сайте с 24 плагинами добавлять ещё один стоит осознанно: это ещё один источник скриптов и ещё одно место, которое надо обновлять.

Настройка

Что настроить Зачем
Разделители чтобы вставка из чата работала без правки
Рендер по требованию чтобы не грузить библиотеку на всех страницах
Автонумерация формул если на формулы ссылаются в тексте
Кеширование чтобы страница не пересобиралась на каждый показ
Мобильная ширина чтобы длинные формулы не ломали вёрстку

Отдельно про шорткод-переключатель: часть решений требует один раз упомянуть его на странице, иначе формулы останутся текстом. Это самая частая причина «в редакторе всё было хорошо, а на сайте нет».

Промт, который сразу даёт нужный формат

Формулировка, которая снимает половину проблем:

Выведи формулы в формате, готовом для вставки в WordPress:
- выносные — в \[ … \], строчные — в \( … \);
- символ процента экранируй как \%;
- без обрамляющих блоков кода и без пояснений внутри формул;
- индексы и степени — только через _{…} и ^{…};
- после каждой формулы одна строка обычного текста с расшифровкой обозначений.
Требование Что предотвращает
\[ … \] и \( … \) несовпадение разделителей
\% обрезание формулы на проценте
без блоков кода вставку служебных кавычек
_{…} и ^{…} однобуквенные индексы R_in вместо R_{in}
расшифровка после формулы формулу без пояснений, которую никто не поймёт

Последний пункт недооценивают: формула без расшифровки обозначений выглядит наукообразно и бесполезна.

Подводные камни

  • $…$ понимают не все. Если плагин ждёт \(…\), вставка с долларами останется текстом; проверяйте до публикации.
  • % без слэша режет формулу. В LaTeX это комментарий, и всё после него исчезает — включая закрывающий разделитель.
  • Блок кода вокруг формулы. Ответ модели в тройных кавычках нельзя вставлять как есть: получите подсветку синтаксиса.
  • Однобуквенный индекс. R_in отрендерится как R с индексом i и буквой n в строке — нужны фигурные скобки.
  • Шорткод-переключатель забыт. Формула есть, рендера нет: на странице не упомянут [latexpage] или аналогичный триггер.
  • Скрипт грузится везде. Рендерер без режима «по требованию» замедляет все страницы сайта, включая те, где формул нет.
  • Закрытый плагин. Решения, снятые с поддержки, работают до первого крупного обновления WordPress.
  • Кеш страниц. После правки формулы страница может отдавать старую версию — чистить кеш, а не искать ошибку в разметке.
  • Мобильная ширина. Длинная дробь вылезает за экран и растягивает страницу; проверять на телефоне.
  • Копирование «как есть» из PDF. Там формулы часто уже картинки или текст с неверными символами — сверять глазами.

Чек-лист

  • [ ] Выбрать рендерер и записать его разделители.
  • [ ] Проверить, что скрипт грузится только на страницах с формулами.
  • [ ] Взять промт с требованиями к формату.
  • [ ] Вставить формулу как блок или шорткод, а не как текст.
  • [ ] Проверить предпросмотр: дробь, индексы, проценты.
  • [ ] Убедиться, что шорткод-переключатель на странице есть.
  • [ ] Посмотреть страницу на телефоне.
  • [ ] Сбросить кеш и проверить повторно.
  • [ ] Записать версию плагина в паспорт сайта.
  • [ ] Решить, нужен ли рендерер для одной формулы, или хватит картинки.

FAQ

Почему формула вставилась как текст?

Почти всегда из-за разделителей: плагин ждёт \[ … \], а пришло $…$ или строка без разделителей. Вторая причина — вставка как обычный параграф вместо блока или шорткода.

Что делать с символом процента?

Экранировать: 100\%. Без слэша LaTeX считает % началом комментария, и остаток строки, включая закрывающий разделитель, пропадает.

Нужен ли плагин, если формула одна?

Не обязательно. Одну формулу дешевле оформить картинкой или аккуратной записью в таблице. Плагин оправдан, когда формул много и они правятся.

Клиентский рендер или серверный?

Клиентский (MathJax) даёт выделяемый текст и масштаб без потерь, но грузит скрипт. Серверный не грузит ничего, зато зависит от внешней службы и отдаёт картинку.

Можно ли обойтись без LaTeX?

Для простых случаев да: степень, индекс и дробь можно собрать средствами HTML. Для формул с корнями, суммами и матрицами это быстро становится нечитаемым.

Почему на этом блоге формул нет?

Проверено: из 24 плагинов ни один не рендерит формулы, а запись с \frac в блоге одна — эта самая. Для одной статьи ставить рендерер нерационально.

Где это ломается в жизни

Отдельно — про три ситуации, которые встречаются чаще всего.

Первый случай — формула в средине абзаца. Выделили её в чате, скопировали, вставили — и в редакторе вместо дроби пробел или обрезанная строка. Почти всегда причина в том, что копирование захватило кусок отрендеренного текста, а не исходную разметку. Лечится привычкой брать формулу из блока кода, который модель охотно отдаёт по просьбе.

Второй — таблица с единицами измерения. Здесь формула живёт в ячейке, и половина рендереров в ячейках не работает вовсе. Практичный выход: в таблицу ставить простую запись (U/I), а полную дробь — отдельной строкой под таблицей, где рендер точно работает.

Третий — правка старой статьи. Формулы в архиве писались год назад, и часть решений с тех пор сменила разделители или снята с поддержки. Перед массовой правкой стоит прогнать одну старую статью целиком и посмотреть, что осталось текстом: это дешевле, чем открывать шестьдесят записей по очереди.

Ни в одном из трёх случаев проблема не в математике. Она в транспорте и в границах применимости рендерера — и именно поэтому проверка предпросмотром важнее выбора плагина. Плагин можно заменить за десять минут, а потерянную статью с неверными формулами читатель заметит раньше, чем вы.

Итог

Перенос формул из ChatGPT в Gutenberg ломается не на математике, а на формате: разделители, экранирование процентов и обёртка из блока кода. Порядок, который работает: выбрать рендерер, записать его разделители, попросить модель отдавать готовый формат, вставить как блок, проверить предпросмотр и телефон. Проверка на этом блоге показала обратную сторону вопроса: 24 плагина и ни одного рендерера формул, а запись с LaTeX одна — значит, для большинства статей вопрос не в плагине, а в том, нужна ли формула вообще.

Цитата: Формула в статье нужна не для красоты, а чтобы читатель понял величину — и если для этого хватает одной строки текста, LaTeX не нужен.

Связанные материалы

LLM Summary

  • Тема: перенос LaTeX-формул из ChatGPT в WordPress Gutenberg без поломки разметки.
  • Три причины поломок: несовпадение разделителей ($…$ против \[ … \]), неэкранированный % (в LaTeX это комментарий), обёртка ответа в блок кода.
  • Варианты рендеринга: клиентский MathJax (качество, выделяемый текст, скрипт на странице), внешний сервис с SVG (без JS, но зависимость от сети), встроенные средства (ничего не ставить, ограниченный набор).
  • Разделители: \[ … \] для выносных, \( … \) для строчных; $…$ работает только там, где плагин это понимает; части решений нужен шорткод-переключатель.
  • Промт: требует нужные разделители, \%, отсутствие блоков кода, индексы через _{…}, расшифровку обозначений после формулы.
  • Проверено 10.11.2026 на этом блоге: 24 плагина, из них 0 рендерят формулы; записей с \frac — 1 (ID 2420, сама статья).
  • Не проверялось: вид формул после установки конкретного плагина — на боевой блог плагин не ставился.
  • Типовые грабли: R_in вместо R_{in}, забытый шорткод-переключатель, рендерер без режима «по требованию», закрытый плагин, кеш страниц, мобильная ширина.
  • Ссылки: https://sysadministrator.ru/copying-latex-math-from-chatgpt-to-wordpress-gutenberg-without-breaking-formatting/

Промт для агента (установка и настройка)

Готовый промт: скопируйте блок целиком. Файла AGENTS.md у этой задачи нет (это не репозиторий), поэтому опора на шаги и на проверку предпросмотром.

Задача: настроить рендеринг LaTeX-формул в WordPress и вставлять формулы из ChatGPT без ручной правки.

Шаг 1. Снять состояние: wp plugin list --fields=name,status,version; записать, есть ли уже рендерер.
Шаг 2. Решить задачу по объёму: одна формула — картинка или таблица; много формул — плагин.
Шаг 3. Выбрать рендерер и выписать его разделители (\[ \], \( \), $…$ или шорткод).
Шаг 4. Установить и активировать: wp plugin install <плагин> --activate
Шаг 5. Проверить режим загрузки скрипта: только на страницах с формулами.
Шаг 6. Взять промт с требованиями формата: разделители, \%, без блоков кода, _{…} и ^{…}, расшифровка после формулы.
Шаг 7. Вставить формулу блоком или шорткодом; проверить, что шорткод-переключатель на странице есть.
Шаг 8. Проверить предпросмотр: дробь, индексы, проценты, длинная формула на телефоне.
Шаг 9. Сбросить кеш страниц и перепроверить на сайте.

Запрещено:
- вставлять ответ модели вместе с обрамляющими блоками кода;
- оставлять % без обратного слэша внутри формулы;
- ставить плагин рендеринга на боевой сайт без тестовой копии;
- выбирать решение без поддержки: закрытый плагин проработает до первого крупного обновления;
- считать, что формула отрисовалась, не открыв предпросмотр или страницу.

Что считать успехом: формула рисуется дробью, индексы на месте, проценты не режут строку, скрипт не грузится на страницах без формул, на телефоне вёрстка не ломается.