トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Meadow setup

最終更新時間:2006年10月18日 14時35分17秒

Windows上で動作する emacs,Meadowについて.Cygwinと合わせればWindows上でも比較的まともな作業環境が手に入る.

主な用途は,・Wanderlust でメールを読み書きする・YaTeXで文書作成の2点.

なお,Cygwin はインストール済みとする.Cygwinについては Cygwin setup も参照.

Meadowのインストール

Meadowは

から入手できる.インストールはCygwinと同じように,パッケージを選択していくもの.基本的なインストールについての解説はここでは割愛する.

install.exe
インストールすると,最後に「install.exe を実行する」というチェックボックスがある.この install.exe によって Meadow が .emacs をどこから読むかを決めることができる.Cygwin を使っている場合は,Cygwinのホームディレクトリにしておくと分かりやすいだろう.
デフォルトのディレクトリ
Meadowをインストールして起動すると,デフォルトでは作業ディレクトリがインストール先(例えばC:\meadow\bin)になっている.普通こんなところで作業はしないので,Meadowのショートカットのプロパティを開き,「作業フォルダ」を適切に設定しておく.(上の install.exe で指定した .emacsを置くディレクトリにしておくと分かりやすいだろう.)

Wanderlust on Meadow

Wanderlust はパッケージで選択できるので,特に問題なく使うことができる.ただし,STARTTLSを使う場合は少し作業・特殊な設定が必要となる.

STARTTLS

STARTTLSについては,Wanderlust MLstarttls on Cygwinのスレッドを参考にしました.また,そのスレッドに登場する岡田さんにも直接アドバイスをいただきました.どうもありがとうございました.

STARTTLSのインストール

UW-IMAP with LDAP で書いたのと同じように,STARTTLSにはftp://opaopa.org/ の starttls を使う.Cygwin 上でコンパイルする.ちょっとソースいじった方がいいらしい.よく理解していないので,なにがどうよくなるのかは不明.

 % tar zxvf starttls-0.10.tar.gz
 % cd starttls-0.10
 % ./configure
 % cp starttls.c starttls.c-orig
 % vi starttls.c
 % diff -u starttls.c-orig starttls.c
 --- starttls.c-orig	2006-04-16 15:23:46.703125000 +0900
 +++ starttls.c	2006-04-11 18:59:39.750000000 +0900
 @@ -229,7 +229,7 @@
  #else
    fd_set readfds, writefds;
  #endif
 -  char buffer[BUFSIZ], *retry;
 +  char buffer[BUFSIZ*8], *retry;
    struct sigaction act;
  
    int this_option_optind = optind ? optind : 1;
 % make
 # make install

これで,starttls.exe が (Cygwin の)/usr/local/binにインストールされる.普通この手順では starttls.elの方はインストールされない(configureスクリプトが emacs を検出できないため)ので,starttls.elは手動で Meadowの読めるところに置く.

自分のホームディレクトリに置いて load-path を通すもよし,Meadowの site-lisp (C:\meadowに Meadowをインストールした場合は C:\meadow\site-lisp)に置くもよし.また,バイトコンパイルもしてもしなくてもよい.

トラブルシューティング : wrong version number

Meadowのインストール時に gnus もインストールするようにすると,gnus の starttls.el が読み込まれてしまい,うまく接続できない (らしい.自分では未確認).

メールサーバのログに

SSL3_GET_RECORD:wrong version number

が残っていたら,gnus の starttls.el を読んでいないか確認する.解決するには,gnusの starttls.el を消せばよい.

:この情報は小林先生から頂きました.

Wanderlustの設定

MeadowでSTARTTLSする場合,TLSの negotiation から帰ってこないため,そのまま応答がなくなってしまう.そのため,以下の設定をして kill するようにする

 (setq starttls-negotiation-by-kill-program t)
 (setq starttls-kill-program "D:/cygwin/bin/kill")

もちろん,これはCygwinをD:\cygwinにインストールした場合.

あとは普通の emacs と同じように設定すればよい.詳細は UW-IMAP with LDAP の方を参照.

YaTeX with Cygwin

MeadowのYaTeXから Cygwinの platex や xdvi や lpr などを叩くには,少々設定が必要.

環境変数の設定

Cygwin setup の通り ptetex をインストールしたとすると,platex などのコマンドは(Cygwinの)/usr/local/teTeX/binに置かれている.そのため,環境変数でここにパスを通しておく.

