在方程式的情況下求解過滿的 \hbox

在方程式的情況下求解過滿的 \hbox

我剛開始使用LaTeX,所以這可能是一個愚蠢的問題,但我收到警告“檢測到過滿\hbox(---pt 太寬)”,編譯後的pdf 顯示此文字“如果補丁中邊緣密度的總和(x', y') 在一行中大於閾值」(程式碼中的第 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

使用mathtoolsstackengine,您將獲得一個非常簡單的程式碼。處理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} 

在此輸入影像描述

相關內容