как обнаружить, если внутри математической среды LaTeX?

12

Q: есть ли способ определить, находится ли точка в математической среде LaTeX?

Как бы один определить , какую точка или нет в математике среды LaTeX, будь очерчены рядного на $...$или названные среды ( equation, displaymathи т.д.)?

Дэн
источник

Ответы:

10

Функция, texmathpопределенная в AUCTeX (автозагрузка из texmathp), делает именно это (хорошо, на самом деле она делает немного больше).

В интерактивном режиме он даст вам больше информации, в том числе о том, находится ли точка в математической конструкции.

Используется в elisp, это будет, tесли в математике, в nilпротивном случае. Дополнительные части информации затем сохраняются в переменной texmathp-why.

Когда texmathpвозвращается t, это минус (MATCH . POSITION), где MATCHстрока, содержащая команду TeX или имя среды, которая запускает математический режим, и POSITIONпозиция, в которой эта строка была найдена в буфере. MATCHэто что - то вроде "$", "$$", "\\(", "\\[" "\\ensuremath", "displaymath", "equation", ... Когда texmathpвозвращается nil, переменная texmathp-whyнаходится (nil . pos)где posначало абзаца.

Предупреждение от строки документации:

Функция предполагает, что у вас есть (почти) синтаксически правильный (La) TeX в буфере.

Он знает обо всех известных средах AUCTeX(например, для блокировки шрифтов), и вы можете добавить больше, используя переменную texmathp-tex-commands.

Т. Веррон
источник
Также обратите внимание, что (бесстыдное самореклама впереди) эта команда очень удобна, когда смешивается с регулярными выражениями emacs: tex.stackexchange.com/a/91175/9517
Т. Веррон,
Самореклама - это запоздалая мысль при обмене полезной и актуальной информацией :)
Шон Оллред