Emacsで日本語のテキストが印刷できない

Emacsの日本語印刷ができず、困っています。


Emacsのバッファ画面で日本語の混じった文章を入力し、

印刷したところ日本語が空白で印刷されてしまいます。

半角英字は普通に印刷できました。


オライリーから出版されているGNU Emacs を調べてみたのですが、

自分の未熟さ故解決できませんでした。


.emacs.dというディレクトリ(? ファイルではない?)

にEmacsのデフォルトの設定が書かれているということなので見てみたのですが、

下記のようになっていて調べ方も良くわかりませんでした。


total used in directory 0 available 143225208

drwx------ 3 xxx staff 102 7 4 00:20 .

drwxrwxrwx+ 33 xxx staff 1122 7 4 00:33 ..

drwx------ 3 xxx staff 102 7 4 01:31 auto-save-list



バッファ上では日本語入力ができるのに

印刷すると出力されないというのはどういう事なのでしょうか?

その辺が解決する糸口のような気がするのですが、


Emacsで日本語を印刷する方法を教えて下さい。




環境

MacOS10.6

Emacs23.3を使用しています。


使用したコマンド

M-x print-buffer


バッファの内容

Hello world !

こんにちはabcdef


プリンタで印刷された内容

Hello world !

abcdef

MacBook Pro, Mac OS X (10.6.4), Xcode

投稿日 2011/07/03 11:00

返信
返信: 10

2011/07/04 03:20 hiwasawa への返信

  • 報告です。Emacsで日本語印刷できました。

しかし、理由がよく分からないのです。

  テキストエディットの環境設定で標準テキストファイルのエンコーディングをUTF-8にしてから
  Emacsで.txtのファイルを開き印刷すると日本語の印刷ができるようになりました。

  関係があるのかと思いその後テキストエディットのエンコーディングをMac OS Romanに直して
  Emacsで印刷してみましたが、やはり日本語印刷できる状態です。


因みに印刷している.txtファイルはEmacs上から作成したファイルなので、

Emacsのエンコーディングに準ずると思います。


Emacsのエンコーディングの設定はどこを見れば良いのでしょうか?



"入門GNUEmacs"という本を見たところEmacsで印刷をする際lprコマンドを使用していることが分かりました。


バッファの内容をlpr コマンドに渡すのにa2psを使用してるかどうかはわかりませんでした。


質問ばかり申し訳ないです。

2011/07/04 05:35 hiwasawa への返信

まずどのemacsでしょうか?

macosxには defaultでも入ってます。ただバージョンは22.1.1のようです(macosx 10.6.8)から、それとは違いますよね。こちらは、ターミナル上で動くもので、guiじゃないです。

http://emacsformacosx.com/

からダウンロードしたものでしょうか?こちらは、ver. 23.3、あたかもmacosx app として動きます。また、linux上のx11で動かすemacsとほぼ同じ感じで動きます。

こちらなら、そのままで日本語テキストを作ると、euc になるようです。これは、Options>Mule>Set Coding System>For Saving This Bufferとして、コマンドラインにutf-8と入力して保存すれば、出力ファイルはutf-8になります。sjisと入力すればsjisになります。このときに ? (半角)と入力すれば、入力できる文字コードのリストが出て来ます(非常にたくさん出て来ます)。

2011/07/04 09:05 hiwasawa への返信

Emacs は仰る通りのバージョンです。ダウンロード先もリンクのものです。

OSもMacOS10.6.8なので"はに"様の推察通りです。


>こちらなら、そのままで日本語テキストを作ると、euc になるようです。

>これは、Options>Mule>Set Coding System>For Saving This Bufferとして、

>コマンドラインにutf-8と入力して保存すれば、出力ファイルはutf-8になります。


ありがとうございます。やってみました。


ところで、日本語文字が印刷できるようになったのは良かったのですが、

今度は印刷のサイズ等がどうも合わないようで上手くいきません。


探してみたところこの様なツールがあることが分かりました。

http://homepage.mac.com/matsuan_tamachan/emacs/PdfPreview.html#0


便利そうなので使ってみたいと思ったのですが、

使い方のところで

「load-path の有るところに置いて、」と書かれてありますが、この様な名前のファイルは見当たりませんでした。


find . -name "*load-path*"としてrootディレクトリ以下を検索しましたが、有りませんでした。


何だかEmacsを使用するにあたっての前提知識が不足しているように思われるのですが、

印刷くらいまともにできるようにしたいと思います。

助言下さい。

2011/07/04 16:14 hiwasawa への返信

> 「load-path の有るところに置いて、」と書かれてありますが、この様な名前のファイルは見当たりませんでした。


load-path はファイルではなくて、emacs が emacs lisp を読み込む path です。emacs の scratch 画面で、load-path と書いて、C-j とすればずらずらっと出て来ます。でも、EmacsForMacOSXでは変なところ(/Applications/Emacs.app/Contents/Resources/site-lisp、など)なので、説明のページに書いてあるように、

