
일부 표준 AMS 환경을 약간 수정하여 새로운 환경으로 구현하고 싶습니다. 문제는 모든 환경에서 이 절차를 허용하는 것은 아니라는 것입니다. 말하자면 단순한 중복이라도
\newenvironment{myEnv}{\begin{gather}}{\end{gather}}
작동하지 않습니다. TeX 시스템에서는 다음과 같은 오류가 발생합니다.
! LaTeX Error: \begin{gather} on input line 126 ended by \end{myEnv}.
그러나 위의 gather
-> equation
또는 다른 (좋은) 환경을 교체하면 괜찮습니다. MiKTeX 2.3 및 2.9에서 문제에 직면했습니다. 이것은 버그입니까 아니면 기능입니까? 이상적으로는 다음과 같은 수정 사항을 만들고 싶습니다.
\newenvironment{myGather}{\begin{gather} ... my tuning ...}{\end{gather}}
내부 조사는 amsmath.sty
나에게 도움이 되지 않았습니다. 누가 할 수 있나요? gather
이 상황에서 내장 환경을 수정해야 합니까 ?
답변1
LaTeX에서는 실제로 \begin{foo}
및 \end{foo}
명령을 호출 \foo
하므로 메서드가 작동하지 않으면 \endfoo
직접 수정해 볼 수 있습니다 .\newenviornment
특정 gather
환경의 경우 특정 캐릭터를 처리하는 방식이 바뀌는 것이 문제의 원인이라고 생각합니다. 이 문제는 다음과 같이 \gather
실행되지 않도록 하여 해결할 수 있습니다 \expandafter
.
\def\mygather{
\expandafter\gather
some tuning
}
\def\endmygather{\endgather}
% Or, basically equivalently:
\newenvironment{mygather}{
\expandafter\gather
some tuning
}{\endgather}
어떤 튜닝을 하려는지 모르면 문제가 해결될지 알 수 없습니다.