dvioutはDVIファイルを取得してからそれをプレビューするまでの内部動作の概略(デフォルトの設定の場合)は以下の通りです。

0. DVIファイルを読んで、各ページに対し、DVIファイルにおける開始位置を調べてそのテーブルを作る。
また、そのDVIファイルで使われている各TeXのフォントに対し、-TEXPK: などに基づいて、実際の文字画像をどのように得るか(Systemに登録されたTrueType、DISK上のPKフォントなど)のリストを作る。

1. 指定されたページのDVIファイルの中身を解釈し、1ページ全体の画像を(白黒)2値の画像データに展開する。
このとき、color specialによる色づけ文字や、取り込みカラー(含 gray scale)画像などは、別個にそれぞれ画像データあるいはそれを得るためのポインタの形でメモリー上に保存しておく。

2. 1ページ全体の2値の画像ファイルを縮小し、背景色などを考慮して256色(場合によっては16色)の画像データを作成する。文字は背景との間で16段階のgray scale(anti-aliasing)を用いて変換される。
8色の文字に対する16段階のanti-aliasingと8色の背景色に対する16段階のanti-aliasing(これらは、HyperTeXのホットスポットや文字列検索で見つかった文字の表示で用いられる)のための文字色のパレットを用意し、256色BMP画像データとなる。
256色なので 1 pixelは 1 byteになるが、下位 4 bitが gray scaleのデータ、その上 3 bitが 8色、最上位bitで色づけは背景か文字かを示す(例えば、色づけ下線は背景に対する色づけを線の部分に関して行っている)。

3. 作成されたBMP画像データおよびメモリー上のカラー文字や画像データを合成してWindows APIによって画面に表示する。この際、HyperTeXのホットスポットなどの色づけのためのBMP画像データの変更も行われる。

Remark: \special の解釈は、1 の段階で行われる。特に dviout specials が存在した場合は、それを解釈した後、再度 1 を実行し(このときは dviout specials を無視する)、2, 3 と進む。より詳しくは以下の通り、

dviout specials はそのページでの出現順に解釈される。

・2文字で表せるキー入力で、小文字が混ざっているものがあれば、「そのキー入力操作を行う」というコマンドを、「行うべきコマンドリスト」の最後に付け加えるのみで、実行は後回しにする。

・`timer があると、それ以降の dviout specials は指定した時間経過後に解釈するように設定し、以降の dviout specials を解釈せずに終わる。

・`wait または ; があると、「それ以降の dviout specials を解釈せよ」というコマンドを「行うべきコマンドリスト」の最後に付け加えて終わる。

3 まで実行した後、「行うべきコマンドリスト」を先頭から順に、上記と同様に解釈する。`timer によって指定した時間が経過した時も同様。

この場合は dviout specialsでのキー入力操作で、(画面書き換え自身でなくて)画面書き換えを伴うものがあれば、そのキー入力の実行時に「画面書き換えを行え」というコマンドが「行うべきコマンドリスト」の最後に付加される。