
我想對一些標準 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}
在不知道您想要做什麼調整的情況下,我無法真正告訴您這是否會解決您的問題。