PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : multicols - Seitenumbruch und \flushcolumns



flunch83
09-05-2008, 17:25
Hallo zusammen!

Ich möcht ein Latex-Dokument erstellen, bei dem deutscher Text und englische Überseztung in zwei Spalten nebeneinander abgedruckt werden. Da das Dokument auch Gleichungen enthält (die ja keiner Übersetzung bedürfen) habe ich mich auf das Paket "multicols" gestürzt. Dieses erlaubt ja auch nur partiell auf einer Seite zweispaltig zu schreiben, einspaltige Dinge (wie eben in meinem Fall Gleichungen und Grafiken) einzuschieben und wieder mit einer neuen multicols-Umgebung zweispaltig weiterzumachen.

Bisher bin ich so vorgegangen, dass ich zwischen den Dingen, die in die linke Spalte sollen und denen für die rechte Spalte einen Befehl \par \vfill \columnbreak einschiebe. Das funktioniert auch prima, wenn meine gesamte multicols-Umgebung keinem Seitenumbruch unterliegt.

Soweit so gut habe ich zwei Probleme:

1) Wenn meine multicols-Umgebung über einen Seitenumbruch hinaus geht (was an manchen Stellen in meinem Dokument unvermeidlich ist), wird der Text, der vor \par \vfill \columnbreak steht nicht in der linken Spalte auf der neuen Seite fortgesetzt, sondern auf der alten Seite in der rechten Spalte. Das eigentlich für die rechte Spalte vorgesehene beginnt dann erst auf der neuen Seite in der linken(!) Spalte und setzt sich dort über die rechte Spalte fort, so dass beide Spalten auf dieser Seite ausgeglichen sind.
Wie kann ich LaTeX beibringen, den Seitenumbruch sauber zu vollführen und tatsächlich die Dinge vor \par \vfill \columnbreak nur in die linke und die danach ausschließlich in die rechte Spalte zu schreiben, ohne dass ich die multicols-Umgebung in zwei aufsplitten muss??

2) Wenn mein Text in der rechten Spalte (also nach \par \vfill \columnbreak) mehr Zeilen annimmt als der Text in der linken Spalte, werden die Absätze links (dank des Befehls \columnbreak) schön auseinandergezogen, so dass beide Spalten auf gleicher Höhe enden. Wenn allerdings der Text in der linken Spalte länger ist, wird die rechte Spalte nicht so hübsch auseinandergezogen. Warum ist das so? Dies lässt sich nur durch manuelles einbringen von \vfill zwischen den Absätzen realisieren. Eigentlich nicht so tragisch, aber gibt es eine elegantere Lösung?

Vielen Dank für Antworten!! Bin echt verzweifelt langsam...
Kai

*** hier mein Minimal-Quelltext als Beispiel ***
\usepackage{multicol}
\columnsep=18.0pt
\columnseprule=.4pt

\begin{multicols}{2}

1 Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links);

2 Dies ist Abschnitt 2 (links);

3 Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links);

4 Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links);
\par \vfill\columnbreak
5 Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts);

6 Dies ist Abschnitt 6 (rechts);

7 Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts);

\end{multicols}
***

Sabrina.Dankers
10-05-2008, 11:32
Hallo,

verstehe ich das richtig, dass du den deutschen Text links und den englischen rechts haben willst. Dann ist doch multicol nicht so ganz das richtige für dich. Versuch es doch stattdessen mal mit


\usepackage{parallel}


und erstelle deine Texte dann so:


\begin{Parallel}{}{}
\linenumbers
\modulolinenumbers[5]


\ParallelLText{1 Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links); Dies ist Abschnitt 1 (links);

2 Dies ist Abschnitt 2 (links);

3 Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links); Dies ist Abschnitt 3 (links);

4 Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links); Dies ist Abschnitt 4 (links);}

\ParallelRText{5 Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts); Dies ist Abschnitt 5 (rechts);

6 Dies ist Abschnitt 6 (rechts);

