[TOP] [UP] [最新TIPS] [Prev[2007]] [Next[2009]]

Debian/GNU Linux Personal Tips 2008

  1. metapostをxdviで表示する2(2008年6月13日)
  2. gnuplot 4.2が不調だったのが解決(2008年6月2日)
  3. Canon BJS700、再び(2008年1月5日)
  4. Emacs22への移行とcmail, TRR, Viper (2008年1月4日)

metapostをxdviで表示する2(2008年6月13日)

以前、「metapostをxdviで表示する」ことについてのtipを書きましたが、 ずいぶん時代おくれになってました。

ひさしぶりにmetapostをつかってみようとしたらjmpost自体がうまく動かず、 jmpost.mpmakempx: Command failed: dvitomp mpxerr.dvi jmpost.mpx というエラーを吐きます。これは jmpost が内部で呼び出す pmakempx が pdvitomp ではなく、 texlive-metapost の dvitomp を呼んでしまうからで、素のmpostは忘れることにして、 安直に

cd ~/bin; ln -s /usr/bin/pdvitomp dvitomp
してしまいました。

ま、それはともかく?

現在のlennyの環境では「metapostをxdviで表示する」で紹介したgs.plはすでに不要で、 逆にgs.plをかますと表示できなくなります。

ついでに。jmpostでは和字が使えるんですが、xdviでのプレビューでは和字部分だけ化けます。 dvipdfmxでPDFに変換したものではちゃんとしているので、生成されるEPS自体が悪いわけではなさそうですが、不便です。

ちょっと調べてみるとjmpostが生成したEPS内部のフォント定義は

 /rml /rml def
      /rmlv /rmlv def

などとなっています(prologues:=1;)が、これを

 /rml /Ryumin-Light-H def
      /rmlv /Ryumin-Light-V def

と書きかえるとxdviで和字もちゃんとプレビューできました。 jmpostを呼び出して、生成されたEPSを書きかえるスクリプトを書いて、めでたしめでたし。


gnuplot 4.2が不調だったのが解決 (2008年6月2日)

debian lennyのgnuplotは、ずいぶん前にversion 4.2になって、x11上では(?)GTKを利用したGUIもついてきてます。

使い勝手もかなり向上したのかと思いきや、 なぜかときどき全く反応しなくなりcommand lineからquitもできず、 グラフのウィンドウも強制終了させないと閉じることさえできない、 などというまったく実用的に使えない状態になってしまいました。 まあいいやと追求もせずに4.0系列に固定してたのですが、 昨日、別のマシンのdebian lennyでは4.2がちゃんと動いているのに気付いたので、 主マシンでも4.2にバージョンアップしました。

