Написание надстрочных и подстрочных индексов (sup / sub) в Markdown
Зачем нужны индексы в текстовых документах
При подготовке научно-технических заметок, отчетов по лабораторным работам и технической документации регулярно возникает необходимость вставить степень величины ($x^2$, $10^5$), записать химическую формулу ($\mathrm{H_2O}$, $\mathrm{CO_2}$) или указать номер итерации в алгоритме ($a_{i+1}$). В чистой спецификации CommonMark нет встроенного символа для таких операций, однако существует несколько надёжных подходов.
В этой статье мы подробно разберем, как органично внедрить индексы в markdown sub sup с помощью стандартных HTML-тегов, математических вставок KaTeX/MathJax и специальных расширений синтаксиса. А если вы готовите структурированные данные, рекомендуем также посмотреть наше руководство по созданию сложных таблиц в Markdown.
Индексы в Markdown sub sup: использование базовых HTML-тегов
Поскольку спецификация Markdown полностью поддерживает прозрачную
вставку HTML-тегов, самый кроссплатформенный и универсальный способ проставить верхний или
нижний индекс в markdown — использовать парные теги <sup> и
<sub>.
Верхний индекс (степень): x<sup>2</sup> + y<sup>2</sup> = z<sup>2</sup>
Нижний индекс (вещество): H<sub>2</sub>SO<sub>4</sub>
Комбинированный индекс: A<sub>i</sub><sup>(k)</sup>
Текстовая сноска: Данные исследования<sup>[1]</sup> подтверждены.
Результат визуализации в браузере:
- Верхний индекс: x2 + y2 = z2
- Нижний индекс: H2SO4
- Комбинированный индекс: Ai(k)
- Текстовая сноска: Данные исследования[1] подтверждены.
Этот метод работает во всех современных движках: GitHub, GitLab, Obsidian, Notion, а также в веб-редакторе при интеграции чистого HTML внутрь Markdown.
Нижний индекс в Markdown через математический блок KaTeX/MathJax
Если индекс является частью математического выражения или физической
формулы, предпочтительно использовать синтаксис LaTeX-математики, обрамленный знаками доллара
$...$. Для нижнего индекса служит символ подчеркивания _, а для
верхнего — крышка ^.
В строке: Скорость тела равна $v_0 = 12\text{ м/с}$, а ускорение $a = 9.8\text{ м/с}^2$.
Сложный индекс в фигурных скобках: $T_{max} = 300\text{ K}$, $x_{i,j}^{(n+1)}$.
В отдельном блоке:
$$
\sum_{i=1}^{n} x_i^2 = \sigma_{total}^2
$$
Важное правило: если в индексе содержится более
одного символа (например, max или i+1), его обязательно нужно
заключать в фигурные скобки: $x_{max}$, иначе нижним индексом станет только первый
символ, а остальное останется обычным текстом ($x_max$ превратится в $x_m$ax).
Расширения Pandoc и GitHub Flavored Markdown
В академическом конвертере Pandoc и ряде специализированных редакторов поддерживается компактный сокращенный синтаксис:
- Тильды для нижнего индекса:
H~2~Oпревращается в H2O; - Крышки для верхнего индекса:
x^2^превращается в x2.
Однако в GitHub Flavored Markdown и в превью Markdown-проекта
Labkeeper этот синтаксис не работает: одиночные тильды GFM понимает как зачеркивание, и
H~2~O превратится в H2O, а x^2^ останется обычным текстом.
В LaTeX-проекте Labkeeper Markdown-сегменты переводит Pandoc, и там оба варианта работают.
Поэтому связка <sup> / <sub> либо формульный блок
$...$ остаются наиболее надежным выбором для превью. Подобная аккуратность особенно
важна при верстке резюме в Markdown,
где символы должны парситься корректно любыми сканерами.
Практические примеры: химия, физика и сноски
Сравним типовые сценарии оформления в таблице:
| Сфера | Синтаксис в исходнике | Отображаемый результат |
|---|---|---|
| Химическая реакция | 2H<sub>2</sub> +
O<sub>2</sub> → 2H<sub>2</sub>O |
2H2 + O2 → 2H2O |
| Физические единицы | Плотность: 1000
кг/м<sup>3</sup> |
Плотность: 1000 кг/м3 |
| Математическая последовательность | $a_1, a_2, \dots, a_n$ |
a1, a2, ..., an |
| Энергия покоя | $E_0 = m_0 c^2$ |
E0 = m0c2 |
Типичные ошибки верстки индексов
Чтобы верстка выглядела аккуратно и не разрывала межстрочный интервал абзаца, обратите внимание на следующие нюансы:
- Лишние пробелы внутри тегов: конструкция
<sub> 2 </sub>может вызвать нежелательные отступы вокруг цифры. Пишите слитно:<sub>2</sub>. - Смещение высоты строки в браузере: теги
supиsubмогут слегка увеличиватьline-heightстроки. Если индексов в абзаце много, формульный блок$...$обычно выглядит ровнее. - HTML в LaTeX-проекте: при сборке PDF из
Markdown-сегментов теги
subиsupвыбрасываются, и индекс станет обычной цифрой. Для PDF используйте формулы или синтаксис PandocH~2~O. - Кириллица в формулах: если вам нужен поясняющий
русский индекс в формуле LaTeX, оборачивайте его в
\text{...}:$F_{\text{тр}} = \mu N$.
Практические советы
Используйте LaTeX-блок для математики
Для простых химических формул удобнее теги <sub>, а для математических
уравнений со степенями и дробями выбирайте формулы LaTeX между знаками доллара: так соблюдаются
типографические правила набора символов курсивом.
Индексы в Labkeeper
В Markdown-проекте Labkeeper можно комбинировать текст, HTML-теги и формулы MathJax и сразу видеть результат в превью. Для PDF с полями и сносками используйте LaTeX-проект: там индексы набирайте формулами, потому что HTML-теги из Markdown-сегментов при сборке выбрасываются.