Я пытаюсь, чтобы внутренний текст каждого квадрата моего \tabular
заполнил все доступное пространство. Например, в таблице ниже я хотел бы, чтобы мои a2 и b2 занимали все column
под s2 таким образом, чтобы не было видно пустых мест там, где будут c2 и d2.
\usepackage{amssymb}
\usepackage{multirow}
...
\begin{center}\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{\bf title}\\
\hline \hline
\bf s1 & \bf s2 & \bf s3 & \bf s4\\
\hline \hline
\multirow{4}{*}{$\varnothing$} & a2 & a3 & a4\\
& b2 & b3 & b4\\
& & c3 & c4\\
& & d3 &\\
\hline
\end{tabular}\label{table}\end{center}
Может, кто-нибудь подскажет?
Редактировать:
\usepackage{amssymb}
\usepackage{multirow}
...
\begin{center}\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{\bf Requête}\\
\hline \hline
\bf s1 & \bf s2 & \bf s3 & \bf s4\\
\hline \hline
\multirow{5}{*}{$\varnothing$} & \multirow{2}{*}{a2} & a3 & \multirow{3}{*}{a4}\\
& \multirow{2}{*}{b2} & b3 & \multirow{3}{*}{b4}\\
& & c3 & \multirow{3}{*}{c4}\\
& & d3 &\\
& & e3 &\\
\hline
\end{tabular}\end{center}
После поста Игнаси я популяризировал всю таблицу. Но под 's2' появляется неисправность:
решение1
Вы можете использовать \multirow
некоторые приемы расстановки пробелов, чтобы получить этот результат (см. первую таблицу ниже), но, не зная больше о ваших данных, трудно понять, как это поможет читателю.
Возможно, будет нагляднее повернуть таблицу, как во втором примере ниже, который также использует пакет booktabs
для (возможно) более привлекательного форматирования таблицы.
Обратите внимание, что \bf
это устаревшая команда; используйте \textbf{}
вместо нее. Еще лучше, как я показываю здесь, определить семантическую команду, например, \tableheader
отделить стиль от контента. Существуют пакеты таблиц, которые сделают это еще проще.
Я бы также предложил использовать заголовок таблицы вместо строки заголовка и использовать его etoolbox
для центрирования всех таблиц.
\documentclass{article}
\usepackage{multirow} % for \multirow
\usepackage{amssymb} % for \varnothing
\usepackage[position=above]{caption} % for table caption positioned above
\usepackage{booktabs} % for more attractive table spacing and rules
\usepackage{etoolbox} % center the tables
\AtEndEnvironment{table}{\centering}
\newcommand{\tableheader}[1]{\textbf{#1}}
\begin{document}
\begin{table}
\caption{Title}
\label{table}
\begin{tabular}{|c|c|c|c|}
\hline
%\multicolumn{4}{|c|}{\tableheader{title}}\\ % use caption instead?
%\hline \hline
\tableheader{s1} & \tableheader{s2} & \tableheader{s3} & \tableheader{s4}\\
\hline \hline
\multirow{4}{*}{$\varnothing$} &
\multirow{4}{*}{%
\vspace*{\fill}
\renewcommand{\arraystretch}{2}
\begin{tabular}{@{}c}
a2\\
b2\\
\end{tabular}%
\vspace*{\fill}%
} & a3 & a4\\
& & b3 & b4\\
& & c3 & c4\\
& & d3 &\\
\hline
\end{tabular}
\end{table}
%***************************************
\begin{table}
\caption{Rotated}
\label{table:rotated}
\begin{tabular}{*{5}c}
\toprule
S-value & \multicolumn{4}{c}{Result}\\
\midrule
s1 & $\varnothing$ & $\varnothing$ & $\varnothing$ & $\varnothing$\\
s2 & a2 & b2 & &\\
s3 & a3 & b3 & c3 & d3\\
s4 & a4 & b4 & c4 & d4\\
\bottomrule
\end{tabular}
\end{table}
\end{document}
В будущем, пожалуйста, опубликуйте полный пример, включая все используемые пакеты (в данном случае multirow
и amssymb
).
решение2
Не уверен, что понял вопрос, но что-то вроде этого?
\documentclass{article}
\usepackage{multirow}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{center}\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{\bf title}\\
\hline \hline
\bf s1 & \bf s2 & \bf s3 & \bf s4\\
\hline \hline
\multirow{4}{*}{$\varnothing$} & \multirow{2}{*}{a2} & a3 & a4\\
& & b3 & b4\\
& \multirow{2}{*}{b2} & c3 & c4\\
& & d3 &\\
\hline
\end{tabular}\label{table}\end{center}
\end{document}
Предложенное решение необходимо корректировать с любой новой строкой, которая добавляется в исходную таблицу. В случае, если оно расширено до пяти строк, multirow
может быть применено только к четвертому столбцу, в то время как второй столбец составлен для неправильно размещенных обычных ячеек.
\documentclass{article}
\usepackage{multirow}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{center}\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{\bf title}\\
\hline \hline
\bf s1 & \bf s2 & \bf s3 & \bf s4\\
\hline \hline
\multirow{5}{*}{$\varnothing$} & & a3 & \multirow{2}{*}{a4}\\
& a2 & b3 & \\
& & c3 & b4\\
& b2 & d3 &\multirow{2}{*}{c4}\\
& & e3 &\\
\hline
\end{tabular}\label{table}\end{center}
\end{document}