2010年9月3日金曜日

Emacs仕事術(3) 印刷設定


このエントリーをはてなブックマークに追加


NTEmacsの致命的な点として、標準では全く印刷ができないという点につきる。

Notepadを呼び出して、そこにバッファの内容をコピーして印刷する方法もあるが、
試してみたところ、カラー印刷できないうえに、レイアウトが崩れるものあった。

少々設定は面倒だが、Ghostscriptを使ったPS印刷できる環境を整えることにする。
Ghostscriptに関しては、インストール時にレジストリを操作するので、
新環境に移行した場合には再インストールが必要となるので注意。
(これまでの設定に関しては C:\emacs ごとコピー すれば別環境でも使用可能)

これからは、こういった移行先でのインストール等が必要なものは、
c:\emacs\utils へまとめて入れておくことにする。
1. 必要なもの

1) Ghostscript
http://auemath.aichi-edu.ac.jp/~khotta/ghost/
からgs871w32full-gpl.zipを取得してくる。

2) BDFフォント
結構リンク切れする場合があるので、その時はファイル名をGoogleで検索すると見つかる。
http://ftp.yz.yamagata-u.ac.jp/pub/GNU/intlfonts/intlfonts-1.2.1.tar.gz


2. インストール

1) BDFフォントのインストール
intlfonts-1.2.1.tar.gzを解凍し、できたフォルダを C:\emacs\font\intlfonts-1.2.1 として配置する。

2)Ghosscriptのインストール
解凍すると、README.W32というファイルができるので、読みながらインストールする。
大して難しくない。

インストール先: c:\gs
オプション: Use Windows TrueType fonts for Chinese, Japanese and Korean


3. emacs の設定

以下を.emacsへ追加
↓↓↓↓↓↓ここから↓↓↓↓↓↓
;; ---------------------------------------------
;; 印刷設定
;;  Ghostscriptが必要
;;   http://auemath.aichi-edu.ac.jp/~khotta/ghost/
;;  BoldFontが必要
;;   http://ftp.yz.yamagata-u.ac.jp/pub/GNU/intlfonts/intlfonts-1.2.1.tar.gz
;;
;;     M-x ps-print-buffer           バッファを白黒印刷
;;     M-x ps-print-buffer-with-face バッファをカラー印刷
;;     M-x ps-print-region           リージョンを白黒印刷
;;     M-x ps-print-region-with-face リージョンをカラー印刷
;; ---------------------------------------------

(require 'cl)
(defun listsubdir (basedir)
  (remove-if (lambda (x) (not (file-directory-p x)))
             (directory-files basedir t "^[^.]")))

; フォントパスを指定
(setq bdf-directory-list
      (listsubdir "c:/emacs/font/intlfonts-1.2.1"))

; ghostscriptの実行コマンド場所を指定
(setq ps-print-color-p t
      ps-lpr-command "c:/gs/gs8.71/bin/gswin32c.exe"
      ps-multibyte-buffer 'non-latin-printer
      ps-lpr-switches '("-sDEVICE=mswinpr2" "-dNOPAUSE" "-dBATCH" "-dWINKANJI")
      printer-name nil
      ps-printer-name nil
      ps-printer-name-option nil
      ps-print-header nil          ; ヘッダの非表示
      )
↑↑↑↑↑↑ここまで↑↑↑↑↑↑

これで、M-x から ps-print-buffer か、メニューの「File」→「PostScript Print Buffer」等を選択すると、Windowsプリンタの選択画面がでるので、後はWindows同様に印刷すれば良い。

この時、Windows XPS Writer等を選択すると、実際に印刷は行わず、印刷形式のままファイルとして保存してくれるので、印刷プレビューの替わりに使うと便利。

2010/09/10 追記
ps-print-bufferはデフォルトでバッファ情報等をヘッダとして印刷するが、ここに日本語が含まれていると文字化けしてしまう。回避方法が分からなかったので安直だが、ヘッダを印刷しないように設定。

入門GNU Emacs第3版

入門GNU Emacs第3版

価格:3,990円(税込、送料別)