7 Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts); Dies ist Abschnitt 7 (rechts);}

\end{Parallel}


LG Sabrina

flunch83
13-05-2008, 09:15
Danke für die Antwort! Das Packet scheint schonmal wesentlich besser geeignet. Aber zwei Fragen bleiben noch:

1) Was bedeuten in Deinem Beispiel die Befehle \linenumbers und
\modulolinenumbers[5] ? Diese erzeugen bei mir nur Fehler beim Kompilieren...

2) Wie kann ich in der parallel-Umgebung die vertikalen Abstände zwischen den Absätzen bzw. die Abstände von nicht-zweispaltigen Dingen und der parallel-Umgebung steuern? Die Dokumentation gibt keinen Hinweis auf Parameter dafür.

Im Moment habe ich nämlich das Problem, dass - trotzdem in nicht-zweispaltigem Text Absätze vertikal schön abgesetzt werden - in der parallels-Umgebung die Absätze direkt untereinander "gequetscht" werden...

Danke für Hilfe und beste Grüße!

Sabrina.Dankers
13-05-2008, 09:27
Hallo,

schmeiß sie raus. Hab ich vergessen zu löschen. Die stammen aus dem Paket lineno und sind zum nummerieren der Zeilen.

Kannst du mal einen Screenshot von deinem Ergebnis machen? Ich verstehe nicht so ganz wo das Problem liegt. Aber vertikale Abstände innerhalb einer parallel-Umgebung scheinen nur mit \par\vspace*{Länge} zu funktionieren. Ich habe auch noch nie mit dem Paket gearbeitet, habe es auch nur durch Zufall vorher bei jemand anderem gesehen gehabt.

LG Sabrina

Sabrina.Dankers
13-05-2008, 09:30
Außerhalb einer parallel-Umgebung funktioniert es auch mit
\par\vspace{Länge}
\par\bigskip
\par\medskip
\par\smallskip

flunch83
13-05-2008, 10:35
Danke schonmal für die rasche Antwort...

Für die vertikale Ausrichtung innerhalb der parallels-Umgebung schweben mir zwei Möglichkeiten vor die Tatsache elegant zu lösen, dass mehrere da drin vorhandene Absätze rechts und links (aufgrund der Übersetzung) jeweils unterschiedlich lang sind. Bisher werden die Absätze ja rechts und links einfach untereinander geschrieben, ich möchte aber eines der folgenden Dinge:

1) So etwas wie \flushbottom innerhalb der parallels-Umgebung - dass also in der Spalte wo insgesamt weniger Zeilen auftreten zwischen den Absätzen vertikaler Leerraum eingefügt wird, so dass beide Spalten auf identischer Höhe enden.

2) Ein Algorithmus der dafür sorgt, dass im Falle eines neuen Absatzes diese auch auf identischer Höhe beginnen. Sprich, wenn er erste Absatz vorbei ist, die Übersetzung aber zwei Zeilen weniger umfasst, dann sollen in der Spalte mit dem englischen Text zwei Leerzeilen eingefügt werden, so dass der nächste Absatz dann mit seiner Übersetzung auf wieder identischer Höhe beginnt. Entsprechendes für den Fall, dass die Überseztung mehr Zeilen braucht. Gibt es so einen Algorithmus?

Sabrina.Dankers
13-05-2008, 10:47
Wieso beginnst du nicht mit der neuen Übersetzung einfach in einer neuen Parallels-Umgebung? Dann wird doch wieder von oben angefangen.

flunch83
13-05-2008, 10:50
Ja, wäre eine Möglichkeit. Naja, eine parallels-Umgebung beenden und eine neue beginnen muss ich ja ohnehin, wenn ich eine Gleichung oder ein Bild einfügen möchte. Aber ich wollte vermeiden, dass ich das auch dann tun muss, wenn bloß ein Absatz im Text vorhanden ist. Das ist im gesamten Dokument nämlich ungefähr 3x so häufig...