Seite 1 von 2

multicol und floats

Verfasst: Mi 13. Feb 2013, 16:06
von elmar.a
Moin zusammen,

ich sitze wieder mal an einem zweispaltigen Dokument (mit multicol) und möchte gern eine Tabelle einbinden. Möglichst als Gleitobjekt über nur eine Zeile.

Die Problematik in mehrspaltigem Text ist mir bekannt, ebenso die *-Version für figure oder table. Gibt es darüber hinaus keinerlei Möglichkeit, ein Gleitobjekt einzubinden?
In zahlreichen Dokumenten scheint es doch geklappt zu haben (z.B. Formatting documents with floats). Oder wurden sämtliche floats per Hand gesetzt?

Gruß,
elmar.a


PS: Ich bin überrascht, dass die Thematik hier noch nicht angesprochen wurde! Oder hab ich nur nicht gründlich genug gesucht?

Verfasst: Mi 13. Feb 2013, 17:24
von Epllus
So?
\documentclass[paper=a4,11pt]{scrartcl}
\usepackage{multicol}
\usepackage{capt-of,blindtext}

\begin{document}
\begin{multicols*}{2}
\blindtext
\blindtext\blindtext\blindtext
\begin{center}
\begin{minipage}{.45\textwidth} \centering
\begin{tabular}{l l l}
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z
\end{tabular}
\captionof{table}{Tabelle}
\end{minipage}

\end{center}\blindtext\blindtext\blindtext

\end{multicols*}
\end{document}
Nächstes Mal bitte ein Minimalbeispiel!!!

Epllus

Verfasst: Mi 13. Feb 2013, 19:47
von elmar.a
Epllus hat geschrieben:So?
\documentclass[paper=a4,11pt]{scrartcl}
\usepackage{multicol}
\usepackage{capt-of,blindtext}

\begin{document}
\begin{multicols*}{2}
\blindtext
\blindtext\blindtext\blindtext
\begin{center}
\begin{minipage}{.45\textwidth} \centering
\begin{tabular}{l l l}
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z
\end{tabular}
\captionof{table}{Tabelle}
\end{minipage}

\end{center}\blindtext\blindtext\blindtext

\end{multicols*}
\end{document}
Nächstes Mal bitte ein Minimalbeispiel!!!

Epllus
Leider nein.

In deinem Beispiel ist die Tabelle kein Gleitobjekt. Wenn du zwei mal \blindtext herausnimmst, dann passt es leider schon nicht mehr. Jetzt erfolt der Spaltenumbruch bereits, bevor die erste Zeile voll ist.
\documentclass[paper=a4,11pt]{scrartcl}
\usepackage{multicol}
\usepackage{capt-of,blindtext}

\begin{document}
\begin{multicols*}{2}
\blindtext\blindtext
\begin{center}
\begin{minipage}{.45\textwidth} \centering
\begin{tabular}{l l l}
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z
\end{tabular}
\captionof{table}{Tabelle}
\end{minipage}

\end{center}\blindtext\blindtext\blindtext

\end{multicols*}
\end{document}
Was ich möchte wäre in dem Beispiel, dass der \blindtext, der hinter \end{center} als Code eingegeben ist, bereits (zum Teil) am Ende der ersten Spalte erscheint.
Also die Tabelle als Gleitobjekt.
Dies kann (scheinbar) nur mit figure* oder table* erreicht werden?!
\documentclass[paper=a4,11pt]{scrartcl}
\usepackage{multicol}
\usepackage{capt-of,blindtext}

\begin{document}
\begin{multicols*}{2}
\blindtext\blindtext\blindtext\blindtext
\begin{table*}
\centering
\begin{tabular}{l l l}
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z
\end{tabular}
\captionof{table}{Tabelle}
\end{table*}
\blindtext\blindtext\blindtext

\end{multicols*}
\end{document}
Aber besonders in deinem Beispiel, Epplus, wäre es doch viel sinnvoller, die Tabelle aufgrund ihrer Größe nur in eine Spalte zu setzen.

Ich selber habe leider noch keinen Ansatz, das Problem zu lösen. Auch nach stunden-/tagelanger google-Sucherei bin ich nicht schlauer.


Btw: Was bewirkt das * hinter multicol in deinem Code?

Verfasst: Mi 13. Feb 2013, 20:21
von Noch so einer
Am einfachsten ist das ganze, wenn man nicht multicol verwendet, sondern die twocolumn-Option oder die \twocolumn-Anweisung:
\documentclass[paper=a4,11pt,twocolumn]{scrartcl}
% Note: scrartcl already provides \captionof
\usepackage{blindtext}

\begin{document}
\blindtext\blindtext\blindtext\blindtext

\begin{table}[htb]
\centering
\begin{tabular}{l l l}
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z
\end{tabular}
\caption{Tabelle}
\end{table}

\blindtext\blindtext\blindtext

\end{document}
Im übrigen sollte man Tabellen innerhalb der Seite wie in diesem Beispiel nur zwischen Absätzen aber nicht innerhalb eines Absatzes setzen.

Will man in derartigem zweispaltigem Satz auch Material über beide Spalten setzen, könnten eventuell die sttools nützlich sein.

