Frage

Ein Interlinearglossierung verwendet werden kann, eine Übersetzung eines Dokuments Layout.

http://en.wikipedia.org/wiki/Interlinear_gloss

In der Regel wird dieses Wort-für-Wort getan oder Morphem-by-Morphem. Ich möchte jedoch diese in einer anderen Art und Weise zu tun, zu einer Zeit, ganze Absätze zu übersetzen. Der folgende Link und Bild ist ein Beispiel dafür, was ich getan werden soll, wenn ich es für einen anderen Text tun mag, die größer ist.

http://www.optimnem.co.uk /learning/spanish/three-little-pigs.php

Bild drei Schweine

Für den Moment bin ich nicht in unter Berücksichtigung der Reihenfolge der Wörter oder Phrasen interessiert, dass der Wandel, um zwischen den Sprachen. Das heißt, ich habe nichts dagegen, wenn die Worte in dem Absatz nicht ausgerichtet ist oder wenn die Länge eines Absatzes ist viel länger als die andere, so dass eine überhängende Linie.

Soweit ich das beurteilen kann, die folgenden Pakete nicht erfüllen meine Bedürfnisse:

covingtn.sty
cgloss4e.sty
gb4e.sty
lingmacros.sty - shortex

Hier ist die Englisch-Version:

In the heart of the forest lived three little pigs who were brothers. The wolf always was chasing them in order to eat them. In order to escape the wolf, the pigs decided to make a house each. The smallest made his from straw, to finish first and go out to play. The middle one constructed a cottage from wood. Seeing that his little brother had finished already, he hurried to go and play with him. The oldest worked on his house of brick. 'You'll soon see what the wolf does with your houses,' he scolded his brothers but they were having a great time.

Hier ist die spanische Version:

En el corazón del bosque vivían tres cerditos que eran hermanos. El lobo siempre andaba persiguiéndoles para comérselos. Para escapar del lobo, los cerditos decidieron hacerse una casa. El pequeño la hizo de paja, para acabar antes y poder irse a jugar. El mediano construyó una casita de madera. Al ver que su hermano perqueño había terminado ya, se dio prisa para irse a jugar con él. El mayor trabajaba en su casa de ladrillo. - Ya veréis lo que hace el lobo con vuestras casas - riñó a sus hermanos mientras éstos se lo pasaban en grande.

I nicht will es wie dies manuell tun:

