我得到了一些嵌套的命令,其中两个有效,但最后一个无效。
\newcommand{\trine}[3]
{
{#1} \times {#2} \times {#3}
}
\newcommand{\MchainSub}[9]
{
k &= {#2} &\to M[{#1},{#2}] &+& M[{#3},{#4}] &+& {#5} \\[-1em]
& & {#6} &+& {#7} &+& {#8} &=& {#9}\\
}
\newcommand{\Mchain}[2]
{
\begin{aligned}
\begin{aligned}
{#1}
\end{aligned} &=\left\{
\begin{aligned}
{#2}
\end{aligned} \right.
\end{aligned}
}
不起作用:
\[
\begin{array}{l}
\Mchain{
M[i, j] \\[-1em]
A, k=i
}{
\MchainSub{i}{k}{l}{j}{ \trine{a}{b}{c} }{x}{y}{z}{w}
\MchainSub{i}{k}{l}{j}{ \trine{a}{b}{c} }{x}{y}{z}{w}
} %<- here is error
\end{array}
\]
是否有效:
\[
\begin{array}{l}
\begin{aligned}
\begin{aligned}
M[i, j] \\[-1em]
A, k=i
\end{aligned} &=\left\{
\begin{aligned}
\MchainSub{i}{k}{l}{j}{ \trine{a}{b}{c} }{x}{y}{z}{w}
\MchainSub{i}{k}{l}{j}{ \trine{a}{b}{c} }{x}{y}{z}{w}
\end{aligned} \right.
\end{aligned}
\end{array}
\]
为什么第一个不起作用?由于我将多次重复使用嵌套的 \MchainSub 和 \trine,因此使用我的宏方法会快得多。
我不断收到错误 missing }. missing { ...
答案1
您{#2}
使用了不需要的括号,因此在插入之后#2
您\MchainSub
会在第一个单元格中看到错误,而&
在最后一个单元格中则会出现错误。{
}
您可能应该删除等周围的所有括号#2
,因为即使没有产生错误,数学模式中的额外括号也会影响间距。