수학 환경에서 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}
$$

관련 정보