Binden Sie eine Inline-Mathematikumgebung in die gleiche Zeile

Binden Sie eine Inline-Mathematikumgebung in die gleiche Zeile

Wie muss ich den Befehl eingeben, damit meine Inline-Mathematikumgebung zusammengehalten werden kann? Beispielsweise 0<x<1wird sie in zwei Teile aufgeteilt 0<und x<1in 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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

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 \nobreakauch 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 \relpenaltyWert 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 \binoppenaltybetrifft 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.

verwandte Informationen