Клітинки, які охоплюють рядки або стовпці

multicolumn, multirow, cmidrule під згрупованими заголовками.

Комірки, які охоплюють рядки або стовпці

Для реальних таблиць часто потрібні об’єднані комірки. Заголовок, як-от «Оцінки», розташований над двома стовпцями показників, охоплює стовпці, а назва моделі, яка застосовується до двох рядків результатів, охоплює рядки. LaTeX обробляє два напрямки за допомогою різних інструментів: \multicolumn є вбудованим, тоді як \multirow походить з однойменного пакета. Ось компактна таблиця, яка використовує обидва, а також часткове правило з booktabs:

\usepackage{multirow,booktabs}
\begin{tabular}{lcc}
\toprule
& \multicolumn{2}{c}{Scores} \\
\cmidrule(lr){2-3}
Model & Acc & F1 \\
\midrule
\multirow{2}{*}{Ours} & 0.9 & 0.88 \\
& 0.91 & 0.89 \\
\bottomrule
\end{tabular}

Охоплюючі стовпці

\multicolumn{2}{c}{Scores} замінює дві звичайні клітинки на одну. Перший аргумент — це кількість стовпців, які потрібно поглинути, другий — специфікація стовпця лише для цієї комірки, тут «c» — центрований, а третій — вміст. Зверніть увагу на єдиний & перед ним: перший стовпець цього рядка навмисно порожній, тому «Оцінки» починаються зі стовпця 2 і охоплюють стовпці 2 і 3. Оскільки другий аргумент замінює тип стовпця локально, \multicolumn{1}{c}{...} також є стандартним трюком для центрування однієї клітинки заголовка над стовпцем, вирівняним за лівим краєм.

Часткове правило

\cmidrule(lr){2-3} малює горизонтальну лінію лише під стовпцями 2–3, що візуально прив’язує згрупований заголовок до його стовпців. Опція (lr) дещо скорочує правило з лівого та правого кінців, тому сусідні \cmidrules не торкаються та читаються як окремі групові маркери. Це команда booktabs, і обрізка є однією з деталей, завдяки якій ці таблиці виглядають набраними, а не намальованими. Повний стиль трьох правил описано в таблицях трьох правил.

Охоплюючі рядки

\multirow{2}{*}{Ours} друкує “Наші” вертикально по центру в 2 рядках. Перший аргумент — це кількість рядків, другий — ширина клітинки, де «*» означає природну ширину вмісту, а третій — сам вміст. Команда резервує лише візуальний простір, тому другий рядок все ще має містити порожню першу клітинку, тому наступний рядок починається з голого &. Якщо забути, що порожня комірка зміщує кожне значення в рядку на один стовпець ліворуч, а повідомлення про помилку зміщення вказує на неправильний рядок, тому спочатку перевірте рядок після \multirow.

Практична межа

Об’єднані клітинки найкраще зберігати в заголовках і коротких групах рядків. Таблицю, у якій осередки даних розповсюджуються в обох напрямках, важко читати і важче підтримувати, оскільки кожен доданий рядок змушує вас перераховувати діапазони. Якщо ви виявите, що всередині \multicolumn вкладено \multirow, подумайте про зміну структури таблиці.

Назад до Поплавкова хірургія