数学環境でnewcommandを使用する

数学環境でnewcommandを使用する

新しいコマンドを次のように定義しました。

\newcommand{\eq}[2]{\begin{equation}\begin{split}#1\end{split}\label{#2}\end{equation}}

新しい方程式を作成するには次のようにします。

 \eq{equation stuff here}{label here} 

しかし、方程式環境を明示的に使用していないため、texstudio は方程式内のすべての数学記号を強調表示します。これは本当に迷惑です。これを回避する方法はありますか?

答え1

\eqコマンドを環境に置き換えるだけでよい場合はeq、これは実行できるはずです。次の行で独自のCWLファイルを定義するだけです。

\begin{eq}#\math
\end{eq}#S

次に、このファイルをオプションに追加します。完了

CWLフォーマットの詳細については、ここファイル自体の基本情報はここ

答え2

TeX 言語の性質を考えると、この問題に対する優れた再利用可能なソリューションはないと思います。構文の強調表示は通常、正規表現を使用して行われますが、TeX は (文字通り) 正規表現でカバーできるよりも高度な言語クラスです。構文の強調表示を正しく行うには、TeXStudio のパーサーにかなりの力が必要です。これは、社内に TeX ディストリビューションを含めることが最も重要です。

参照TeX 言語の BNF 文法はありますか?

答え3

次のように定義できます:

\def\eq$#1${\begin{equation}#1\end{equation}}


\eq$
a(b+c)=ab+ac,
\label{distriblaw}
$

速記とハイライトの両方が使えます!

(コマンドを適切に定義する方法を知るには、LaTeX チュートリアルではなく、Knuth の TeXbook を読んでください。 ;-) )

私自身の定義をいくつか挙げます。

\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}
$$

関連情報