Написание надстрочных и подстрочных индексов (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>.

Markdown
Верхний индекс (степень): 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-математики, обрамленный знаками доллара $...$. Для нижнего индекса служит символ подчеркивания _, а для верхнего — крышка ^.

LaTeX Math в Markdown
В строке: Скорость тела равна $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> &rarr; 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 используйте формулы или синтаксис Pandoc H~2~O.
  • Кириллица в формулах: если вам нужен поясняющий русский индекс в формуле LaTeX, оборачивайте его в \text{...}: $F_{\text{тр}} = \mu N$.

Практические советы

1

Используйте LaTeX-блок для математики

Для простых химических формул удобнее теги <sub>, а для математических уравнений со степенями и дробями выбирайте формулы LaTeX между знаками доллара: так соблюдаются типографические правила набора символов курсивом.

2

Индексы в Labkeeper

В Markdown-проекте Labkeeper можно комбинировать текст, HTML-теги и формулы MathJax и сразу видеть результат в превью. Для PDF с полями и сносками используйте LaTeX-проект: там индексы набирайте формулами, потому что HTML-теги из Markdown-сегментов при сборке выбрасываются.

Попробуйте прямо сейчас

Форматируйте формулы и индексы в Labkeeper

Онлайн-редактор Markdown и LaTeX: теги sub/sup, формулы MathJax и сохранение заметок в PDF через печать браузера.

Другие статьи