
我定義了一個新指令:
\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}
$$