PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : minipage und twocolumn...



SeeksTheMoon
31-10-2004, 09:32
Ich hab zwei-dreizehn Fragen zur Minipage, die ich nach 5 Stunden google, Dante und zig hundert Seiten aus diversen Büchern nicht beantwortet bekommen hab:

Ich hab ein twocolumn-Dokument. Dort will ich gelegentlich eine Minipage einbauen. Die minipages sollen über eine oder auch über beide Spalten gehen.

a) Bei einer minipage in einer Spalte möchte ich etwas wie \textwidth als Breite der Minipage angeben, aber etwas wie columnwidth o.ä existiert nicht. Wie mache ich das?

b) Wenn ich bei der minipage als Breite \textwidth angebe, dann wird die minipage korrekt erstellt, aber der Text der zweiten Spalte überlappt die Minipage...
Wie kriege ich den Text der anderen Spalte außerhalb der minipage?
Baue ich um die minipage ein onecolumn ein, macht er mir ne freie Seite rein...

c) In dem Dokument habe ich subsections die nur jeweils eine Tabelle enthalten, die inklusive der Überschrift locker auf eine Din A4 Seite passen.
Latex verschiebt die Tabelle natürlich auf die nächste Seite so dass ich 20cm frei habe (/me hates floatings :mad: )
Um zu verhindern dass eine subsection-Überschrift von der zugehörigen Tabelle getrennt wird, baue ich beide in eine minipage (diese Seiten sind onecolumn).
Tata, auf einmal gehts wohl! Aber: Alle folgenden Seiten schreibt LaTeX auf die gleiche Seite, so dass diese nicht mehr dargestellt werden. Dabei ist die minipage abgeschlossen.... :mad: :mad:

blubb
02-11-2004, 08:33
Zu b)
Vereinfacht: Geht nicht.

Wenn du zweispaltigen Satz hast, hast du zweispaltigen Satz. und da gibt es keine zweispaltigen Objekte.

