USB メモリ活用講座
【Ghostscript & GSview ポータブル化】

< 最終更新日: 2021-08-30 >

はじめに

Windows 10 でインストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう.

ここでは USB メモリを PC に挿入したときに,認識されるドライブレターが (U:) であるものとし,このドライブのことを USB ドライブと呼びます.

今回は手動でファイルを展開 (解凍) する必要があります. 事前に W32TeX ポータブル化 でダウンロードした unzip.exePATH の通ったフォルダに入れておいてください.

準備が整ったら,角藤先生が配布してくださっている gs952w32full-gpl.exe を次のサイトなどからローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードしましょう.

オリジナル (英語版) の Ghostscript の方を使いたい人は,Ghostscript のダウンロードページ などから Ghostscript GPL Release (gs952w32.exe) をダウンロードしましょう※1

続いて GSview の最新版 gsv50w32.exe を次のサイトなどからローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードしましょう.

Ghostscript のローカル PC へのインストール

Ghostscript 9.52 の配布ファイルは実行形式 (.exe) です※2. このため,一旦ローカル PC にインストールして,必要なファイルを USB ドライブにコピーする方が確実です※3

ローカル PC に日本語版 Ghostscript と GSview をインストールする方法については,愛知教育大・堀田先生のサイト に詳しい解説がありますので,事前に一通り眼を通しておくことを推奨します.

  1. gs952w32full-gpl.exe (英語版の場合は gs952w32.exe) をダブルクリックすると,Ghostscript のインストーラが起動され,図1 の画面が表示されます. 英文の説明 (他のアプリケーションを閉じることを推奨することと,関連するシステムファイルが再起動不要でアップデートされるといったことが書いてあります) をざっと読んだら Next をクリックします.
    図1・Ghostscript のインストール(1)
    図1・Ghostscript のインストール(1)
  2. 図2 の GPL ライセンス契約文書が表示されるので内容を一読して,同意できるならば I agree をクリックします. 同意できなければ Ghostscript を利用することはできません.
    図2・Ghostscript のインストール(2)
    図2・Ghostscript のインストール(2)
  3. 図3のインストール先フォルダ指定画面が表示されます. デフォルトでは C:\Program Files\gs\gs9.52 などのようになっているはずですが,1 バイト文字の空白が含まれるパスは,他のアプリケーションから Ghostscript を呼び出すような場合に不具合が発生する可能性があるので変更することを推奨します. たとえば C:\gs\gs9.52 と変更すればよいでしょう. ここで,画面下部の Space required の後の数値は,Ghostscript をインストールするために必要なディスクのアキ容量 (42.5MB, 英語版は51.0MB) を示しています. 設定および確認が済んだら Install をクリックします. なお,ここでインストール先として USB ドライブを指定すればよいのではないかと考える方もいると思います. しかし,Ghostscript のインストーラはスタートメニューにショートカットを登録したり,「プログラムと機能」にアンインストールのための情報を登録します. これらは USB ドライブを取り外すと無効となり,不具合が発生する可能性があるので,インストール先は必ずローカルドライブを指定しましょう.
    図3・Ghostscript のインストール(3)
    図3・Ghostscript のインストール(3)
  4. しばらく待つとインストール終了画面 (図4) が表示されます. 2 つのチェックボックスがありますが,Generate cidfmap for Windows CJK TrueType fonts は,日本語・中国語・韓国語の文字を表示するために TrueType フォントの設定を行うためにオン (チェック付き) にしておくことを推奨します※4. もう一つの Show Readme にチェックを付けておくと,英文の HTML ファイルが開かれます (実体は C:\gs\gs9.52\doc\index.html です). チェックボックスのオン/オフを設定したら,Finish ボタンをクリックします.
    図4・Ghostscript のインストール(4)
    図4・Ghostscript のインストール(4)

ローカル PC で Ghostscript を利用する場合は,この後環境変数 PATH の最後に次の項目を追加します (先頭にパスの区切り文字としてのセミコロンがあることに注意してください).

;C:\gs\gs9.52\bin;C:\gs\gs9.52\lib

環境変数の設定法は OS によって異なりますので,OS 付属のヘルプファイルや Web の検索エンジンを利用して調べてみてください.

