Den verfügbaren Platz im Tabellenquadrat ausfüllen

Den verfügbaren Platz im Tabellenquadrat ausfüllen

Ich versuche, den inneren Text jedes meiner Quadrate so zu gestalten, dass er \tabularden gesamten verfügbaren Platz ausfüllt. In der folgenden Tabelle möchte ich beispielsweise, dass a2 und b2 den gesamten Bereich columnunter s2 einnehmen, sodass keine leeren Bereiche sichtbar werden, wo c2 und d2 wären.

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

Hat irgendjemand bitte eine Ahnung?


Bearbeiten:

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

Nach Ignasis Beitrag habe ich die gesamte Tabelle popularisiert. Aber unter 's2' erscheint eine Fehlfunktion:Tisch

Antwort1

Sie können \multiroweinige Abstandstricks verwenden, um dieses Ergebnis zu erzielen (siehe erste Tabelle unten), aber ohne mehr über Ihre Daten zu wissen, ist schwer zu erkennen, wie dies dem Leser helfen würde.

Möglicherweise ist es klarer, wenn Sie Ihre Tabelle drehen, wie im zweiten Beispiel unten, das das booktabsPaket ebenfalls für eine (vermutlich) attraktivere Tabellenformatierung verwendet.


Beachten Sie, dass dies \bfein veralteter Befehl ist. Verwenden Sie \textbf{}stattdessen. Noch besser ist es, wie ich hier zeige, einen semantischen Befehl zu definieren, um \tableheaderStil und Inhalt zu trennen. Es gibt Tabellenpakete, die das noch einfacher machen.

Ich würde außerdem vorschlagen, anstelle einer Titelzeile eine Tabellenüberschrift zu verwenden und etoolboxalle Tabellen zu zentrieren.


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

Bitte veröffentlichen Sie in Zukunft ein vollständiges Beispiel einschließlich aller verwendeten Pakete (in diesem Fall multirowund amssymb).

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Antwort2

Ich bin nicht sicher, ob ich die Frage verstehe, aber so etwas?

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

Bildbeschreibung hier eingeben

Die vorgeschlagene Lösung muss mit jeder neuen Zeile angepasst werden, die der Originaltabelle hinzugefügt wird. Falls sie auf fünf Zeilen erweitert wird, multirowkann sie nur auf die vierte Spalte angewendet werden, während die zweite Spalte für falsch platzierte reguläre Zellen erstellt wird.

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

Bildbeschreibung hier eingeben

verwandte Informationen