Создание и оформление сложных таблиц в Markdown: синтаксис и онлайн-редактор
Как сделать таблицу в Markdown: стандартный синтаксис GFM
В спецификации GitHub Flavored Markdown (GFM) таблицы строятся с
помощью вертикальных черт | для разделения колонок и дефисов - для
отделения строки заголовка от тела таблицы. Если вы ищете способ, как сделать таблицу в
markdown, достаточно освоить базовую конструкцию:
| Параметр | Значение | Единица измерения |
| --- | --- | --- |
| Напряжение | 220 | В |
| Сила тока | 4,5 | А |
| Сопротивление | 48,9 | Ом |
Совет: крайние вертикальные черты ставить не обязательно, но их наличие делает исходный код заметно аккуратнее и облегчает чтение в текстовом редакторе. Если ячейки содержат степени или химические формулы, применяйте надстрочные и подстрочные индексы.
Выравнивание текста в колонках (влево, по центру, вправо)
По умолчанию текст в ячейках выравнивается по левому краю. Чтобы
изменить выравнивание, используйте двоеточия : во второй строке-разделителе:
| По левому краю | По центру | По правому краю (числа) |
| :--- | :---: | ---: |
| Процессор Intel Core i7 | 8 ядер | 34 500 руб. |
| Оперативная память DDR5 | 32 ГБ | 12 800 руб. |
| Накопитель NVMe SSD | 1 ТБ | 8 200 руб. |
Числовые колонки с ценами, массами и датами по академическим стандартам всегда принято выравнивать по правому краю, чтобы разряды единиц и десятков находились друг под другом.
Многострочный текст, списки и формулы внутри ячеек
Классический Markdown воспринимает перевод строки как завершение
строки таблицы. Чтобы разместить несколько строк текста внутри одной ячейки, используйте
HTML-тег принудительного переноса <br>:
| Модуль | Описание функционала | Формула расчета |
| :--- | :--- | :---: |
| Сервис авторизации | 1. Проверка JWT токена<br>2. Валидация прав доступа<br>3. Сессионный кэш в Redis | $T_{auth} < 15\text{ мс}$ |
| Расчет тарифа | Базовая ставка с учетом<br>коэффициента загрузки | $Cost = B \times (1 + k)$ |
В превью Markdown-проекта Labkeeper тег <br>
работает. В LaTeX-проекте HTML-теги из Markdown-сегментов выбрасываются, и строки ячейки
сольются в одну; для PDF с многострочными ячейками используйте таблицу в LaTeX-сегменте.
Объединение ячеек (colspan / rowspan) через теги HTML
Если таблица содержит составную шапку или объединенные ячейки по
горизонтали и вертикали, стандартный синтаксис бессилен. В этом случае Markdown позволяет
вставить чистые теги <table> с атрибутами colspan и
rowspan:
<table>
<tr>
<th rowspan="2">Студент</th>
<th colspan="2">Результаты тестирования</th>
</tr>
<tr>
<th>Теория</th>
<th>Практика</th>
</tr>
<tr>
<td>Алексей Смирнов</td>
<td>95</td>
<td>88</td>
</tr>
</table>
Такой подход избавляет от типичных проблем со съезжающей сеткой при
переходе с Word на
легковесную разметку в дипломных проектах. Учтите, что HTML-таблица видна только в превью
Markdown-проекта: в LaTeX-проекте она выбрасывается целиком, и объединенные ячейки там делают
командами \multicolumn и \multirow.
Генератор таблиц Markdown онлайн: автоматизация рутины
Набивать таблицу из 10 столбцов и 30 строк вручную расстановкой палочек крайне утомительно. Для этого есть внешние сервисы — генератор таблиц markdown онлайн (например, Tables Generator): вставляете ячейки из Excel или Google Таблиц и копируете готовый синтаксис Markdown в документ. Визуального редактора таблиц в Labkeeper нет — таблица остается текстом сегмента.
Для таблиц измерений в Labkeeper есть путь удобнее: сохраните данные
из Excel в CSV, загрузите файл в файлы проекта (загрузка доступна после входа) и выведите его
вычислительным сегментом. Функция load_csv создает массивы с именами колонок файла,
а table рисует из них таблицу:
// В файле data.csv первая строка: U,I
load_csv("data.csv")
table(U, I, name_1="U, В", name_2="I, мА")
Таблица пересчитывается при каждом нажатии «Выполнить», поэтому после замены CSV ее не нужно переписывать.
Практические советы
Экранирование вертикальной черты
Если внутри текста ячейки требуется написать сам символ вертикальной черты (например,
логическое ИЛИ || или модуль числа), экранируйте его обратным слэшем:
\|.
Таблицы в LaTeX-проекте
В LaTeX-проекте Markdown-таблица из сегмента превращается в таблицу longtable и переносится
на следующую страницу. HTML-таблицы и теги <br> при этом выбрасываются,
поэтому сложные таблицы для PDF набирайте в LaTeX-сегменте.