新城@筑波大学情報です。こんにちは。

Anthy をかな打ちで使おうとしています。付属のものでは、キーボー
ドとして JIS 配列を仮定していたので、US 配列で使えるように、
修正してみました。これは、だいたいうまくいったのですが、一部、
うまく行かない所があります。それは、バックスラッシュが絡んだ
あたりです。

(defvar anthy-kana-mode-hiragana-map-us
  '(
     ... ("\\" . "へ") ("\\[" . "べ") ("\\=" . "ぺ") ...
   ))

「へ」に、「\」を割り当てました。これはうまくいきます。
「べ」に「\[」を割り当てようとしても、うまくいきません。
「ぺ」に「\=」を割り当てようとしても、うまくいきません。

これを解決するための何かヒントはないでしょうか。

とりあえずは、次のような定義を入れてしのいではいます。
    ("|" . "へ")    ("|[" . "べ")    ("|=" . "ぺ")
「へ」に「|」を割り当てました。

使っている Anthy は、anthy-9100e です。Emacs は、22.0.91.1 
です。よろしくお願いします。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

以下は、anthy-conf.el を少し修正して作った anthy-conf-us.el 
というものです。-map というのに -map-us と変更して作りました。
一部もどしたものもあります。使われていない変数もあるかと思い
ます。

----------------------------------------------------------------------
;; anthy-conf-us.el -- Anthy Kana for US layout keyboard


;; Copyright (C) 2002
;; Author: Yusuke Tabata<yusuke@kmc.gr.jp>

;; Modified by Yasushi Shinjo <yas@is.tsukuba.ac.jp>
;; 2008/09/02 17:14:20


;;; Commentary:
;;

(defvar anthy-alt-char-map-us
  '(("," ",")
    ("." ".")))

(defvar anthy-kana-mode-hiragana-map-us
  '(
    ("3" . "あ")    ("e" . "い")    ("4" . "う")    ("5" . "え")    ("6" . "お")
    ("#" . "ぁ")    ("E" . "ぃ")    ("$" . "ぅ")    ("%" . "ぇ")    ("^" . "ぉ")
    ("t" . "か")    ("g" . "き")    ("h" . "く")    ("'" . "け")    ("b" . "こ")
    ("t[" . "が")   ("g[" . "ぎ")    ("h[" . "ぐ")    ("'[" . "げ")    ("b[" . "ご")
    ("x" . "さ")    ("d" . "し")    ("r" . "す")    ("p" . "せ")    ("c" . "そ")
    ("x[" . "ざ")   ("d[" . "じ")    ("r[" . "ず")    ("p[" . "ぜ")    ("c[" . "ぞ")
    ("q" . "た")    ("a" . "ち")    ("z" . "つ")    ("w" . "て")    ("s" . "と")
    ("q[" . "だ")   ("a[" . "ぢ")    ("z[" . "づ")    ("w[" . "で")    ("s[" . "ど")
    ("u" . "な")    ("i" . "に")    ("1" . "ぬ")    ("," . "ね")    ("k" . "の")
    ("f" . "は")    ("v" . "ひ")    ("2" . "ふ")    ("\\" . "へ")    ("-" . "ほ")
    ("f[" . "ば")   ("v[" . "び")    ("2[" . "ぶ")    ("\\[" . "べ")    ("f[" . "ぼ")
    ("f=" . "ぱ")   ("v=" . "ぴ")    ("2=" . "ぷ")    ("\\=" . "ぺ")    ("-=" . "ぽ")
    ("j" . "ま")    ("n" . "み")    ("]" . "む")    ("/" . "め")    ("m" . "も")
    ("7" . "や")    ("8" . "ゆ")    ("9" . "よ")
    ("&" . "ゃ")    ("*" . "ゅ")    ("(" . "ょ")
    ("o" . "ら")    ("l" . "り")    ("." . "る")    (";" . "れ")    ("\"" . "ろ")
    ("0" . "わ")    (")" . "を")

    ;; 困ったことに バックスラッシュと円を区別する方法がわからない
    ("}" . "ー")    ("_" . "ろ")    ("<" . "、")    (">" . "。")    ("?" . "・")
    ("Z" . "っ")    ("y" . "ん")

    ("!" . "!")    ("@" . "@")    ("+" . "「")    ("{" . "」")    ("`" . "`")
    ("~" . "〜")    ("[" . "゛")    ("=" . "゜")
    ("|" . "へ")    ("|[" . "べ")    ("|=" . "ぺ")    (":" . "れ")
    ))

