Як я можу додати символи до методу введення?


14

Я часто використовую TeXметод введення для введення символів Unicode, як λ, що досить зручно. Однак деякі символи, які я хочу набрати, не підтримуються, як-от різні підписки (скажімо ), символи сценарію (як 𝒞) та інші різні символи (як і ).

Як я можу розширити метод введення TeX, щоб підтримувати деякі з цих символів спеціальним рядком введення (тобто _iдля )?


1
Це EmacsWiki статті показано показати це зробити: emacswiki.org/emacs/TeXInputMethod
Аугусто

1
Також цей файл із сайту ac-math github.com/vitoshka/ac-math/blob/master/ac-math.el можна легко змінити на новий і набагато більш повний метод введення TeX-esque.
Аугусто

1
Обидва ці посилання виглядають корисними. Чи можете ви поставити їх на фактичну відповідь (в ідеалі з відповідними бітами, цитованими тут), щоб це питання можна було позначити як відповідь? Спасибі!
Тихон Єлвіс

Відповіді:


12

Як пояснено в цій статті EmacsWiki , ви можете додати речі до способу введення, як цього:

(let ((quail-current-package (assoc "TeX" quail-package-alist)))
  (quail-define-rules ((append . t))
                      ("_i" ?ᵢ)
                      ("^\\alpha" ?ᵅ)))

Мені також зручно використовувати ;замість громіздкого \як префікс моїх символів, тому я роблю наступне

(let ((quail-current-package (assoc "TeX" quail-package-alist)))
   (quail-defrule ";" (quail-lookup-key "\\")))

Нарешті, зауважте, що файл ac-math.el містить перелік математичних символів unicode та відповідні назви макросів TeX, і його можна легко змінити на новий та набагато більш повний метод введення TeX-esque (я навіть можу ввести, \gamma\dotщоб отримати γ̇ .)


ДОПОЛНЕННЯ За допомогою нового списку математичних символів- пакунків (доступний на MELPA) можна визначити метод всебічного математичного введення таким чином:

(package-initialize)
(require 'math-symbol-lists)
(quail-define-package "math" "UTF-8" "Ω" t)
(quail-define-rules ; whatever extra rules you want to define...
 ("\\from"    #X2190)
 ("\\to"      #X2192)
 ("\\lhd"     #X22B2)
 ("\\rhd"     #X22B3)
 ("\\unlhd"   #X22B4)
 ("\\unrhd"   #X22B5))
(mapc (lambda (x)
        (if (cddr x)
            (quail-defrule (cadr x) (car (cddr x)))))
      (append math-symbol-list-basic math-symbol-list-extended))

Щоб активувати метод введення, введіть C-u C-\ math RET. Потім, набравши \ mscrC, виходить 𝒞, \ lПарень виходить ⦅і т.д.


1
Здається, що метод методу введення не працює ( invalid Quail map nil). Я перейшов на користувальницький метод введення з математичними списками символів зараз, який працює добре.
близько

1

Я використовував insert-charдля вставки символів Unicode. Однак я не оцінив за замовчуванням виконання цієї команди. Ось ось, що доповнює helm:

(defun helm-insert-char ()
  (interactive)
  (helm :sources
      `((name . "Unicode char name")
        (candidates . ,(ucs-names))
        (action . insert))))

А ось типи лямбда , що я можу вставити: λ, Λ, ƛ, ƛ. Я зв'язав команду на f2 u, тому послідовність для їх вставки була такою:

f2 u lambda RET

f2 u M-p C-n RET

f2 u M-p C-n C-n RET

...


2
Це виглядає як корисна хитрість, але насправді не відповідає на моє запитання. Я спеціально хочу змінити або розширити метод введення, оскільки він дуже добре вписується в існуючий робочий процес.
Тихон Єлвіс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.