Verfasst: Mi 13. Feb 2013, 20:39
von elmar.a
Noch so einer hat geschrieben:Am einfachsten ist das ganze, wenn man nicht multicol verwendet, sondern die twocolumn-Option oder die \twocolumn-Anweisung:
\documentclass[paper=a4,11pt,twocolumn]{scrartcl}
% Note: scrartcl already provides \captionof
\usepackage{blindtext}

\begin{document}
\blindtext\blindtext\blindtext\blindtext

\begin{table}[htb]
\centering
\begin{tabular}{l l l}
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z\\
x & y & z
\end{tabular}
\caption{Tabelle}
\end{table}

\blindtext\blindtext\blindtext

\end{document}
Im übrigen sollte man Tabellen innerhalb der Seite wie in diesem Beispiel nur zwischen Absätzen aber nicht innerhalb eines Absatzes setzen.

Will man in derartigem zweispaltigem Satz auch Material über beide Spalten setzen, könnten eventuell die sttools nützlich sein.
Das sieht schon ziemlich vielversprechend aus!
Allerdings ist das Dokument nun global zweispaltig gesetzt. Gibt es jetzt noch die Möglichkeit in einzelnen Abschnitten (z.B. appendix o.ä.) wieder auf eine Spalte zu wechseln?

Floats über beide Spalten ist weiterhin mit figure* oder table* möglich. Trotzdem vielen Dank für den Link, das wird mir evtl. an anderer Stelle nützlich sein!

Verfasst: Do 14. Feb 2013, 10:01
von u_fischer
Gibt es jetzt noch die Möglichkeit in einzelnen Abschnitten (z.B. appendix o.ä.) wieder auf eine Spalte zu wechseln?
\onecolumn (und danach ggfs wieder \twocolumn), aber das wirkt immer seitenweise.[/code]

Verfasst: Do 14. Feb 2013, 10:52
von Noch so einer
elmar.a hat geschrieben:
Noch so einer hat geschrieben:Will man in derartigem zweispaltigem Satz auch Material über beide Spalten setzen, könnten eventuell die sttools nützlich sein.
Das sieht schon ziemlich vielversprechend aus!
Allerdings ist das Dokument nun global zweispaltig gesetzt. Gibt es jetzt noch die Möglichkeit in einzelnen Abschnitten (z.B. appendix o.ä.) wieder auf eine Spalte zu wechseln?
Liest Du eigentlich, was Du zitierst?

Verfasst: Do 14. Feb 2013, 10:55
von elmar.a
u_fischer hat geschrieben:
Gibt es jetzt noch die Möglichkeit in einzelnen Abschnitten (z.B. appendix o.ä.) wieder auf eine Spalte zu wechseln?
\onecolumn (und danach ggfs wieder \twocolumn), aber das wirkt immer seitenweise.[/code]
Super, das klappt soweit ganz gut. Scheint als wäre das Problem damit erst einmal behoben!

Vielen Dank an alle Beteiligten!

Verfasst: Do 14. Feb 2013, 13:45
von Besserwisser
\onecolumn und \twocolumn werden übrigens auch in der Einführung auf Seite 1 der multicol-Anleitung erwähnt. Du solltest also nicht nur lesen, was Du zitierst, sondern vielleicht auch einmal die Anleitungen zu den von Dir verwendeten Paketen und eine ausführliche LaTeX-Einführung. Und nein, das ist nicht als persönlicher Angriff, sondern als gut gemeinter Rat zu verstehen.

Verfasst: Do 14. Feb 2013, 21:00
von elmar.a
Besserwisser hat geschrieben:\onecolumn und \twocolumn werden übrigens auch in der Einführung auf Seite 1 der multicol-Anleitung erwähnt. Du solltest also nicht nur lesen, was Du zitierst, sondern vielleicht auch einmal die Anleitungen zu den von Dir verwendeten Paketen und eine ausführliche LaTeX-Einführung. Und nein, das ist nicht als persönlicher Angriff, sondern als gut gemeinter Rat zu verstehen.
Da hast Du absolut recht. Aber ein wenig widersprechen muss ich Dir doch:
Die Befehle sind mir bekannt -- und bereits jetzt, nachdem ich einen Tag mit one- bzw. twocolumn gearbeitet habe, stoße ich bereits wieder an ihre Grenzen. Zum Teil werden Zeilenumbrüche nicht richtig ausgeführt, was in vielen, vielen übervollen h-boxes endet. Darüber hinaus wurde mir auch die unschöne letzte Seite (linke Spalte voll, rechte leer) wieder vor Augen geführt.
Daher hatte ich mich vor Ewigkeiten für die multicol-Umgebung entschieden. Auf den ersten Blick schien mir die one- bzw. twocolumn vorgestern das gewünschte Ergebnis zu liefern -- dem ist leider nun doch nicht so.
Ich stehe also wieder am Anfang und eröffne das Thema wieder. Vielleicht hat ja doch noch jemand eine passende Idee, wie man innerhalb des multicol-Paketes Gleitumgebungen über eine Seite setzen kann?