\documentclass{article}
\usepackage[margin=1in, paperwidth=8.5in, paperheight=11in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{url}
\begin{document}

\noindent
\url{http://www.optimnem.co.uk/learning/spanish/three-little-pigs.php}\\
\\
\indent
En el corazón del bosque vivían tres cerditos que eran hermanos. El lobo siempre\\
\indent
In the heart of the forest lived three little pigs who were brothers. The wolf always\\
\\
%
andaba persiguiéndoles para comérselos. Para escapar del lobo, los cerditos decidieron\\
was chasing them in order to eat them. In order to escape the wolf, the pigs decided to\\
\\
%
hacerse una casa. El pequeño la hizo de paja, para acabar antes y poder irse a jugar.\\
make a house each. The smallest made his from straw, to finish first and go out to play.\\
\\
%
El mediano construyó una casita de madera. Al ver que su hermano perqueño había\\
The middle one constructed a cottage from wood. Seeing that his little brother had\\
\\
%
terminado ya, se dio prisa para irse a jugar con él. El mayor trabajaba en su casa de\\
finished already, he hurried to go and play with him. The oldest worked on his house of\\
\\
%
ladrillo. - Ya veréis lo que hace el lobo con vuestras casas - riñó a sus hermanos\\
brick. 'You'll soon see what the wolf does with your houses,' he scolded his brothers\\
\\
%
mientras éstos se lo pasaban en grande.\\
but they were having a great time.\\
\\

\end{document}\\

Ich möchte ein Paket oder ein Makro verwenden, um automatisch die Englisch und Spanisch Texte mit Zeilenumbrüche unterbrochen haben, wenn das Ende der Linie für jede erreicht ist. Wie kann ich Layout dieser einfachen Dual-line zweisprachig Absatz in Latex in einer automatisierten Art und Weise (ohne Zeilenumbrüche manuell hinzufügen)?

War es hilfreich?

Lösung

Die folgenden Hack kann Ihnen helfen, Ihr Ziel zu erreichen. Es basiert auf der Idee einer Null-Höhe mini zu Überlappung zwei triple -spaced Minipages.

werde ich Platzhalter für die englischen und spanischen Text (\english und \spanish respectively) verwenden. Auch sollten Sie die setspace Paket enthalten:

\usepackage{setspace}
\def\english{In the heart of the forest lived three little pigs who were brothers. The wolf always was chasing them in order to eat them. In order to escape the wolf, the pigs decided to make a house each. The smallest made his from straw, to finish first and go out to play. The middle one constructed a cottage from wood. Seeing that his little brother had finished already, he hurried to go and play with him. The oldest worked on his house of brick. 'You'll soon see what the wolf does with your houses,' he scolded his brothers but they were having a great time.}
\def\spanish{En el corazón del bosque vivían tres cerditos que eran hermanos. El lobo siempre andaba persiguiéndoles para comérselos. Para escapar del lobo, los cerditos decidieron hacerse una casa. El pequeño la hizo de paja, para acabar antes y poder irse a jugar. El mediano construyó una casita de madera. Al ver que su hermano perqueño había terminado ya, se dio prisa para irse a jugar con él. El mayor trabajaba en su casa de ladrillo. - Ya veréis lo que hace el lobo con vuestras casas - riñó a sus hermanos mientras éstos se lo pasaban en grande.}

Indem der obere Block eine Höhe von 0pt erlauben wir für die nächste minipage es zu überlappen.

\begin{minipage}[t][0pt]{\linewidth}
    \setstretch{3}
    \english
\end{minipage}

\begin{minipage}[t]{\linewidth}
    \setstretch{3}
    \spanish
\end{minipage}

Die primäre Eines der Probleme mit dieser Idee ist, dass, wenn der Null-Höhenabschnitt länger als der normale Abschnitt, dann werden Sie einig verweilende überlappende Text haben zu behandeln. ( Bearbeiten . Dieses Problem wurde in dem Kommentar unten, Anm adressiert wird, dass Zeilenumbrüche wird auch ein schwerwiegender Nachteil dieser Idee sein)

Das Ergebnis (teilweise): alt text

Andere Tipps

Ich glaube nicht, dass es ein Paket zu tun ist, was Sie wollen, aber es ist möglich, diese selbst mit \vsplit zu implementieren, die in gut dokumentiert ist Tex nach Thema (availble zum kostenlosen Download oder im toten Baum Ausgabe über Lulu). Die Grundidee ist

  1. Sie definieren zwei VBoxes, eine für die Engländer, eine für die Spanier, und Sie wollen, zu einem Zeitpunkt, um den Inhalt einer Zeile herauszunehmen. Rufen Sie diese VBoxes \ENbox und \ESbox;
  2. Sie müssen die korrekte vertikale Dimension zu verwenden, um festzustellen: dieser \lineheight sein könnte, oder Sie können einen anderen Wert benötigen, können Sie zu experimentieren haben. Unter der Annahme, \lineheight ist richtig ...
  3. ... dann können Sie die nächste Zeile der englischen Sprache mit \setbox\nextline=\vsplit\ENbox to \lineheight erhalten, die Sie Ausgabe \unvbox\ENbox mit, dann ebenfalls die nächste Zeile aus \ESbox, dann einem gewissen vertikalen Raum für die intergloss Lücke;
  4. Dann müssen Sie die Schleife testen, die Sie durch Abfragen der vertikalen Höhen tun können, mit \ht, von \ENbox und \ESbox. Dieses Bit wird knifflig sein.

All-in-all, wird dies etwas schwierig sein Codierung. Viel Glück, und zögern Sie nicht, Fragen hier zu fragen, ob Sie in Schwierigkeiten geraten

Postscript Das ist natürlich viel mehr Arbeit als Geoffs viel einfachere Lösung, die aus irgendeinem Grund hatte ich nicht gesehen, als ich dies schrieb, aber es sollte flexibler sein, wenn Sie mit ihm Geige wollen .

Wenn Sie möchten, Spanisch und Englisch Absätze verflechten, und haben sie in etwa richtig ausgerichtet ist, dann, was Sie wollen, ist Ihre Übersetzung Wort-für-Wort zu schreiben (oder mehrere Worte durch mehrere Worte), und verwenden Sie ein Glanzpaket, dass kann lange Sätze wickeln. Ich habe dies getan, bevor Sie gloss.sty . Ein Beispiel für seine Verwendung (das Ziel war jedes Wort mit seinem Teil der Rede Glanz):

\gloss Both knowledge and wisdom extend man's reach. Knowledge led to
     cjc  nn0       cjc nn0    vvb    {nn0 pos} {nn0 pun} nn0 vvd prp
\gloss computers, wisdom to chopsticks. Unfortunately our association is
       {nn2 pun}  nn0    prp {nn2 pun}  av0           dps nn1        vbz
\gloss overinvolved with the former. The latter will have to wait for a
       ad0         prp  at0 {nn0 pun} at0 nn0  vm0  vhb to0 vvb  avp at0
\gloss more sublime day.
       av0  aj0     {nn1 pun}
\unhbox\gline

Die Paket Linien Dinge Worte aus der ersten Sprache mit Worten aus der zweiten „Sprache“ die Verwendung von Leerzeichen. Um mehrere Wörter in einer Sprache mit einem einzigen Wort (oder mehrere Wörter) von der anderen Sprache verwenden Zahnspange Gruppe, die die mehreren Wörter in einer Reihe aufstellen. Obwohl die hier Zeilen verschachtelt sind, dann ist dies nur für meine Bearbeitung convenence. Man könnte wirklich lange Zeilen schreiben, wenn man will, und der Glanz Algorithmus wird sie richtig wickelt.

Ich habe auch einen zweispaltige Absatz-by-Absatz Ansatz mit dem parallel Paket.

stellt eine zusätzliche Zeile Pause zwischen jedem Satz von Zeilen:

%
andaba persiguiéndoles para comérselos. Para escapar del lobo, los cerditos decidieron

was chasing them in order to eat them. In order to escape the wolf, the pigs decided to
%
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top