Comment puis-je ajouter des caractères à une méthode de saisie?


14

J'utilise souvent la TeXméthode d'entrée pour taper des caractères Unicode comme λ, ce qui est assez pratique. Cependant, certains des caractères que je veux taper ne sont pas pris en charge comme divers indices (par exemple ), les caractères de script (comme 𝒞) et d'autres symboles divers (comme et ).

Comment puis-je étendre la méthode d'entrée TeX pour prendre en charge certains de ces caractères avec une chaîne d'entrée personnalisée (c'est- _ià- dire pour )?


1
Cet article d'EmacsWiki montre comment le
Augusto

1
En outre, ce fichier de ac-math github.com/vitoshka/ac-math/blob/master/ac-math.el peut être facilement changé en une nouvelle méthode d'entrée TeX-esque beaucoup plus complète.
Augusto

1
Ces deux liens semblent utiles. Pourriez-vous les mettre dans une réponse réelle (idéalement avec les bits pertinents cités ici) afin que cette question puisse être marquée comme ayant reçu une réponse? Merci!
Tikhon Jelvis

Réponses:


12

Comme expliqué dans cet article EmacsWiki , vous pouvez ajouter des éléments à une méthode d'entrée comme celle-ci:

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

Je trouve également pratique d'utiliser ;au lieu de la lourdeur \comme préfixe pour mes symboles, donc je fais ce qui suit

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

Enfin, notez que le fichier ac-math.el contient une liste de caractères mathématiques unicode et les noms de macro TeX correspondants, et peut être facilement changé en une nouvelle méthode d'entrée TeX-esque beaucoup plus complète (je peux même taper \gamma\dotpour obtenir γ̇ .)


ADDENDUM En utilisant le nouveau package math-symbol-lists (disponible sur MELPA), on peut définir une méthode d'entrée mathématique complète comme suit:

(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))

Pour activer la méthode de saisie, tapez C-u C-\ math RET. Ensuite, en tapant \ mscrC donne 𝒞, \ lParen donne ⦅, etc.


1
La chose de l'ajout à la méthode d'entrée ne semble pas fonctionner ( invalid Quail map nil). Je suis maintenant passé à une méthode de saisie personnalisée avec des listes de symboles mathématiques, qui fonctionne bien.
leftaroundabout

1

J'utilisais insert-charpour insérer des caractères Unicode. Cependant, je n'ai pas apprécié l'achèvement par défaut de cette commande. Voici donc un qui se termine par helm:

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

Et voici les types de lambdas que je peux insérer: λ, Λ, ƛ, ƛ. J'ai lié la commande à f2 u, donc la séquence pour insérer ceux-ci était:

f2 u lambda RET

f2 u M-p C-n RET

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

...


2
Cela ressemble à une astuce utile, mais cela ne répond pas vraiment à ma question. Je souhaite spécifiquement modifier ou étendre une méthode de saisie, car elle s'intègre très bien dans mon flux de travail existant.
Tikhon Jelvis
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.