PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen nebeneinander



PlayXN
23-01-2006, 17:34
Hi
Ich habe versucht 4 Tabellen mit minipage nebeneinander zu setzen. Die Tabellen werden aber leider nur untereinander gesetzt.
Was kann ich dagegen machen?



\begin{table}
\begin{minipage}[t]{.20\linewidth}
\centering



\begin{tabular}{|c|}
\hline
1. Spalte \\
\hline
\hline



$A \wedge B \wedge C \wedge D$ \\
\hline
$(A \wedge B \wedge C \wedge \overline{D})$\\
$(\overline{A} \wedge B \wedge C \wedge D)$\\
$(A \wedge \overline{B} \wedge C \wedge D)$\\
\hline
$(A \wedge \overline{B} \wedge C \wedge \overline{D})$\\
$(\overline{A} \wedge B \wedge C \wedge \overline{D})$\\
$(\overline{A} \wedge \overline{B} \wedge C \wedge \overline{D})$\\
\hline
$(\overline{A} \wedge \overline{B} \wedge C \wedge \overline{D})$\\
\hline
\end{tabular}


\end{minipage}
\hfill



\begin{minipage}[t]{.20\linewidth}
\centering






\begin{tabular}{|c|}
\hline
2. Spalte \\
\hline
\hline



$C$\\
$A \wedge B \wedge C$\\
$B \wedge C \wedge D$\\
$A \wedge C \wedge D$\\
\hline
$A \wedge C \wedge \overline{D}$\\
$B \wedge C \wedge \overline{D}$\\
$\overline{A} \wedge B \wedge C$\\
$\overline{B} \wedge C \wedge D$\\
\hline
$\overline{B} \wedge C \wedge \overline{D}$\\
$\overline{A} \wedge C \wedge \overline{D}$\\
$\overline{A} \wedge \overline{B} \wedge C$\\
\hline

\end{tabular}




\end{minipage}
\hfill



\begin{minipage}[t]{.20\linewidth}
\centering




\begin{tabular}{|c|}
\hline
3. Spalte \\
\hline
\hline


$B \wedge C$\\
$C \wedge D$\\
$A \wedge D$\\
\hline
$C \wedge \overline{D}$\\
$\overline{A} \wedge C$\\
$\overline{B} \wedge C$\\
\hline


\end{tabular}



\end{minipage}
\hfill



\begin{minipage}[t]{.20\linewidth}
\centering





\begin{tabular}{|c|}
\hline
4. Spalte \\
\hline
\hline


$D$\\
\hline

\end{tabular}



\end{minipage}
\hfill

\end{table}

countbela666
23-01-2006, 18:08
Hallo,

eigentlich brauchst du dazu gar keine Minipage (und selbst wenn du sie unbedingt nutzen möchtest, würde eine ausreichen). Problem sind bei deinem Code vor allem die vielen Leerzeilen zur Quellcodestrukturierung, die werden als Zeilenumbrüche gewertet.
Hier mal ein funktionierendes Minimalbeispiel:

\documentclass{article}
\begin{document}
\begin{table}
\begin{tabular}{|c|c|}\hline
a&b\\\hline c&d\\\hline
\end{tabular}
\hfill
\begin{tabular}{|c|c|}\hline
1&2\\\hline 3&4\\\hline
\end{tabular}
\hfill
\begin{tabular}{|c|c|}\hline
a&b\\\hline c&d\\\hline
\end{tabular}
\hfill
\begin{tabular}{|c|c|}\hline
1&2\\\hline 3&4\\\hline
\end{tabular}
\hfill
\end{table}
\end{document}Grüße,
Marcel

PlayXN
23-01-2006, 18:11
Danke
Und wie schafft man es das verschieden hohe Tabellen trotzdem auf einer Linie plaziert werden?

countbela666
23-01-2006, 18:30
Hmm,

keine Ahnung, ob's nicht vielleicht eine einfachere Lösung gibt, aber folgendes sollte funktionieren: steck die Tabellen doch wieder jeweils in eine Minipage, aber gib für diese jeweils die gleiche Höhe an (natürlich die der längsten Tabelle). In deinem Beispiel wären das so daumenmäßig 12,5 Zeilen (hab das mal in ein Makro geschrieben):

\documentclass{article}
\begin{document}
%%%%%%%%% Höhe der Minipages == Längste Tabelle
\providecommand{\tableheight}{12.5\baselineskip}
bla bla blupp...\par
%%%%%%%%% Gleitumgebung
\begin{table}[h]
%%%%%%%%% erste Tabelle
\begin{minipage}[c][\tableheight][t]{.2\linewidth}
\begin{tabular}{|c|}\hline
1. Spalte \\\hline\hline
$A \wedge B \wedge C \wedge D$ \\\hline
$(A \wedge B \wedge C \wedge \overline{D})$\\
$(\overline{A} \wedge B \wedge C \wedge D)$\\
$(A \wedge \overline{B} \wedge C \wedge D)$\\\hline
$(A \wedge \overline{B} \wedge C \wedge \overline{D})$\\
$(\overline{A} \wedge B \wedge C \wedge \overline{D})$\\
$(\overline{A} \wedge \overline{B} \wedge C \wedge \overline{D})$\\\hline
$(\overline{A} \wedge \overline{B} \wedge C \wedge \overline{D})$\\\hline
\end{tabular}
\end{minipage}
\hfill
%%%%%%%%% zweite Tabelle
\begin{minipage}[c][\tableheight][t]{.2\linewidth}
\begin{tabular}{|c|}\hline
2. Spalte \\\hline\hline
$C$\\
$A \wedge B \wedge C$\\
$B \wedge C \wedge D$\\
$A \wedge C \wedge D$\\\hline
$A \wedge C \wedge \overline{D}$\\
$B \wedge C \wedge \overline{D}$\\
$\overline{A} \wedge B \wedge C$\\
$\overline{B} \wedge C \wedge D$\\\hline
$\overline{B} \wedge C \wedge \overline{D}$\\
$\overline{A} \wedge C \wedge \overline{D}$\\
$\overline{A} \wedge \overline{B} \wedge C$\\\hline
\end{tabular}
\end{minipage}
\hfill
%%%%%%%%% dritte Tabelle
\begin{minipage}[c][\tableheight][t]{.2\linewidth}
\begin{tabular}{|c|}\hline
3. Spalte \\\hline\hline
$B \wedge C$\\$C \wedge D$\\
$A \wedge D$\\\hline
$C \wedge \overline{D}$\\
$\overline{A} \wedge C$\\
$\overline{B} \wedge C$\\\hline
\end{tabular}
\end{minipage}
\hfill
%%%%%%%%% vierte Tabelle
\begin{minipage}[c][\tableheight][t]{.2\linewidth}
\begin{tabular}{|c|}\hline
4. Spalte \\\hline\hline
$D$\\\hline
\end{tabular}
\end{minipage}
\caption{Tabellentitel}
\end{table}
bla bla blupp...\par
\end{document}Grüße,
Marcel

