我定义了一个新命令:
\newcommand{\eq}[2]{\begin{equation}\begin{split}#1\end{split}\label{#2}\end{equation}}
为了创建一个新的等式,我会这样做:
\eq{equation stuff here}{label here}
但是由于我没有明确使用方程式环境,texstudio 会突出显示方程式中的每个数学符号。这真的很烦人。有办法解决这个问题吗?
答案1
答案2
鉴于 TeX 语言的性质,我认为没有一个好的、可重复使用的解决方案。语法突出显示通常使用正则表达式完成,但 TeX(字面上)是一类高于正则表达式可以覆盖的语言。要正确实现语法突出显示,需要 TeXStudio 解析器背后有一定实力 - 最重要的是在内部包含 TeX 发行版。
也可以看看TeX 语言有 BNF 语法吗?。
答案3
您可以定义类似这样的内容:
\def\eq$#1${\begin{equation}#1\end{equation}}
\eq$
a(b+c)=ab+ac,
\label{distriblaw}
$
并且您既可以使用速记,又可以使用突出显示!
(阅读 Knuth 的 TeXbook 而不是 LaTeX 教程来了解如何正确定义命令。;-))
以下是我自己的一些定义:
\def\eq#1$$#2$${\begin{equation#1}#2\end{equation#1}}
\long\def\subeq#1{\begin{subequations}#1\end{subequations}}
\def\Split$$#1$${\begin{split}#1\end{split}}
\def\Align#1$$#2$${\begin{align#1}#2\end{align#1}}
\def\Aligned#1{\begin{aligned}#1\end{aligned}}
\def\Gather#1$$#2$${\begin{gather#1}#2\end{gather#1}}
\def\Gathered#1{\begin{gathered}#1\end{gathered}}
\def\Multline#1$$#2$${\begin{multline#1}#2\end{multline#1}}
例子:
\Align*$$
a&=b+c,
\\
e&=fg.
$$
\Align at$${2}
a&=b,&c&=d,
\label{eq1}
\\
e&=f,&g&=h.
\label{eq2}
$$