¿Cómo detectar si dentro de un entorno matemático LaTeX?

12

P: ¿hay alguna manera de detectar si el punto está dentro de un entorno matemático LaTeX?

¿Cómo se podría detectar si el punto está o no está dentro de un entorno matemático en el látex, aunque delineada por línea $...$o por ambientes con nombre ( equation, displaymath, etc.)?

Dan
fuente

Respuestas:

10

La función texmathpdefinida en AUCTeX (carga automática texmathp) hace exactamente eso (está bien, en realidad hace un poco más).

Utilizado de forma interactiva, le dará más información, incluso si el punto está en una construcción matemática.

Utilizado en elisp, lo será ten matemáticas, de lo nilcontrario. Las piezas adicionales de información se almacenan en la variable texmathp-why.

Cuando texmathpregresa t, esto es una desventaja de (MATCH . POSITION), donde MATCHes una cadena que contiene el comando TeX o el nombre del entorno que activó el modo matemático, y POSITIONes la posición en la que se encontró esa cadena en el búfer. MATCHes algo así como "$", "$$", "\\(", "\\[" "\\ensuremath", "displaymath", "equation", ... Cuando texmathpregresa nil, la variable texmathp-whyes (nil . pos)donde posestá el comienzo del párrafo.

Advertencia de la cadena de documentación:

Las funciones asumen que tiene (casi) sintácticamente correcto (La) TeX en el búfer.

Es consciente de todos los entornos que AUCTeXconoce (por ejemplo, para el bloqueo de fuentes), y puede agregar más utilizando la variable texmathp-tex-commands.

T. Verron
fuente
También tenga en cuenta que (autopromoción descarada por delante) este comando es muy conveniente cuando se combina
T. Verron
La autopromoción es una idea de último momento cuando se comparte información útil y relevante :)
Sean Allred