Wie muss ich den Befehl eingeben, damit meine Inline-Mathematikumgebung zusammengehalten werden kann? Beispielsweise 0<x<1
wird sie in zwei Teile aufgeteilt 0<
und x<1
in die nächste Zeile.
Antwort1
Sie können einige Strategien anwenden: Setzen Sie den Ausdruck in Klammern oder in einen Rahmen, aber in manchen Fällen kann dies zu überfüllten Rahmen führen. In den meisten Fällen besteht die beste Lösung darin, den Text, in dem die Formel erscheint, so umzuformulieren, dass kein Zeilenumbruch auftritt.
Ein Beispiel, bei dem alles gut geht:
\documentclass[draft]{article}
\begin{document}
Text text text text text text text text text text text text text text te $0<x<1$
Text text text text text text text text text text text text text text te ${0<x<1}$
Text text text text text text text text text text text text text text te \mbox{$0<x<1$}
\end{document}
Und noch eines, wo einiges schief läuft (beachten Sie die überfüllten Kisten):
\documentclass[draft]{article}
\begin{document}
Text text text text text text text text text text text text texttexttex $0<x<1$ text text text text text text text text text text text text text text text text text text
Text text text text text text text text text text text text texttexttex ${0<x<1}$ text text text text text text text text text text text text text text text text text text
Text text text text text text text text text text text text texttexttex \mbox{$0<x<1$} text text text text text text text text text text text text text text text text text text
\end{document}
In der im letzten Beispiel dargestellten Situation könnte \sloppy verwendet werden, um die fehlerhaften Boxen zu verhindern, allerdings werden nun einige Textzeilen gestreckt und der Abstand zwischen den Wörtern wird hässlich aussehen:
\documentclass[draft]{article}
\begin{document}
Text text text text text text text text text text text text texttexttex $0<x<1$ text text text text text text text text text text text text text text text text text text
{\sloppy Text text text text text text text text text text text text texttexttex ${0<x<1}$ text text text text text text text text text text text text text text text text text text\par}
{\sloppy Text text text text text text text text text text text text texttexttex \mbox{$0<x<1$} text text text text text text text text text text text text text text text text text text\par}
\end{document}
AlsegregErwähnt in einem Kommentar sowohl \mbox{$0<x<1$}
als auch , ${0<x<1}$
wird dies dazu führen, dass die Leerzeichen um das <
ihre Ausdehnung und Verkleinerung nicht mit der Zeile teilen, in der sie enden; $0<\nobreak x<1$
ist besser, um einen Zeilenumbruch zu vermeiden; fügen Sie möglicherweise \nobreak
auch nach dem zweiten hinzu <
.
Die beste Lösung besteht in den meisten Fällen darin (wie bereits erwähnt), den Text an der Stelle, an der die Formel erscheint, so umzuformulieren, dass kein Zeilenumbruch auftritt.
Antwort2
Sie könnten den \relpenalty
Wert höher setzen (er ist bereits recht hoch, 500 im Klartext). Zum Beispiel:
\relpenalty=10000
würde versuchen, Zeilenumbrüche mit mathematischem Charakter der relationalen Klasse nie vorzunehmen. Ich hatte tatsächlich Schwierigkeiten, TeX dazu zu bringen, eine Zeile mit dem Beispiel $0<x<1$
mit der Standardeinstellung umzubrechen, also habe ich zum Testen die Strafe auf Null gesetzt.
Eine weitere Inline-Mathematik-Strafe \binoppenalty
betrifft mathematische Zeichen der Binärklasse. Um TeX zu suggerieren, Inline-Mathematik nie zu unterbrechen, könnte man beide auf setzen 10000
. Natürlich wird TeX große Probleme haben, Zeilenumbruchpunkte zu finden, wenn Sie viele lange Inline-Mathematikzeichen mit dieser Einstellung haben.