PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeilenumbruch bei kursivem Text



chris41221
30-06-2008, 18:02
Hallo zusammen,
dies ist mein erster Post, aber hoffentlich nicht mein letzter Post in diesem Forum. Ich schreibe gerade eine Arbeit mit Latex und habe folgendes Problem:

Wenn ich einen längeren kursiven Text habe, wird dieser nicht immer am Ende der Zeile umgebrochen, sondern wird über den Rand hinausgeschrieben. Dies tritt nur auf, wenn der Text Punkte enthält. Also zum Beispiel:
\textit{plm.analyzer.ontologic.pmulticonnection}
Enthält der Text keine Punkte, dann wird ganz normal umgebrochen.

Im Anhang ist ein Bild, auf dem der rechte Rand meiner Arbeit zu sehen ist, mit dem nicht umgebrochenen kursiven Text.

Kann mit jemand sagen woran das liegt oder wie ich das Problem umgehen kann ?

Vielen Dank
Christian

Stefan_K
30-06-2008, 18:08
Hallo Christian,

willkommen im Forum!
Du könntest explizit Trenungen gestatten, mit babel und ngerman beispielsweise:

\textit{plm.""analyzer.""ontologic.""pmulti"-connection}

Stefan

chris41221
30-06-2008, 19:43
Hallo Stefan,
vielen Dank für den Tipp. Die Markierungen "" bewirken, dass er den kursiven Text, ab der Markierung "" trennt, aber nicht genau an der Stelle "".

Außerdem trennt er mit einem Bindestrich, was in dem Fall ungünstig ist. Gibt es eine Möglichkeit den Bindestrich durch ein anderes Zeichen zu ersetzen ?

Am liebsten wäre mir eine Lösung, so daß der kursive Text nicht getrennt wird, sondern komplett in die nächste Zeile rutscht. Das funktioniert ja normalerweise auch, aber die Punkte scheinen da einen seltsamen Effekt zu haben...

Hast du vielleicht noch eine Idee ?

Viele Grüße
Christian

voss
30-06-2008, 20:00
vielen Dank für den Tipp. Die Markierungen "" bewirken, dass er den kursiven Text, ab der Markierung "" trennt, aber nicht genau an der Stelle "".

Außerdem trennt er mit einem Bindestrich, was in dem Fall ungünstig ist. Gibt es eine Möglichkeit den Bindestrich durch ein anderes Zeichen zu ersetzen ?

Am liebsten wäre mir eine Lösung, so daß der kursive Text nicht getrennt wird, sondern komplett in die nächste Zeile rutscht. Das funktioniert ja normalerweise auch, aber die Punkte scheinen da einen seltsamen Effekt zu haben...


mach ein komplettes kleines Beispiel, was zeigt, dass Stefans Vorschlag angeblich
nicht geht ...

Wenn alles in die nächste Zeile soll sieht es ziemlich blöd aus, geht aber mit


vorhergehender Absatz

{\setlength\emergencystretch{4em}% oder mehr
... dein Absatz mit \textit{}...}

nächster Absatz

Herbert

chris41221
30-06-2008, 21:15
mach ein komplettes kleines Beispiel, was zeigt, dass Stefans Vorschlag angeblich
nicht geht ...

Hallo Herbert,
Stefans Vorschlag funktioniert einwandfrei und ich habe nie etwas anderes behauptet :)
Die Sache die mir an Stefans Vorschlag nicht gefallen hat ist:
1. Latex trennt den kursiven Text an einer beliebigen Stelle zwischen "" und dem nächsten "." in der Zeichenkette, und nicht an einer klar definierten Stelle.
2. Die Trennung erfolgt am Ende der Zeile mit einem Bindestrich. Ich würde gernen das Zeichen selbst wählen.


vorhergehender Absatz

{\setlength\emergencystretch{4em}% oder mehr
... dein Absatz mit \textit{}...}

nächster Absatz

Das mit emergencystretch ist ein guter Hinweis. Bin danach beim googlen auf folgenden Artikel gestoßen
http://www.jr-x.de/publikationen/latex/tipps/zeilenumbruch.html
der die Sache auch ein bisschen klarer macht.

