Wie erkenne ich, ob sich das Gerät in einer LaTeX-Mathematikumgebung befindet?

12

F: Gibt es eine Möglichkeit, festzustellen, ob sich der Punkt in einer LaTeX-Mathematikumgebung befindet?

Wie würde man erkennen , ob der Punkt ist oder in einer LaTeX Mathe - Umgebung nicht, ob durch Inline abgegrenzt $...$oder Namentlich gekennzeichnete Umgebungen ( equation, displaymathusw.)?

Dan
quelle

Antworten:

10

Die texmathpin AUCTeX definierte Funktion (automatisch geladen von texmathp) macht genau das (ok, eigentlich macht sie ein bisschen mehr).

Bei interaktiver Verwendung erhalten Sie einige weitere Informationen, einschließlich der Frage, ob sich der Punkt in einem mathematischen Konstrukt befindet.

Wird in Elisp verwendet, wird es anders sein, twenn in Mathe nil. Die zusätzlichen Informationen werden dann in der Variablen gespeichert texmathp-why.

Bei texmathpRückgabe tist dies ein Nachteil von (MATCH . POSITION). Dabei MATCHhandelt es sich um eine Zeichenfolge, die den TeX-Befehl oder den Namen der Umgebung enthält, die den Mathematikmodus ausgelöst hat, und POSITIONum die Position, an der diese Zeichenfolge im Puffer gefunden wurde. MATCHetwas ist wie "$", "$$", "\\(", "\\[" "\\ensuremath", "displaymath", "equation", ... Wenn texmathpkehrt nildie Variable texmathp-whyist , (nil . pos)wo posist der Anfang des Absatzes.

Warnung vom Docstring:

Die Funktionen setzen voraus, dass Sie (fast) syntaktisch korrektes (La) TeX im Puffer haben.

Es sind alle bekannten Umgebungen bekannt AUCTeX(z. B. für das Sperren von Schriftarten), und Sie können mithilfe der Variablen weitere hinzufügen texmathp-tex-commands.

T. Verron
quelle
Beachten Sie auch, dass dieser Befehl (schamlose Eigenwerbung voraus) sehr praktisch ist, wenn er mit regulären Ausdrücken von Emacs gemischt wird: tex.stackexchange.com/a/91175/9517
T. Verron
Eigenwerbung ist ein nachträglicher Einfall, wenn nützliche und relevante Informationen ausgetauscht werden :)
Sean Allred