1. Главная
  2. Блог
  3. Учебник

Как писать формулы в Markdown (LaTeX и KaTeX)

Формулы в Markdown на LaTeX: в строке и отдельной строкой. Дроби, корни, суммы, матрицы, выравнивание и типичные ошибки — с примерами для GitHub и KaTeX.

В обычном Markdown нет синтаксиса для формул, но почти любой современный Markdown-инструмент поддерживает формулы LaTeX через расширение. Вы пишете формулу в нотации TeX между знаками доллара, а движок вроде KaTeX или MathJax превращает её в аккуратно свёрстанную математику.

В этом руководстве — синтаксис, который работает в GitHub, GitLab, Obsidian, Jupyter и Markdown Preview Editor, и справочник самых нужных команд.

Формулы в строке и выключные формулы

В Markdown бывает два вида формул:

  • Формула в строке стоит внутри предложения. Оберните её в одинарные знаки доллара: $E = mc^2$.
  • Выключная формула занимает отдельную строку по центру. Оберните её в двойные знаки доллара, обычно на отдельных строках.
markdownЗнаменитая формула $E = mc^2$ помещается прямо в предложение.

$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

После отрисовки выключная формула выглядит так:

x=−b±b2−4ac2ax = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

Основной синтаксис

Что Как написать Примечание
Верхний индекс x^2, e^{i\pi} Для нескольких символов нужны фигурные скобки
Нижний индекс a_1, x_{n+1}
Дробь \frac{a}{b} \dfrac — крупная дробь в строке
Квадратный корень \sqrt{x}, \sqrt[3]{x}
Сумма, произведение \sum_{i=1}^{n} i, \prod_{k} k
Интеграл \int_0^1 x\,dx \, добавляет узкий пробел
Предел \lim_{x \to 0} \frac{\sin x}{x}
Греческие буквы \alpha, \beta, \pi, \Omega С заглавной буквы — прописные
Отношения \le, \ge, \ne, \approx, \equiv
Операции \times, \cdot, \pm, \div
Множества \in, \subset, \cup, \cap, \mathbb{R}
Стрелки \to, \Rightarrow, \leftrightarrow
Текст внутри формулы \text{if } x > 0 Сохраняет обычные пробелы
Векторы, надстрочные знаки \vec{v}, \hat{x}, \bar{y}

Фигурные скобки группируют: x^10 отобразится как x¹0, а x^{10} — как x¹⁰. Если формула выглядит неправильно, чаще всего виноваты пропущенные скобки.

Скобки, которые растут

Обычные скобки не меняют размер. Чтобы они охватывали высокое содержимое, используйте \left и \right:

latex\left( \frac{a}{b} \right)^2 \quad \text{vs} \quad (\frac{a}{b})^2
(ab)2vs(ab)2\left( \frac{a}{b} \right)^2 \quad \text{vs} \quad (\frac{a}{b})^2

Матрицы

Матрицы задаются окружениями. pmatrix добавляет круглые скобки, bmatrix — квадратные, vmatrix — вертикальные черты (определитель). Столбцы разделяются &, строки — \\.

latex$$
A = \begin{pmatrix}
  1 & 2 \\
  3 & 4
\end{pmatrix}
$$
A=(1234)A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}

Многострочные и выровненные формулы

Чтобы выровнять несколько шагов по знаку равенства, используйте окружение aligned внутри выключной формулы и отметьте точку выравнивания символом &:

latex$$
\begin{aligned}
  (a + b)^2 &= (a + b)(a + b) \\
            &= a^2 + 2ab + b^2
\end{aligned}
$$
(a+b)2=(a+b)(a+b)=a2+2ab+b2\begin{aligned} (a + b)^2 &= (a + b)(a + b) \\ &= a^2 + 2ab + b^2 \end{aligned}

Для кусочно-заданных функций есть cases:

latex$$
|x| = \begin{cases}
  x  & \text{if } x \ge 0 \\
  -x & \text{if } x < 0
\end{cases}
$$
∣x∣={xif x≥0−xif x<0|x| = \begin{cases} x & \text{if } x \ge 0 \\ -x & \text{if } x < 0 \end{cases}

Знаки доллара, которые не формулы

Цены в тексте могут случайно превратиться в формулы. Большинство движков следуют правилу Pandoc: после открывающего $ не должно быть пробела, а перед закрывающим $ не должно быть пробела и сразу после него — цифры. Поэтому «от $5 до $10» обычно остаётся простым текстом. Если сомневаетесь, экранируйте знак доллара: \$5.

KaTeX или MathJax

Оба понимают один и тот же синтаксис LaTeX; разница в основном в скорости и полноте поддержки.

  • KaTeX быстрый и отрисовывает синхронно — идеально для живого предпросмотра. Он поддерживает подавляющее большинство команд, которые встречаются в документации, заметках и статьях.
  • MathJax поддерживает больше пакетов LaTeX, его используют GitHub и многие научные сайты, но он тяжелее.

Markdown Preview Editor использует KaTeX и загружает его, только если в документе действительно есть формула, поэтому документы без математики остаются лёгкими. Формула, написанная для KaTeX, почти всегда отобразится и на GitHub.

Формулы на GitHub

GitHub отрисовывает формулы в Markdown-файлах, issues и pull requests. Он поддерживает $…$ и $$…$$, а также два варианта для сложных случаев: $`…`$ для формул в строке, содержащих символы, которые Markdown иначе интерпретировал бы, и блок кода с языком math для выключных формул.

Как писать формулы быстрее

  • Нажмите кнопку «Формула» в расширенном редакторе Markdown Preview Editor, чтобы вставить шаблон, а затем правьте его, глядя на предпросмотр.
  • Держите файл-заготовку с часто используемыми формулами — матрицами, выровненными блоками, cases.
  • Сочетайте формулы с диаграммами Mermaid, чтобы объяснять алгоритмы: блок-схема для шагов и формула для каждого шага.
  • Когда документ готов, экспортируйте его в HTML или PDF — формулы сохранятся в итоговом файле.

Только начинаете знакомство с Markdown? Начните со шпаргалки по Markdown.

Частые вопросы

Как написать формулу в Markdown?

Оберните формулу LaTeX в одинарные знаки доллара для формулы в строке ($a^2 + b^2 = c^2$) или в двойные — для выключной формулы по центру. Markdown-инструмент должен поддерживать формулы — GitHub, GitLab, Obsidian, Jupyter и Markdown Preview Editor поддерживают.

Почему формула отображается как обычный текст?

Частые причины: инструмент не поддерживает формулы, сразу после открывающего $ или перед закрывающим $ стоит пробел, либо символ Markdown вроде _ или * внутри формулы был воспринят как форматирование. Попробуйте выключную формулу с $$ на отдельных строках.

Как написать матрицу в Markdown?

Используйте \begin{pmatrix} … \end{pmatrix} (или bmatrix, vmatrix) внутри $$. Столбцы разделяйте &, строки — \\.

Поддерживает ли KaTeX все команды LaTeX?

KaTeX поддерживает большинство математических команд, которые используются на практике, но не все пакеты LaTeX. Команды вёрстки документа (например, \section или \usepackage) к формулам в Markdown вообще не относятся.