ローカル PC でも Ghostscript を活用するのであれば,GSview もインストールすることを推奨します (インストールは gsv50w32.exe を起動し,ウィザードに答えていくだけですので,詳細は省略します).

Ghostscript & GSview のポータブル化

Ghostscript と GSview を USB ドライブの usr\GSview フォルダにインストールすることにします. 別のフォルダにインストールしたい人は,適宜読み替えながら作業を進めてください.

  1. コマンドプロンプトを開き,USB ドライブの usr ディレクトリの下に GSview フォルダを作成し,カレントディレクトリを移動します.
    U:Enter
    md \usr\GSview Enter
    cd \usr\GSview Enter
    
  2. ローカルにインストールした Ghostscript を USB ドライブにコピーします (インストール先が C:\gs\gs9.52 でない場合は適宜置き換えてください).
    xcopy C:\gs\*.* . /D /S Enter
    これで USB ドライブの \usr\GSviewgs9.52 というフォルダがコピーされてきたはずです.
  3. gsv50w32.exe を展開 (解凍) します (ダウンロードしたファイルが C:\temp 以外のフォルダに置いてある場合は,適宜置き換えてください).
    unzip C:\temp\gsv50w32.exe Enter
    「'unzip' は内部コマンドまたは外部コマンド (中略) として認識されていません」といった類のメッセージが表示されるようでしたら,unzip.exe をダウンロードして,PATH の通ったフォルダに入れるのを忘れていませんか?
  4. 展開が終わったら,ポータブル化に必要のないファイルを削除します.
    del gs9.52\gs952w32full-gpl.diff Enter
    del gs9.52\uninstgs.exe Enter
    del set*.* Enter
    del FILE_ID.DIZ Enter
    del filelist.txt Enter
    del gsview\uninstgs.exe Enter
    
  5. 警告: この設定は,くれぐれも自己責任でお願いします. GSview は英語,ドイツ語,フランス語,イタリア語など合計 11 ヵ国の言語からメニュー表示の言語を選択できます (残念ながら日本語はありません). ここでは,英語に決め打ちしてほかの言語は選ばない設定にすることで,ディスク使用量を (ほんの 2MB ほどですが) 減らし,起動もシンプルにしてみようと思います. では,GSview\gsview ディレクトリに移動して,10 個ある gsvw32*.dll をすべて削除してください. 次に,11 個ある gsview??.chm ファイルのうち gsviewen.chm だけを残して,その他を削除してください (あえてコマンドは書きません).

ローカル PC へのインストールにおいて Generate cidfmap for Windows CJK TrueType fonts (図4) にチェックを付けていれば,そのローカル PC の Windows システムフォルダとシステムフォントに合わせて適切な cidfmap が作成されているはずです. 厳密には USB ドライブを挿入して環境設定を行う (texenv.vbs を起動する) ときに cidfmap を再生成する必要があります. さもないと,他の PC で Windows システムフォルダやシステムフォントの構成が異なっていた場合に,和文フォント (Ryumin-LightGothicBBB-Medium) を使う PS/EPS ファイルの和文が表示されなくなります. たとえば Windows 10 ではデフォルトの Windows システムフォルダは C:\Windows ですが,異なるドライブやフォルダに Windows がインストールされている場合には不具合が発生する可能性があります. また,海外で現地の PC を利用する場合には MS 明朝MS ゴシックが無く,和文が表示できないという可能性もあります.

そこで,IPA フォントの利用に従って cidfmap の設定を行うことを推奨します (設定作業は次の動作確認が終わってからでもよいでしょう).

動作確認

