Ich versuche, den inneren Text jedes meiner Quadrate so zu gestalten, dass er \tabular
den gesamten verfügbaren Platz ausfüllt. In der folgenden Tabelle möchte ich beispielsweise, dass a2 und b2 den gesamten Bereich column
unter 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:
Antwort1
Sie können \multirow
einige 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 booktabs
Paket ebenfalls für eine (vermutlich) attraktivere Tabellenformatierung verwendet.
Beachten Sie, dass dies \bf
ein veralteter Befehl ist. Verwenden Sie \textbf{}
stattdessen. Noch besser ist es, wie ich hier zeige, einen semantischen Befehl zu definieren, um \tableheader
Stil 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 etoolbox
alle 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 multirow
und amssymb
).
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}
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, multirow
kann 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}