が、やっぱり駄目駄目です(^^;

ってことは両者に何か細かい環境の違いがあるはずと調べてみたら、 環境変数GTK_MODULESの内容が違いました。動く環境では、

GTK_MODULES=gnomebreakpad
なのが、 動かない主マシンでは
GTK_MODULES=gnomebreakpad:gail:atk-bridge
となっています。これを、意味もわからず(^^;
      $ export GTK_MODULES=gnomebreakpad
      $ gnuplot
と変更してみると、4.2も正常に動くようになりました。

じゃあ、このatk-bridgeはなんなんだ?と検索してみたら、gnomeの「支援技術」関係のものらしい。 「システム」⇒「設定」⇒「支援技術」と開いてみると、 「支援技術を有効にする」のボックスにチェックが入っていました。 これを外してログインしなおす(必要があるかどうかは?)と、 GTK_MODULES=gnomebreakpadとなり、gnuplotも正常に動くようになりました。

って、ぼくは「支援技術」のお世話にはならなくていいんだけどさ?


Canon BJS700、再び (2008年1月5日)

Canon BJS700(2004年9月9日)でCUPSでの設定を書いたのですが、 lennyを新規インストールしたものに継ぎ直したので、BJS700も再設定です。

基本的な環境として、gnome-desktop-environmentが入っているので、cupsはすでにインストールされています。

  1. foomatic-filters-ppds をインストールします。
  2. プリンタをPCにUSBで接続し、電源を入れておきます。
  3. http://localhost:631/にアクセスし、プリンタの追加を選びます。
  4. 適当に名前をつけて次へ進むとデバイスの選択画面になるので、 「Canon BJ S700 USB #1 (Canon BJ S700 USB)」を選びます。 プリンタを先につないでおかないとこの選択ができません。
  5. http://localhost:631/にアクセスし、「管理」から「新しいプリンタの検索」を選ぶと、 「Canon BJ S700 USB #1 (Canon BJ S700 USB)」があるので、それを追加します。
  6. モデル/ドライバの選択には、あいかわらず(^o^; BJS700そのものはないので、 「Canon S630 Foomatic/bj8pa06n.upp (recommended)」を選んでみました。
以上で、うまく印刷できるようです。


Emacs22への移行とcmail, TRR, Viper (2008年1月4日)

ようやくemacs22へ移行しました。 emacs21にmule-ucsを使ってutf8対応していたのですが、 その重さが気になりだしたことと、 たま〜にしか使わないWindows XPにemacs22を入れてしまったことから、 そろそろemacs21も潮時と思ったのでした。 移行の際に問題になったことなどをメモっておきます。

Viper on Emacs22

emacs22では、\C-[Escとして働いてくれません。これはかなり辛い(^o^;

(define-key viper-insert-basic-map "\C-[" 'viper-intercept-ESC-key)

と明示的に指定するしかないようです?

TRR21 on Emacs22

emacs上のタイプ練習ソフトのTRR21はemacs22でも変更なしで動いてますが、 多国語対応TRR21へリンクがはられていたりで予想外に参照されているので、 確認の意味でコメントしておきます。

emacs22用に再インストールしたときに、ひとつ忘れてひっかかったことがありました。 Makefileの修整で、 「# Name of your sed」は「SED = /usr/sed」にしておかないとmake自体に失敗しますが、 「# Name of your grep」も「GREP = /bin/grep」に修整しておく必要があります。 でないと、makeもインストールも成功するのに、M-x trrのあとテキストを選んだ時点でエラーになります。

Cmail on Emacs22

メールの読み書きはこの何年か、emacs+cmailを使ってきました。 しかし、 cmailは新しいバージョンはもう何年も出ず、 しかも次期メジャーバージョンのLennyにcmailはもうないので今後を考えねばという状況です。

Etchのcmailを混ぜておけばいい気もするのだけど、 21以前のemacsに依存しているので、 emacs22しか使わなくてもemacs21を削除できません。 それで良ければ、下に書いた不具合の修整だけしておけばdebianのパッケージのままcmailをemacs22で利用できます。

他のメイラーを試してみるけれど

流行のWanderlust(wl)も試してみましたが、保存メールの管理の仕方が私にはいまひとつでした。 また、Gmailの興隆などを見ていると、 個々人のPCでメールを管理するという考え方自体がもう何年かで廃れる気配さえ感じるので、 いまさらwl流に対応する気にもなれないのでした(単に歳か^_^;)

他の選択肢として、Nemacsやemacs19/Muleの頃に愛用していたVM (View Mail)の最近のものも試してみました。 これがなかなか使い勝手も良いので、細かい設定もしてみたんですが、う〜、やっぱり洋物なんですね(^_^; 添付ファイルのファイル名が和字だとちゃんと表示できないとか、summaryの和字が化けるだとか、なかなかやっかいです。 VMはXemacsにバンドルされているので、Xemacsのユーザのページを探せば解決するかなと思ったのですが、 VMは日本ではあまり使われてないのか見当りません。

この項目とは関係ないけど、emacs20へ移行したときにVMからcmailへ乗換えたのは、 VMがまだemacs20に未対応だったからだということを思い出しました。 emacs20への移行を決めたのは、本家emacsにMuleが取りまれて使い勝手が良くなったことからでした。 今回のemacs22への移行もmule-ucs機能が取り込まれたことが一番のメリットなので、 結局どちらも和字への対応のためなんだと気付いた次第。

そんなかんなで結局、cmailのままemacs22へ移行することにしました。 ただし、cmailはdebianのパッケージに頼らず、自前でインストールすることにしました。 MIMEのためのsemiは、debianのパッケージのお世話になっています。

Cmailをemacs22でインストールしてみる

semi(debianのパッケージ)をcmailのインストール前にインストールしておくと、 emacs22でも、cmailのパッケージcmail-2.62+20030802.tar.gzのドキュメント README.ja の指示通りの作業で問題なくインストール作業は終了できます。 ただし、cmailではemacs22で廃止(obsolute)になった関数が使われているので、 そのままでは起動すらできません。 ~/.emacsに次を追加しておく必要があります。 この情報はWebを検索すれば他でも出てきますね。

(defalias 'buffer-flush-undo 'buffer-disable-undo)

また、semiの設定を明示的に追加しておく必要があるようです。

(require 'mime-setup)
(require 'mime-view)

設定は~/.emacsに書いておけばいいのですが、(私にとって)管理しやすいように、 ~/.emacsには(load "~/.cmail.el")とだけ書いておき、 ~/.cmail.d/に分割した設定ファイルを置いてます(~/.emacsの書き方)。 たとえば、Etchのcmailのグローバルな設定(/etc/emacs/site-lisp.d/50cmail.el)を参考にした 00debian-setup.el~/.cmail.d/に置いています。

メールの振り分けの設定を行なう変数cmail-folder-alistの設定も~/.cmail.d/以下に置いてあり、 この変数をいじることがたまにありますが、 設定を変更してもemacsは再起動せずに"~/.cmail.el"を再ロードするだけです (そういう関数を作ってLにバインドしてます)。

残念ながら他にもemacs22で動かす上での不具合がありました。 変数cmail-select-from-alistを設定しておくとメールの宛て先に応じたFrom:が作れるはずなのですが、 この機能が(私の手元の)emacs22では動いていません。 挙動を追う限りでは、emacs22のmail-modeが(?)cmailのcmail-mail-modeに先だってFrom:を作るのが原因のようです。 emacs22本体のコードをいじるのは本末転倒のような気がするので、 この問題に関係するcmail-reply.el内の関数cmail-mail2をいじることにしました。 mail-modeが作ったFrom:を強引に削除するコードをcmail-mail2に追加した新しい関数を、 patch/75cmail-reply-patch-1.elに準備して、 05patch.elでcmailのロード後に関数を上書きさせてます。

追記(2009年11月19日(木)):中川誠様より、 「emacs22から mail-modeに mail-setup-with-fromという変数が追加されており、 nilに設定することで、mail-modeに fromヘッダを生成させないようにすることができます。」 との情報をいただきました。 上記の 75cmail-reply-patch-1.elを廃止したうえで、 (setq mail-setup-with-from nil)を適当な設定ファイル(~/.emacsなど)に設定することで、 cmail-select-from-alistがちゃんと機能しました。 ありがとうございました。

ついでに、メールをauto-archive (A)するときに、どこへarchiveされたのかを別のバッファ(CMAIL-ARCHIVE-LOG)へ記録するようにした関数も作ってみました。 patch/75archive-dry-run.elpatch/75archive-patch.elです。

なお、こんな場当たり的な対応でcmailのソースを直接いじらないのは、 なんらかの都合でcmailを再インストールする羽目になったとき、 これらの設定ファイルを持っていけばそれですむからです。 気付いてないだけで、cmail-select-from-alistみたいな不具合が他にもあるんだろうなあ。 気がついた時点で対処しよう。

emacs22にした効果として、CP932(MSの独自拡張Shift-JIS?)でメールが送られてくることが増えてきたんだけど、 emacs21+mule-ucs+cmailでは読めなかったのが、emacs22+cmailではちゃんと読めるようになりました(^o^;


小栗栖 修
メールアドレス: ogurisu[AT]kanazawa-u.ac.jp ([AT]を@におきかえてください)

Last modified: Sun Dec 6 10:05:41 JST 2009