それでは,動作確認を行いましょう.

  1. GSview フォルダの中にある GSviewPortable.exe を起動します. メニューの言語を選択するダイアログボックス (図5) が表示されますので,English をクリックします.
    図5・言語選択ダイアログボックス(英語以外の言語を削除した場合)
    図5・言語選択ダイアログボックス (英語以外の言語を削除した場合)
  2. 続いて GSview Registration のダイアログボックス (図6) が表示されますので,OK をクリックすると GSview ポータブルが起動されます.
    図6・GSview Registrationダイアログボックス
    図6・GSview Registration ダイアログボックス
  3. GSview が起動されたら,Option をクリックし,表示されるメニュー項目 (図7) から Safer のチェックをオフにします※5
    図7・Optionメニュー
    図7・Option メニュー
  4. GSview が起動されたら,Option-Advanced Configure から Advanced Configure ダイアログボックス (図8) を開き,Ghostscript Include Path: に次のように記入します (U: はご自分の USB ドライブのドライブレターで置き換えてください):
    U:\usr\GSview\gs9.52\Resource\Init;U:\usr\GSview\gs9.52\Resource;U:\usr\GSview\gs9.52\lib;U:\usr\GSview\gs9.52\kanji
    図8・Advanced Configureダイアログボックス
    図8・Advanced Configure ダイアログボックス
  5. さらに図8Advanced Configure ダイアログボックスの Ghostscript Options:-dSAFER を書き加え,OK ボタンをクリックします※5
  6. File-Openusr\GSview\gs9.52\examples の中にある tiger.eps を選択して,開く ボタンをクリックします. おなじみの「虎」の絵が表示されれば,第 1 段階は成功です.
  7. 続いて,File-Open から usr\GSview\gs9.52\kanji の中にある article9.ps を選択して,開く ボタンをクリックします. 「日本国憲法第 9 条」の条文が縦書きで表示されれば,第 2 段階も成功です※6

この確認作業は,ローカル PC に Ghostscript がインストールされていない環境でも行うことを強く推奨します. これを怠ると,肝心の場面で正常に動作してくれずに原因究明に手間取る可能性があります.

EPS ファイル向けの推奨設定

GSview で EPS (Encapslated PostScript) ファイルをよく開くという方は,メニューバーの Options から次の 2 項目をチェック (設定)しておくことを推奨します.

EPS Clip
表示内容を,EPS ファイルに記述されている BowndingBox 内部に限定します. チェックしないと Media で指定されたページサイズ (デフォルトは A4) の用紙の左下を基準とする位置で描画されるため,ウィンドウをスクロールしないと描画結果が確認できないことがあります.
Show BowndingBox
EPS ファイルに記述されている BowndingBox に合わせて点線の長方形を重ねがきします. TeX 文書に EPS の図を挿入したときに,図の周囲にどれくらい余白が入るかの目安が確認できます (厳密には TeX の組版処理時にフロート周りの余白が追加されますが).

その他の Options の設定項目については,Help-Contents から開かれる GSview の Help ファイルで調べるとよいでしょう (英文ですが).

GSview 起動スクリプト作成

