Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mehrspaltigkeit + Gleitobjekte + Text über zwei Spalten

161 views
Skip to first unread message

Christoph Päper

unread,
Sep 30, 2010, 3:38:27 PM9/30/10
to
Hallo!
Ich weiß, dass Fragen zu [twocolumn] und {multicols} hier und anderswo
regelmäßig gestellt werden. Ich habe aber weder in alten Diskussionen,
noch in FAQs, Dokus oder Howtos und erst recht nicht beim
stundenlangen Rumprobieren eine befriedigende Lösung für mein Problem
gefunden.

In einem Koma-Script-Report (scrreprt) habe ich ein Kapitel mit rund
15 Sections, die recht homogen aufgebaut sind: 1-3 A4-Seiten
doppelseitiger, doppelspaltiger Text mit etwa 5 Subsections und dazu 1
größere Tabelle (etwa 1/2 bis 1/1 Seitenhöhe, etwa 90% der
Gesamttextbreite), in 2 Fällen 3 Tabellen, die zusammen jeweils auf 2
Seiten passen würden.

Die Section-Überschriften müssen nicht am Anfang einer Seite stehen,
aber das wäre okay. Sie sollen sich allerdings über beide Spalten
erstrecken. Da das Paket multicol unerwarteterweise keine Option hat,
mit der man eine (Mindest-)Überschriftenebene festlegen kann, die
automatisch über die ganze \textwidth geht, habe ich mir etwas
eigenes, hässliches gebastelt:

