hns - 日記自動生成システム - Version 2.19.9

先月 2008年03月 来月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
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
残 + 残 =   戔       歹



最近の日記
2024年05月06日
py-setuptools (python 3.11.9)
make release took 1 hours and 10 min
qemu invocation for 10.99.10
2024年05月05日
Windows 10 version
serial connection
bc bench
2024年05月04日
Trial on 10.99.10
another version (later trial) to succeed
2024年04月29日
dkim
2024年03月10日
停電 (瞬電)
以上、1 日分です。
タイトル一覧
カテゴリ分類
Powered by hns-2.19.9, HyperNikkiSystem Project

Count.cgi (since 2000/02/05)