Leider hat der emergencystrech Wert bei meinem Beispiel keinen Einfluß auf den Absatz :-( Keine Ahnung warum.

Hier mal der Absatz mit dem ich mich Rummschlage:

{\setlength\emergencystretch{10em}
Zu Beginn der Transformation müssen zunächst sämtliche Relationen erstellt werden. Diese Funktion übernimmt der \textit{RelationCreationController} und wird von der \textit{PLMInstanceToKodkodSession} Klasse angestoßen. Die Klasse \textit{PLMInstanceToKodkodSession} hat ein Attribut \textit{plm.analyzer.relation.RelationMap} in der sämtliche Relationen gespeichert werden. Welche Art von Relation erzeugt wird hängt davon ab, von welcher Metaklasse (Vgl. Abschnitt \ref{sec:emfEcore}) ein PLM Modell Element erzeugt wurde. Um die Relationen zu erstellen werden alle Elemente des PLM Ecore Modells durchlaufen und folgendermaßen transformiert.}

Ich habe auch schon mit den Werten für pretolerance und tolerance herumgespielt, aber ohne Erfolg.

Hat jemand eine Idee ?
Vielen Dank
Christian

Stefan_K
30-06-2008, 21:31
Hallo Christian,

in der Kurzbeschreibung zu german/ngerman (http://www.ctan.org/tex-archive/language/german/gerdoc.pdf) werden die Trennhilfen in 2.2.4. beschrieben, damit kannst Du die Trennung noch weiter bestimmen.

Stefan

chris41221
30-06-2008, 22:11
Hallo Stefan,
besten Dank für den Link.

Der Befehl "" ist schon genau der den ich brauche, nur leider ist dieser nicht wirksam, wenn er genau neber einem "." steht. Das haben auf jeden Fall meine Tests gezeigt :-)

Ich werde ihn dann innerhalb eines Wortes benutzen, wo mir eine Trennung sinnvoll erscheint.
Also zum Beispiel:
\textit{plm.ana""lyzer.re""lation.Re""lationMap}

Also besten Dank für eure Hilfe.

Gruß
Christian

voss
30-06-2008, 23:01
Das mit emergencystretch ist ein guter Hinweis. Bin danach beim googlen auf folgenden Artikel gestoßen
http://www.jr-x.de/publikationen/latex/tipps/zeilenumbruch.html
der die Sache auch ein bisschen klarer macht.

Leider hat der emergencystrech Wert bei meinem Beispiel keinen Einfluß auf den Absatz :-( Keine Ahnung warum.

Hier mal der Absatz mit dem ich mich Rummschlage:

{\setlength\emergencystretch{10em}
Zu Beginn der Transformation müssen zunächst sämtliche Relationen erstellt werden. Diese Funktion übernimmt der \textit{RelationCreationController} und wird von der \textit{PLMInstanceToKodkodSession} Klasse angestoßen. Die Klasse \textit{PLMInstanceToKodkodSession} hat ein Attribut \textit{plm.analyzer.relation.RelationMap} in der sämtliche Relationen gespeichert werden. Welche Art von Relation erzeugt wird hängt davon ab, von welcher Metaklasse (Vgl. Abschnitt \ref{sec:emfEcore}) ein PLM Modell Element erzeugt wurde. Um die Relationen zu erstellen werden alle Elemente des PLM Ecore Modells durchlaufen und folgendermaßen transformiert.}

Ich habe auch schon mit den Werten für pretolerance und tolerance herumgespielt, aber ohne Erfolg.

Hat jemand eine Idee ?



\documentclass[a4paper]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\newcommand\textIT[1]{\mbox{\ttfamily#1}}

\begin{document}
foo

\begin{sloppypar}\setlength\emergencystretch{0.8\t extwidth}
Zu Beginn der Transformation müssen zunächst sämtliche Relationen erstellt werden. Diese Funktion übernimmt der \textIT{RelationCreationController} und wird von der \textIT{PLMInstanceToKodkodSession} Klasse angestoßen. Die Klasse \textIT{PLMInstanceToKodkodSession} hat ein Attribut \textIT{plm.analyzer.relation.RelationMap} in der sämtliche Relationen gespeichert werden. Welche Art von Relation erzeugt wird hängt davon ab, von welcher Metaklasse (Vgl. Abschnitt \ref{sec:emfEcore}) ein PLM Modell Element erzeugt wurde. Um die Relationen zu erstellen werden alle Elemente des PLM Ecore Modells durchlaufen und folgendermaßen transformiert.
\end{sloppypar}

baz
\end{document}


Herbert

chris41221
30-06-2008, 23:31
Hallo Herbert,
mit sloppypar funktioniert es ! Die Trennung wird unterbunden und die Wörter entsprechend weit auseinandergezogen.

Jetzt muss ich nur noch überlegen was besser aussieht...

Besten Dank
Christian

chris41221
18-07-2008, 20:21
1. Latex trennt den kursiven Text an einer beliebigen Stelle zwischen "" und dem nächsten "." in der Zeichenkette, und nicht an einer klar definierten Stelle.


Noch ein kleiner Nachtrag:
Wenn man die Punkte in eine Matheumgebung packt, also $.$ dann funktioniert es mit der Trennung an einer klar definierten Stelle. Also zum Beispiel:
\textit{plm""$.$analyzer""$.$relation""$.$RelationMap}

Gruß
christian