我正在尝试使用环境在 LaTeX 中用两个对齐的列写出一些数学公式aligned
,到目前为止,这似乎取得了最好的结果。使用以下代码,我没有遇到任何问题,而且结果几乎与我想要的完全一致:
\[
\begin{aligned}[c]
f(x) &= e^{-4x}\\
f'(x) &= -4e^{-4x}
\end{aligned}
\qquad
\begin{aligned}[c]
f(0) &= e^0 = 1\\
f'(0) &= -4e^0 = -4
\end{aligned}
\]
但我将在正在处理的文档中多次执行此操作,因此我想将其设为命令。我使用的命令代码是
\newcommand{\mtable}[2]{
\[
\begin{aligned}[c]
{#1}
\end{aligned}
\qquad
\begin{aligned}[c]
{#2}
\end{aligned}
\]
}
但现在当我尝试以同样的方式使用此命令时,就像这样
\mtable{
f(x) &= e^{-4x}\\
f'(x) &= -4e^{-4x}
}{
f(0) &= e^0 = 0\\
f'(0) &= -4e^0 = -4
}
我收到两个错误,分别指出Missing { Inserted.
和两个错误,分别指出Missing } inserted.
所有都指向前一个代码块的最后一行。据我所知,没有不匹配的括号,我尝试过从{#1}
命令{#2}
定义中删除括号,但没有任何效果,所以我不确定这段代码有什么问题。
如果这是一个重复的问题,请原谅我,但对于我发现的大多数其他类似问题,答案都是存在不正确的\left
或\right
,我不认为这适用于我的情况。
编辑:再试一下,我发现问题似乎出在换行符命令 ( \\
) 上。当我删除它时,我没有收到错误,但显然我也没有在需要的地方得到换行符。
答案1
#1
在参数和定义#2
中不要使用括号\mtable
:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\mtable}[2]{%
\[
\begin{aligned}[c]
#1
\end{aligned}
\qquad
\begin{aligned}[c]
#2
\end{aligned}
\]
}
\begin{document}
\mtable{
f(x) &= e^{-4x} \\
f'(x) &= -4e^{-4x}
}{
f(0) &= e^0 = 0 \\
f'(0) &= -4e^0 = -4
}
\end{document}
当将支架放置在环境内部时&
,支架会被分开,这是无法完成的。\\
aligned