|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
|||||||||||||||||||||||||||||||||||||||||||||||||||
2008年03月26日(水) 旧暦 [n年日記] [更新:"2008/03/26 11:02:42"]#1 [Emacs] tcode
最近
列 + 台 = 殆が合成されないとか、いくつか合成されない文字があって 何故かなと思っている。 bushu.rev には次の行はある 殆歹台これもある。 列歹リ @ 22.0.50:
22.0.50 ( = 22.1) でも合成しないが、
~/T-Code2 を消して、mkdir ~/T-Code2 してから
だと合成してくれる。(消さなくても大丈夫のような気がする)。
@ 23.0.60:
/usr/local/share/tc/bushu.index2 も見えなくしてあったので
ファイル /usr/local/share/tc/bushu.index2 が存在しません。 と言われる 2007/12/24 の日記 を見て入直し。 105 9:17 tar zxf /e/tera/j/distfiles/tc-2.3.1.tar.gz 106 9:17 cd tc-2.3.1/ 107 9:18 patch -s -p1 < ~/Mail/ml/tcode/1545 108 9:18 patch -s -p1 < ~/Mail/ml/tcode/1528 109 9:18 cd etc 110 9:18 mv bushu.rev bushu.rev-orig 111 9:18 cat bushu.rev-orig symbol.rev | sort > bushu.rev 112 9:18 cd .. 113 9:18 ./configure --with-lispdir=/usr/share/emacs/site-lisp/tc-2.3.1 114 9:19 make 115 9:20 sudo make install 116 9:20 emacs . 117 9:21 mkdir ~/T-Code2まだだめだな ..... こんな字が出ているが: config.status: WARNING: etc/Makefile.in seems to ignore the --datarootdir settingこれは多分関係ないとして、文字を指す処理に何か変更があったと思われる。 列 + 列 = 歹となるか、ならないのか、が違う。今回はならない。でも、考えたら 誠 + 誠 = 言となるのだから、データ依存で、単純な論理の問題ではない。でも一応 見るのは、その辺からかな tc-bushu.el: (defun tcode-bushu-convert-preceding-chars (&optional arg) "ポイントの前の2文字を合成する。" ... (tcode-bushu-compose-two-chars prev-prev-char prev-char))) @ tcode-bushu-compose-two-chars:
;;;
;;; 部首合成変換用インタフェース
;;;
;;;###autoload
(defun tcode-bushu-compose-two-chars (char1 char2)
"CHAR1とCHAR2を合成する。"
(tcode-bushu-load-dictionary)
(let* ((str (concat (char-to-string char1)
(char-to-string char2)))
(cache (get (intern-soft str tcode-stroke-table) 'compose)))
(or (and tcode-bushu-use-cache
cache)
(let ((selected-char (tcode-bushu-compose (list char1 char2))))
(when selected-char
(put (intern str tcode-stroke-table) 'compose selected-char)
selected-char)))))
(defun tcode-bushu-compose (char-list)
"Compose a character from characters in CHAR-LIST.
See also `tcode-bushu-functions'."
(catch 'found
(mapcar
(lambda (function)
(let ((r (funcall function char-list)))
(if r
(throw 'found (car r)))))
tcode-bushu-functions)
nil))
これはちょっと分り難い :-) が、多分 tcode-bushu-functions にある関数を
順に試して行く、ということらしい:
(defvar tcode-bushu-functions
'(tcode-bushu-compose-explicitly
tcode-bushu-complete-compose-set
tcode-bushu-complete-diff-set
tcode-bushu-strong-compose-set
tcode-bushu-strong-diff-set
tcode-bushu-weak-diff-set
tcode-bushu-weak-compose-set)
"* A list of functions to apply to characters for a character composition.")
データ依存なのだから、○と×を挙げていく、というのも一つの方法か。
@ 22.0.50 では○で、23.0.60 ではだめなもの:階 + ア = 皆 屋 + 由 = 届 広 + 車 = 庫 列 + 台 = 殆 列 + 列 = 歹どちらも○なもの 比 + 白 = 皆 局 + 由 = 届 応 + 車 = 庫 残 + 台 = 殆結果の違うもの
22.0.50 23.0.60
残 + 残 = 戔 歹
( つっこみ )
|
最近の日記 2025年10月25日 ・recover from disk error 2025年10月23日 ・dd does not duplicate Windows 11 boot disk ? 2025年10月13日 ・missing package 2025年10月04日 ・pkgin search pkgname segfaults 2025年08月16日 ・installboot (Although it’s too late) | ||