はじめに
Windows 10 でインストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう.
ここでは USB メモリを PC に挿入したときに,認識されるドライブレターが (U:
) であるものとし,このドライブのことを USB ドライブと呼びます.
今回は手動でファイルを展開 (解凍) する必要があります.
事前に W32TeX ポータブル化 でダウンロードした unzip.exe
を PATH
の通ったフォルダに入れておいてください.
準備が整ったら,角藤先生が配布してくださっている gs9533w32full-gpl.exe
を次のサイトなどからローカルハードディスクの適切なフォルダ (C:\temp
など) にダウンロードしましょう.
- Ring Server 1, Ring Server 2, Ring Server 3, Ring Server 4
- 長岡高専学内 FTP サーバ (学内専用, Ring サーバのミラー)
Ghostscript のローカル PC へのインストール
Ghostscript 9.53.3 の配布ファイルは実行形式 (.exe
) です.
このため,一旦ローカル PC にインストールして,必要なファイルを USB ドライブにコピーする方が確実です※1.
gs9533w32full-gpl.exe
をダブルクリックすると,Ghostscript のインストーラが起動され,図1 の画面が表示されます. 英文の説明 (他のアプリケーションを閉じることを推奨することと,関連するシステムファイルが再起動不要でアップデートされるといったことが書いてあります) をざっと読んだら Next をクリックします.- 図2 の GPL ライセンス契約文書が表示されるので内容を一読して,同意できるならば I agree をクリックします. 同意できなければ Ghostscript を利用することはできません.
- 図3のインストール先フォルダ指定画面が表示されます.
デフォルトでは
C:\Program Files\gs\gs9.53.3
などのようになっているはずですが,1 バイト文字の空白が含まれるパスは,他のアプリケーションから Ghostscript を呼び出すような場合に不具合が発生する可能性があるので変更することを推奨します. たとえばC:\gs\gs9.53.3
と変更すればよいでしょう. ここで,画面下部の Space required の後の数値は,Ghostscript をインストールするために必要なディスクのアキ容量 (43.0MB) を示しています. 設定および確認が済んだら Install をクリックします. なお,ここでインストール先として USB ドライブを指定すればよいのではないかと考える方もいると思います. しかし,Ghostscript のインストーラはスタートメニューにショートカットを登録したり,「プログラムと機能」にアンインストールのための情報を登録します. これらは USB ドライブを取り外すと無効となり,不具合が発生する可能性があるので,インストール先は必ずローカルドライブを指定しましょう. - しばらく待つとインストール終了画面 (図4) が表示されます.
2 つのチェックボックスがありますが,Generate cidfmap for Windows CJK TrueType fonts は,日本語・中国語・韓国語の文字を表示するために TrueType フォントの設定を行うためにオン (チェック付き) にしておくことを推奨します (詳しくは
cidfmap
の生成 参照). もう一つの Show Readme にチェックを付けておくと,英文の HTML ファイルが開かれます (実体はC:\gs\gs9.53.3\doc\index.html
です). チェックボックスのオン/オフを設定したら,Finish ボタンをクリックします.
ローカル PC で Ghostscript を利用する場合は,この後環境変数 PATH
の最後に次の項目を追加します (先頭にパスの区切り文字としてのセミコロンがあることに注意してください).
;C:\gs\gs9.53.3\bin;C:\gs\gs9.53.3\lib
環境変数の設定法は OS によって異なりますので,OS 付属のヘルプファイルや Web の検索エンジンを利用して調べてみてください.
ローカル PC でも Ghostscript を活用するのであれば,SumatraPDF もインストールすることを推奨します (詳細は省略します).
Ghostscript のポータブル化
Ghostscript を USB ドライブにインストールします.
USB メモリを PC に挿入したときに,認識されるドライブレターが (U:
) であるものとし,このドライブのことを USB ドライブと呼びます.
- コマンドプロンプトを開き,USB ドライブの
usr
ディレクトリにカレントディレクトリを移動します.U:Enter cd \usr Enter
- ローカルにインストールした Ghostscript を USB ドライブにコピーします (インストール先が
C:\gs\gs9.53.3
でない場合は適宜置き換えてください).xcopy C:\gs\*.* . /D /S Enter
これで USB ドライブの\usr
にgs9.53.3
というフォルダがコピーされてきたはずです. - ポータブル化に必要のないファイルを削除します.
del gs9.53.3\gs9533w32full-gpl.diff Enter del gs9.53.3\uninstgs.exe Enter
クラスタサイズ 4096 バイト (4K バイト) でフォーマットされた USB ドライブで,この段階で U:\usr\gs9.53.3
のサイズは 43.7MB でした.
ローカル PC へのインストールにおいて Generate cidfmap for Windows CJK TrueType fonts (図4) にチェックを付けていれば,そのローカル PC の Windows システムフォルダとシステムフォントに合わせて適切な cidfmap
が作成されているはずです.
厳密には USB ドライブを挿入して環境設定を行う (texenv.vbs
を起動する) ときに cidfmap
を再生成する必要があります.
さもないと,他の PC で Windows システムフォルダやシステムフォントの構成が異なっていた場合に,和文フォント (Ryumin-Light
や GothicBBB-Medium
) を使う PS/EPS ファイルの和文が表示されなくなります.
たとえば Windows 10 ではデフォルトの Windows システムフォルダは C:\Windows
ですが,異なるドライブやフォルダに Windows がインストールされている場合には不具合が発生する可能性があります.
また,海外で現地の PC を利用する場合には MS 明朝
と MS ゴシック
が無く,和文が表示できないという可能性もあります.
そこで,IPA フォントの利用に従って cidfmap
の設定を行うことを推奨します (設定作業は次の動作確認が終わってからでもよいでしょう).
Ghostscript & SumatraPDF の動作確認
SumatraPDF のポータブル化が済んでいない方は,PS/EPS ビューアとしての SumatraPDF まで作業を進めてください.
それでは動作確認を行いましょう.
- エクスプローラなどから
sumPDF.bat
を起動します. SumatraPDF が起動しない場合はsumPDF.bat
にタイプミスなどが無いか,Ghostscript のインストール先やバージョンの指定に誤りがないか確かめてください. - SumatraPDF が起動されたら,ツールバーの 開く などから
U:\usr\gs9.53.3\examples
の中にあるtiger.eps
を開きます. おなじみの「虎」の絵が表示されれば,第 1 段階は成功です. - 続いて,同様の操作で
U:\usr\gs9.53.3\kanji
の中にあるarticle9.ps
を開きます. 「日本国憲法第 9 条」の条文が縦書きで表示されれば,第 2 段階も成功です※3 - 最後に,コマンドプロンプトまたは Windows PowerShell を開いて,次のようにタイプします (
sumPDF.bat
をU:\bin
ではないフォルダに保存している場合は適宜パス指定を変更してください).U:\bin\sumPDF.bat U:\usr\gs9.53.3\example\golfer.eps Enter
女性のゴルファーのイラストが表示されれば成功です. このようにsumPDF.bat
では,開きたい PS/EPS ファイルをコマンドライン引数に与えることもできます.
このような確認作業は,ローカル PC に Ghostscript がインストールされていない環境でも行うことを強く推奨します. これを怠ると,肝心の場面で正常に動作してくれずに原因究明に手間取る可能性があります.
W32TeX 向けの設定と動作確認
TeX 文書で PostScript や EPS,PDF 形式の画像を扱う場合は,TeX 実行環境から Ghostscript を呼びだせるようにする必要があります.
具体的には,W32TeX のポータブル化のために作成した texenv.vbs
を編集して,次のように書きかえればよいでしょう.
' TeX ポータブル環境設定 (Ghostscript 9.5.3対応)
Option Explicit
Dim objWshShell,objFS,objEnv
Dim strDrv,strTeXPath,strGSPath
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' カレントドライブを取得
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
' usr\w32tex フォルダが存在するかをチェック
strTeXPath = strDrv & "\usr\w32tex"
If objFS.FolderExists(strTeXPath)=0 Then
WScript.Echo strTeXPath & "が見つかりませんので終了します"
WScript.Quit 0
End If
' Ghostscriptへのパス設定 (存在チェックは省略)
strGSPath = strDrv & "\usr\gs9.53.3"
' 環境変数 PATH の先頭に usr\w32tex\bin を追加
Set objEnv = objWshShell.Environment("Process")
objEnv.Item("PATH") = strDrv & "\bin;" _
& strTeXPath & "\bin;" _
& strGSPath & "\bin;" _
& strGSPath & "\lib;" _
& objEnv.Item("PATH")
' 環境変数GS_LIBを設定
objEnv.Item("GS_LIB") = strGSPath & "\Resource\Init;" _
& strGSPath & "\Resource;" _
& strGSPath & "\lib;" _
& strGSPath & "\kanji;" _
& strDrv & "\Resource\fonts"
' コマンドプロンプトウィンドウを開く
objWshShell.Run "%COMSPEC%"
texenv.vbs
を実行するとコマンドプロンプトが開きます.
そこで次のようなコマンドを実行してみましょう.
gswin32c U:\usr\gs9.53.3\example\tiger.eps Enter
Ghostscript Image というウィンドウが開き,見慣れた「虎」の絵が表示されれば成功です. このウィンドウを閉じると,コマンドプロンプトでは Ghostscript のインタプリタが起動されたままとなっているはずです. Enter を 1 度タイプし,quit Enter と入力することで抜け出すことができます.
【別解】SumatraPDF 起動スクリプト作成
バッチファイルがお好みでなければ,WSH スクリプトで SumatraPDF を起動することも可能です. (WSH について興味がある方は,こちら をご覧ください).
- テキストエディタで次のような WSH スクリプト
sumPDF.vbs
を作成し,PATH を通すフォルダ (U:\bin
など) に保存します. なお,保存するときには文字コード (エンコード) をシフト JIS (Shift_JIS) にする必要があるようです.' WSH で gs9.53.3 の環境変数を設定して SumatraPDF を直接起動 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) ' Ghostscript フォルダが存在するかをチェック strGSPath = strDrv & "\usr\gs9.53.3" If objFS.FolderExists(strGSPath)=0 Then WScript.Echo strGSPath & "が見つかりませんので終了します" WScript.Quit 0 End If ' SumatraPDF フォルダが存在するかをチェック strExec = strDrv & "\usr\SumatraPDF" If objFS.FolderExists(strExec)=0 Then WScript.Echo strExec & "が見つかりませんので終了します" WScript.Quit 0 End If ' 環境変数PATHの設定 Set objEnv = objWshShell.Environment("Process") objEnv.Item("PATH") = strGSPath & "\bin;" _ & strGSPath & "\lib;" _ & objEnv.Item("PATH") ' 環境変数GS_LIBを設定 objEnv.Item("GS_LIB") = strGSPath & "\Resource\Init;" _ & strGSPath & "\Resource;" _ & strGSPath & "\lib;" _ & strGSPath & "\kanji" ' 環境変数GS_OPTIONSを設定 (gs9.22以降非推奨だが必要に応じて-dWINKANJIを追加するとよい) objEnv.Item("GS_OPTIONS") = "-dSAFER" ' SumatraPDF を起動 strExec = strExec & "\SumatraPDF-3.2-32.exe" For Each strArg In WScript.Arguments strExec = strExec & " " & strArg Next objWshShell.Run strExec WScript.Quit
では,動作確認です.
sumPDF.vbs
を起動してみてください.
SumatraPDF が起動されたら,tiger.eps
や article9.ps
などが無事開けるかを確認してください.
うまくいったら,コマンドプロンプトウィンドウから,次のような起動法も試してみてください.
sumPDF.vbs \usr\gs9.53.3\examples\golfer.eps Enter
女性のゴルファーのイラストが表示されれば成功です.
このように sumPDF.vbs
では,開きたい PS/EPS ファイルをコマンドライン引数に与えることもできます.
IPA フォントの利用
IPA フォントについての詳細については,フォントインストーラー SAKURA の IPA フォントの項を参照してください.
ここでは,IPAex 明朝と IPAex ゴシックが U:\usr\w32tex\share\texmf-dist\fonts\truetype\ipa
にあるものとします※4.
まず,sumPDF.bat
をテキストエディタで編集し,環境変数 GS_LIB
の設定 (5 行目) を次のように書き換え,上書き保存します:
set GS_LIB=%_GSPath%\Resource\Init;%_GSPath%\Resource;%_GSPath%\lib;%_GSPath%\kanji;%~d0\usr\w32tex\share\texmf-dist\fonts\truetype
WSH スクリプトをご利用の場合は, sumPDF.vbs
をテキストエディタで編集し,環境変数 GS_LIB
の設定 (26~30 行目) を次のように書き換え (下 2 行が変更部分),上書き保存します:
' 環境変数GS_LIBを設定
objEnv.Item("GS_LIB") = strGSPath & "\Resource\Init;" _
& strGSPath & "\Resource;" _
& strGSPath & "\lib;" _
& strGSPath & "\kanji;"
& strDrv & "\usr\w32tex\share\texmf-dist\fonts\truetype"
次に U:\usr\gs9.53.3\lib
にある cidfmap
をテキストエディタで編集します.
既存の記述をすべて削除して,次のように書けばよいでしょう (既存の cidfmap
を cidfmap.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 行は,実際に使うフォントに合わせてパスや拡張子を設定してください.
和文の縦書き文書で,文字の位置がズレていたり正しい文字が表示されていないと感じる場合は,sumPDF.bat
や sumPDF.vbs
を編集し,-dWINKANJI
を有効にしてみてください※3.
Ghostscript の設定法や利用法,cidfmap
の記述例については TeX Wiki>Ghostscript で詳しく解説されています.
また,英文ですが U:\usr\gs9.53.3\doc
にある HTML ファイル群にも詳細な説明があります (index.html
や Use.htm
から読み始めるとよいでしょう).
ここの説明で不十分と感じる方は,ぜひ参照してください.
【参考】cidfmap
の生成
Ghostscript のオンラインドキュメントの一つである U:\usr\gs9.53.3\doc\Use.htm
の "8.4 CID font substitution" (英文) に目を通すと,Ghostscript のインストール終了画面 (図4) の Generate cidfmap for Windows CJK TrueType fonts をチェックした場合に次のようなコマンドが実行されると説明されています (U:\usr\gs9.53.3\lib
をカレントディレクトリとして実行するものとします):
..\bin\gswin32c -q -dBATCH -sFONTDIR=c:/windows/fonts -sCIDFMAP=cidfmap mkcidfm.ps Enter
しかし,このコマンドをそのまま実行しても次のようなエラーメッセージが表示され,うまくいきません:
Error: /invaildfileaccess in --file-- Operand stack: cidfmap (U:/usr/gs9.53.3/lib/cidfmap) (w)
これは U:\usr\gs9.53.3\doc\History9.htm
(英文) によれば,Ghostscript 9.50 以降ではデフォルトでファイルアクセス制御が有効となったことが原因であるようです.
このエラーを回避して cidfmap
を生成するには NOSAGER
オプションを追加してファイルアクセス制御を無効にする必要があるようです:
..\bin\gswin32c -q -dNOSAFER -dBATCH -sFONTDIR=c:/windows/fonts -sCIDFMAP=cidfmap mkcidfm.ps Enter