現在の GSviewPortable.exeOption-Advanced Configure から表示される Advanced Configure ダイアログボックス (図8) の設定項目を,起動するたびにリセットしてしまうようです. 環境変数 GS_LIB が正しく設定されていれば,この設定をしなくても正しく表示されますが,GSviewPortable.exe をダブルクリックして起動するような使い方をしたい場合に,GSview が起動されてから毎回設定するのは煩雑です. そこで,必要な設定を自動で済ませ,直接 GSview 本体をポータブル設定で起動してしまうスクリプトを作ってみました (少しアヤシイこともしています). 以下に従って作業を進めてください.

  1. GSviewPortable.exe は起動するたびに GSview\gsview フォルダにある gsview32.ini を更新 (上書き) してしまいます. ここに設定を書いておいても読み込んでくれるわけではないようですし,必要のないファイルの読み書きは USB メモリの寿命も縮めるなど,心理的にもよくありませんので「読み取り専用」属性を設定してしまいましょう (動作に支障はないようです). コマンドプロンプトで行うのであれば,次のように入力します.
    U: Enter
    cd \GSview\gsview Enter
    attrib +R gsview32.ini Enter
    
  2. テキストエディタで次のような WSH スクリプト wakegsv.vbs を作成し,PATH を通すフォルダ (U:\BIN など) に保存します (WSH について興味がある方は,こちら をご覧ください). なお,保存するときには文字コード (エンコード) をシフト JIS (Shift_JIS) にする必要があるようです.
    ' WSH で gs9.52 の環境変数を設定して GSview を直接起動
    Option Explicit
    Dim objWshShell,objFS,objEnv
    Dim strDrv,strGSPath,strExec,strArg
    Set objWshShell = WScript.CreateObject("WScript.Shell")
    Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
    ' カレントドライブを取得
    strDrv = objFS.GetDriveName(WScript.ScriptFullName)
    ' GSView フォルダが存在するかをチェック
    strGSPath = strDrv & "\usr\GSView"
    If objFS.FolderExists(strGSPath)=0 Then
        WScript.Echo strGSPath & "が見つかりませんので終了します"
        WScript.Quit 0
    End If
    ' 環境変数PATHの設定
    Set objEnv = objWshShell.Environment("Process")
    objEnv.Item("PATH") = strGSPath & "bin;" _
      & strGSPath & "\gs9.52\lib" _
      & objEnv.Item("PATH")
    ' 環境変数GS_LIBを設定
    objEnv.Item("GS_LIB") = strGSPath & "\gs9.52\Resource\Init;" _
      & strGSPath & "\gs9.52\Resource;" _
      & strGSPath & "\gs9.52\lib;" _
      & strGSPath & "\gs9.52\kanji"
    ' 環境変数GS_OPTIONSを設定 (gs9.22以降非推奨だが必要に応じて-dWINKANJIを追加するとよい)
    objEnv.Item("GS_OPTIONS") = "-dSAFER"
    ' GSviewの起動オプションを設定(-aはportableモードで起動)
    strExec = strGSPath & "\GSView\gsview32.exe -a"
    For Each strArg In WScript.Arguments
      strExec = strExec & " " & strArg
    Next
    objWshShell.Run strExec
    ' 以下は気に入らなければ削除してください
    ' Select Languageダイアログボックスでdefault(English)を選択
    Do Until objWshShell.AppActivate("Select Language")
      WScript.Sleep 1000
    Loop
    objWshShell.SendKeys " "
    ' GSview RegistrationダイアログボックスでOKを選択
    Do Until objWshShell.AppActivate("GSview Registration")
      WScript.Sleep 1000
    Loop
    objWshShell.SendKeys "%O"
    ' [Option]-[Safer]をオフにする
    objWshShell.SendKeys "%pf~"
    ' [Option]-[EPS Clip]をオンにする
    objWshShell.SendKeys "%pC~"
    ' [Option]-[Show Bounding Box]をオンにする
    objWshShell.SendKeys "%px~"
    WScript.Quit
    

では,動作確認です. wakegsv.vbs を起動してみてください. 環境によっては 図5Select Language で引っかかって処理が停まることがあるかもしれませんが,その場合は手動で先へ進めてください. GSview が起動されたら,tiger.epsarticle9.ps などが無事開けるかを確認してください. うまくいったら,コマンドプロンプトウィンドウから,次のような起動法も試してみてください.

wakegsv.vbs \usr\GSview\gs9.52\examples\golfer.eps Enter

女性のゴルファーのイラストが表示されれば成功です. このように wakegsv.vbs では,開きたい PS/EPS ファイルをコマンドライン引数に与えることもできます.

TeX 文書で PostScript や EPS,PDF 形式の画像を扱う場合は,TeX 実行環境から Ghostscript を呼びだせるようにする必要があります. W32TeX のポータブル化のために作成した texenv.vbs を編集し,wakegsv.vbs を参考にして環境変数 PATHGS_LIB などの設定を加えてみてください (Ghostscript の別バージョン向けの解答例).

図6GSview RegistrationOK を自動応答してしまうのは,本当はあまりお勧めしたくはありませんが,WSH ではこんなこともできるというデモの意味も兼ねて公開します (気に入らない人は該当部分を削除してください). 自動応答を使い続ける人も,このように便利なソフトウェアを無償で提供してくださっている開発チームの皆さんへの感謝は,常に忘れないようにしましょう.

IPA フォントの利用

IPA フォントについての詳細については,フォントインストーラー SAKURA の IPA フォントの項を参照してください. ここでは,IPAex 明朝と IPAex ゴシックが U:\usr\w32tex\share\texmf-dist\fonts\truetype\ipa にあるものとします※7

まず,wakegsv.vbs をテキストエディタで編集し,環境変数 GS_LIB の設定 (21~25 行目) を次のように書き換え (下 2 行が変更部分),上書き保存します※8

