come rilevare se all'interno di un ambiente matematico LaTeX?


12

D: esiste un modo per rilevare se il punto si trova all'interno di un ambiente matematico LaTeX?

Come si potrebbe rilevare se il punto è o non è all'interno di un ambiente di matematica LaTeX, sia delineata in linea da $...$o per ambienti di nome ( equation, displaymath, ecc)?

Risposte:


10

La funzione texmathpdefinita in AUCTeX (caricata automaticamente da texmathp) fa esattamente questo (ok, in realtà fa un po 'di più).

Utilizzato in modo interattivo, ti darà alcune informazioni in più, incluso se il punto è in un costrutto matematico.

Usato in elisp, lo sarà tse in matematica, nilaltrimenti. Le informazioni aggiuntive vengono quindi memorizzate nella variabile texmathp-why.

Quando texmathpritorna t, questo è un contro di (MATCH . POSITION), dove MATCHè una stringa contenente il comando TeX o il nome dell'ambiente che ha attivato la modalità matematica, ed POSITIONè la posizione in cui quella stringa è stata trovata nel buffer. MATCHè qualcosa di simile "$", "$$", "\\(", "\\[" "\\ensuremath", "displaymath", "equation", ... Quando texmathpritorna nil, la variabile texmathp-whyè (nil . pos)dove posè l'inizio del paragrafo.

Avvertimento dalla documentazione:

Le funzioni presuppongono che tu abbia (quasi) sintatticamente corretto (La) TeX nel buffer.

È a conoscenza di tutti gli ambienti che AUCTeXconosce (ad esempio per il blocco dei caratteri) e puoi aggiungerne altri usando la variabile texmathp-tex-commands.


Si noti inoltre che (autopromozione spudorata in anticipo) questo comando è molto conveniente se mescolato con espressioni regolari emacs: tex.stackexchange.com/a/91175/9517
T. Verron,

L'autopromozione è un ripensamento quando si condividono informazioni utili e pertinenti :)
Sean Allred,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.