Usando un nuevo comando con un entorno matemático

Usando un nuevo comando con un entorno matemático

Definí un nuevo comando como:

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

entonces para hacer una nueva ecuación hago:

 \eq{equation stuff here}{label here} 

Pero como no he usado explícitamente el entorno de ecuaciones, texstudio resalta cada símbolo matemático en la ecuación. Es realmente molesto. ¿Hay alguna forma de evitar esto?

Respuesta1

Si está satisfecho con reemplazar el comando \eqcon el entorno eq, esto debería ser factible. Simplemente defina su propio archivo CWL con la línea

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

Luego incluya este archivo en opciones, enFinalización.

Puede encontrar más información sobre el formato CWL.aquíy la información básica sobre el archivo en sí esaquí.

Respuesta2

Dada la naturaleza del lenguaje TeX, no creo que exista una solución buena y reutilizable para este. El resaltado de sintaxis es algo que generalmente se hace usando expresiones regulares, pero TeX es (literalmente) una clase de lenguajes superior a la que pueden cubrir las expresiones regulares. Conseguir el resaltado de sintaxis correcto requeriría algo de esfuerzo detrás del analizador de TeXStudio, fundamental para incluir una distribución de TeX interna.

Ver también¿Existe una gramática BNF del lenguaje TeX?.

Respuesta3

Puedes definir algo como eso:

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


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

¡Y tienes taquigrafía y resaltado!

(Lea el TeXbook de Knuth en lugar de los tutoriales de LaTeX para saber cómo definir comandos correctamente. ;-))

Aquí hay algunas definiciones más mías:

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

Ejemplos:

\Align*$$
a&=b+c,
\\
e&=fg.
$$

\Align at$${2}
a&=b,&c&=d,
\label{eq1}
\\
e&=f,&g&=h.
\label{eq2}
$$

información relacionada