PlayXN
23-01-2006, 20:57
Entschuldigung, dass ich schon wieder störe. Jetzt ist nur noch ein kleines Problem:
Wie reguliere ich den Abstand der Tabellen?

countbela666
23-01-2006, 21:46
Das ist dummerweise gar kein ganz so triviales Problem. Momentan lässt du LaTeX selbst den nötigen Abstand zwischen den Tabellen berechnen (mittels \hfill); das sieht nur ein bisschen blöd aus, weil die Minipages, in denen diese stecken alle die gleiche Breite haben während die Tabellen selbst unterschiedlich breit sind.

Du könntest jetzt empirisch ermitteln, wie breit die Tabellen wirklich sind und die Breite der jeweiligen Minipages entsprechend anpassen, dann sollte es vernünftig aussehen. Das ist aber wenig elegant und recht umständlich.

Weiterhin könntest du anstelle der \hfill-Befehle \hspace{...} nutzen. Welche Länge da passen, müsstest du wiederum empirisch herausfinden.

Die beste Methode, die mir einfallen würde, wäre folgendes: Stecke doch alle vier Tabellen in eine einzige Tabelle fester Breite und lasse die Breite der "Leerspalten" dynamisch. Das würde mit dem Paket und der Umgebung tabularx folgendermaßen aussehen:

\documentclass{article}
\usepackage{tabularx,multicol}
\begin{document}
bla bla blupp...\par
\begin{table}[h]
%%%%%% eine Tabelle so breit wie die Zeilenlänge; Spaltentyp X hat dynamische Breite (Leerspalten)
%%%%%% \cline{von-bis} sorgt für teilweise Unterstreichungen
\begin{tabularx}{\textwidth}{|c|X|c|X|c|X|c|}\clin e{1-1}\cline{3-3}\cline{5-5}\cline{7-7}
1. Spalte && 2. Spalte && 3. Spalte && 4. Spalte\\\cline{1-1}\cline{3-3}\cline{5-5}\cline{7-7}
$A \wedge B \wedge C \wedge D$ && $C$ && $B \wedge C$ && $D$\\\cline{1-1}\cline{7-7}
%%%%%% \multicolumn zum Zusammenfassen von Spalten und Unterdrücken der vertikalen Linien
$(A \wedge B \wedge C \wedge \overline{D})$ && $A \wedge B \wedge C$ && $C \wedge D$ &\multicolumn{2}{c}{} \\
$(\overline{A} \wedge B \wedge C \wedge D)$ && $B \wedge C \wedge D$ && $A \wedge D$ &\multicolumn{2}{c}{} \\\cline{5-5}
$(A \wedge \overline{B} \wedge C \wedge D)$ && $A \wedge C \wedge D$ && $C \wedge \overline{D}$ &\multicolumn{2}{c}{} \\\cline{1-1}\cline{3-3}
$(A \wedge \overline{B} \wedge C \wedge \overline{D})$ && $A \wedge C \wedge \overline{D}$ && $\overline{A} \wedge C$ &\multicolumn{2}{c}{} \\
$(\overline{A} \wedge B \wedge C \wedge \overline{D})$ && $B \wedge C \wedge \overline{D}$ && $\overline{B} \wedge C$ &\multicolumn{2}{c}{} \\\cline{5-5}
$(\overline{A} \wedge \overline{B} \wedge C \wedge \overline{D})$ && $\overline{A} \wedge B \wedge C$ &\multicolumn{4}{c}{} \\\cline{1-1}
$(\overline{A} \wedge \overline{B} \wedge C \wedge \overline{D})$ && $\overline{B} \wedge C \wedge D$ &\multicolumn{4}{c}{} \\\cline{1-1}\cline{3-3}
\multicolumn{1}{c}{} && $\overline{B} \wedge C \wedge \overline{D}$ &\multicolumn{4}{c}{} \\
\multicolumn{1}{c}{} && $\overline{A} \wedge C \wedge \overline{D}$ &\multicolumn{4}{c}{} \\
\multicolumn{1}{c}{} && $\overline{A} \wedge \overline{B} \wedge C$ &\multicolumn{4}{c}{} \\\cline{3-3}
\end{tabularx}
\caption{Tabellentitel}
\end{table}
bla bla blupp...\par
\end{document}