我想用\def
它来简化\begin{array}
。这是代码
\def\ba#1{\begin{array}#1}
\def\ea{\end{array}}
$$ \ba{ccc} a11 & a12 & a13\\ a21 & a22 & a23 \ea $$
我收到错误。我尝试使用:
\renewcommand {\begin{array}} {\ba}
\renewcommand {\end{array}} {\ea}
和这个:
\newcommand(\ba)[]{\begin{array}}
\newcommand(\ea)[]{\end{array}}
也出现错误。那么我应该使用哪个命令?
我认为这与编程语言不同。在这里我只想用文本替换\ba
。\begin{array}
它不需要在宏定义中进行评估。
更新:所以我使用相同的技巧来继续简化:
\bea
y &=& x^4 + 4 \nonumber \\
&=& (x^2+2)^2 -4x^2 \nonumber \\
&\le&(x^2+2)^2
\eea
它工作正常。将它们全部结合起来:
\newcommand{\sev}[1]{\left| {#1} \right|}
\def\ba#1{\begin{array}{#1}}
\def\ea{\end{array}}
\def\bea{\begin{eqnarray}}
\def\eea{\end{eqnarray}}
Q: $$D=\sev{\ba{cccccc}
s_0&s_1&s_2&\cdots&s_{n-1}&1\\
s_1&s_2&s_3&\cdots&s_n&x\\
s_2&s_3&s_4&\cdots&s_{n+1}&x^2\\
\vdots&\vdots&\vdots&\ddots&\vdots\\
s_n&s_{n+1}&s_{n+2}&\cdots&s_{2n-1}&x^n \ea}$$
and $s_k=x_1^k+x_2^k+\cdots+x_n^k$.
A: $$ \bea D &=& \sev{\ba{ccccc}
1&1&\cdots&1&1\\
x_1&x_2&\cdots&x_n&x\\
\vdots&\vdots&\ddots&\vdots&\vdots\\
x_1^{n-1}&x_2^{n-1}&\cdots&x_n^{n-1}&x^{n-1}\\
x_1^n&x_2^n&\cdots&x_n^n&x^n \ea} \eea $$
是Q
正确的,但是A
是错误的,并告诉“缺少 \endgroup”
答案1
你需要改变
\def\ba#1{\begin{array}#1}
到
\def\ba#1{\begin{array}{#1}}
#1
观察第二行代码中的一对花括号。
顺便说一句,您不应该$$
在 LaTeX 文档中直接使用 来启动和终止 displaymath 模式;而应该使用\[
和\]
。有关此主题的更多信息,请参阅帖子为什么 [ ... ] 比 $$ ... $$ 更可取?和$$、[、align、equation 和 displaymath 之间有什么区别?