how to add characters to Chinese input method in emacs

365 views Asked by At

I noticed that some Chinese characters are not accessible via the chinese-py and chinese-tonepy input methods. For example, the character duì: 䨺. I verified that in chinese-tonepy there are no submenus for duì. The character is, however, available and supported by emacs. How can I add additional characters to the pinyin menus?

1

There are 1 answers

1
legoscia On

I was able to add it by editing the files PY.el and TONEPY.el. You can find these files quickly using M-x find-library, assuming you have installed the Emacs Lisp source code along with Emacs.

In PY.el, I found this line:

("dui" "对队堆兑碓憝怼镦")

I added this character to the end of the string:

("dui" "对队堆兑碓憝怼镦䨺")

And then I typed M-x eval-buffer.

Likewise, in TONEPY.el I modified the line for dui4 and came up with:

("dui4" "兑队对敦怼憝碓镦䨺")

After typing M-x eval-buffer in the corresponding buffer, the input methods chinese-py and chinese-tonepy let me type the character 䨺.


After changing these files, I wanted to save them. That turned out to be more difficult. At the bottom, they have this line:

;; coding: chinese-iso-8bit-unix

However, when saving with C-x C-s, Emacs complains that 䨺 cannot be encoded with this coding system. Thus I modified that line to read:

;; coding: utf-8

And told Emacs to save the file as utf-8. It seemed to work, but I'm not sure if this breaks anything.


This is probably not the right way to go about this. The comments at the top of PY.el and TONEPY.el state that they were generated from the files pinyin.map and TONEPY.tit respectively, so the right thing to do is presumably to update those data files, or add more entries to whatever database they are taken from.