케이스와 어레이 환경

케이스와 어레이 환경

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열 사양은 1.2 {@{}l@{\quad}l@{}}이고 arraystretch는 1.2 입니다.

관련 정보