Клітинки, які охоплюють рядки або стовпці
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, подумайте про зміну структури таблиці.