Was du machen kannst:
Abbildungen oder Tafeln einfügen ( figure, bzw. table).
Die haben jeweils *-Varianten für zweispaltigen Satz.
(Siehe http://www.weinelt.de/latex/table.html,
FAQ 6.1.9 Gibt es bei der Option ,twocolumn` die Möglichkeit, Abbildungen (,figure`) und Tafeln (,table`) über beide Spalten, also die gesamte Textbreite einer Seite zu setzen? http://www.dante.de/faq/de-tex-faq/html/makros2.html#18 )

Oder: Den zweispaltigen Satz unterbrechen.
- \onecolumn (hat aber den Seiteneffekt das eine neue Seite begonnen wird).
- multicolumn verwenden http://texcatalogue.sarovar.org/entries/multicol.html

b)
Ich mein da gibt es ein \columnwidth, kann aber sein, das das mit dem Paket multicol definiert wird.

c)
Begreif ich nicht.
Wenn du
\subsection{...}
\begin{table}...
\end{table}
\subsection{Nächste Abschnitt}
hast, dann hast du table nicht begriffen. Das dient dazu Text-begleitende Abbildungen einzufügen.
Wenn es das ist, dann ist dir mit \caption mehr gedient.

SeeksTheMoon
02-11-2004, 08:52
Was du machen kannst:
Abbildungen oder Tafeln einfügen ( figure, bzw. table).
Die haben jeweils *-Varianten für zweispaltigen Satz.

Ich werde versuchen eine Tabelle einzubauen, die nur eine Zelle besitzt und dort dann die minipage rein...



Ich mein da gibt es ein \columnwidth, kann aber sein, das das mit dem Paket multicol definiert wird.
ok, ich schaue mir mal multicol an. Hoffentlich ist das nicht wilder als twocolumn...


c)
Begreif ich nicht.
Wenn du
\subsection{...}
\begin{table}...
\end{table}
\subsection{Nächste Abschnitt}
hast, dann hast du table nicht begriffen. Das dient dazu Text-begleitende Abbildungen einzufügen.
Wenn es das ist, dann ist dir mit \caption mehr gedient.
Die caption ist schon ein Kapitel. Ich habe dann 4 sections mit insgesamt ca 50 subsections, von denen jede genau eine Tabelle auf halber bis ganzer Din A4-Größe besitzt.
LaTeX hat dann die unangenehme Eigenschaft, die Überschriften (subsections)von den Tabellen zu trennen, d.h. auf Seite x steht die Überschrift, dann ist der Rest der Seite leer und auf Seite x+1 kommt die Tabelle.
Auf Seite x+2 kommt dann die nächste Überschrift, usw.
Ich habe mit automatischer und manueller Positionierung schon alles probiert. Das einzige was hilft, ist wenn man subsection und zugehörige table in eine minipage schreibt.
Nur da macht latex Stuss, weil es alle nachfolgenden minipages auf die gleiche Seite schreibt, obwohl da sogar ein newpage zwischen ist...

SeeksTheMoon
02-11-2004, 09:29
ah ja: multicol kann man direkt abhaken, das Kompilieren dauert jetzt schon über 20 Minuten (normalerweise weniger als eine Minute) und ich sehe nur Zeilen wie


[125302] [125303] [125304] [125305] [125306] [125307] [125308] [125309]
[125310] [125311] [125312] [125313] [125314] [125315] [125316] [125317]
[125318] [125319] [125320] [125321] [125322] [125323] [125324] [125325]
[125326] [125327] [125328] [125329] [125330] [125331] [125332] [125333]

über den Bildschirm flitzen (er fängt wohlgemerkt zweistellig an mit diesen Zahlen).

Immerhin kann ich jetzt columnwidth benutzen...

blubb
02-11-2004, 09:50
Bei mir war multicol ziemlich stabil.
Sieht mir nach einer Endlosschleife aus (wie die auch immer zustande kommt).

Kannst du ein Minimalbeispiel machen?

SeeksTheMoon
02-11-2004, 10:23
normalerweise hab ich
\documentclass[a4paper,titlepage,final,twocolumn,oneside]{scrbook}

Dann hab ich mal testweise das twocolumn dort rausgenommen, das multicol-Paket eingebaut und in \begin{document} dann

\begin{multicols}{2}{
% hier stehen \include-Anweisungen, für jedes Kapitel eine
}
\end{multicols}

Vielleicht liegts an figure-Anweisungen. Ich hab gelesen, dass multicol damit nicht klarkommen soll. Ich hab nämlich ca 60 Bilder in dem Buch verteilt.

blubb
02-11-2004, 10:42
Hmmm,
Die Kapitelüberschriften gehen im zweispaltigen (\twocolumn) Satz über beide Spalten. (d.h. intern wird \twocolumn[Kapitelüberschrift]) gemacht.

Mit multicol werden die Kapitelüberschriften auch in eine Spalte gesetzt.

D.h. mit
\begin{multicols}{2}{
% hier stehen \include-Anweisungen, für jedes Kapitel eine
}
\end{multicols} dürfte es wirklich zu einem Überlauf kommen. Multicol ist eigentlich nicht dazu gedacht gesamte Dokumente zweispaltig zu setzen.

Zurück zu deiner Ursprungsfrage:

Dort will ich gelegentlich eine Minipage einbauen. Die minipages sollen über eine oder auch über beide Spalten gehen.
Was sind das für minipages? Sollen es Gleitumgebungen analog Abbildungen sein (Eigene Gleitumgebungen, z.B. "Beispiele" sind definierbar, und da figure/table eine Stern-Variante haben, warum nicht auch selbstdefinierte?).

Oder eine Textunterbrechung?
Dann bleibt dir wohl nocht anderes übrig, als die multicol-umgebungen selbst zu setzen:


\documentclass[ngerman]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}
\usepackage{blindtext,multicol}
\begin{document}

\begin{multicols}{2}[\chapter{Überschrift}]
\blindtext
\end{multicols}
\fbox{\begin{minipage}{\textwidth}
Breiter Text
\end{minipage}}
\begin{multicols}{2}
Weiter gehts
\blindtext
\end{multicols}

\end{document}

SeeksTheMoon
02-11-2004, 11:27
Was sind das für minipages? Sollen es Gleitumgebungen analog Abbildungen sein (Eigene Gleitumgebungen, z.B. "Beispiele" sind definierbar, und da figure/table eine Stern-Variante haben, warum nicht auch selbstdefinierte?).

Oder eine Textunterbrechung?


Diese minipages sollen ein Hintergrundbild bekommen und ansonsten nur Text enthalten.
Beispiel:

Kapitelüberschrift
(einspaltig) Zitat aus einem Brief, mit Hintergrundbild "Pergament.eps"
(zweispaltig) Restlicher Text mit Bildern, Tabellen, ...

(btw: am besten geht das Hintergrundbild mit overpic, oder?)

ach ja, LaTeX ist schön, man hangelt sich durch eine zähe Suppe :D