comment détecter si à l'intérieur d'un environnement mathématique LaTeX?

12

Q: Existe -t-il un moyen de détecter si le point se trouve dans un environnement mathématique LaTeX?

Comment peut -on détecter si le point est ou non dans un environnement de mathématiques LaTeX, que ce soit en ligne par délimitées $...$ou par des environnements nommés ( equation, displaymath, etc.)?

Dan
la source

Réponses:

10

La fonction texmathpdéfinie dans AUCTeX (chargée automatiquement depuis texmathp) fait exactement cela (ok, en fait, elle en fait un peu plus).

Utilisé de manière interactive, il vous donnera plus d'informations, notamment si le point se trouve dans une construction mathématique.

Utilisé dans elisp, ce sera le tcas en mathématiques, nilsinon. Les informations supplémentaires sont ensuite stockées dans la variable texmathp-why.

Lors du texmathpretour t, c'est un inconvénient de (MATCH . POSITION), où MATCHest une chaîne contenant la commande TeX ou le nom de l'environnement qui a déclenché le mode mathématique, et POSITIONest la position à laquelle cette chaîne a été trouvée dans le tampon. MATCHest quelque chose comme "$", "$$", "\\(", "\\[" "\\ensuremath", "displaymath", "equation", ... Lorsque le texmathprendement nil, la variable texmathp-whyest (nil . pos)posest le début du paragraphe.

Avertissement de la docstring:

Les fonctions supposent que vous avez (presque) syntaxiquement correct (La) TeX dans le tampon.

Il connaît tous les environnements AUCTeXconnus (par exemple pour le verrouillage des polices), et vous pouvez en ajouter d'autres en utilisant la variable texmathp-tex-commands.

T. Verron
la source
Notez également que (auto-promotion éhontée à venir), cette commande est très pratique lorsqu'elle est mélangée avec des expressions régulières emacs: tex.stackexchange.com/a/91175/9517
T. Verron
L'autopromotion est une réflexion après coup lors du partage d'informations utiles et pertinentes :)
Sean Allred