~/.emacs.d 以下に、pdf-preview.el を置いて、.emacs (無ければ作る)に (load "~/.emacs.d/pdf-preview") と書いておけばよいのでは?

2011/07/05 11:41 hiwasawa への返信

はに様へ


どうもありがとうございます。

お陰様で少しずつ解決に近づいてきているように思います。

① ~/.emacs.d 以下に、pdf-preview.el を置いて

② .emacs をEmacsのデフォルトホームディレクトリに作成しました。(.emacs.dと同じ階層)

③ .emacsに(load "~/.emacs.d/pdf-preview") と書きました。


以上の作業でEmacsを立ち上げ、バッファ画面を開き、ミニバッファに

M-x pdf-print-buffer と入力できるようになりました。←認識されている?


しかし、

現状次のようなエラーメッセージが表示されてしまいます。

"emacs bin/bash: ps2pdf13 command not found"


ps2pdf13というバッチファイルが私のOSX10.6.8にインストールされてない、

という意味だと理解しています。


ps2pdf13はどの様にインストールすれば良いのでしょうか?

それとも

pdf-preview.elの中身を見ると以下の様な記述があるので、

(defvar pdf-preview-ps2pdf-command "ps2pdf13")

この" "の中身を別のバッチファイル名にすれば良いのでしょうか。

別のバッチファイルにするとするば、何にすれば良いのでしょうか?

2011/07/05 16:50 hiwasawa への返信

> 現状次のようなエラーメッセージが表示されてしまいます。

> "emacs bin/bash: ps2pdf13 command not found"


まず、ps2pdf13 というのはパッチファイルではありません。エラーメッセージにあるごとくコマンドです。


さて、エラーですが、メッセージの通り、ps2pdf13 が見つけられない、というものです。まずhiwasawaさんのマックにこのコマンドはあるのでしょうか?

ターミナルで、

locate ps2pdf

とすれば、ps2pdf で始まるコマンドが出て来ます。うちので見ると、

/usr/local/bin/ps2pdf13

となってますので、/usr/local/bin/ にあります。/usr/local にあるということは、appleのdefaultのシステムで用意されたコマンドではなくて、後からインストールされたものです。私自身はこれをインストールした記憶はありませんので、何かをインストールしたときに一緒にインストールされたものと思われます(Emacs かもしれません)。hiwasawa さんのところでも同じであれば、後はパスを通すだけで使えるようになります。具体的には、ターミナルで、

export PATH=/usr/local/bin:$PATH

とすれば、/usr/local/bin にあるコマンドを最初に探してくれるようになります。

現在のPATH は

echo $PATH

とすれば出て来ます。もし、最初にこのコマンドを実行して、中に /usr/local/bin が含まれていれば、見つからないのは、pathが通ってないのではなくて、コマンド自体が無いということですから、何かをインストールしてこのコマンドをインストールしてやる必要があります。

2011/07/05 21:17 はに への返信

こんにちは。


はにさんはGhostscript入れてますか? TeX系とか入れてません?


pdf-preview.elをエディタで開いてみるとちゃんと書いてありますね。「Ghostscriptのps2pdf13が必要」って。


ps2pdf13って、Scriptです。ま、フィルタです。(バッチファイルという表現でも別に間違ってはいないと思う)

中身は最終的にGhostscript呼んでpsファイルをPDFに変換してるんですね。


まずunix系のPSの処理系はGhostscriptがやってますので、別途入れておかないとダメでしょう。


ではでは。


2011/07/05 22:12 hiwasawa への返信

はに様へ

本当に感謝です。

ありがとうございます。

>locate ps2pdf

やってみましたところps2pdfなるコマンドは見つかりませんでした。

(初め、locateが有効化されてなかったので、少し戸惑いましたが)


ちなみに、はに様とは少しフォルダ構成が違っているようで、

/usr/直下にlocalはなく、下記の様になっています。

X11 X11R6 bin etc include lib libexec llvm-gcc-4.2 sbin share standalone


share の下にlocalがいるようでしたので、ここにps2pdfをインストールするイメージで良いのでしょうか?


重ね重ね謝謝

2011/07/07 02:41 hiwasawa への返信

皆様、ありがとうございます。

結局まだpdf-previewの件で同様のメッセージが出て困っております。


Ghostscriptをインストールしました。

  コマンド: # brew install ghostscript nkf


インストール完了後

/usr/local/bin/の中を見るとps2pdf13が入っていました。


PATHの確認

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

となっており、usr/local/binも入っていました。




しかし、Emacsでpdf-preview-buffer と入力すると、またしても

"emacs bin/bash: ps2pdf13 command not found" と表示されてしまいます。


気になったので、ps2pdf13のパーミッションを見に行ったところ下記の様にどの権限っからも実行はできる

ことになっていました。


rwxr-xr-x 1 root staff 39 7 7 17:54 ps2pdf13


何故ps2pdf13がないと言うわれてしまうのでしょうか?

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Emacsで日本語のテキストが印刷できない

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。