填滿表格方塊中的可用空間

填滿表格方塊中的可用空間

我試圖讓每個方塊的內部文字\tabular填充整個可用空間。例如,在下面的表格中,我希望我的 a2 和 b2 佔據columns2 下的整個空間,以免暴露 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}

Ignasi發文後,我就向整桌人普及了。但'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}

將來請發布一個完整的範例,包括所有使用的套件(在本例中為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}

在此輸入影像描述

建議的解決方案需要根據新增到原始表中的任何新行進行調整。如果它擴展到五行,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}

在此輸入影像描述

相關內容