\newcommand{\mysection}[1]{%
\end{multicols}
\begin{multicols}{2}[\section{#1}]
}

Da die Tabellen nicht nach der nächsten Section-Überschrift stehen
sollen, habe ich eine Barriere eingebaut und außerdem werden sie
automatisch aus einer Datei eingebunden:

\newcommand{\mysection}[1]{%
\end{multicols}
\FloatBarrier% aus {placeins}
\begin{multicols}{2}[\section{#1}]
\input{Tabelle}
}

Recto sollen die Tabellen bevorzugt am oberen Seitenrand stehen und
verso (oder auf der letzen Seite der Section) unten, aber das ist eine
vernachlässigbare Anforderung. Wichtig ist mir nur, dass die Tabellen
nicht 'p' gesetzt werden, wenn 't' oder 'b' auch passen würde;
momentan verwende ich {table*}[tbp].

Mein Hauptproblem ist also, dass Text mit auf der Tabellenseite stehen
soll und es nicht tut, egal was ich probiere. Ich würde inkaufnehmen,
manuelle Seitenumbrüche vor meine \mysection zu setzen (bzw. in ein
\mysection*), aber ich möchte nicht die Tabellen manuell positionieren
müssen -- auf die Beschriftung (also \caption) könnte ich hingegen
verzichten (aber ungern).

Ich habe auch ein wenig mit dbltopnumber, \dblfloatpagefraction etc.
rumgespielt, aber erfolglos.

Irgendwie befürchte ich, dass das Problem an einer ganz anderen Stelle
liegt als dort, wo ich suche.

PS: Wie positioniere ich \columnwidth-breite Abbildungen [tb]
innerhalb der Spalte?

Olaf Meltzer

unread,
Oct 1, 2010, 5:43:18 AM10/1/10
to
* Christoph Päper schrieb:

> Da die Tabellen nicht nach der nächsten Section-Überschrift stehen
> sollen, habe ich eine Barriere eingebaut und außerdem werden sie
> automatisch aus einer Datei eingebunden:
>
> \newcommand{\mysection}[1]{%
> \end{multicols}
> \FloatBarrier% aus {placeins}
> \begin{multicols}{2}[\section{#1}]
> \input{Tabelle}
> }
>
> Recto sollen die Tabellen bevorzugt am oberen Seitenrand stehen und
> verso (oder auf der letzen Seite der Section) unten, aber das ist eine
> vernachlässigbare Anforderung. Wichtig ist mir nur, dass die Tabellen
> nicht 'p' gesetzt werden, wenn 't' oder 'b' auch passen würde;
> momentan verwende ich {table*}[tbp].
>
> Mein Hauptproblem ist also, dass Text mit auf der Tabellenseite stehen
> soll und es nicht tut, egal was ich probiere.

Wenn solche Tabellen gar nicht in Textspalten eingebaut werden sollen,
sondern wie die Überschriften einspaltig darüber gesetzt, könntest Du
sie mit in den multicols-Start praktizieren.

\begin{multicols}{2}[\section{#1}\par\input{Tabelle}\par]

Mangels Minimalbeispiel nicht getestet. Möglicherweise ist ein oder sind
beide \par überflüssig.

> PS: Wie positioniere ich \columnwidth-breite Abbildungen [tb]
> innerhalb der Spalte?

Das geht nur manuell und mit Versuch und Irrtum.

Gruß -- Olaf Meltzer

--
openSUSE 11.3 - TeX Live 2010 - Netzinstallation, aktuell mit tlmgr

Christoph Päper

unread,
Oct 1, 2010, 6:24:02 AM10/1/10
to
Olaf Meltzer:
> * Christoph Päper schrieb:

>
>> Mein Hauptproblem ist also, dass Text mit auf der Tabellenseite stehen
>> soll und es nicht tut, egal was ich probiere.

Inzwischen klappt es einigermaßen mit
\renewcommand{\dblfloatpagefraction}{0.75} und [!tbp] -- zumindest
glaube ich, dass das die entscheidenden Änderungen waren.

> \begin{multicols}{2}[\section{#1}\par\input{Tabelle}\par]

Das hatte ich zwischenzeitlich auch probiert und ich weiß nicht mehr
genau, was daran nicht (gut genug) funktionierte.

>> PS: Wie positioniere ich \columnwidth-breite Abbildungen [tb]
>> innerhalb der Spalte?
>
> Das geht nur manuell und mit Versuch und Irrtum.

Seltwürdig, klingt für mich nach einer durchaus normalen Anforderung
für Spaltensatz.

Olaf Meltzer

unread,
Oct 1, 2010, 6:40:41 AM10/1/10
to
* Christoph Päper schrieb:

>>> PS: Wie positioniere ich \columnwidth-breite Abbildungen [tb]
>>> innerhalb der Spalte?
>>
>> Das geht nur manuell und mit Versuch und Irrtum.
>
> Seltwürdig, klingt für mich nach einer durchaus normalen Anforderung
> für Spaltensatz.

Ja, so empfinde ich das auch -- nur leider ist das Floaten, und darauf
wolltest Du mit [tb] doch wohl hinaus, im Mehrspaltensatz mit LaTeX noch
nicht möglich. Ob LuaTeX dahingehend bereits weiter ist, kann ich Dir
nicht sagen.

Axel Berger

unread,
Oct 1, 2010, 2:53:00 AM10/1/10
to
*Christoph Päper* wrote on Thu, 10-09-30 21:38:

>Ich habe auch ein wenig mit dbltopnumber, \dblfloatpagefraction etc.
>rumgespielt, aber erfolglos.

Double ist bei Multicols IMHO verkehrt, nimm die einfachen Parameter.
Floaten in Multicols funktioniert nicht, seitenbreites schon gar nicht.
siehe Anleitung.

Axel Berger

unread,
Oct 2, 2010, 6:50:00 AM10/2/10
to
*Olaf Meltzer* wrote on Fri, 10-10-01 12:40:

>nur leider ist das Floaten, und darauf wolltest Du mit [tb] doch wohl
>hinaus, im Mehrspaltensatz mit LaTeX noch nicht m?Aglich.

Ist das nicht falsch? Meines Wissens geht es mit twocolumn durchaus
aber nicht mit Muilticols.

Olaf Meltzer

unread,
Oct 2, 2010, 3:27:06 PM10/2/10
to
* Axel Berger schrieb:

Ja, stimmt, das geht. Multicols war aber ausdrücklich gefordert, weil
auf derselben Seite auch einspaltig gesetzt werden soll.

Mir ist jetzt auch grad so, als ob hierzugruppe kürzlich ein Hinweis auf
die uk-tex-faq mit einem Rezept aufschien, wie dieses Umschalten auch
mit twocolumn ohne zwangsweisen Seitenwechsel gelingen kann. Das war
wohl "196 1-column abstract in 2-column document". Könnte sein, das
damit was anzufangen ist.

Message has been deleted

Axel Berger

unread,
Oct 3, 2010, 7:58:00 AM10/3/10
to
*Olaf Meltzer* wrote on Sat, 10-10-02 21:27:
>Multicols war aber ausdr?Pilccklich gefordert, weil auf derselben Seite

>auch einspaltig gesetzt werden soll.

Ich muß zugeben, das noch immer nicht selbst ausprobiert zu haben, aber
mir scheint cuted aus den sttools die bessere Lösung zu sein. Multicols
macht hier oft sehr seltsame Abstände und Umbrüche, die nur mit sehr
viel Pfriemelei halbwegs zu zähmen sind.

>als ob hierzugruppe k?Pilcrzlich ein Hinweis auf die uk-tex-faq mit einem


>Rezept aufschien, wie dieses Umschalten auch mit twocolumn ohne
>zwangsweisen Seitenwechsel gelingen kann.

Ich glaube das war ich. Es gilt aber nur für einen einzigen
einspaltigen Bereich zu Beginn eines zweispaltigen.

Olaf Meltzer

unread,
Oct 3, 2010, 9:21:52 AM10/3/10
to
* Axel Berger schrieb:

[cuted.sty]

> Ich muß zugeben, das noch immer nicht selbst ausprobiert zu haben,
> aber mir scheint cuted aus den sttools die bessere Lösung zu sein.
> Multicols macht hier oft sehr seltsame Abstände und Umbrüche, die nur
> mit sehr viel Pfriemelei halbwegs zu zähmen sind.

Ich hab cuted.sty (von 1997!), das ich noch nicht kannte, jetzt mal
getestet. Im Prinzip könnte man es verwenden, aber es wird bereits
schwierig, sobald man Floats nicht zu viel Rutschraum zubilligen möchte,
und z.B. versucht, sie mit \FloatBarrier aus placeinins.sty zu bändigen.

Gruß -- Olaf Meltzer

\documentclass[twocolumn]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{cuted,placeins}
\usepackage{loremipsum,blindtext}

\begin{document}
\begin{strip}
\section{Überschrift, die einspaltig den zweispaltigen Text
überspannt}
\begin{center}
\rule{\textwidth}{3cm}
Das Volk sieht nichts
\end{center}
\end{strip}

\blindtext

\begin{figure}
\rule{\columnwidth}{\columnwidth}
\caption{Schwarzes Quadrat}
\end{figure}

\blindtext

\FloatBarrier

\begin{strip}
\subsection{Auch dies sollte einspaltig gesetzt sein}
\end{strip}

\blindtext\blindtext

\end{document}

Olaf Meltzer

unread,
Oct 3, 2010, 9:43:07 AM10/3/10
to
* Axel Berger schrieb:

[cuted.sty]

> Ich muß zugeben, das noch immer nicht selbst ausprobiert zu haben,


> aber mir scheint cuted aus den sttools die bessere Lösung zu sein.
> Multicols macht hier oft sehr seltsame Abstände und Umbrüche, die nur
> mit sehr viel Pfriemelei halbwegs zu zähmen sind.

Ich hab cuted.sty (von 1997!), das ich noch nicht kannte, jetzt mal

getestet. Im Prinzip könnte man es verwenden, aber es wird bereits
schwierig, sobald man Floats nicht zu viel Rutschraum zubilligen möchte,
und z.B. versucht, sie mit \FloatBarrier aus placeinins.sty zu bändigen.

Gruß -- Olaf Meltzer

\documentclass[twocolumn]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{cuted,placeins}

\usepackage{blindtext}

\begin{document}
\begin{strip}
\section{Überschrift, die einspaltig den zweispaltigen Text
überspannt}
\begin{center}
\rule{\textwidth}{3cm}
Das Volk sieht nichts
\end{center}
\end{strip}

\blindtext

\begin{figure}
\rule{\columnwidth}{\columnwidth}
\caption{Schwarzes Quadrat}
\end{figure}

\blindtext

\FloatBarrier

\begin{strip}
\subsection{Auch dies sollte einspaltig gesetzt sein}
\end{strip}

\blindtext\blindtext

\end{document}

--

0 new messages