Lösen Sie die überfüllte \hbox im Fall der Gleichung

Lösen Sie die überfüllte \hbox im Fall der Gleichung

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}

Bildbeschreibung hier eingeben

Antwort2

Mit mathtoolsund stackenginehaben 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} 

Bildbeschreibung hier eingeben

verwandte Informationen