表の四角形の空きスペースを埋める

表の四角形の空きスペースを埋める

各四角形の内側のテキストが、\tabular利用可能なスペース全体を埋め尽くすようにしたいと考えています。たとえば、下の表では、columnc2 と d2 があるはずの場所に空白スペースができないように、a2 と b2 が s2 の下の全体を占めるようにしたいと考えています。

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

Ignasi の投稿後、テーブル全体に普及させました。しかし、「s2」の下に不具合が発生します。テーブル

答え1

この結果を得るには、スペース ハックをいくつか使用できます\multirow(下の最初の表を参照)。ただし、データについて詳しく知らなければ、これが読者にどのように役立つかはわかりません。

以下の 2 番目の例のように、テーブルを回転するとわかりやすくなる場合があります。この例では、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}

今後は、使用されているすべてのパッケージ (この場合はmultirowamssymb) を含む完全な例を投稿してください。

ここに画像の説明を入力してください ここに画像の説明を入力してください

答え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}

ここに画像の説明を入力してください

提案されたソリューションは、元のテーブルに追加された新しい行に合わせて調整する必要があります。 5 行に拡張された場合、multirow2 列目は配置が間違っている通常のセルで構成されているため、4 列目にのみ適用できます。

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

ここに画像の説明を入力してください

関連情報