' 環境変数GS_LIBを設定
objEnv.Item("GS_LIB") = strGSPath & "\gs9.52\Resource\Init;" _
  & strGSPath & "\gs9.52\Resource;" _
  & strGSPath & "\gs9.52\lib;" _
  & strGSPath & "\gs9.52\kanji;" _
  & strDrv & "\usr\w32tex\share\texmf-dist\fonts\truetype"

次に GSview\gs9.52\lib にある cidfmap をテキストエディタで編集します. 既存の記述をすべて削除して,次のように書けばよいでしょう (既存の cidfmapcidfmap.win のような別名にコピーしてから編集すると安心でしょう).

% Aliases
/Ryumin-Light /IPAMincho ;
/GothicBBB-Medium /IPAGothic ;
/HeiseiKakuGo-W5 /IPAMincho ;
/HeiseiMin-W3 /IPAMincho ;
/Ryumin-Medium /IPAMincho ;
%
%%% IPA Fonts
/IPAMincho  << /FileType /TrueType  /CSI [(Japan1) 6]  /Path (ipa/ipaexm.ttf) >> ;
/IPAGothic  << /FileType /TrueType  /CSI [(Japan1) 6]  /Path (ipa/ipaexg.ttf) >> ;

ちなみに,IPA フォントは Ver.1 は TrueType Font,Ver.2 は OpenType Font,Ver.3 は TrueType Font にファイル形式が変更されています. cidfmap の最後の 2 行は,実際に使うフォントに合わせてパスや拡張子を設定してください.

和文の縦書き文書で,文字の位置がズレていたり,正しい文字が表示されていないと感じる場合は,GSview の Advanced Configure ダイアログボックス (図8) を開き,Ghostscript Options-dWINKANJI を加えて OK をクリックし,ファイルを開きなおしてみてください※5. 常に -dWINKANJI を有効にしたければ,wakegsv.vbs の 27 行目の GS_OPTIONS の設定に -dWINKANJI を加えればよいでしょう.

Ghostscript の設定法や利用法,cidfmap の記述例については,TeX Wiki>Ghostscript で詳しく解説されています. また,英文ですが usr\GSview\gs9.52\doc にある HTML ファイル群にも詳細な説明があります (index.htmlUse.htm から読み始めるとよいでしょう). ここの説明で不十分と感じる方は,ぜひ参照してください.

【追記】GSview の老朽化問題

Ghostscript 9.53.2 付属のドキュメントに含まれる History of Ghostscript Version 9.xx (doc\History9.htm,英文) から,次のようなことが読み取れます:

実際に Ghostscript 9.53.2 と GSview 5.0 を組み合わせたポータブル環境で,GSview (GSviewPortable.exe)を起動すると,言語の選択 (図5) の直後に図9 のように,GSview 5.0 から利用可能な Ghostscript が見つからないため,ダウンロードをうながすダイアログボックスが表示されてしまいます.

図9・GSview 起動時のダイアログボックス
図9・GSview 起動時のダイアログボックス

図9 では Cancel をクリックすればダウンロードを回避できます. しかしその後で 図8Advanced Configure ダイアログボックスを開いて手動設定を行っても,PostScript ファイルを開こうとしたとたん,図10 のように,決め打ちされているバージョン範囲 (704-999) ではない誤ったバージョン (9532) の DLL が見つかったというエラーメッセージが表示されてしまいます.

図10・GSview のエラーダイアログボックス
図10・GSview のエラーダイアログボックス

GSview 5.0 は,Windows 8 が発売された 2012 年にリリースされて以来 8 年以上に渡り開発がとまっています. メニュー等の日本語表示には対応していないにも関わらず,長きにわたり Ghostscript のフロントエンドとして定番ソフトウェアとして利用されてきましたが,さすがにこれ以上引き伸ばすのは難しそうです. 「GSview でなければできないことがある」という方は,セキュリティのリスクを十分に理解したうえで Ghostscript 9.52 以前と併用するか,ソースコードに手を加えて自前でビルドするしかありませんが,「PostScript ファイルが印刷/表示できればよい」のであれば,フロントエンドを SumatraPDF などに切り替えることを考えましょう.