MathJax в блоге: шпаргалка по формулам

MathJax в блоге: шпаргалка по формулам
Содержание

Шпаргалка по MathJax для авторов блога: как записывать формулы в Markdown, чтобы читатель увидел математику, а не исходник.

В статьях блога работает MathJax 3 (сборка tex-mml-chtml) через расширение arithmatex: вы пишете обычный TeX прямо в Markdown, а движок на клиенте собирает из него формулы. Никаких картинок и внешних сервисов — формулы масштабируются вместе со шрифтом и корректно выглядят в обеих темах оформления.

В этой шпаргалке пары «код → результат» свёрстаны в колонки: слева исходник, справа то, что увидит читатель. На узком экране колонки аккуратно складываются друг под другом.

Как записать формулу

Формула в строке текста окружается одиночными долларами $...$. Выносная формула (по центру, отдельным блоком) — двойными $$...$$, каждый разделитель на своей строке:

$$
e^{i\pi} + 1 = 0
$$
e^{i\pi} + 1 = 0

Тождество Эйлера e^{i\pi} + 1 = 0 — пример инлайн-формулы прямо в предложении. Работают и «традиционные» TeX-разделители \(...\) для строки и \[...\] для блока.

Степени, индексы, дроби, корни

Степень — ^, индекс — _. Если в показателе больше одного символа, берите его в фигурные скобки:

a^2 + b_i = c^{n+1}
a^2 + b_i = c^{n+1}

Дроби: \frac{числитель}{знаменатель}. Компактные варианты — \tfrac (мелкая «текстовая») и \dfrac (крупная даже в строке):

\frac{x+1}{x-1},
\ \tfrac{1}{2},
\ \dfrac{1}{2}
\frac{x+1}{x-1}, \ \tfrac{1}{2}, \ \dfrac{1}{2}

Корни: \sqrt{x} и \sqrt[n]{x} для корня степени n:

\sqrt{5},
\ \sqrt[3]{x^2+1}
\sqrt{5}, \ \sqrt[3]{x^2+1}

Греческие буквы

Строчная греческая буква — команда с маленькой буквы, заглавная — с большой (\sigma против \Sigma). У некоторых букв есть «варианты начертания» через var:

Код Буква Код Буква
\alpha \alpha \beta \beta
\gamma \gamma \delta \delta
\epsilon \epsilon \varepsilon \varepsilon
\theta \theta \vartheta \vartheta
\lambda \lambda \mu \mu
\nu \nu \xi \xi
\pi \pi \rho \rho
\sigma \sigma \varsigma \varsigma
\phi \phi \varphi \varphi
\omega \omega \tau \tau

Заглавные, которых нет в латинице: \Gamma \Gamma, \Delta \Delta, \Theta \Theta, \Lambda \Lambda, \Xi \Xi, \Pi \Pi, \Sigma \Sigma, \Phi \Phi, \Psi \Psi, \Omega \Omega.

Скобки

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

(\frac{a}{b})^2

\left(\frac{a}{b}\right)^2

(\frac{a}{b})^2 — обычные скобки

\left(\frac{a}{b}\right)^2 — с автоподбором размера

Другие виды скобок:

Код Вид Код Вид
[x] [x] \{x\} \{x\}
\langle x \rangle \langle x \rangle \lfloor x \rfloor \lfloor x \rfloor
\lceil x \rceil \lceil x \rceil \vert x \vert \vert x \vert
\| x \| \Vert x \Vert \left. \right) односторонняя

Суммы, произведения, интегралы, пределы

Пределы сумм и произведений задаются нижним и верхним индексами; в выносной формуле они автоматически встают сверху и снизу:

$$
\sum_{i=1}^{n} i^2,
\quad
\prod_{k=0}^{m} (1 + a_k)
$$
\sum_{i=1}^{n} i^2, \quad \prod_{k=0}^{m} (1 + a_k)

