macOS Ventura 以降で PostScript(PS) や EPS を取り扱うためのメモ。
Contents
背景
最近メイン環境の一つを Mac-mini M2 (macOS 13 Ventura) に移したのだが、
その際、プレビュー.app が PostScript(PS) や EPS を扱えなくなっていることに気づいた。
どうやら公式でも半年以上前にアナウンスされていて、それなりに記事にもされていたらしい。
https://support.apple.com/ja-jp/HT213250
まだ論文投稿などで PostScript や EPS を強制されることはまだあるので、
これまでとほぼ同じ感覚で扱えるようにする。
それはそうと LaTeX で PDF くらいはいい加減に当たり前のようにサポートしてほしい。。。
QuickLook
とりあえず内容物の確認だけできれば良いという場合は、
QuickLook でプレビューできるようになれば良いと思う。
いにしえには EPSQL.qlgenerator なるものがあったのだが、
こいつは ppc/i386 の初代ユニバーサルバイナリで、当時はソースコードを公開するのもそれほどメジャーではなかった。
なので、代替としてシステムにインストールされている Illustator.qlgenerator を利用する。
- /System/Library/QuickLook/Illustator.qlgenerator を ~/Library/QuickLook/ にコピー
- Illustator.qlgenerator を右クリックして「パッケージの内容を表示」
- Contents/Info.plist を開く
- Document types/Item 0/Document Content Type Identifies に String で以下を追加
(テキストエディタなどで開いた場合は、CFBundleDocumentTypes/LSItemContentTypes 以下に追加)- com.adobe.encapsulated-postscript
- com.adobe.postscript
- ターミナルなどから
$ qlmanager -r
、あるいはログアウト/ログインでもおそらく可。
この QuickLook プラグインが呼ばれる Document Content Type Identifiers (UTI) を追加している。
一つ目が EPS, 二つ目が PostScript (ただし1ページ目のみ)。
参考
https://discussionsjapan.apple.com/thread/253377213
Preview.app で開く
これまで Preview(プレビュー).app は (E)PSファイルをサポートしており、
これらのファイルを開くと、自動で PDFに変換して表示されていたが、
macOS Ventura 13 から PostScript(PS), EPS のサポートされなくなった。
幸い ps2pdf などの cui コマンドは動くようなのでスクリプトを Automator などでラップして、
これまでと同じような使い勝手にする。
Automator.app を開き、"アプリケーション" を選択、
左側のライブラリ/ユーティリティから "シェルスクリプトを実行" を選んで右側へドラッグ。
生成された枠内にて、シェルは zsh(or bash)、入力は "引数として" を選択。
テキストエリアにテンプレートが自動生成されるが、それを消して以下で上書きする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
cd /private/tmp for f in "$@" do target=`basename ${f%.*}`.pdf /usr/local/bin/ps2pdf "$f" $target open -a Preview $target done for f in "$@" do target=`basename ${f%.*}`.pdf open -a Preview $target done sleep 0.2 for f in "$@" do target=`basename ${f%.*}`.pdf rm $target done |
コピペが終わるとちょうど以下のような感じになる。
これを例えば PreviewPS.app などとして適当な場所に保存する。
一行目は変換したPDF一時ファイルの出力先。
中下段の sleep
は入れないと Preview で開かれる前に pdf が削除され、表示に失敗する。
複数ファイルの変換, オープンにも対応している。
これを PostScript (あるいは EPSも) ファイルに関連づけることで、
Monterey までの プレビュー.app の使い勝手にかなり近い動作になる。
(アプリアイコンを プレビュー.app のものにするとさらに見分けが付きにくくなる?)
変換後のPDF を保存しようとすると「書類 "~" の場所を判断できません。保存場所を指定できます。」と出るが、
これは一時ファイルを既に削除してしまっているだけのことなので、気にする必要はない。
「別名で保存...」から希望の保存先を指定すればよい。