Решить переполненный \hbox в случае уравнения

Решить переполненный \hbox в случае уравнения

Я только что запустил LaTeX, так что это может быть глупый вопрос, но я получаю предупреждение "Overfull \hbox(---pt too wide) detected" и скомпилированный pdf показывает этот текст "if the sum of edge densitys in the patch (x', y') is greater than threshold" (строка 3 в коде) в одной строке, и эта строка выходит за границы. В идеале эта строка должна была быть напечатана в две строки. Я пробовал перенос строки, но здесь это не работает. Как это исправить?

\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}

решение1

Вы не можете разрывать строки \text, но вы можете использовать \parbox; для регулировки ширины по своему усмотрению.

\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}

введите описание изображения здесь

решение2

С mathtoolsand stackengineу вас очень простой код. The cases*заботится о левой скобке, а второй столбец окружения автоматически выходит из математического режима:

\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} 

введите описание изображения здесь

Связанный контент