Математика для Discourse

:discourse2: Краткое описание Discourse Math использует MathJax (по умолчанию) или KaTeX для отображения математических формул на вашем форуме Discourse.
:open_book: Руководство по установке Этот плагин входит в состав ядра Discourse. Отдельная установка плагина не требуется.

Включение функции математики

Плагин Math можно включить в его настройках, доступных на странице admin/plugins:

Настройки Math

Возможности

После включения вы можете отображать формулы в строке текста, заключая их в одиночные $, например: $E=mc^2$.

Для отображения формул блоком заключайте их в $$

$$
\sqrt{(-1)} \; 2^3 \; \sum \; \pi
$$

Discourse Math использует эвристику, чтобы убедиться, что такие предложения, как: «Я потратил 20$ и ещё 100$», не преобразуются в формулы.

Разделители LaTeX

При включении через настройки сайта вы также можете использовать стандартные разделители LaTeX:

  • В строке: \(...\) — Пример: \(E=mc^2\)
  • Блок: \[...\] — Пример:
    \[
    \frac{1}{2}
    \]
    

AsciiMath (только MathJax)

При использовании MathJax вы можете включить обработку asciimath, которая использует % в качестве разделителя: %E=mc^2%

Интеграция с редактором

В редакторе на панели инструментов есть кнопка Вставить Math с горячей клавишей Shift+M. Она открывает модальное окно, где вы можете:

  • Переключаться между режимами в строке и блоком
  • Вводить выражение LaTeX
  • Просматривать предварительный просмотр и вставлять его в сообщение

В редакторе с форматированием математические выражения отображаются как редактируемые узлы с кнопкой редактирования для изменения выражения.

Поддержка в чате

Математические выражения также отображаются в сообщениях Discourse Chat, используя те же настройки и движок рендеринга.

Движки рендеринга

MathJax (по умолчанию)

  • Версия: 4.1
  • Форматы вывода: HTML (по умолчанию) или SVG
  • Возможности:
    • Контекстное меню (щелчок правой кнопкой мыши по формуле)
    • Расширение доступности для программ чтения с экрана
    • Масштабирование при нажатии Alt+клик (масштаб 175%)
    • Поддержка AsciiMath

KaTeX (альтернатива)

  • Возможности:
    • Быстрый рендеринг
    • Расширение Mhchem для химических уравнений
    • Расширение CopyTex — нажмите на формулу, чтобы скопировать исходный код LaTeX в буфер обмена
    • Поддержка перекрестных ссылок с помощью макросов \label, \ref и \eqref

Настройки сайта

Просмотрите все соответствующие настройки сайта, поискав в настройках администратора слово “math”.

Название Описание
discourse math enabled Включить плагин Discourse Math (добавляет специальную обработку блоков $ и $$)
discourse math provider Поставщик рендеринга математики: mathjax (по умолчанию) или katex
discourse math enable latex delimiters Включить разделители в стиле LaTeX: \(...\) для формул в строке и \[...\] для блочных формул
discourse math mathjax output Формат вывода MathJax: html (по умолчанию) или svg (только MathJax)
discourse math enable menu Включить контекстное меню для математических выражений (только MathJax)
discourse math enable accessibility Включить функции доступности, такие как обогащение текста (только MathJax с меню)
discourse math zoom on click Масштабирование на 175% при взаимодействии Alt+клик (только MathJax с меню)
discourse math enable asciimath Включить обработку asciimath с разделителем % (только MathJax)

:discourse2: Размещено у нас? Этот плагин доступен во всех наших тарифах хостинга Math | Discourse - Civilized Discussion

70 лайков

2 сообщения были перенесены в новую тему: Добавить поддержку форматирования email для MathJax

2 поста были перенесены в новую тему: Можно ли обновить Mathjax до версии 3?

6 сообщений были перенесены в новую тему: Добавлена поддержка блоков и строчных формул в стиле LaTeX для математики

Пост был разделен на новую тему: Формулы не отображаются корректно в блоках

Пост был разделен на новую тему: Математика не отображается в предпросмотре

15 сообщений были перенесены в новую тему: Математика и обходные пути ИИ

26 сообщений были перенесены в новую тему: Обновление Mathjax до версии 4

Просто краткое (позитивное) замечание из реальной практики после перехода на новую интеграцию MathJax (v4.1) в Discourse Math.

Одно улучшение качества жизни, которое я заметил, заключается в том, что MathJax теперь выдаёт очень конкретную и локализованную обратную связь, когда ввод некорректен или макрос не определён:

  • Он по-прежнему корректно отображает окружающую валидную структуру (например, \frac{...}{...}, скобки и т. д.)
  • Но неопознанную команду оставляет видимой буквально (например, показывая \sinc как текст), вместо того чтобы полностью прерывать выражение или выдавать запутанную частичную ошибку.

На практике это сразу делает очевидным, что нужно исправить, не скрывая при этом уже корректные части — что особенно полезно в образовательном контексте и при доработке постов с большим количеством математики.

Например, вместо того чтобы полагаться на то, что \sinc будет определён, надёжный подход — явно записать его как оператор:

\frac{\Delta}{T}\operatorname{sinc}\!\left(\frac{\omega_r\Delta}{2}\right)

где:

\operatorname{sinc}(x)=\frac{\sin x}{x}

В целом такое поведение «отображай то, что можешь, остальное показывай явно» ощущается как значительное улучшение удобства использования по сравнению со старыми или менее прозрачными режимами обработки ошибок. Спасибо всем, кто участвовал в работе по обновлению MathJax.

3 лайка

Хочу предупредить всех, кто пришёл сюда через Google, что этот плагин недоступен для бесплатного тарифа хостинга. :expressionless_face:

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

Плагин для математики не указан на этой странице как плагин для тарифов Pro, Business или Enterprise. Следовательно, можно предположить, что он доступен для бесплатного тарифа. Я не предлагаю предоставлять его бесплатно. Я лишь считаю, что эту информацию следует сделать немного более понятной.

1 лайк

Верно. Страница Discourse pricing | Discourse - Civilized Discussion содержит все тарифные планы и их ограничения, включая плагины, где вы можете быстро увидеть, какие плагины разрешены.

1 лайк

Я вижу новый инструмент RaTeX, написанный на Rust, на 100% совместимый с KaTeX.

GitHub - erweixin/RaTeX: >99.5% KaTeX syntax coverage. LaTeX math renderer in pure Rust. No JavaScript, no WebView, no DOM. One Rust core → iOS, Android, Flutter, Web, PNG. C ABI · WASM · Server-side PNG/SVG. · GitHub

Это может стать хорошей заменой.

Нашёл интересную проблему.

Я решаю физические задачи и обнаружил, что \dot и \ddot работают нормально, но \dddot отсутствует. И как только в формуле появляется \dddot, все последующие формулы перестают работать.

1 лайк

@xiasummer Давайте попробуем \dddot{r} и

\dddot{r}.

Кажется, это работает. Я проверил это на своем сайте с использованием как MathJax, так и KaTeX.

1 лайк