トップ «前の日記(2006年02月03日 (金)) 最新 次の日記(2006年02月05日 (日))» 編集

*Messages*

Search

書いてる人: しまだみつのぶ (aka. simm, saica)

最新情報URL: https://gouketsu.net/simm/d/

"8024402C"でたどり着かれた方はこちら: 「壁の内側からWindowsUpdateに失敗する


2006年02月04日 (土) [長年日記]

1 実家にて

カニをいただく。

2 [comp] Windows上のEmacsenでTrueTypeフォントを使う設定

ここ数日いろいろやってみたのだが

  1. ANK文字と日本語文字の幅が1:2にならない
  2. IPAゴシックを使えば1:2になるが、0x5cが円記号になってしまう

等、なかなか気に入る設定ができなかったのだが、ようやく解決。

ntemacs、Meadowそれぞれについて、後述する関数 my-create-fontset を作り、

(my-create-fontset "Andale Mono" "SH G30_M" "lc" 13 16 12)

というような呼び出しを行うことで、

  • 0x5c がバックスラッシュになり
  • ANK文字と日本語文字の幅が1:2になる

設定ができた。

もちろん Andale Mono と SH G30-M の組み合わせである必要はないが、結構見やすいので、この組み合わせにした。

ntemacs 版 my-create-fontset

(defun my-create-fontset (usname jpname shortname ussize jpsize imesize)
  (create-fontset-from-fontset-spec
   (concat
    (format my-fontset-format usname ussize shortname jpsize)
    ",japanese-jisx0208:" (format my-font-name-format jpname jpsize "jisx0208-sjis")
    ",japanese-jisx0212:" (format my-font-name-format jpname jpsize "jisx0208-sjis")
    ",katakana-jisx0201:" (format my-font-name-format jpname jpsize "jisx0208-sjis")
    ",latin-jisx0201:" (format my-font-name-format usname ussize "iso8859-1")
    ",japanese-jisx0208-1978:" (format my-font-name-format jpname jpsize "jisx0208-sjis")))
  (setq my-ime-font (format my-font-name-format jpname imesize "jisx0208-sjis")
        my-default-font (format my-fontset-format usname ussize shortname jpsize)
        my-frame-left -16
        w32-bdf-filename-alist (w32-find-bdf-fonts bdf-directory-list)))

Meadow 版 my-create-fontset

(defun my-create-fontset (usname jpname shortname ussize jpsize imesize)
  (w32-add-font
   (format "%s-%d" shortname jpsize)
   `((spec
      ;; ascii
      ((:char-spec ascii :height any) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ((:char-spec ascii :height any :weight normal :slant italic) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ((:char-spec ascii :height any :weight bold) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ((:char-spec ascii :height any :weight bold :slant italic) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ;; latin-jisx0201
      ((:char-spec latin-jisx0201 :height any) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ((:char-spec latin-jisx0201 :height any :weight normal :slant italic) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ((:char-spec latin-jisx0201 :height any :weight bold) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ((:char-spec latin-jisx0201 :height any :weight bold :slant italic) strict
       (w32-logfont ,usname 0 ,(- ussize) 400 0 nil nil nil 0 1 3 49))
      ;; katakana-jisx0201
      ((:char-spec katakana-jisx0201 :height any) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 400 0 nil nil nil 128 1 3 49))
      ((:char-spec katakana-jisx0201 :height any :weight normal :slant italic) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 400 0 t nil nil 128 1 3 49))
      ((:char-spec katakana-jisx0201 :height any :weight bold) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 700 0 nil nil nil 128 1 3 49)
       ((spacing . -1)))
      ((:char-spec katakana-jisx0201 :height any :weight bold :slant italic) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 700 0 t nil nil 128 1 3 49)
       ((spacing . -1)))
      ;; japanese-jisx0208
      ((:char-spec japanese-jisx0208 :height any) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 400 0 nil nil nil 128 1 3 49))
      ((:char-spec japanese-jisx0208 :height any :weight normal :slant italic) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 400 0 nil nil nil 128 1 3 49))
      ((:char-spec japanese-jisx0208 :height any :weight bold) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 700 0 nil nil nil 128 1 3 49)
       ((spacing . -1)))
      ((:char-spec japanese-jisx0208 :height any :weight bold :slant italic) strict
       (w32-logfont ,jpname 0 ,(- jpsize) 700 0 nil nil nil 128 1 3 49)
       ((spacing . -1))))))
  (setq my-ime-font `(w32-logfont ,jpname 0 ,(- imesize) 400 0 nil nil nil 128 1 3 49)
        my-default-font (format "%s-%d" shortname jpsize)
        my-frame-left 0))
本日のツッコミ(全2件) [ツッコミを入れる]
1 新堂 (2006年02月05日 (日) 01:35)

katakana-jisx0201 (と latin-jisx0201 も?) はエンコーディングに関する設定も必要かもしれません。<br>設定していないと、状況によっては文字化けなどの原因となるはずです。<br><br>;; ascii, latin-jisx0201 で bold と italic を、<br>;; japanese-jisx0208 で italic を実質的にはずしているのは、<br>;; やはりわざとですか?<br>;; もしそうであれば、理由をお聞かせください。(興味津々 :-)

2 simm (2006年02月05日 (日) 14:49)

boldとかitalicが抜けてる理由は、単に、以前の設定をそのままもってきただけです。そこまで意識してません。<br># 指摘されるまで気付いていなかった説 (^^;<br>ということで、もう少し見直してみます。


Information

更新情報取得方法

*Messages* の更新情報取得には、antenna.lirs もしくは index.rdfをご利用ください。 豪傑アンテナLIRSからも取得可能です。