Windowsの環境変数は,マイコンピュータのプロパティから「詳細」→「環境変数」と進む(WindowsXPの場合,少し違うかも知れない.今手元にXPがないので確認できず).そこで,以下のように環境変数を設定しておく.

CYGWIN_HOME
D:\cygwin
PATH
%CYGWIN_HOME%\usr\X11R6\bin;%CYGWIN_HOME%\usr\local\teTeX\bin;%CYGWIN_HOME%\bin;%SystemRoot%\system32;%CYGWIN_HOME%\usr\local\bin;C:\meadow\bin;

重要なのは,/usr/local/teTeX/bin/usr/X11R6/binにパスを通すこと./usr/X11R6/binにもパスを通しておかないと,xdvi で DLLがないとかで怒られる.

また,Cygwin setup の方でも書いたように,/usr/local/teTeX/bin/usr/X11R6/binはCygwinの他のディレクトリより先に検索されなければならない.そうしないと日本語TeXのパッケージでインストールしたバイナリではない dvips や gs が実行されることになり,フォント関係のエラーが出たり xdvi で EPSファイルが表示されなかったりする.

.emacs の設定

 (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
 
 (setq tex-command "platex")
 (setq bibtex-command "jbibtex")
 (setq dvi2-command "xdvi-xaw3d.bin.exe -display localhost:0")
 (setq dviprint-command-format "dvips -f %s | lpr-cygwin -Pprintername")
  • platex, jbibtex はそのままで動く.
  • xdvi は,本体が xdvi-xaw3d.bin.exe なので,こちらを指定.また,そのままだと "Can't open display"になってしまうので,"-display"も指定しておく.
  • lprは,Windowsの lpr (C:\WINNT\system32\lpr.exe)を実行しないように注意.なぜか/usr/bin へのPATHを先に通しても C:\WINNT\system32\lpr.exe が実行されてしまうので,Cygwinの方を lpr-cygwinという名前でコピーしてそちらを使うという回避策を取った.
  • また,Meadowには Cygwinの環境変数 PRINTER は引き継がれていないので,lpr に明示的にプリンタを指定する必要がある.

Meadowで M-x lpr-buffer

メールや適当なテキストなどを印刷するときに M-x print-bufferM-x lpr-buffer を使うが,これを Meadow で使うための設定をする.

Cygwinのa2psを使う (日本語印刷不可)

lpr自体はインストールされているんので,a2psを通せば印刷できるはずである..emacsに下のように追加すれば,印刷はできる.

(注:この設定はWebのどこかから拾ってきたものを改造したものだが,ソースを失念してしまった.)

(setq lpr-command "lpr-cygwin")
(setq print-command-format "a2ps -o- | lpr-cygwin -Pprintername")
      (defun print-region (begin end)
	(interactive "r")
	(shell-command-on-region begin end print-command-format))
      (defun print-buffer ()
	(interactive)
	(print-region (point-min) (point-max)))
      (setq print-function (function print-buffer))

が,cygwin の a2ps は日本語を正しく印刷してくれない.Cygwin JEにa2psはあるが,コンパイルできなかったのですぐに諦めてしまった.

ak2pr

a2psの代わりにak2prを使うことで日本語も印刷できる.ak2prをインストールし,.emacsに下のように設定する.

 (setq lpr-command "c:/cygwin/somewhere/bin/ak2pr.exe")
 (setq lpr-switches '("-T"""))
 (setq lpr-add-switches t)
 (setq lpr-command-switches '())

この中でlpr-switchesの設定はタイトルを強制的に空文字列に設定している.これをしないと,印刷した最後に emacs のバッファ名が1行だけ書かれた紙が印刷されてしまう.仕様なのかどうか分からないが,紙の無駄なので空文字列にして余計な紙が印刷されないようにした.

ak2prの設定

ak2prの設定は,ak2prSv.exeを実行し,タスクトレイのアイコンを右クリック→ページ設定で行う.段組数やフォントを好みに応じて変更する.また,設定のテストをしている間は「プレビュー確認後に印刷する」をチェックしておくと紙を無駄遣いしなくて済む.

Migemo

Migemoとは,ローマ字を入力することで日本語もインクリメンタルサーチできてしまうツール.メールのFromなどを検索するときに便利だが,ちょっと重い.

Meadowの場合,パッケージが Utils にあるので,それを入れればOK..emacsの設定もせずに動く.

あまりにあっさり動いたために設定の仕方などはまだ調べていない.