Изменив мой ответ отсюда, мы можем просто извлечь эти данные LaTeX-math-default
, то есть список из 4-х кортежей.
(CHARACTER MACRO MENU UNICODE)
где CHARACTER
символ, используемый для его привязки (я знаю, что он выглядит как целое число, но это символ, используйте, (string CHARACTER)
чтобы увидеть), MACRO
это макрос Latex без косой черты, MENU
это имя для меню и UNICODE
символ Юникода, используемый для отображения в меню. Мы хотим проверить первый и второй элементы:
(defun show-latex-symbol-at-point ()
(interactive)
(let* ((sym (symbol-at-point))
(latex-symbol (TeX-member sym LaTeX-math-default
(lambda (a b)
(string= a (nth 1 b)))))
(shortcut (nth 0 latex-symbol))
)
(if (and latex-symbol shortcut)
(message "You can insert \\%s with `%s"
(nth 1 latex-symbol)
(key-description (string shortcut))))))
Вероятно, существуют лучшие способы непрерывного отображения выходных данных, но есть один способ использовать post-command-hook
вышеуказанную функцию после каждой команды. Мы будем использовать if, чтобы убедиться, что это работает только вlatex-mode
(add-hook 'post-command-hook
(lambda ()
(if (bound-and-true-p LaTeX-math-mode)
(show-latex-symbol-at-point)
)
))
(global-set-key [C-down-mouse-3] 'mouse-popup-menubar)
. Таким образом, у вас нет сообщений до тошноты.