PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeilenumbruch



Jürgen
23-03-2014, 16:40
Hi,

ich habe Probleme mit dem Zeilenumbruch von Wörtern die man nicht trennen kann. Es handel sich um Funktionslabels, also Wörter bei denen eine Silbentrennung nicht möglich ist, da sie teilweise nur aus Buchstabenkombinationen für Abkürzungen stehen.

Ich weiß dass ich z.B. mit "- eine Silbentrennung definieren kann. Oder mit \mbox{} die Silbentrennung verbieten kann. Wenn ich letzteres tue, schreibt Latex aber dennoch das wort über den randhinaus. Es wird also weiterhin nicht unterbrochen, aber das ist ja sinnfrei.

Ich möchte einfach, dass das wort nicht getrennt wird und in die nächste Zeile rutscht. Dann wird der Wortabstand eben etwas größer.

Wie geht dies?

Studi
23-03-2014, 17:06
Siehe: Wie kann ich verhindern, dass Wörter über den Rand stehen? (http://texwelt.de/wissen/fragen/966/wie-kann-ich-verhindern-dass-worter-uber-den-rand-stehen) Wenn microtype noch nicht hilft, dann vielleicht der Tipp mit \emergencystretch.

Studi

Jürgen
25-03-2014, 15:26
Ich weiß leider nicht wie ich das für eine Beispiel zeile Lösen soll. Ich habe \setlengh{emergencystrech}{3pt} in den Präämpel mit aufgenommen und nichts hat sich geändert.

Ich will doch einfach nur dass er in einer Zeile einen größeren Abstand macht.

Ich weiß auch ehrlich gesagt nicht warum latex überhaupt über den rand scheibt.

Das wort Schwelle wird z.B. zwar gebrochen, ragt aber über den rand?

Warum schiebt Latex das Schwe- nicht in die nächste Zeile? Das ist doch vollkommen unlogisch.

FelixT
25-03-2014, 20:17
3pt sind vmtl. einfach zuwenig. Und schreib es vllt. besser in den betreffenden Absatz, begrenzt durch geschweifte Klammern oder \begingroup und \endgroup (http://texwelt.de/wissen/fragen/484/was-sind-die-unterschiede-zwischen-und-begingroup-endgroup-und-bgroup-egroup), damit die Auswirkung nur dort ist und nicht im gesamten Text. Und dann erhöhe mal auf 3em oder mehr, wenn es wirkt, kannst Du es verringern solange es immer noch passt, auf einen sinnvollen Wert. Du willst ja vmtl. etwas strecken lassen zur Not, wie der Name sagt, aber nicht um jeden Preis und zuviel.

Wenn LaTeX den Rest der Zeile nicht genug strecken darf, dann kann es ja nicht vorher umbrechen, so unlogisch ist das nicht.

Felix

ctansearch
25-03-2014, 23:53
Nimm doch einfach die problematischen Funktionslabels aus dem Text heraus, ersetze sie durch Kürzel und schreib' ein Legende unter den Absatz.


\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{mbenotes}

\begin{document}

Text \textbf{Ds\&Bs\mbenote{Dings\&Bums}} Text \textbf{Bs\&Ds\mbenote{Bums\&Dings}}

\thembenotes[Funktionslabel]
\end{document}

Jürgen
27-03-2014, 15:57
3pt sind vmtl. einfach zuwenig. Und schreib es vllt. besser in den betreffenden Absatz, begrenzt durch geschweifte Klammern oder \begingroup und \endgroup (http://texwelt.de/wissen/fragen/484/was-sind-die-unterschiede-zwischen-und-begingroup-endgroup-und-bgroup-egroup), damit die Auswirkung nur dort ist und nicht im gesamten Text. Und dann erhöhe mal auf 3em oder mehr, wenn es wirkt, kannst Du es verringern solange es immer noch passt, auf einen sinnvollen Wert. Du willst ja vmtl. etwas strecken lassen zur Not, wie der Name sagt, aber nicht um jeden Preis und zuviel.

Wenn LaTeX den Rest der Zeile nicht genug strecken darf, dann kann es ja nicht vorher umbrechen, so unlogisch ist das nicht.

Felix

mein latex kennt kein begingroup.


ich hätte gerne mal ein richtiges beispiel für einen Satz.

Ein link zu einem paket bringt mir leider nichts, da ich jetzt schon alles mögliche versucht habe und es selbst nicht schaffe.

Donalduck
27-03-2014, 16:02
Dein LaTeX kennt ganz sicher \begingroup, weil das ein TeX Primitive ist.

Jürgen
27-03-2014, 18:27
Dein LaTeX kennt ganz sicher \begingroup, weil das ein TeX Primitive ist.

ich habe z.b. versucht



\begingroup \setlengh\emergencystretch{3pt} das hier ist der satz der mehr abstände bekommen soll weil das wort lang ist LANGESKOMISCHESWORTBLABLA \endgroup


Aber es geht nicht.

Was ist falsch?

rais
27-03-2014, 19:58
ich habe z.b. versucht



\begingroup \setlengh\emergencystretch{3pt} das hier ist der satz der mehr abstände bekommen soll weil das wort lang ist LANGESKOMISCHESWORTBLABLA \endgroup


Aber es geht nicht.

Was ist falsch?
der Befehl heißt \setlength, nicht `\setlengh'.
Dann ist -- wie Felix bereits anmerkte -- 3 pt vermutlich zu wenig und AFAIR gilt \emergencystretch absatzweise, d.h. Du müsstest vor \endgroup noch ein \par setzen, damit der Absatz nicht mit dem nach \endgroup (auf Null) zurückgesetzten Wert für \emergencystretch gesetzt wird.

MfG