1. Strona główna
  2. Blog
  3. Samouczek

Jak pisać wzory matematyczne w Markdown (LaTeX i KaTeX)

Pisz wzory w Markdown w składni LaTeX — w tekście i w osobnym wierszu. Ułamki, pierwiastki, sumy, macierze i typowe błędy, z przykładami dla GitHub i KaTeX.

Zwykły Markdown nie ma składni do wzorów, ale niemal każde nowoczesne narzędzie Markdown obsługuje wzory LaTeX dzięki rozszerzeniu. Wzór zapisujesz w notacji TeX między znakami dolara, a silnik renderujący, taki jak KaTeX lub MathJax, zamienia go w poprawnie złożoną matematykę.

Ten poradnik opisuje składnię, która działa w GitHub, GitLab, Obsidian, Jupyter i Markdown Preview Editor, oraz zawiera zestawienie najczęściej używanych poleceń.

Wzory w tekście i w osobnym wierszu

W Markdown są dwa rodzaje wzorów:

  • Wzory w tekście (inline) znajdują się wewnątrz zdania. Otocz je pojedynczymi znakami dolara: $E = mc^2$.
  • Wzory w osobnym wierszu (display) zajmują własną, wyśrodkowaną linię. Otocz je podwójnymi znakami dolara, zwykle w osobnych wierszach.
markdownSłynny wzór $E = mc^2$ mieści się w zdaniu.

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

Po wyrenderowaniu wzór w osobnym wierszu wygląda tak:

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

Podstawowa składnia

Co Wpisujesz Uwagi
Indeks górny x^2, e^{i\pi} Dla więcej niż jednego znaku użyj nawiasów klamrowych
Indeks dolny a_1, x_{n+1}
Ułamek \frac{a}{b} \dfrac dla większego ułamka w tekście
Pierwiastek \sqrt{x}, \sqrt[3]{x}
Suma, iloczyn \sum_{i=1}^{n} i, \prod_{k} k
Całka \int_0^1 x\,dx \, dodaje wąską spację
Granica \lim_{x \to 0} \frac{\sin x}{x}
Litery greckie \alpha, \beta, \pi, \Omega Wielka litera na początku daje wielką literę grecką
Relacje \le, \ge, \ne, \approx, \equiv
Operatory \times, \cdot, \pm, \div
Zbiory \in, \subset, \cup, \cap, \mathbb{R}
Strzałki \to, \Rightarrow, \leftrightarrow
Tekst we wzorze \text{if } x > 0 Zachowuje zwykłe odstępy
Wektory, akcenty \vec{v}, \hat{x}, \bar{y}

Nawiasy klamrowe grupują elementy: x^10 wyświetla się jako x¹0, a x^{10} jako x¹⁰. Gdy wzór wygląda źle, najczęstszą przyczyną są brakujące nawiasy klamrowe.

Nawiasy, które rosną

Zwykłe nawiasy mają stały rozmiar. Użyj \left i \right, aby objęły wysoką zawartość:

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

Macierze

Macierze korzystają ze środowisk. pmatrix dodaje nawiasy okrągłe, bmatrix kwadratowe, a vmatrix pionowe kreski (wyznacznik). Kolumny oddziela się znakiem &, wiersze — \\.

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

Równania wielowierszowe i wyrównane

Aby wyrównać kolejne kroki do znaku równości, użyj środowiska aligned we wzorze w osobnym wierszu i zaznacz punkt wyrównania znakiem &:

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}

Do funkcji zdefiniowanych przedziałami użyj 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}

Znaki dolara, które nie są wzorami

Ceny w tekście mogą przypadkowo zamienić się we wzory. Większość rendererów stosuje regułę Pandoca: po otwierającym $ nie może stać spacja, a przed zamykającym $ nie może stać spacja ani po nim cyfra. Dlatego „od $5 do $10” zwykle pozostaje zwykłym tekstem. W razie wątpliwości poprzedź znak dolara ukośnikiem wstecznym: \$5.

KaTeX czy MathJax

Oba renderują tę samą składnię LaTeX; różnią się głównie szybkością i zakresem obsługi.

  • KaTeX jest szybki i renderuje synchronicznie, co jest idealne do podglądu na żywo. Obsługuje zdecydowaną większość poleceń używanych w dokumentacji, notatkach i publikacjach.
  • MathJax obsługuje więcej pakietów LaTeX i jest używany przez GitHub oraz wiele serwisów naukowych, ale jest cięższy.

Markdown Preview Editor używa KaTeX i wczytuje go tylko wtedy, gdy dokument faktycznie zawiera wzór, więc dokumenty bez matematyki pozostają lekkie. Wzór napisany dla KaTeX niemal zawsze wyświetli się poprawnie również na GitHub.

Wzory na GitHub

GitHub renderuje wzory w plikach Markdown, zgłoszeniach (issues) i pull requestach. Obsługuje $…$ i $$…$$ oraz dwie alternatywy na trudniejsze przypadki: $`…`$ dla wzorów w tekście zawierających znaki, które Markdown by zinterpretował, oraz blok kodu z językiem math dla wzorów w osobnym wierszu.

Jak pisać wzory szybciej

  • Użyj przycisku wzoru w rzędzie Edytor zaawansowany w Markdown Preview Editor, aby wstawić szablon wzoru, a następnie edytuj go z podglądem obok.
  • Trzymaj plik z fragmentami wzorów, których często używasz — macierze, bloki wyrównane, cases.
  • Łącz wzory z diagramami Mermaid, aby objaśniać algorytmy: schemat blokowy dla kroków i wzór dla każdego kroku.
  • Gdy dokument jest gotowy, wyeksportuj go do HTML lub PDF — wzory zostaną zachowane w wyeksportowanym pliku.

Dopiero zaczynasz z Markdown? Zacznij od ściągawki Markdown.

Najczęściej zadawane pytania

Jak napisać równanie w Markdown?

Otocz wzór LaTeX pojedynczymi znakami dolara, aby umieścić go w tekście ($a^2 + b^2 = c^2$), lub podwójnymi, aby wyświetlić go wyśrodkowany w osobnym wierszu. Narzędzie Markdown musi obsługiwać wzory — GitHub, GitLab, Obsidian, Jupyter i Markdown Preview Editor to robią.

Dlaczego mój wzór wyświetla się jako zwykły tekst?

Typowe przyczyny: narzędzie nie obsługuje wzorów, tuż po otwierającym $ lub tuż przed zamykającym $ stoi spacja albo znak Markdown, taki jak _ lub *, wewnątrz wzoru został zinterpretowany jako formatowanie. Spróbuj wzoru w osobnym wierszu z $$ w oddzielnych liniach.

Jak napisać macierz w Markdown?

Użyj \begin{pmatrix} … \end{pmatrix} (lub bmatrix, vmatrix) wewnątrz $$. Kolumny oddzielaj znakiem &, a wiersze — \\.

Czy KaTeX obsługuje wszystkie polecenia LaTeX?

KaTeX obsługuje większość poleceń matematycznych używanych w praktyce, ale nie każdy pakiet LaTeX. Polecenia dotyczące układu dokumentu (takie jak \section czy \usepackage) w ogóle nie mają zastosowania do wzorów w Markdown.