方程式の場合のoverfull \hboxを解く

方程式の場合のoverfull \hboxを解く

LaTeX を始めたばかりなので、これは馬鹿げた質問かもしれませんが、「Overfull \hbox(---pt too wide) が検出されました」という警告が表示され、コンパイルされた PDF には「if the sum of edge densities in the patch (x', y') is greater than threshold」(コードの 3 行目) というテキストが 1 行で表示され、この行は範囲外になっています。理想的には、その行は 2 行で印刷されるはずです。改行を試しましたが、ここでは機能しません。これを修正するにはどうすればよいでしょうか?

\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

mathtoolsを使用するstackengineと、非常にシンプルなコードになります。 はcases*左中括弧を処理し、環境の 2 番目の列は自動的に数式モードを終了します。

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

ここに画像の説明を入力してください

関連情報