multicol und floats

Tabellen und Grafiken erstellen und anordnen


elmar.a
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Mo 25. Jun 2012, 18:36

multicol und floats

Beitrag 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?

Epllus
Forum-Guru
Forum-Guru
Beiträge: 470
Registriert: So 23. Sep 2012, 17:31

Beitrag 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

elmar.a
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Mo 25. Jun 2012, 18:36

Beitrag 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?

Noch so einer

Beitrag 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.

elmar.a
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Mo 25. Jun 2012, 18:36

Beitrag 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!

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4298
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag 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]

Noch so einer

Beitrag 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?

elmar.a
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Mo 25. Jun 2012, 18:36

Beitrag 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!

Besserwisser

Beitrag 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.

elmar.a
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Mo 25. Jun 2012, 18:36

Beitrag 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?

Antworten