问题:我尝试这样做\newenvironment
:
\newenvironment{derivation}{ \begin{alignat*}{2}
\begin{split} }{ \end{split}
\end{alignat*} }
但当我这么做的时候
\begin{derivation}
I(\mu) &= \dots
\end{derivation}
我得到了错误Paragraph ended before \alignat* was complete
,,,,Missing $ inserted.
Missing \endgroup inserted.
Display math should end with $$.
\begin{alignat*} on input line 405 ended by \end{document}.
是不是我使用的语法不\newenvironment
正确?
试图:一开始我以为可能是{2}
导致花括号不匹配,即它看起来像 变量enddef
,\newenvironment
但实际上这没有意义。现在我只是困惑地盯着屏幕。
这似乎可能与这个问题,但该问题的答案并未解释为什么建议的解决方案不起作用,它们只是给出了可行的替代解决方案。我想知道为什么这不起作用,这样我就不会再尝试了。
动机: 为了节省编写此类方程的时间:
\begin{alignat*}{2}
\begin{split}
\frac{I_{\theta}(\theta)}{(h'(\theta))^2} &= \frac{ \frac{1}{ \theta} }{ \left( \frac{1}{\theta} \right)^2 } \\
&= \frac{\theta^2}{ \theta} = \theta = e^{\eta} = I_{\eta}(\eta) \,. \quad \square
\end{split}
\end{alignat*}
答案1
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{environ}
\NewEnviron{derivation}{%
\begin{alignat*}{2}
\begin{split}
\BODY
\end{split}
\end{alignat*}%
}
\begin{document}
\begin{derivation}
\frac{I_{\theta}(\theta)}{(h'(\theta))^2} &= \frac{\frac{1}{\theta}}{\left(\frac{1}{\theta}\right)^2} \\
&= \frac{\theta^2}{\theta} = \theta = e^{\eta} = I_{\eta}(\eta) \,. \quad \square
\end{derivation}
\end{document}
我觉得这样格式化会更好
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\begin{document}
\begin{proof}
\begin{align*}
\frac{I_{\theta}(\theta)}{(h'(\theta))^2}
&= \frac{1/\theta}{(1/\theta)^2} \\
&= \frac{\theta^2}{\theta} = \theta = e^{\eta} = I_{\eta}(\eta) \,. \qedhere
\end{align*}
\end{proof}
\end{document}
答案2
由于多种原因,您无法根据 来定义环境split
。此外,根据align
和类似环境来定义环境需要使用“内部形式”。
然而,在您的情况下,alignat*
是完全多余的,可以用以下方式替换equation*
:毕竟,split
不能占用多个对齐点。
此外,嵌套split
是无用的;两者之间没有任何区别
\begin{alignat*}{2}
\begin{split}
\frac{I_{\theta}(\theta)}{(h'(\theta))^2} &= \frac{ \frac{1}{ \theta} }{ \left( \frac{1}{\theta} \right)^2 } \\
&= \frac{\theta^2}{ \theta} = \theta = e^{\eta} = I_{\eta}(\eta) \,. \quad \square
\end{split}
\end{alignat*}
和
\begin{alignat*}{2}
\frac{I_{\theta}(\theta)}{(h'(\theta))^2} &= \frac{ \frac{1}{ \theta} }{ \left( \frac{1}{\theta} \right)^2 } \\
&= \frac{\theta^2}{ \theta} = \theta = e^{\eta} = I_{\eta}(\eta) \,. \quad \square
\end{alignat*}
您似乎想要的只是一个别名align*
:
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\newenvironment{derivation}
{\csname align*\endcsname}
{\endalign}
\makeatletter
\let\derivation@qed\align@qed
\makeatother
\begin{document}
\begin{proof}
Better using \verb|\qedhere|, though
\begin{derivation}
\frac{I_{\theta}(\theta)}{(h'(\theta))^2}
&= \frac{\frac{1}{\theta}}{\bigl(\frac{1}{\theta}\bigr)^2} = \frac{1/\theta}{(1/\theta)^2} \\
&= \frac{\theta^2}{\theta} = \theta = e^{\eta} = I_{\eta}(\eta) \,.\qedhere
\end{derivation}
\end{proof}
\end{document}
\qedhere
正方形似乎表示证明的结束,但是在这种情况下最好使用。
我在四层部分附近添加了斜线形式:我更喜欢它。