USB メモリ活用講座
【dviout for Windows ポータブル化】

< 最終更新日: 2023-12-07 >

はじめに

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

ここでは USB メモリを PC に挿入したときに認識されるドライブレターが (U:) であるものとし,このドライブのことを USB ドライブと呼びます. まだ W32TeX ポータブル環境を構築していない方は,先にその作業を行なってください.

dviout は本来,ドライブレターの固定されたローカルハードディスク (C: など) にインストールして使うことを前提に開発されており,設定をレジストリに保存します. ここでは,環境変数とパラメータファイルを使うことで,レジストリを極力使わない設定方法を紹介しますが,完全ではありません. 詳しくは,制約事項をご覧ください※1

現在,dviout の最新版は CTAN (Comprehensive TeX Archive Network) で配布されています. 次の Web サイトなどから dviout3190-inst.zip を,ローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードしましょう. 間違ってソースファイル (dviout3190-source.zip) をダウンロードしないように注意してください.

dviout for Windows の展開 (解凍) と初期設定

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

  1. tex3190w.zip を USB ドライブの U:usr\dviout フォルダに展開 (解凍) します. Windows 10 で展開を行うには,zip ファイルを右クリックして表示されるメニューから「すべて展開」を選び,「圧縮フォルダの展開ウィザード」を利用すればよいでしょう. W32TeX (x86) のインストールで触れた unzip.exe でも展開可能ですし,基礎編のファイル圧縮・展開 (解凍) ツールで紹介した 7-Zip Portable や PeaZip Portable でも展開可能です.
  2. エクスプローラなどから U:usr\dviout を開き,dviout.exe をダブルクリックします. 「Windows によって PC が保護されました」といった類の Microsoft Defender SmartScreen の通知画面が表示されたら,詳細情報 をクリックし,実行 をクリックします (LibreOffice Portable のインストール 参照). dviout が起動し,Warning ダイアログボックス (Font path is not set. Install fundamental parameters?) が表示されたら,いいえ をクリックすると,dviout が終了するはずです.
  3. エクスプローラなどから U:usr\dviout を開き,dviout.chm をダブルクリックします. 「セキュリティの警告」ダイアログボックスが開いたら,「このファイルを開く前に常に確認する」のチェックをオフにして,開く をクリックします. dviout のオンラインヘルプが開くので,必要に応じて目を通してから閉じます. 英語のオンラインヘルプも参照するという方は dvioute.chm についても同様の操作を行います.
  4. テキストエディタで次の内容を入力し,dviout フォルダに dviout.par という名前で保存します. 最後の行には先頭にアポストロフィ (') が1文字だけありますので,忘れずに入力してください. 正確にタイプする自信がない方は,ブラウザからエディタへコピー&ペーストすればよいでしょう. 「メモ帳」で作成する方は,保存時に dviout.par.txt となってしまわないよう気をつけてください (失敗したらリネームすればよいだけですが).

graphicx パッケージを利用して画像を読み込みたいという方は,graphicx パッケージを使うための追加設定 を参考にしてください. また,upTeX/upLaTeX から出力される DVI ファイルを dviout で表示したいという方は,upTeX/upLaTeX を利用する場合の設定を参考にしてください.

dpi=300
tpic=1
gen="`mktexpk.exe --dpi ^d --bdpi ^D --mag ^M ^s"
TEXROOT=^T\fonts
ftt=^x\map\ttfonts.map
TEXPK=^r\tfm\\^s^tfm;^r\pk\\^s.^dpk;^r\vf\\^s.vf;^r\ovf\\^s.ovf
GS=3
vfn='
%version=2
%vfont_list
1,"MS 明朝"
2,"MS ゴシック"
3,"@MS 明朝"
4,"@MS ゴシック"
5,"cmr10"
%jfm_list
jis,1,a,a,n,0;0;0,,1,0
jisg,2,a,a,n,0;0;0,,1,0
min,1,a,a,n,0;0;0,,1,0
goth,2,a,a,n,0;0;0,,1,0
tmin,3,a,a,n,0;0;0,,1,1
tgoth,4,a,a,n,0;0;0,,1,1
default,1,a,b,n,0;0;0,,1,0
tdefault,3,a,b,n,0;0;0,,1,1
edefault,5,a,a,n,0;0;0,,1,0
'

ローカルハードディスク (C:など) のようにドライブレターが固定されたフォルダに dviout をインストールするのであれば,dviout.par の作成は必須ではなく,dviout.exe を起動して Option-Install で開かれるダイアログボックスに従って設定を行ないます. すると,最後にスタートメニューに dviout が追加され,各種設定はレジストリに書き込まれます. また,拡張子が dvi のファイルに dviout が関連付けられますので,dvi ファイルをダブルクリックするだけで dviout で開くことができるようになります.

ポータブル化を実現するには,スタートメニューへの登録や dvi ファイルの関連付けはあきらめて,設定の保存をレジストリに頼らないように工夫しなければなりません. その工夫の一つがパラメータファイル dviout.par の利用です. そのほかの工夫については次のポータブル化のための設定で紹介します.

ポータブル化のための設定 & 動作確認

dviout の実行ファイル dviout.exe は,起動時に同じフォルダにパラメータファイル dviout.par が存在すれば,それを読み込み,その内容に基づいて各種設定を行うことができます. 前述の dviout.par では,パラメータ TEXROOT=^T\fonts と設定していますが,この ^T は環境変数 TEXMFMAIN または TEXMF の設定値を意味します. また,パラメータ TEXPK の右辺にある ^r は環境変数 TEXROOT の設定値を意味します. したがって,USB ドライブの U:\usr\w32tex\share\texmf-dist へのパスを予め環境変数 TEXMFMAIN に設定しておけば,dviout が USB ドライブの U:\usr\w32tex\share\texmf-dist\fonts 以下にあるフォントを見つけてくれることになります. もしフォントが見つからない場合は,gen の右辺で設定したコマンド (mktexpk.exe) で必要な解像度のフォントを自動生成してくれます. したがって,環境変数 PATHmktexpk.exe が存在するパス (U:\usr\w32tex\bin) を登録しておく必要もあります.

ところで,環境変数 TEXROOTTEXMFTEXMFMAIN は,W32TeX の TeX 本体の動作にも影響を与える可能性があります※2. これらの環境変数を変更することで TeX 本体が正常動作しなくなっては困りますので,なるべく限定的に利用することを考える必要があります.

そこで,dviout.exe を直接起動するのではなく,バッチファイルから呼び出すようにしてみましょう. テキストエディタで次の内容を入力し,wakedvi.bat という名前で USB ドライブ上の適当なフォルダ (U:\bin など) に保存します.

@echo off
setlocal
set PATH=%~d0\usr\dviout;%PATH%
start dviout.exe -TEXROOT=%~d0\usr\w32tex\share\temxf-dist\fonts %*
endlocal

それでは動作確認を行いましょう. エクスプローラなどで USB ドライブの中身を表示し,W32TeX ポータブル化 で作成した texenv.vbs を起動します※3. そのとき「コマンドプロンプト」が開かれたら,第 1 段階は成功です

次にそのコマンドプロンプトから,dviout に付属するサンプル DVI ファイル test_a4.dvi を開いてみます.

U:\bin\wakedvi U:\usr\dviout\test_a4.dvi Enter
図1・フォントに関する警告メッセージ
図1・フォントに関する警告メッセージ

はじめて dviout を起動する場合には,必要なフォント (cmr7, cmr10, cmmi10, cmsy10) が生成され,This frame size is 159.2mm × 246.2mm. で始まる英文メッセージが A4 紙面の中央部にあるようなプレビューが得られるはずです. そうではなく,図1 のような警告メッセージとともに dviout のオンラインヘルプが開かれた場合には,フォントの自動生成がうまく働いていません. dviout.par または texenv.vbswakedvi.bat に問題がないか確認してください※4

自動生成されるフォントは,U:usr\w32tex\share\texmf-dist\fonts\pk 以下に保存されます. 先ほどの dviout.par では dpi=300 としていましたので,300dpi での出力に最適なフォントが生成され,U:usr\w32tex\share\texmf-dist\fonts\pk\cx 以下に保存されます.

TeX で標準的に使われる CM フォント (Computer Modern font) については,TrueType 形式の BaKoMa フォントがフリーで提供されています. これを利用したい場合は,欧文 TrueType フォントの利用をご覧ください.

ポータブル化の制約事項と設定保存法

図2・アンインストールの警告メッセージ
図2・アンインストールの警告メッセージ

一度 dviout を起動すると,レジストリの HKEY_CURRENT_USER\Software 以下に SHIMA\dviout というキーが作成され,ファイルの履歴や各種の設定が書き込まれてしまいます※1. この後説明するレジストリからのキー削除を行わないならば,USB メモリを抜いた後もその PC には dviout に関するレジストリのキーが残ってしまいます. それが原因となって PC が不調になったりはしないと思いますが,USB メモリを抜く前にレジストリからキーを削除して確実に痕跡を消すには,多重 TEXMF ツリーへの対応 で作成する WSH スクリプトを利用してください. あるいは,dviout のメニューバーから Option-Uninstall を選ぶこともできます. すると,右の図2 のような警告ダイアログボックスが表示されます. OK をクリックすれば dviout に関係するレジストリキーが削除され,dviout が終了されます. なお,この操作によって USB メモリから dviout が消去されることはありません.

dviout の設定は,メニューバーから Option-Setup Parameters を選択して表示される dviout のプロパティダイアログボックスで変更・調整することができます. パラメータを変更後,OK または 適用 ボタンをクリックすれば,それが直ちに反映されますが,その設定はどこにも保存されず次回起動時には反映されません. 変更した設定を次回以降のデフォルト設定としたい場合,dviout をローカルにインストールしているのであれば,パラメータを変更後に Save をクリックしてレジストリに保存することができます. ポータブル化して使う場合にはレジストリに頼るわけにはいきませんので,設定を dviout.par に記述する必要があります. オンラインヘルプなどでパラメータを調べて,dviout.par に書き込んでいけばよいのですが,項目も多く,どのように設定値を書けばよいかわかりにくいと思います. 少し手間がかかりますが,次のようにすれば失敗や間違いが減らせるでしょう.

  1. メニューバーから Option-Non-default Parameters を選択し,表示されるパラメータを Copy ボタンでクリップボードにコピーし,テキストエディタに貼り付けておきます (ログファイルに書き出すこともできます).
  2. dviout のプロパティダイアログボックスで所望のパラメータを変更し,OK をクリックします.
  3. 再びメニューバーから Option-Non-default Parameters を選択し,表示されるパラメータを Copy ボタンでクリップボードにコピーし,テキストエディタに貼り付けます.
  4. パラメータ変更の前後を比較して,変更点や新規に追加された項目を探します. そして,見つかった項目を dviout.par に書き加えます.

ちなみに,メニューバーの Option-Choose Parameters から事前に定義済みの設定を読み込むこともできますが,それぞれの定義済み設定の実体は dviout フォルダの下の par フォルダにあるパラメータファイル (拡張子が par のファイル) です. これらをテキストエディタで開いて内容を調べることでも,パラメータの記述法のヒントが得られるはずです.

多重 TEXMF ツリーへの対応

W32TeX は多重 TEXMF ツリーに対応しており,標準的に含まれるファイルを U:usr\w32tex\share\texmf-dist ($TEXMF と表記) 以下に,ユーザが独自に作成したり追加するファイルを U:\usr\w32tex\share\texmf-local ($TEXMF-local と表記) 以下に置くことが推奨されています. しかし,ポータブル化のための設定では $TEXMF へのパスしか登録していなかったため,$TEXMF-local 以下に新しいフォントを追加しても,dviout からは利用することができません.

dviout を多重 TEXMF ツリーに対応させるには,wakedvi.bat を次のように書き換えればよいでしょう:

@echo off
setlocal
set PATH=%~d0\usr\dviout;%PATH%
start dviout.exe -TEXROOT=%~d0\usr\w32tex\share\temxf-dist\fonts;%~d0\usr\w32tex\share\texmf-local\fonts %*
endlocal

別解として,WSH スクリプトから dviout を起動させることも考えてみましょう. せっかくですので,dviout 終了時にレジストリをクリーンアップする機能も搭載してみます. テキストエディタで次のような WSH スクリプト wakedvi.vbs を作成し,PATH を通すフォルダ (U:\bin など) に保存します. このとき,文字コードは「シフトJIS」で保存してください (WSH について興味がある方は,こちら をご覧ください).

' dviout for Windows を起動
Option Explicit
Dim objWshShell,objFS,objEnv
Dim strDrv,strDviout,strTeX,strExec,strArg
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' カレントドライブを取得
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
' パスを設定
strDviout = strDrv & "\usr\dviout"
strTeX = strDrv & "\usr\w32tex\share"
' 環境変数PATHの設定
Set objEnv = objWshShell.Environment("Process")
objEnv.Item("PATH") = strDviout & ";" _
  & objEnv.Item("PATH")
' 起動オプションを設定
strExec = strDviout & "\dviout.exe -TEXROOT=" & _
  strTeX & "\texmf-dist\fonts;" & _
  strTeX & "\texmf-local\fonts"
For Each strArg In WScript.Arguments
  strExec = strExec & " " & strArg
Next
objWshShell.Run strExec, , True
' レジストリのクリーンアップを行うかを問合せ -- [1]
Dim intRet
intRet = objWshShell.Popup("dviout関連のレジストリを削除しますか?", 0, "レジストリクリーンアップ", vbYesNo)
If intRet = vbNo Then
  WScript.Quit
End If
' dviout が作成するレジストリキー
Dim aryRKey,i
aryRKey = Array( _
  "HKCU\Software\SHIMA\DVIOUT\FILE\", _
  "HKCU\Software\SHIMA\DVIOUT\FIND\", _
  "HKCU\Software\SHIMA\DVIOUT\Settings\", _
  "HKCU\Software\SHIMA\DVIOUT\", _
  "HKCU\Software\SHIMA\")
On Error Resume Next
' レジストリキーの削除
For i=0 to uBound(aryRKey)
  If Not IsNull(objWshShell.RegRead( aryRKey(i) )) Then
    objWshShell.RegDelete( aryRKey(i) )
  End If
Next

それでは動作確認をしてみましょう. wakedvi.vbs を起動してみてください※5. dviout が起動されたら,Option-Setup Parameter とたどり,DVIOUT のプロパティを表示させ,Font タブをクリックします. 図3 のようなダイアログボックスが表示されるので,TEXROOT の設定項目が U:\usr\w32tex\share\texm-dist\fonts;U:\usr\w32tex\share\texmf-local\fonts のように設定されていることを確認し,OK をクリックします.

図3・dvioutのプロパティ-Fontタブ
図3・dvioutのプロパティ - Font タブ
図4・レジストリクリーンアップの確認
図4・レジストリクリーンアップの確認

次に,File-Open から dvi ファイルを開き,正常に表示されるか確認してください. できれば,$TEXMF-local にインストールしたフォントを使っている dvi ファイルも開いてみるとよいでしょう (欧文フォントパッケージ活用 参照).

dviout を終了させると,図4 のダイアログボックスが表示されます. はい をクリックすると dviout が作成したレジストリキーが削除されます. いいえ をクリックした場合はレジストリの削除は行われません. レジストリクリーンアップ処理は必要ではない (常に いいえ をクリックするつもりの) 方は,wakedvi.vbs のコメント部分に -- [1] が書いてある行以降をすべて削除するか,バッチファイル wakedvi.bat をお使いください.

注意: ローカル PC に dviout がインストールされている環境で,はい をクリックしてレジストリキーを削除すると,ローカル PC 上の dviout の動作に不具合が発生するので注意してください. 誤って はい をクリックしてしまった場合は,ローカル PC 上の dviout を起動し,Option-Install から,改めて初期設定を行ってください.

upTeX/upLaTeX を利用するための設定

TeX の組版において内部処理を Unicode で行う upTeX/upLaTeX は,機種依存文字 (環境依存文字) の制約から解放されるという大きなメリットを持っています (upTeX/upLaTeX の利用法 を参照). この upTeX/upLaTeX から出力された DVI ファイルを dviout でプレビューするためには,いくつかの設定を施す必要があります. 具体的には次の 2 つを行えばよいようです※6

dviout.par への項目追加
フォントファイルのキャッシュ用バッファをデフォルトの 400 KB から 1600 KB (くらい) に拡大し,和文 TrueType フォントの位置調整を変更するため,dviout.par に次の 2 行を追加します (8 行目の vfn=' の前あたりがよいでしょう).
bf=0x190000
Jgt=+
dviout の map ファイル ($user.map) への和文フォント対応情報追加
U:\usr\dviout\map\$user.map をテキストエディタで開き,次の 6 行を書き込みます(コピー&ペーストすればよいでしょう). そして,文字コードが「シフトJIS」になるよう注意して上書き保存します.
uprml-h  "MS 明朝"      unicode
uprml-hq "MS 明朝"      unicode
uprml-v  "@MS 明朝"     unicode
upgbm-h  "MS ゴシック"  unicode
upgbm-hq "MS ゴシック"  unicode
upgbm-v  "@MS ゴシック" unicode

設定は以上ですが,残念ながら一部の文字が化けたり,正常な表示が得られない状況も発生するようです.

【参考】欧文 TrueType フォントの利用

注意: Microsoft Edge,Google Chrome,Firefox などの主要なブラウザでは FTP 機能 (ftp:// プロトコルによるファイルダウンロード) が廃止されてしまいました (参考:窓の杜記事). BaKoMa TrueType フォントの入手元として紹介している ftp サーバもアクセスできなくなっているようです. PortableApps.com Platform Support - Using Portable Fonts With the Platform によれば,Windows 10 ではフォントを一時的に追加するような処理では時間が 10~100 倍もかかってしまうというバグがあるそうです. 以上の状況を勘案して,この項は参考扱いとさせていただきます.

TeX で標準的に利用される欧文フォントである CM フォント (Computer Modern font) は,TeX の開発者である Donald E. Knuth 先生が,TeX と一緒に開発した METAFONT と呼ばれるフォント自動生成システムを使って自らデザインしたフォントです. また,複雑な数式で利用される AMS フォント (American Mathematical Society font) は,TeX で数学論文を執筆・投稿するためにデザインされたフォントです. コンピュータの演算能力が低かった当時は,拡大・縮小しても品質が低下しにくいアウトラインフォントを直接取り扱うのではなく,出力装置 (ディスプレイやプリンタ) の解像度に合わせたビットマップフォントを作成,利用するという方法が非常に合理的でした. dviout も,標準では指定された解像度 (前述の dviout.par では 300dpi) のビットマップフォントを使って表示や印刷を行います. さらに,フォントが見つからない場合には自動的に生成する機能も備わっています.

しかし,高速化の進んだ現代のコンピュータにとって TrueType フォントや OpenType フォントなどのアウトラインフォントを扱うことは,もはや重い処理ではありません. プリンタも高解像度化が進み,その性能をフルに活かした高品質な出力を得ようとすれば 1000dpi 以上のフォントが必要になるため,フォントファイルのサイズや読み込み速度が問題となってきます.

dviout では欧文 TrueType フォントを扱うことができますので,ポータブル環境でも利用してみましょう. 方向性としては,次の 2 つが考えられます.

前者については dviout をインストールしたフォルダのサブフォルダ FONT にある winttf.zip が利用できます. 詳しくは,信州大の乙部厳己先生の書体拡張プロジェクトの Web サイトをご覧ください. この方法は普通の英文を書くにはおおむね良好なのですが,凝った数式になるとフォントが足りなくなり,部分的にビットマップの CM フォントや AMS フォントが使われることがあるため,統一感に欠ける可能性があります. また,環境依存性が強くなるので TeX ソースを他の人に渡すような場合に,相手の環境によってはコンパイルが通らなくなる可能性が高まります.

そこで,ここでは BaKoMa TrueType フォントの利用方法を紹介します.

  1. 次の URL から BaKoMa TrueType フォントの配布ファイル bakoma.lzh をダウンロードします※7
    ftp://akagi.ms.u-tokyo.ac.jp/pub/TeX/font/bakoma/bakoma.lzh
  2. 基礎編のファイル圧縮・展開 (解凍) ツールで紹介した 7-Zip Portable や PeaZip Portable などを使って,bakoma.lzh を USB ドライブの U:\Resource\fonts\BaKoMa に展開します.
  3. フォントインストーラー SAKURA のポータブル化を行い,一時インストールの利用を参考に,TeX 用のフォントグループ (TeX font など) を作成するなどして BaKoMa を展開したフォルダを追加します.

後は dviout よりも先にフォントインストーラー SAKURA を起動し,TeX 用のフォントグループのフォントを一時インストールしておけばよいでしょう.

dviout で Help-Ohter Info-Font Info を選択すると,画面の下部に使用フォントに関する情報が表示されます. 標準の pk フォントが利用されている場合は 図5 のように右端に PK が表示されます.

図5・使用フォントの情報 (pk フォントの場合)
図5・使用フォントの情報 (pk フォントの場合)

一方,TrueType フォントが利用されている場合は 図6 のように右端に WinAPI が表示されます.

図6・使用フォントの情報 (TrueType フォントの場合)
図6・使用フォントの情報 (TrueType フォントの場合)

BaKoMa TrueType フォントによる表示が成功することを確認したら U:\usr\w32tex\share\texmf-dist\fonts\pk の中身は削除しても構いません. ただし,TX フォントや PX フォントなどを使った TeX 文書を dviout でプレビューする場合は,U:\usr\w32tex\share\texmf-dist\fonts\pk\modeless に pk フォントが作成されてしまいます.

ちなみに,一時インストールされた BaKoMa TrueType フォントは他の Windows アプリケーションでも利用可能です. TeX の本文と図中の文字を統一したいような場合には,作図ソフトで文字入力する際に cmr10 などを選べばよいでしょう (EPS や PDF の図を作成する場合はフォントを埋め込むなどの設定作業が必要ですが). ただし,BaKoMa TrueType フォントには 140 ものフォントファイルが含まれており,TeX のフォント命名規則をある程度知っていないと,どのフォントを利用すればよいのかがわかりにくいことと思います.

フォント名の末尾の数字は,そのフォントのデザイン上の想定フォントサイズ (単位はポイント) を表します. つまり,6~8 くらいの数字は,縮小された場合に文字がつぶれて判読できなくなるようなことがないようにデザインされています. 17 のように大きな数字は,拡大された場合に線が太くなって紙面が濃くなりすぎたりしないようにデザインされています. 9~12 は,通常の文字サイズの場合に長い文字列が読みやすくなるようにデザインされています.

フォント名の前半のアルファベットは,そのフォントの種類 (厳密にはファミリ,シリーズ,シェイプ) を表します. とりあえず普通のローマン体は cmr,太字は cmbx,イタリック体は cmmi,サンセリフ体は cmss,タイプライタ体は cmtt であることを覚えておけば十分ではないでしょうか. それ以外はフォントの形を見て決めればよいでしょう. なお,数式のための記号フォントもあるので TeX 以外の使い道があるか不明なフォントも含まれています.

【参考】color / graphicx パッケージを使うための追加設定

注意: dviout では graphicx パッケージを使用して画像を貼り付けた TeX 文書や,color パッケージを使用してカラフルに着色した TeX 文書をプレビューすることができます. しかし,(u)pLaTeX + dvipdfmx で PDF を出力することが一般的となり,DVI を経由せずに直接 PDF 出力できる XeLaTeX や LuaTeX で日本語文書が作成できるようになった現在では,dviout による画像の扱いは制約が多く,手続きも煩雑で古めかしいと感じられることと思われます. 今後も dviout の開発が継続されて,現代的なプレビューアになることを気長に待つつもりで,この項も参考扱いとします. これから TeX を学ぼうという方は,ここは読み飛ばして先へ進む方が有益ではないでしょうか.

color / graphicx パッケージの読み込み

以前の TeX では color パッケージや graphicx パッケージを \usepackage で読み込む際に,パッケージオプションとして DVI ドライバを指定するのが流儀でした. 現在の TeX ではドキュメントクラスを指定する際に,グローバルオプションとして DVI ドライバを指定することが推奨されています. 例えば pLaTeX 文書でドキュメントクラスとして jsarticle を使用するのであれば,プリアンブルは次のように書きます.

\documentclass[driver]{jsarticle}
\usepackage{color,graphicx}
図7・dvioutの警告ダイアログボックス
図7・dvioutの 警告ダイアログボックス

ここで,1 行目の driver に DVI ドライバ名を指定するのですが,プレビューアとして dviout を利用する場合には dvips または dviout を指定することになります※8. それぞれを指定するための追加設定について,この後簡単に説明します.

ちなみに,color パッケージよりも高機能な xcolor パッケージを利用すると,DVI ファイルを開く際に図7 のようなダイアログボックスが表示されます. 詳細は省きますが はい をクリックすることで,警告されている問題点を修正するほうがよいでしょう.

ドライバ指定を dvips にするための追加設定

dvips は,かつて DVI ファイルを PostScript ファイルへ変換して出力していた頃の標準 DVI ドライバで,読み込むことができる画像ファイルが PostScript と EPS (Encapsulated PostScript) 限定となります. JPEG や PNG といったラスタ画像には対応していません.

\includegraphics 命令で EPS 画像の読み込みを指定した DVI ファイルを dviout で表示するには,Ghostscript が正しく呼びだせるように設定する必要があります. 具体的には次のような作業が必要です.

  1. Ghostscript ポータブル化を行い,wakedvi.batwakedvi.vbs を呼びだすコマンドプロンプトで,Ghostscript が正常に起動できるようにします.
  2. dviout.par をテキストエディタで開き,GS=3 と書いてある 1 行を次のように書き換えます※9
    gsx="gswin32c.exe -dNOSAFER"

これで dviout で DVI ファイルを開くときに EPS 画像を PBM と呼ばれる白黒のラスタ画像に変換する処理が行われ,画像が表示できるようになるはずです. もし,図7 のような警告ダイアログに Faild to make XXXX.pbm by the command gswin32c.exe @tmp$.@@@ のようなメッセージが表示されたら,中止 または 無視 をクリックして,その後に表示される dviout のヘルプファイルなどを参考に問題解決をはかりましょう.

ドライバ指定を dviout にするための追加設定

dviout 専用の DVI ドライバが dviout です. 以前の W32TeX ではすぐに利用することができたのですが,現在は少し手間がかかる作業が必要になりました ※10

  1. U:\usr\w32tex\share\texmf-local\tex\latex\graphics というフォルダを作成します (以下 graphics フォルダと呼ぶことにします).
  2. U:\usr\w32tex\share\texmf-dist\tex\latex\graphics-otherdef フォルダに含まれる dviout.def というファイルを,graphics フォルダにコピーします. U:\usr\w32tex\share\texmf-dist\tex\latex には 800 を超える膨大なフォルダが含まれているので,慎重に作業してください (参考:Q-Dir > ファイル操作).
  3. 同様に,U:\usr\w32tex\share\texmf-dist\tex\latex\graphics-cfg フォルダに含まれる color.cfg および graphics.cfg というファイルを,graphics フォルダにコピーします.
  4. graphics フォルダにコピーした color.cfg をテキストエディタで開き,最下行に書かれた \endinput の前に,次の 1 行を挿入して上書き保存します.
    \DeclareOption{dviout}{\def\Gin@driver{dviout.def}}
  5. 同様に,graphics フォルダにコピーした graphics.cfg をテキストエディタで開き,最下行に書かれた \endinput の前に,次の 1 行を挿入して上書き保存します.
    \DeclareOption{dviout}{\def\Gin@driver{dviout.def}}
  6. ls-R データベースを利用している場合は,mktexlsr コマンドを実行します (参考:W32TeX > ls-R データベース)

ここまでの設定で WMF/EMF,PBM,BMP/BMC 画像を扱うことができるはずです. さらにフリーの画像表示ソフト Susie に対応したプラグイン (Susie plug-in) を利用すれば,その他の画像形式も表示させることが可能です. Susie 関連のリンク集 などを参考に,自分が必要とする Susie plug-in をダウンロードしてください. どれを用意すればよいかよくわからないという方は,dvipdfmx も対応している JPEG と PNG 用の Susie plug-in を用意しておくことを推奨します. ダウンロードした Susie plug-in (拡張子 .spi のファイル) は dviout.exe と同じフォルダに置いてください.

ところで,以前の TeX コンパイラはテキストファイルの処理しかできませんでした. このため JPEG や PNG などのバイナリ形式の画像ファイルを TeX 文書にとり込むには,画像のサイズ (BoundingBox) 情報を書き込んだテキストファイル (拡張子は .bb や .ebb) を別に用意するか,\includegraphics 命令のオプションとして手動で指定する必要がありました※8. 現在の TeX コンパイラはバイナリファイルも処理できるようになり,標準的な dvipdfmx を DVI ドライバ指定する際には BoundingBox 情報は不要になりました. しかし,dviout は設計が古いため BoundingBox 情報を必要としていることに注意が必要です.