(defvar anthy-kana-mode-katakana-map-us
  '(
    ("3" . "ア")    ("e" . "イ")    ("4" . "ウ")    ("5" . "エ")    ("6" . "オ")
    ("#" . "ァ")    ("E" . "ィ")    ("$" . "ゥ")    ("%" . "ェ")    ("^" . "ォ")
    ("t" . "カ")    ("g" . "キ")    ("h" . "ク")    ("'" . "ケ")    ("b" . "コ")
    ("t[" . "ガ")    ("g[" . "ギ")    ("h[" . "グ")    ("'[" . "ゲ")    ("b[" . "ゴ")
    ("x" . "サ")    ("d" . "シ")    ("r" . "ス")    ("p" . "セ")    ("c" . "ソ")
    ("x[" . "ザ")    ("d[" . "ジ")    ("r[" . "ズ")    ("p[" . "ゼ")    ("c[" . "ゾ")
    ("q" . "タ")    ("a" . "チ")    ("z" . "ツ")    ("w" . "テ")    ("s" . "ト")
    ("q[" . "ダ")    ("a[" . "ヂ")    ("z[" . "ヅ")    ("w[" . "デ")    ("s[" . "ド")
    ("u" . "ナ")    ("i" . "ニ")    ("1" . "ヌ")    ("," . "ネ")    ("k" . "ノ")
    ("f" . "ハ")    ("v" . "ヒ")    ("2" . "フ")    ("\\" . "ヘ")    ("-" . "ホ")
    ("f[" . "バ")    ("v[" . "ビ")    ("2[" . "ブ")    ("\\[" . "ベ")    ("-[" . "ボ")
    ("f=" . "パ")    ("v=" . "ピ")    ("2=" . "プ")    ("\\=" . "ペ")    ("-=" . "ポ")
    ("j" . "マ")    ("n" . "ミ")    ("]" . "ム")    ("/" . "メ")    ("m" . "モ")
    ("7" . "ヤ")    ("8" . "ユ")    ("9" . "ヨ")
    ("&" . "ャ")    ("(" . "ュ")    (")" . "ョ")
    ("o" . "ラ")    ("l" . "リ")    ("." . "ル")    (";" . "レ")    ("\"" . "ロ")
    ("0" . "ワ")    (")" . "ヲ")

    ;; 困ったことに バックスラッシュと円を区別する方法がわからない
    ("}" . "ー")    ("_" . "ロ")    ("<" . "、")    (">" . "。")    ("?" . "・")
    ("Z" . "ッ")    ("y" . "ン")

    ("!" . "!")    ("@" . "@")    ("+" . "「")    ("{" . "」")    ("`" . "`")
    ("~" . "〜")    ("[" . "゛")    ("=" . "゜")
    ("|" . "ヘ")    ("|[" . "ベ")   ("|=" . "ペ")   (":" . "レ")
    ))
;;
;; mapの変更
;;
(defun anthy-send-map-us-edit-command (mapno key str)
  (if (not (stringp key))
      (setq key (char-to-string key)))
  (if (not (stringp str))
      (setq str (char-to-string str)))
  (anthy-send-recv-command
   (concat " MAP_EDIT " (int-to-string mapno)
           " " key " " str "\n")))
(defun anthy-change-hiragana-map-us (key str)
  (anthy-send-map-us-edit-command 2 key str))
(defun anthy-change-katakana-map-us (key str)
  (anthy-send-map-us-edit-command 3 key str))
(defun anthy-load-hiragana-map-us (map)
  (mapcar (lambda (x)
            (let ((key (car x))
                  (str (cadr x)))
              (anthy-change-hiragana-map-us key str))) map))
(defun anthy-clear-map-us ()
  (anthy-send-recv-command
   " MAP_CLEAR 0\n"))
;;
;; toggleの変更
;;
(defun anthy-send-change-toggle-command (str)
  (anthy-send-recv-command
   (concat " CHANGE_TOGGLE " str "\n")))

;; should disable toggle
;; (ローマ字ではなくて)かなモードにする
(defun anthy-kana-map-us-mode ()
  (setq anthy-rkmap-keybind
        '(
          ;; \C-p
          (("hiragana" . 16) . "katakana")
          (("katakana" . 16) . "hiragana")))
  (define-key anthy-mode-map (char-to-string 16) 'anthy-insert)
  (anthy-send-recv-command " SET_PREEDIT_MODE 1\n")
  (anthy-send-change-toggle-command "!")
  (anthy-clear-map-us)
  (mapcar (lambda (x)
            (anthy-change-hiragana-map-us (car x) (cdr x)))
          anthy-kana-mode-hiragana-map-us)
  (mapcar (lambda (x)
            (anthy-change-katakana-map-us (car x) (cdr x)))
          anthy-kana-mode-katakana-map-us))
;;
(defun anthy-set-break-into-roman (flag)
  "読みを入力中にバックスペースを打つとローマ字までバラバラにする"
  (anthy-send-recv-command
   (if flag
       " BREAK_INTO_ROMAN 1\n"
     " BREAK_INTO_ROMAN 0\n")))

(provide 'anthy-conf-us)