PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zweispaltiger Text mit parallel oder parcolumns



slowfox
27-02-2009, 12:37
Ich möchte zwei verschiedene Versionen eines Textes nebeneinander auf einer Seite haben, z.B. in zwei verschiedenen Sprachen. Hierzu habe ich mir die Packages parralel, parcolum (bzw. pdfcolparcolumn) und ledpar angesehen. Letzteres ist bereits ausgeschlossen.

Sowohl parallel als auch parcolumn haben aber auch Probleme, für die ich bislang keine Lösung gefunden habe.

parallel:


1. Seitenumbrüche sind problematisch. Obwohl auf der vorhergehenden Seite noch ausreichend Platz vorhanden ist, wird die letzte Zeile des Absatzes alleine auf die nächste Seite verschoben (wenn noch ein weiterer Abschnitt folgt). Im beigefügten Beispiel 1 (parallel.jpg) wird das Satzende "Anmutung vermittelt." auf Seite 2 gesetzt, obwohl auf Seite 1 ausreichend Platz vorhanden ist.

2. Der vertikale Abstand nach Beendigung der parallels-Umgebung bei nachfolgendem Abschnittsbefehl ist zu klein. Auch dies ist gut in Beispiel 1 (parallel.jpg) zu erkennen.

Beide Probleme lassen sich sicherlich manuell beheben (durch entsprechende \newpage bzw. \vspace{}-Befehle), aber bei einem längeren Dokument ist dies sehr aufwendig.


parcolumns:


parcolumns hat die für parallel beschriebenen Probleme nicht, erschien demnach auf den ersten Blick besser geeignet. Beim zweiten Hinsehen jedoch zeigte sich, das parcolumn in Verbindung mit babel Probleme mit dem Zeilenumbruch beim Blocksatz hat. Da dieses Problem im "normalen" Fließtext sowie bei parallel nicht auftritt ist es somit parcolumns eindeutig ursächlich hierfür. In Beispiel 2 (parcolumn.jpg) kann man z.B. in der vorletzten Zeile der englischsprachigen Spalte sehen, das das Wort "match" über den Spaltenrand hinausläuft. Bei einem "richtigen" Text ist dieses Problem noch viel ausgeprägter.

Für Lösungsvorschläge wäre ich sehr dankbar!

Hier die Beispiele:


\documentclass[english,ngerman]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel,blindtext}
\usepackage{parallel} % 2003/04/13
\usepackage{pdfcolparcolumns} % 2008/08/11

\newcommand\LR[0]{}

\begin{document}

%%% Beispiel 1: "parallel"

\renewcommand\LR[2]{\begin{Parallel}[c]{0.475\textwidth}{0.475\textwidth}%
\selectlanguage{ngerman}\ParallelLText{#1}%
\selectlanguage{english}\ParallelRText{#2}%
\ParallelPar%
\end{Parallel}%
}

\section*{Abschnitt}
\LR{\blindtext}{\blindtext}
\section*{Abschnitt}
\LR{\blindtext}{\blindtext}
\section*{Abschnitt}

\newpage

%%% Beispiel 2: "parcolumns"

\renewcommand\LR[2]{\begin{parcolumns}[colwidths={1=0.475\textwidth,2=0.475\textwidth}]{2}%
\selectlanguage{ngerman}\colchunk{#1}%
\selectlanguage{english}\colchunk{#2}%
\colplacechunks%
\end{parcolumns}%
}

\section*{Abschnitt}
\LR{\blindtext}{\blindtext}
\section*{Abschnitt}
\LR{\blindtext}{\blindtext}
\section*{Abschnitt}

\end{document}

cookie170
27-02-2009, 14:10
Hallo,

ich verwende seit Jahren für zweisprachige Dokumente parallel.sty. Freundliche Leute haben mir gezeigt, wie man darin Auflistungen und Aufzählungen einbaut:

http://www.golatex.de/benoetige-parallel-sty-iund-i-itemize-t2229,highlight,parallel.html

Die Sache mit dem falschen Seitenumbruch habe ich nie in den Griff gekriegt, bin ihr aber auch nie systematisch nachgegangen. Letztlich war es in seitenlangen Texten zwar unschön, aber hinnehmbar.

Eine Arbeitserleichterung ist der Befehl \LR{}{}, mit dem man sich einen Haufen Tipperei erspart. Man gibt in die erste Klammer den linken und in die rechte den Text der rechten Spalte ein.


\newcommand\LR[2]{\begin{Parallel}{}{}
\selectlanguage{ngerman}\ParallelLText{#1}%
\selectlanguage{english}\ParallelRText{#2}%
\ParallelPar
\vspace{0.5\baselineskip}%
\end{Parallel}
}


Dieser Code stammt mehr oder minder aus A. Lingnaus Buch über LaTeX.

Das ganze lässt sich bei Überschriften so aufbohren:


\newcommand\LRS[2]{\protect\begin{Parallel}{}{}\protect\colorbox{whi te}{\protect\makebox[2.5ex]{\strut}{}}\\*[1ex]%Überschriften
\protect\selectlanguage{ngerman}\protect\ParallelL Text{#1}%
\selectlanguage{english}\protect\ParallelRText{#2} %
\protect\ParallelPar
%\vspace{0.2\baselineskip}%
\protect\end{Parallel}
}

Verwendung:

\section*{\LRS{}{}}

Stammt aus meiner Bastelecke, wenn ich da jetzt so draufschaue, habe ich wohl damals die Überschriften noch mit einem farbigen Hintergrund versehen, das wirst Du vielleicht nicht brauchen.

Gruß,
Alexander

slowfox
27-02-2009, 18:17
Moin Alexander,

danke für Deine Antwort, aber leider ging sie ein bisschen an meiner Frage vorbei. Zum einen -- wie Du auch meinem Beispiel entnehmen kannst -- habe ich mir schon eine einfachere Syntax für parallel und parcolumn zugelegt. Zum anderen möchte ich die beiden Packages zu diesem Zeitpunkt nicht durch zusätzlichen Schnick-Schnack aufpeppen, sondern mir geht es ersteinmal darum, dass eines von diesen Packages fehlerfrei läuft; danach komme ich gerne auf Deinen Tipp zurück.

Es bleibt also die anfängliche Frage, wie kann man die im Eingangsposting aufgeführten Probleme von parallel oder parcolumn lösen? Für Ideen wäre ich sehr dankbar.

slowfox
03-03-2009, 06:38
Mir wurde der Hinweis gegeben, das Problem des Seitenumbruchs von parcolumn hänge mit dem KOMA-Script zusammen, und ich solle mal die Standardklasen verwenden. Hierzu sei angemerkt: Nein, auch bei den Standardklassen tritt das Problem auf. Ich bin erstaunt, dass bei einem fünf Jahre alten Paket noch niemand dieses Problem hatte bzw. gelöst hat.

Zu dem problem mit parcolumn noch eine Konkretisierung: Innerhalb der parcolumn Umgebung funktioniert der Zeilenumbruch nicht korrekt. Beeinflusst nun parcolumn den Umbruchalgorithmus, d.h. setzt alternative Werte für die badness, oder verschluckt sich der Algorithmus schlicht an parcolumn? Vielleicht hat ja jemand eine Idee, der sich schon intensiv mit dem Zeilenumbruch-Algorithmus auseinander gesetzt hat?