Среды Cases и Array

Среды Cases и Array

Мне бы хотелось полностью понять все различия между использованием amsmathсреды casesи использованием arrayсреды для написания функций с кейсами.

Вот мое текущее понимание после прочтения других вопросов на форуме:

  • arrayпоставляется с отступами слева и справа. Его можно отключить, используя, {@{}ll@{}}как описано вэтот связанный вопрос.
  • arrayсоздает проблемы с вертикальным интервалом, которые я не совсем понимаю. Смотретьэтот связанный вопрос.
  • Оба метода arrayи casesпозволяют изменять расстояние между строками, например, с помощью \\[2ex].
  • Гораздо проще изменить выравнивание столбцов с помощью , arrayчем с помощью cases.
  • Левая скобка из casesкажется выше левой скобки из array. Но я не понимаю почему.
  • Использование casesсемантически более уместно.
  • casesтребуется загрузкаamsmath

В целом, похоже, что версия по умолчанию casesлучше, но arrayее легче настраивать.

Есть ли еще какие-то различия, которые я упускаю? Есть ли аспект функций с кейсами, которые можно форматировать с использованием одной из сред, но не другой?

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
    |x| =
        \begin{cases}
            x & \text{if}\ x\geq 0\\
            -x & \text{if}\ x<0\\
        \end{cases}.
\]
\end{document}

функция, сгенерированная с помощью случаев

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
    |x| = 
        \left\{\begin{array}{ll}
            x & \text{if}\ x\geq 0\\
            -x & \text{if}\ x<0\\
        \end{array}\right..
\]
\end{document}

функция, сгенерированная с помощью массива

Что я действительно хочу знать, так это какая из двух сред лучше и почему. Я пользуюсь уже arrayмного лет, но подумываю перейти на cases.

решение1

Код для casesin amsmathпросто

\renewenvironment{cases}{%
  \matrix@check\cases\env@cases
}{%
  \endarray\right.%
}
\def\env@cases{%
  \let\@ifnextchar\new@ifnextchar
  \left\lbrace
  \def\arraystretch{1.2}%
  \array{@{}l@{\quad}l@{}}%
}

то же самое происходит arrayсо спецификацией столбца {@{}l@{\quad}l@{}}и arraystretch 1.2

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