Zeilenumbruch im Math Mode verhindern

Formelsatz für Mathematik, Naturwissenschaften und Technik


Gast

Zeilenumbruch im Math Mode verhindern

Beitrag von Gast »

Hallo, ich habe folgendes Anfängerproblem.
Ich möchte verhindern, dass eine bestimmte Formel im Math Mode umgebrochen wird.

Beispiel:
Im folgenden Beispiel, bricht Latex hinter phi: um, was natürlich sehr schlecht ist.
Eine \emph{(reguläre) Parametertransformation} \index{Parametertransformation!reguläre} ist eine bijektive $C^1$-Abbildung $\phi:I \rightarrow I'$

Schreibe ich
Eine \emph{(reguläre) Parametertransformation} \index{Parametertransformation!reguläre} ist eine bijektive $C^1$-Abbildung \mbox{$\phi:I \rightarrow I'$}
schreibt Latex über den Rand hinaus

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

abgesetzte Formel einfügen mbox im mathmode

Beitrag von DonCube »

Klar was soll er denn auch sonst machen?? Er kann ja keine Buchstaben wegnehmen. Ein Zeilenumbruch macht er ja immer dann, wenn eine Zeile voll ist. Wenn du dies durch eine mbox verhinderst schreibt er natürlich über den Rand. Du kannst natürlich auch vorher umbrechene mittels \\, \newline.

Alternativ könntest du eine abgesetzte Formel mit der equation Umgebung einfügen.

Gruß
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Umbrüche in mathematischen Formeln

Beitrag von Stefan Kottwitz »

Hallo,

Umbrüche kann man verhindern und erzwingen, u.a. wie DonCube schreibt. Verhindern geht auch mit geschweiften Klammern in der Formel (Gruppieren), Erlauben geht, indem man dem Mathematikmodus schließt und öffnet, oder die TeX-Befehle \allowbreak, \nobreak verwendet uvm.
Oft ist es besser, den Text etwas zu variieren oder eben die Formel abzusetzen.

Helfen kann auch \sloppy (Wirkung durch Gruppieren begrenzen) oder \sloppypar oder noch besser eine der in l2tabu.pdf beschriebenen Alternativen zu \sloppy.

Viele Grüße,

Stefan

Gast

Beitrag von Gast »

Danke, für die Antwort. Aber im Ernst: Man kann doch von einen Latex einen Befehl mit folgender Funktion erwarten: "Solange die Formel kleiner als eine Zeile, breche nicht in der Formel, sondern vor der Formel um."

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Formel umbrechen, neue Zeile, mbox, newline

Beitrag von DonCube »

Guten morgen,
ich denke eine derartige Regel ist nicht sinnvoll und sehr schwer umzusetzen. Denn das hätte erhebliche Auswirkungen auf den Satzspiegel. Zudem geht man Textsatztechnisch davon aus, dass eine Formel die inline, also im Text steht auch wie Text behandelt werden darf. Ist sie wichtig oder oder hochkomplex sollte man sie aus typographischer Sicht vom Text absetzen.

Genau wie Stefan geschrieben hat gibt es aber dennoch Mittel und Wege den von LaTeX erstellten Satzspiegel zu beeinflussen. Man kann wunderbar 3-4h mit LaTeX rumexperimentieren. Nur weil mal irgendwie immer noch in Word denkt und sagt: Das muss doch so aussehen wie ich will. Aber das hat auch sein gutes. So lernt man viel über das System. Das ging früher soweit das ich eine riesige Präambel mit X Redefinitionen usw hatte. Irgendwann habe ich mal einen Arschtritt von einem netten LaTeXer bekommen.

Aber hier wirst du immer offene Augen und Ohren finden. Auch für Sonderkonstruktionen. So und nun wieder zu meinem Tee.

Grüße
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Anonymous hat geschrieben:Danke, für die Antwort. Aber im Ernst: Man kann doch von einen Latex einen Befehl mit folgender Funktion erwarten: "Solange die Formel kleiner als eine Zeile, breche nicht in der Formel, sondern vor der Formel um."
Was dem am nächsten käme, wäre ein \linebreak[3] vor der Formal. In der Regel wird es aber nicht helfen, außer man wählt Umbrucheinstellungen, die zu Lochfraß führen und schon deshalb abzulehnen sind. Wenn eine Umbruch in einer Formal stört, ist das übrigens oft ein Hinweis, dann stellt sich die Frage, warum das so ist. Wenn die Antwort lauter: "weil die Formel so wichtig ist", dann lautet die Lösung des Problems in der Regel: Abgesetzt Formel verwenden.

boukkoun
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 9. Jul 2013, 13:40

Beitrag von boukkoun »

Hallo,

ich weiß das Thema ist schon relativ lang her, aber ich wollte trotzdem eine Nachfrage stellen. Es ist doch beispielsweise klar, dass man nicht will, dass eine Formel der Art $a \in (a;b) \cap \mathbb{Q}$ vor oder nach $\in$ umgebrochen wird. Das ist weder weil die Formel wichtig ist, noch weil sie sonderlich lang ist, sondern weil es einfach formal unschön und unleserlich ist.

Gibt es denn immer noch keine andere Möglichkeit als davor ein \linebreak zu setzen? Was natürlich den Nachteil hat, dass jede kleine Veränderung im Text einen dazu zwingt diese neu zu setzen?

danke vielmals für Antworten!

Besserwisser

Beitrag von Besserwisser »

Wenn die \mbox aus den Gründen, die der OP genannt hat, nicht funktioniert, dann ist Handarbeit angesagt, weil dann eben die reine Umbruchsteuerung per Parameter überfordert ist. Das Problem ist dann mit einem langen, nicht trennbaren Wort oder Ausdruck anderer Art vergleichbar. TeX kann viel, aber Wunder kann es keine.

boukkoun
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 9. Jul 2013, 13:40

Beitrag von boukkoun »

schade! dachte auch das sollte irgendwie zu bewerkstelligen sein.

danke für die antwort!

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4268
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Wie Stefan schrieb, kannst du Umbrüche durch Gruppieren (d.h. mit Klammern) verhindern. Aber dann steht eine Formel ggfs über und du musst die Parameter lockern (was zu schlechter aussehenden Absätzen führen kann):
\documentclass[parskip=full-]{scrartcl}
\newenvironment{tolerant}[1]{%
  \par\tolerance=#1\relax
}{%
  \par
}
\begin{document}
blub \hspace{0.8\textwidth} blub blub $a \in (a;b) \cap {Q}$

blub \hspace{0.8\textwidth} blub blub ${a \in (a;b) \cap {Q}}$


\begin{tolerant}{500}
blub \hspace{0.8\textwidth} blub blub ${a \in (a;b) \cap {Q}}$
\end{tolerant}
\end{document}

Antworten