Интегралы: \int_a^b — определённый, \oint — по замкнутому контуру. Дифференциал принято отбивать тонким пробелом \,:

$$
\int_a^b f(x)\,dx,
\qquad
\oint_C \vec{F}\cdot d\vec{r}
$$
\int_a^b f(x)\,dx, \qquad \oint_C \vec{F}\cdot d\vec{r}

Пределы: \lim_{x \to \infty}. В выносной формуле подпись уходит под lim, в строке остаётся сбоку:

$$
\lim_{h \to 0}
\frac{\sin h}{h} = 1
$$
\lim_{h \to 0} \frac{\sin h}{h} = 1

Штрихи, акценты, надчёркивания

Код Вид Код Вид
x', x'' x', x'' \hat{y} \hat{y}
\bar{x} \bar{x} \tilde{f} \tilde{f}
\vec{v} \vec{v} \dot{x}, \ddot{x} \dot{x}, \ddot{x}
\overline{AB} \overline{AB} \underline{w} \underline{w}

Текст внутри формулы

Слова в формуле набираются \text{...} — иначе TeX сольёт буквы в курсивные переменные (prиведено вместо «приведено»). Пробелы внутри формул игнорируются, управляют отступами команды \, \: \; \quad \qquad (от тонкого к большому):

S = v_0 t
+ \frac{a t^2}{2},
\quad
\text{где } v_0 -
\text{начальная скорость}
S = v_0 t + \frac{a t^2}{2}, \quad \text{где } v_0 - \text{начальная скорость}

Русская десятичная запятая не должна отбиваться пробелом от числа — возьмите её в скобки: $\pi \approx 3{,}1416$ даёт \pi \approx 3{,}1416. Прямой (не курсивный) шрифт для сокращений единиц измерения — \mathrm{}: $100\,\mathrm{кг}$100\,\mathrm{кг}.

Многострочные выкладки

Среда aligned внутри $$...$$: амперсанд & отмечает точку выравнивания, \\ переносит строку:

$$
\begin{aligned}
D &= b^2 - 4ac \\
x_{1,2} &=
\frac{-b \pm \sqrt{D}}{2a} \\
&= \frac{-b \pm \sqrt{b^2-4ac}}{2a}
\end{aligned}
$$
\begin{aligned} D &= b^2 - 4ac \\ x_{1,2} &= \frac{-b \pm \sqrt{D}}{2a} \\ &= \frac{-b \pm \sqrt{b^2-4ac}}{2a} \end{aligned}

Почему \\ может «не сработать»

\\ (новая строка) работает только внутри окружений выравнивания/матрицaligned, matrix, cases, array и т.п. — и только в блочной формуле ($$...$$ или \\[...\\]). В инлайн-формуле (\\(...\\)) и на верхнем уровне блочной формулы без окружения перенос строки невозможен: MathJax его просто игнорирует (ошибки не будет, но и новая строка не появится). Поэтому для многострочных выкладок всегда оборачивайте их в \\begin{aligned} ... \\end{aligned} (как в примере выше), а в matrix/cases строки отделяйте \\, как в разделе «Матрицы и системы».

Нумерация формул

На блоге включена AMS-нумерация (tags: 'ams'). Номер получают формулы, обёрнутые в не-звёздочные AMS-окружения: equation, align и т.п. Звёздочная версия (equation*, align*) и обычные $$...$$ без окружения — без номера.

equation и \label

Нумерованная формула — окружение equation. Ссылку на неё запоминает \label, а в текст вставляют \eqref{...} (номер в скобках) или \ref{...} (без скобок):

$$
\begin{equation}
   E = mc^2
   \label{eq:einstein}
\end{equation}
$$

По формуле $\eqref{eq:einstein}$ изменилось всё.
\begin{equation} E = mc^2 \label{eq:einstein} \end{equation}

По формуле \eqref{eq:einstein} изменилось всё.

