Preencha o espaço disponível no quadrado tabular

Preencha o espaço disponível no quadrado tabular

Estou tentando fazer com que o texto interno de cada quadrado preencha \tabulartodo o espaço disponível. Por exemplo, na tabela abaixo, gostaria que meus a2 e b2 ocupassem todo o columnsubs2 de forma a não revelar espaços vazios claros onde estariam c2 e 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}

Alguém teria uma pista, por favor?


Editar:

\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}

Depois da postagem do Ignasi, popularizei para toda a mesa. Mas aparece um mau funcionamento em 's2':Mesa

Responder1

Você pode usar \multirowalguns truques de espaçamento para obter esse resultado (veja a primeira tabela abaixo), mas sem saber mais sobre seus dados é difícil ver como isso ajudaria o leitor.

Pode ser mais claro girar sua tabela, como no segundo exemplo abaixo, que também usa o booktabspacote para uma formatação de tabela (sem dúvida) mais atraente.


Observe que este \bfé um comando obsoleto; use \textbf{}em vez disso. Melhor ainda, como mostro aqui, é definir um comando semântico como \tableheaderseparar estilo de conteúdo. Existem pacotes de tabelas que tornarão isso ainda mais fácil.

Eu também sugeriria usar uma legenda de tabela em vez de uma linha de título e centralizar etoolboxtodas as tabelas.


\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}

No futuro, poste um exemplo completo incluindo todos os pacotes usados ​​(neste caso multirowe amssymb).

insira a descrição da imagem aqui insira a descrição da imagem aqui

Responder2

Não tenho certeza se entendi a pergunta, mas algo assim?

\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}

insira a descrição da imagem aqui

A solução proposta precisa ser ajustada com qualquer nova linha adicionada à tabela original. Caso seja estendido para cinco linhas, multirowpoderá ser aplicado apenas à quarta coluna enquanto a segunda coluna é composta por células regulares mal posicionadas.

\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}

insira a descrição da imagem aqui

informação relacionada