Ich habe gerade mit LaTeX angefangen, daher ist das vielleicht eine dumme Frage, aber ich bekomme die Warnung „Überfüllte \hbox(---pt zu breit) erkannt“ und das kompilierte PDF zeigt diesen Text „wenn die Summe der Kantendichten im Patch (x‘, y‘) größer als der Schwellenwert ist“ (Zeile 3 im Code) in einer einzigen Zeile und diese Zeile überschreitet die Grenzen. Idealerweise hätte diese Zeile in zwei Zeilen gedruckt werden sollen. Ich habe es mit einem Zeilenumbruch versucht, aber das funktioniert hier nicht. Wie kann ich das korrigieren?
\begin{equation}
I^p(x',y') = \left\{\begin{array}{rl}
1 & \text{if the sum of edge densities in the patch (x', y') is greater than threshold}\\
0 & \text{otherwise}\\
\end{array}\right.
\end{equation}
Antwort1
Sie können Zeilen in nicht umbrechen \text
, aber Sie können ein verwenden \parbox
; passen Sie die Breite entsprechend an.
\documentclass{article}
\usepackage{amsmath}
\usepackage{lipsum}% for mock text
\begin{document}
\lipsum*[3]
\begin{equation}
I^p(x',y') =
\begin{cases}
1 & \parbox[t]{.5\textwidth}{\raggedright
if the sum of edge densities in the patch
$(x', y')$ is greater than threshold
}\\[4ex]
0 & \text{otherwise}
\end{cases}
\end{equation}
\lipsum[4]
\end{document}
Antwort2
Mit mathtools
und stackengine
haben Sie einen sehr einfachen Code. Das cases*
kümmert sich um die linke Klammer und die zweite Spalte der Umgebung verlässt automatisch den Mathematikmodus:
\documentclass{article}
\usepackage{mathtools, stackengine}
\begin{document}
\begin{equation}\def\stackalignment{l}
I^p(x',y') =\begin{cases*}
1 & \stackunder{if the sum of edge densities in the patch}{$(x', y')$ is greater than threshold} \\
0 & otherwise\\
\end{cases*}
\end{equation}
\end{document}