bagaimana mendeteksi jika di dalam lingkungan matematika LaTeX?

12

T: apakah ada cara untuk mendeteksi jika titik ada di dalam lingkungan matematika LaTeX?

Bagaimana satu mendeteksi apakah titik atau tidak di dalam lingkungan matematika LaTeX, apakah digambarkan inline oleh $...$atau dengan lingkungan bernama ( equation, displaymath, dll)?

Dan
sumber

Jawaban:

10

Fungsi yang texmathpdidefinisikan dalam AUCTeX (diisi otomatis dari texmathp) melakukan hal itu (ok, sebenarnya itu sedikit lebih).

Digunakan secara interaktif, itu akan memberi Anda beberapa informasi lebih lanjut, termasuk apakah intinya dalam konstruksi matematika.

Digunakan dalam elisp, akan tjika dalam matematika, niljika tidak. Potongan informasi tambahan kemudian disimpan dalam variabel texmathp-why.

Ketika texmathpkembali t, ini adalah kontra (MATCH . POSITION), di mana MATCHstring berisi perintah TeX atau nama lingkungan yang memicu mode matematika, dan POSITIONadalah posisi di mana string itu ditemukan di buffer. MATCHadalah sesuatu seperti "$", "$$", "\\(", "\\[" "\\ensuremath", "displaymath", "equation", ... Ketika texmathpkembali nil, variabel texmathp-whyadalah (nil . pos)di mana posadalah awal paragraf.

Peringatan dari docstring:

Fungsi mengasumsikan bahwa Anda memiliki (hampir) TeX yang benar secara sintaksis (La) di buffer.

Ia mengetahui semua lingkungan yang AUCTeXmengetahui (misalnya untuk penguncian font), dan Anda dapat menambahkan lebih banyak menggunakan variabel texmathp-tex-commands.

T. Verron
sumber
Perhatikan juga bahwa (promosi mandiri tanpa malu-malu di depan) perintah ini sangat mudah bila dicampur dengan ekspresi reguler emacs: tex.stackexchange.com/a/91175/9517
T. Verron
Promosi diri adalah renungan ketika berbagi informasi yang berguna dan relevan :)
Sean Allred