Мелочь: после блочной формулы $$...$$ обязательно оставляйте пустую строку, иначе Markdown не распознает формулы как отдельный блок. А ссылку \eqref/\ref в тексте пишите внутри $...$.

align с номерами у каждой строки

align нумерует каждую строку; \notag/\nonumber убирает номер у конкретной:

$$
\begin{align}
x + y &= 2 \\
x - y &= 1 \notag
\end{align}
$$
\begin{align} x + y &= 2 \\ x - y &= 1 \notag \end{align}

Свой номер: \tag

Произвольный номер/метку ставит \tag{...} (работает с любым окружением, даже с $$...$$ без tags):

$$
e^{i\pi} + 1 = 0 \tag{Эйлер}
$$
e^{i\pi} + 1 = 0 \tag{Эйлер}

Матрицы и системы

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

$$
A = \begin{pmatrix}
a_{11} & a_{12} \\
a_{21} & a_{22}
\end{pmatrix},
\quad
\det A = \begin{vmatrix}
a_{11} & a_{12} \\
a_{21} & a_{22}
\end{vmatrix}
$$
A = \begin{pmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{pmatrix}, \quad \det A = \begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix}

Кусочно-заданные функции описываются средой cases:

$$
|x| = \begin{cases}
x, & \text{если } x \geq 0 \\
-x, & \text{если } x < 0
\end{cases}
$$
|x| = \begin{cases} x, & \text{если } x \geq 0 \\ -x, & \text{если } x < 0 \end{cases}

Основные символы

Отношения:

Код Вид Код Вид
\leq, \geq \leq, \geq \neq \neq
\approx \approx \equiv \equiv
\sim \sim \propto \propto

Стрелки:

Код Вид Код Вид
\to \to \leftarrow \leftarrow
\leftrightarrow \leftrightarrow \mapsto \mapsto
\Rightarrow \Rightarrow \Leftrightarrow \Leftrightarrow

Множества и логика:

Код Вид Код Вид
\in, \notin \in, \notin \subset \subset
\cup, \cap \cup, \cap \emptyset \emptyset
\forall, \exists \forall, \exists \neg \neg
\land, \lor \land, \lor \mathbb{R} \mathbb{R}

Прочее полезное:

Код Вид Код Вид
\infty \infty \partial \partial
\nabla \nabla \angle \angle
\cdot, \times \cdot, \times \pm, \mp \pm, \mp
\div \div \circ \circ

Грабли

Доллар как символ валюты

Одиночный $ в тексте открывает формулу. Литеральный доллар экранируйте: \$ → $. Цена статьи: $0.

Пустая строка разрывает выносную формулу

Внутри блока $$...$$ не оставляйте пустых строк — Markdown посчитает их концом абзаца, и формула развалится на куски. Перенос строки без пустой строки между ними безопасен.

Вертикальная черта в таблицах

| внутри формулы в таблице Markdown примет за границу ячейки. Используйте \vert или \mid — таблица этого раздела сама построена именно так.

Подчёркивания и звёздочки безопасны

Внутри $...$ маркдаун-символы (_, *) не работают как разметка: математика извлекается из текста до обработки Markdown. x_i^* не сделает курсив.

Ошибка синтаксиса не ломает страницу

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

Регистр важен

\Sigma и \sigma — разные буквы, \Theta и \theta тоже. Имена команд пишутся точно, как в справочнике выше.

Резюме

Запись

Инлайн — $...$, выносная — $$...$$ на отдельных строках. Скобки с автоподбором размера — \left(...\right).

Базовые конструкции

\frac{a}{b}, \sqrt[n]{x}, x_i^2, \sum_{i=1}^{n}, \int_a^b, \lim_{x \to \infty}.

Структуры

Выравнивание — aligned, матрицы — pmatrix/bmatrix/vmatrix, условия — cases.

Частые ошибки

Голый $, пустая строка в $$, черта | в таблицах вместо \vert, регистр команд.

Комментарии

Пока нет комментариев.

Войдите, чтобы комментировать.