Как написать случаи с группирующими скобками как слева, так и справа и разбить условие на две строки в LaTeX?

Как написать случаи с группирующими скобками как слева, так и справа и разбить условие на две строки в LaTeX?

Код, который я использовал для написания

этот

это один

$$
X(m,n)=
\begin{cases}
x(n),\\
x(n-1)\\
x(n-1)
\end{cases}
$$

Но я не знаю, как это написать.


А что, если я захочу написать это?

решение1

\documentclass{article}
\usepackage{amsmath}

\begin{document}
  \[
    X(m,n) = \left\{\begin{array}{lr}
        x(n), & \text{for } 0\leq n\leq 1\\
        x(n-1), & \text{for } 0\leq n\leq 1\\
        x(n-1), & \text{for } 0\leq n\leq 1
        \end{array}\right\} = xy
  \]
\end{document}

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

Если вам нужны два условия на разных строках, можно использовать \multirowдля первого столбца:

\documentclass{article}
\usepackage{amsmath}
\usepackage{multirow}

\begin{document}
  \[
    X(m,n) = \left\{\begin{array}{@{}lr@{}}
        \multirow{2}{*}{x(n),} & \text{for }0\leq n\leq 1\\
                               & \text{or }0\leq n\leq 1\\
        x(n-1), & \text{for }0\leq n\leq 1\\
        x(n-1), & \text{for }0\leq n\leq 1
        \end{array}\right\} = xy
  \]
\end{document}

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

решение2

Для вопроса, как он был изначально поставлен, мы все еще можем использовать casesочень легко. Мы просто используем технику использования \left.в начале, а затем можем поставить \right\}в конце:

\[
  X(m, n) = \left.
  \begin{cases}
    x(n), & \text{for } 0 \leq n \leq 1 \\
    x(n - 1), & \text{for } 0 \leq n \leq 1 \\
    x(n - 1), & \text{for } 0 \leq n \leq 1
  \end{cases}
  \right\} = xy
\]

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

Однако я не уверен, что можно объединять строки, casesкак в редактировании.

решение3

По сути тот же ответ, что и у Игнаси, но с использованием \textвместо слова for. (И с \leqslantсимволом , amssymbкоторый я нахожу гораздо более элегантным.)

\documentclass{article}
\usepackage{amsmath, amssymb}
\newcommand{\for}{\text{for }}
\begin{document}
  \[
    X(m,n)=
    \left\{
    \begin{array}{lr}
      x(n),& \for 0\leqslant n \leqslant 1 \\
      x(n-1),& \for 0\leqslant n \leqslant 1 \\
      x(n-1),& \for 0\leqslant n \leqslant 1
    \end{array}
    \right\} = xy.
  \]
\end{document}

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

РедактироватьЧто касается недавно заданного вопроса об изменении:

\documentclass{article}
\usepackage{amsmath, amssymb}
\newcommand{\for}{\text{for }}
\begin{document}
  \[
    X(m,n)=
    \left\{
    \begin{array}{@{}lr@{}}
      x(n),& 
      \begin{array}{r@{}}
        \for 0\leqslant n \leqslant 1\\ 
        \text{or } 0\leqslant x \leqslant 1
      \end{array}\\
      x(n-1),& \for 0\leqslant n \leqslant 1 \\
      x(n-1),& \for 0\leqslant n \leqslant 1
    \end{array}
    \right\} = xy.
  \]
\end{document}

(Я не посчитал нужным определять новый макрос для слова, orпоскольку оно написано только один раз. Обратите внимание, что на этот раз, похоже, лучше выровнять второй столбец по центру.)

Редактировать бисДобавлены @{}спецификации, предложенные daleif. Больше никакого центрирования.

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

решение4

Опираясь наответ от Au101, а как насчет вложения casesсред?:

\[
  X(m, n) = \left.
  \begin{cases}
    x(n), & 
          \begin{cases} 
                \text{for } 0 \leq n \leq 1 \\
                \text{or }  0 \leq n \leq 1 
          \end{cases} \\
    x(n - 1), & \text{for } 0 \leq n \leq 1 \\
    x(n - 1), & \text{for } 0 \leq n \leq 1
  \end{cases}
  \right\} = xy
\]

Вывод LaTeX

Вложенные фигурные скобки некрасивы, но такой подход позволяет избежать необходимости в пакетах multirowor array.

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