Создание таблицы с разным количеством ячеек в строках в LaTeX
Как сделать такую таблицу в LaTeX?
Суть в том, что первый и последний столбцы должны быть выровнены по ширине.
Ячейки посередине должны выглядеть следующим образом: в первых двух строках между первым и вторым столбцом идут пять одинаковых по ширине ячеек, в третьей строке - четыре, и в последних двух строках - тоже пять.
Фотография выражает структуру таблицы.
Таблица для вычисления значения величины с погрешностью по результатам нескольких измерений.
Ответы (1 шт):
Если бы автор вопроса приложил свою попытку сделать такую таблицу, то я мог бы использовать данные оттуда (чтобы самому не тратить время на ввод формул). Но раз примера не было, то приведу таблицы с минимальным содержанием.
Для создания такой таблицы можно сделать вложенную таблицу и использовать команду \multicolumn. Проблема будет с отбивками, которые тех вставляет вокруг ячеек - у вложенной таблицы они будут отличаться от внешней. Поэтому, проще всего будет избавиться от всех этих отбивок (командой @{} в преамбуле каждой из таблиц). Для задания ячеек будет удобнее использовать один из спецификаторов столбцов из пакета array: p, m или b - они позволяют руками задать требуемую ширину столбца (это касается первого и последнего, которые должны быть шире остальных). Далее можно использовать тот же тип и для всех внутренних столбцов, но тогда понадобится размер подбирать точно, чтобы вертикальные линии совпадали. Либо можно воспользоваться спецификатором столбцов X из пакета tabularx и окружением для таблиц tabularx, которое позволяет задать ширину всей таблицы. Далее пара примеров.
Первый вариант: использовно обычное окружение tabular и ручной подбор ширины столбцов.
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\centering
\begin{tabular}{ |@{}C{20mm}@{}|*{5}{@{}C{8mm}@{}|}@{}C{20mm}@{}| }
\hline
a & b & c & d & e & f & g\\ \hline
a & b & c & d & e & f & g\\ \hline
start &
\multicolumn{5}{@{}l@{}}{
\begin{tabular}{*{4}{@{}C{10.1mm}@{}|}}
1 & 2 & 3 & 4 %\\ \hline 1 & 2 & 3 & 4 \\
\end{tabular}}
& end \\ \hline
a & b & c & d & e & f & g\\ \hline
a & b & c & d & e & f & g\\ \hline
\end{tabular}
\end{document}
Второй вариант, с автоматическим вычислением ширины внутренних столбцов и окружением tabularx мне кажется более удобным; здесь нужно указать только ширину таблиц целиком и ширины первого и последнего столбца (для вложенной и внешней таблиц эти значения должны, конечно же, совпадать):
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tabularx}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\centering
\begin{tabularx}{100mm}{ |@{}C{15mm}@{}|*{5}{@{}>{\centering\arraybackslash}X@{}|}@{}C{15mm}@{}| }
\hline
a & b & c & d & e & f & g \\ \hline
a & b & c & d & e & f & g \\ \hline
\multicolumn{7}{@{}l@{}}{
\begin{tabularx}{100mm}{ |@{}C{15mm}@{}|
@{}*{4}{@{}>{\centering\arraybackslash}X@{}|}
@{}C{15mm}@{}|}
start & 1 & 2 & 3 & 4 & stop %\\ \hline start & 1 & 2 & 3 & 4 & stop \\
\end{tabularx}} \\ \hline
a & b & c & d & e & f & g\\ \hline
a & b & c & d & e & f & g\\ \hline
\end{tabularx}
\end{document}
Соответственно, результат для этого варианта:

В обоих случаях для столбцов фиксированной ширины использовался определенный мной в преамбуле формат C, а для формата с автоподбором ширины я не стал переопределять столбец, а просто явно добавил в преамбулу таблиц команду >{\centering\arraybackslash} - она просто должна выравнивать содержимое ячейки по центру.
Также, в обоих случаях я оставил закомментированной для вложенной таблицы вторую строку - можно раскомментировать и посмотреть, как будут выглядеть таблицы в этом случае.

