
      << xdvi-17+markpage+toc+printdvi+paper patchについて >>

					1995/10/07
					小野 康一
					onono@fuka.info.waseda.ac.jp

○xdvi-17+markpage+toc+printdvi+paper patchとは
  xdvi-17 + miyu-patch(beta.pre7) for xdvi PL17に対するパッチです。すで
  にfjに投稿されたいくつかのパッチを集めて修正を加え、さらにいくつかの改
  造を行なったものです。

○このパッチに含まれるパッチ群
  これまでにfjに投稿された以下のパッチを含んでいます。

  (1) xdvi-17+markpage+toc+printdvi patch
      (xdvi-pl17+markpage+toc+printdvi.patch.gz)
      ページマーキング機能、TOC機能、DVI印刷機能を実現したパッチ。
      作成者:小野 康一, 松浦 俊, 平原 厚志
        From: onono@fuka.info.waseda.ac.jp (ONO Kouichi)
        Newsgroups: fj.sources,fj.comp.texhax
        Subject: xdvi-17+markring+toc+printdvi patch
        Date: 13 Sep 1993 23:14:24 +0900
        Message-ID: <ONONO.93Sep13231424@akira.fuka.info.waseda.ac.jp>

  (2) xdvi-17+markring+toc+printdvi patch fix-1
      (1)に対するバグフィックス#1。
      作成者:小野 康一
        From: onono@fuka.info.waseda.ac.jp (ONO Kouichi)
        Newsgroups: fj.comp.texhax,fj.sources.d
        Subject: xdvi-17+markring+toc+printdvi patch fix-1
        Date: 14 Sep 1993 22:26:07 +0900
        Message-ID: <ONONO.93Sep14222607@fuhito.fuka.info.waseda.ac.jp>

  (3) xdvi-17+markpage+toc+printdvi patch fix-2
      (1)+(2)に対するバグフィックス#2。
      作成者:小野 康一
        From: onono@fuka.info.waseda.ac.jp (ONO Kouichi)
        Newsgroups: fj.comp.texhax,fj.sources
        Subject: xdvi-17+markpage+toc+printdvi patch fix-2
        Date: 17 Sep 1993 22:54:04 +0900
        Message-ID: <ONONO.93Sep17XDVIpatch.fix-2@akira.fuka.info.waseda.ac.jp>

  (4) tasai-ussy patch
      (xdvi-17.tasai-ussy.patch)
      (1)のTOCのページ番号検出機能の改善。
      作成者:あさい(tasai)&はらかわ たくや(ussy)
        Newsgroups: fj.comp.texhax,fj.sources.d
        From: ussy@int.titech.ac.jp (Takuya Harakawa)
        Subject: BugPatch for Xdvi-17.miyu.path(beta.7)
        Message-ID: <USSY.93Nov12211358@ayame.int.titech.ac.jp>
        Date: 12 Nov 1993 21:13:58 +0900

  (5) tasai-ussy pagenumber patch
      (xdvi-17.page.patch)
      (1)+(4)のTOCのページ表示を絶対ページ番号から相対ページ番号に変更す
      るパッチ。
      作成者:あさい(tasai)&はらかわ たくや(ussy)
        Newsgroups: fj.sources.d
        From: ussy@int.titech.ac.jp (Takuya Harakawa)
        Subject: UnOfficial Patch for Xdvi-17.miyu.patch(beta.7)
        Message-ID: <USSY.93Nov12231403@ayame.int.titech.ac.jp>
        Date: 12 Nov 1993 23:14:03 +0900
        (上の記事のパッチには誤りがあったので以下の記事が再投稿されてい
        る)
        Newsgroups: fj.sources.d
        From: ussy@int.titech.ac.jp (Takuya Harakawa)
        Subject: an unofficial patch for Xdvi-17.miyu.patch(beta.pre7)
        Message-ID: <USSY.93Nov15175604@kisaragi.int.titech.ac.jp>
        Date: 15 Nov 1993 17:56:04 +0900
        (および)
        Newsgroups: fj.sources.d
        From: ussy@int.titech.ac.jp (Takuya Harakawa)
        Subject: Re: an unofficial patch for Xdvi-17.miyu.patch(beta.pre7)
        Message-ID: <USSY.93Nov15202826@kisaragi.int.titech.ac.jp>
        Date: 15 Nov 1993 20:28:26 +0900

  (6) tasai-ussy pagenumber patch fix-1
      (xdvi-17.pagenumber-fix.patch)
      (1)〜(5)に対するfixおよびversion-up。
      作成者:あさい(tasai)&はらかわ たくや(ussy)
        Newsgroups: fj.comp.texhax,fj.sources.d
        From: ussy@int.titech.ac.jp (Takuya Harakawa)
        Subject: Xdvi-17 pagenumber patch fix
        Message-ID: <USSY.93Nov18065838@ayame.int.titech.ac.jp>
        Date: 18 Nov 1993 06:58:38 +0900

  その他、fjに未投稿の以下のパッチも含んでいます。

  (7) マークページリストの改良
      連続するページ番号を10-13のように表記する。
      作成者:小野 康一

  (8) 各種バグフィックス
      -geometry指定におけるTOCの不具合、X11R4における異常終了など。
      作成者:小野 康一

  (9) 用紙タイプをDVIフィルタ(デバイスドライバ)に渡す機能
      DVIフィルタ(デバイスドライバ)のオプションに合わせて変換する。
      作成者:小野 康一

 (10) 環境変数、リソース、オプションによる指定
      プリンタ名やコマンド文字列などを環境変数、リソース、オプションで指
      定できる。
      作成者:小野 康一

 (11) 用紙タイプを起動後に設定する機能
      Paperボタンを追加し、メニューから用紙タイプを選べるようにする。
      作成者:小野 康一

○このパッチによって使用可能になる機能
  このパッチをあてて作ったxdviでは、以下のような機能を使うことができます。

  1) Use_MARKPAGE
  ページマーキング機能を、GNU Emacsのマークリング風に実現したものです。
  ページのマーク(`m',`a')/アンマーク(`U',`A')、マークしたページへの移動
  (`'',``')、マークしたページとカレントページとの交換('"')、マークを伴う
  ページジャンプ('<','>')などを行なえます。
  また、2)のTOCからのマーキングも可能です。

  2) Use_TOC / Use_PAGENUM
  ページ番号リストを表示し、マウスでそのページをクリックすることで、その
  ページへ移動(左ボタン)、そのページをマーク(真中ボタン)、アンマーク(右
  ボタン)することができます。ドラッグにより、連続するページをマーク/アン
  マークすることもできます。また、東京工業大学のあさい&はらかわ両氏によ
  るtasai-ussyパッチ群により、ページ番号が先頭ページを1とする絶対番号で
  なく、実際のページ番号が表示されるようになっています。

  3) Use_PRINTDVI
  `o'またはPrintボタンでPrint-outメニューがポップアップします。ファイル
  全体の出力やカレントページ、最後にマークしたページ、リージョン(カレン
  トページと最後にマークしたページとの間のページ)、マークした全部のペー
  ジをメニューから選択して出力できます。

  4) Use_PAPER
  `t'またはPaperボタンでSet Paper Typeメニューがポップアップします。用紙
  タイプを入力またはリストメニューから選択すると画面の用紙サイズを示す枠
  線が変化します。selFile機能で、起動後にプレヴューするDVIファイルを変更
  したり、起動した後で用紙タイプが異なっていることに気がついた場合などに
  使えるでしょう。Print機能を用いて出力する際に、内部変数%Z(または%z)の
  展開に用紙タイプが用いられるので(後述)、適切な用紙タイプを選択しないと
  正しい出力結果が得られなくなります。

○動作を確認した環境
	SunOS 4.1.3	SPARCstation	/usr/ucb/cc	X11R5

○作成・インストールについて
  以下のファイル(*1)を用意してください。

  (1) xdvi PL17ソースファイル
      (xdvi-17.tar.gz)
  (2) miyu-patch for xdvi PL17 (beta.pre7)
      (xdvi-17miyu.patch-beta.pre7)
  (3) markpage+toc+printdvi+paper patch (当該パッチ)
      (xdvi-pl17+markpage+toc+printdvi+paper.patch.gz)

  次に、作業ディレクトリを作成して、そのディレクトリに移った後、
  xdvi-17.tar.gzを展開します。そのまま、ディレクトリを移動しないで、
  xdvi-17miyu.patch-beta.pre7.gzのパッチをあてます。このとき、GNUのツー
  ルであるgzipおよびpatchが必要となります(*2)。
  さらにxdvi-17+markpage+toc+printdvi+paper.patch.gzのパッチをあてます。

    % gzip -d -c xdvi-17.tar.gz | tar xf -
    % gzip -d -c xdvi-17miyu.patch-beta.pre7.gz | patch -p1
    % gzip -d -c xdvi-pl17+markpage+toc+printdvi+paper.patch.gz | patch -p1

  あとは、システムに応じてImakefileを編集した後、xmkmfを実行してMakefile
  を生成して、makeを実行します。

    % xmkmf -a
    % make
    % make xdvi.man
    % make MakeTeXPK

  makeが正常に終了したら、インストールします。

    % make install
    % make install.man
    % make install.MakeTeXPK

  なお、miyu-patch for xdvi PL17については、README.miyu-patchをよく読ん
  でください。tasai-ussyパッチ群については、README.tasai-ussyをよく読ん
  でください。

  (*1) (1)〜(2)は
       ftp://ftp.tohoku.ac.jp/pub/TeX/dviwares/xdvi/PL17
       ftp://ftp.fuka.info.waseda.ac.jp/pub/xdvi/PL17
       などのanonymous ftpなどから入手できます。
       (3)は
       ftp://ftp.fuka.info.waseda.ac.jp/pub/xdvi/PL17
       のanonymous ftpから入手できます。

  (*2) これらは
       ftp://ftp.waseda.ac.jp/pub/GNU/prep
       などのanonymous ftpなどから入手できます。

○Use_MARKPAGEおよびUse_TOCについて
  つけられるマークの最大数を1024、DVI ファイルの最大ページ数も同じく1024
  としてあります。これを越えることはまずないと思いますが、もし変更する場
  合は、ImakefileのRINGSIZEおよびMAX_PAGEを修正してください。

○Use_PRINTDVIについて
  ImakefileのUse_PRINTDVIのところは、自己サイトの環境に合わせて変更して
  ください。%dなどの意味については、print.hの最初の方のコメントに書いて
  あります。また、defaultではdvi2ps-jやdviselectを用いるように書いてあり
  ます。このように、必要なページを切り出したり、プリンタ出力形式へ変換す
  る作業はxdviの内部で行なわず、外部コマンドで処理するような仕様にしまし
  た。したがって、これらのコマンドをあらかじめインストールしておかないと、
  xdviからの出力ができません。dvi2ps-j, dvips, jdvi2kps, dviselectなど、
  自己サイトの環境に合ったコマンドをインストールし、それに合わせて
  Imakefileを修正した上でxdviを作ってください。
  また、defaultではlprに-vオプションを与えていません。PostScriptプリンタ
  用のフィルタによっては-vオプションをつける必要があるかも知れません。ま
  た、defaultではdvi2ps-jの出力を一旦テンポラリファイルにリダイレクトし、
  それをlpr -s -rで出力するようになっています。もし-rオプションがサポー
  トされていない場合は、dvi2ps-j(ないしはそれに類するDVIフィルタ(デバイ
  スドライバ))の出力をlprの標準入力にパイプで渡すように変更するといいで
  しょう。
  ただし、lprによっては、出力データが1Mbyteを越えるとそれ以降を切り捨て
  て出力するような仕様になっているかも知れません。そのような場合はやはり
  DVIフィルタ/デバイスドライバの出力を一旦テンポラリファイルにリダイレク
  トし、それをlpr -sで出力し、終了後にrmするようにすればいいでしょう。た
  だし、-rが使えないと、出力完了まで待ってrmする、という手続きを自分で書
  かないといけませんが。面倒ならばlprの標準入力に与える方法で我慢しましょ
  う。それでも1Mbyteを越えるくらいたくさんのページを出力したい場合は、
  xdviの中から出力せずにシェルのコマンドラインから
	% dvi2ps file.dvi > /tmp/file.ps
	% lpr -s /tmp/file.ps
	(出力完了後)
	% rm /tmp/file.ps
  とした方がいいような気がします:-)

○内部変数(%fなど)の意味
  print.hの最初の方のコメントにも書いてありますが、簡単に説明しておきま
  す。Imakefile中のPRCMD???という変数は
	PRCMDLST="cd %d; dviselect -i %F -o %D/%F:%o@%r.dvi %G; %R %D/%F:%o@%r.dvi > %D/%F:%o@%r.ps; /bin/rm %D/%F:%o@%r.dvi; %P -J'%F (Page %o)' %D/%F:%o@%r.ps"
	/* all marked pages */
  のように、%表記の内部変数が用いられています。これは、DVIファイルの出力
  時に解釈されて実行されるコマンド文字列です。
    PRCMDALL  DVIファイルの全部を出力(する時に用いられるコマンド文字列)
    PRCMDCUR  カレントページ(現在表示しているページ)を出力
    PRCMDMRK  最後にマークしたページを出力
    PRCMDRGN  リージョン(カレントページと最後にマークしたページで挟まれ
              ている区間)内のすべてのページを出力
    PRCMDLST  マークしたすべてのページを出力
  これらのコマンドは、Print-outメニューで選択する項目
	All pages
	Current page
	Last marked page
	Region
	All marked pages
  にそれぞれ対応しています。
  コマンド文字列の解釈は、%表記の内部変数を展開することによって行なわれ
  ます。各内部変数の意味は次の通りです。
    %% : '%'文字
    %f : 現在参照しているDVIファイルのファイル名(フルパス名)
    %F : 現在参照しているDVIファイルのファイル名(basename)
    %d : 現在参照しているDVIファイルが置かれているディレクトリ名
         (%f == %d/%F)
    %D : テンポラリファイルを置くディレクトリ(環境変数TMPDIRが定義されて
         いればその値。定義されていない場合はコンパイル時のTEMPDIRの値)
    %p : プリンタ名(環境変数PRINTERが定義されていればその値。また、
         Print-menuで設定されるならその値)
    %P : プリンタ出力制御コマンド文字列(環境変数PRINTCMDが定義されていれ
         ばその値。もし定義されていない場合は、コンパイル時の定数
         PRINTCMDの値("lpr -s -r -P%p"))
    %z : -paperオプションで指定される用紙タイプ(小文字; ex. "a4")
         下記の注を参照。
    %Z : -paperオプションで指定される用紙タイプを変換テーブルでDVIフィル
         タ(デバイスドライバ)のオプションに変換した文字列
         (ex. "a4r" ---> "a4landscape" for dvi2ps-j)
         下記の注を参照。
    %r : xdviのプロセスID
    %R : DVIフィルタ(デバイスドライバ)のコマンド文字列(環境変数DVIFILTER
         が定義されていればそれに代入されている文字列。もし定義されてい
         ない場合は、コンパイル時のDVIFILTERCMDの値)
  以下はページ番号に関する内部変数です。すべて絶対ページ番号(先頭ページ
  を1として単調増加するページ番号。\countに左右されない)で表記します。
    %c : カレントページ番号
    %m : 最後にマークしたページ番号
    %s : リージョンの開始ページ番号(%cと%mの最小値)
    %e : リージョンの終了ページ番号(%cと%mの最大値)
    %l : マークしたページ番号リスト(マーク順); 各ページ番号は','で区切ら
         れている
    %L : マークしたページ番号リスト(マーク順); 各ページ番号は' 'で区切ら
         れている
    %t : マークしたページ番号リスト(ソートされている); 各ページ番号は','
         で区切られている
    %T : マークしたページ番号リスト(ソートされている); 各ページ番号は' '
         で区切られている
    %o : マークしたページ番号リスト(ソートされている); 連続するページの
         場合、'-'で範囲を示す。各ページ範囲やページ番号は','で区切られ
         ている
    %O : マークしたページ番号リスト(ソートされている); 連続するページの
         場合、'-'で範囲を示す。各ページ範囲やページ番号は' 'で区切られ
         ている
    %k : %lと同様、ただし、各ページ番号の前に'='が置かれている
         (dviselectを仮定している)
    %K : %Lと同様、ただし、各ページ番号の前に'='が置かれている
         (dviselectを仮定している)
    %a : %tと同様、ただし、各ページ番号の前に'='が置かれている
         (dviselectを仮定している)
    %A : %Tと同様、ただし、各ページ番号の前に'='が置かれている
         (dviselectを仮定している)
    %g : %oと同様、ただし、各ページ範囲やページ番号の前に'='が置かれている
         (dviselectを仮定している)
    %G : %Oと同様、ただし、各ページ範囲やページ番号の前に'='が置かれている
         (dviselectを仮定している)
  たとえば、上記のPRCMDLSTの定義で、/home/onono/doc/sample.dviをプレヴュー
  していて、3,6,11,17ページをマークしている時に、Print-outメニューから
  All marked pagesを選択すると、実行される文字列は以下のようになります。
	cd /home/onono/doc;
	dviselect -i sample.dvi -o /tmp/sample.dvi:3,6,11,17@3255.dvi
		=3 =6 =11 =17;
	dvi2ps -o a4 /tmp/sample.dvi:3,6,11,17@3255.dvi > /tmp/sampe.dvi:3,6,11,17@3255.ps;
	/bin/rm /tmp/sample.dvi:3,6,11,17@3255.dvi;
	lpr -s -r -Plp -J'sampe.dvi (Page 3,6,11,17)' /tmp/sampe.dvi:3,6,11,17@3255.ps;
  ただし、xdviのプロセスID = 3255、プリンタ名 = lpとします。また、-paper
  オプションはa4を指定したとします。

○%z/%Zについて(xdvi -paper/dvi2ps -o/jdvi2kps -paの関係)
  %zには、起動時の-paperオプション/.paperリソースなどで与えられた用紙サ
  イズが代入されます。この内部変数を用いて、出力コマンド文字列の中に
	dvi2ps -o %z
  のように、dvi2psの用紙タイプオプションとして与えることを想定しています。
  xdviのdefault用紙タイプ(a4)と異なるタイプ、たとえばB4サイズのdviファイ
  ルをプレヴューする場合は-paper b4を指定してxdviを起動しておけば、正し
  い用紙タイプで出力することができます。

  しかし、xdvi -paperとdvi2ps -o, jdvi2kps -paなどで指定する用紙タイプは、
  以下に示すように、かならずしも共通していません。

      用紙タイプ名  xdvi -paper  dvi2ps-j -o  jdvi2kps -pa
      letter        ×           ○           ×
      legal         ○           ○           ×
      tabloid       ×           ○           ×
      us            ○           ×           ×
      usr           ○           ×           ×
      foolscap      ○           ×           ×
      a[1-2]        ○           ×           ×
      a[3-5]        ○           ○           ○
      a[6-7]        ○           ×           ×
      a4extra       ×           ×           ○
      b[1-3]        ○           ×           ×
      b[4-5]        ○           ○           ○
      b[6-7]        ○           ×           ×
      c[1-7]        ○           ×           ×
      [a-c][1-7]r   ○           ×           ×

  そこで、それぞれのDVIフィルタ(デバイスドライバ)に合わせて用紙タイプ名
  を決める変換テーブルファイルを用意しておき、出力時にそれを参照するとい
  う仕様にしました。内部変数%Zは、%zの用紙タイプ名を変換テーブルファイル
  にしたがって変換した(DVIフィルタ用の)用紙タイプオプション文字列に展開
  されます。

○用紙タイプ-->DVIフィルタ(デバイスドライバ)オプション変換テーブルファイル
  xdviの-paperオプションなどで指定した用紙タイプから、それぞれのDVIフィ
  ルタ(デバイスドライバ)のオプションに変換するためのテーブルファイルを用
  意しておくことができます。dvi2ps-j, jdvi2kps, dvipsなど、複数のDVIフィ
  ルタ(デバイスドライバ)を使用する場合は、それぞれに対応する変換テーブル
  を用意しておけば、オプションの違いを意識せずに出力させることができます。
  また、プリンタの使用できる用紙タイプが限定される場合にも、この変換テー
  ブルで対応することができます。

  変換テーブルファイルのサンプルとして、dvi2ps-j用(xdvipaper.dvi2ps-j)と
  jdvi2kps用(xdvipaper.jdvi2kps)とdvips用(xdvipaper.dvips)を用意してあり
  ます。

  変換テーブルファイルの書式は以下の通りです。

  '#'以降は行末までコメントと見なされ、無視されます。行頭および行末の
  whitespace(スペースおよびタブ)は無視されます。コメントとwhitespaceを除
  いた各行は、空行であるか、または、以下の書式をしています。

  書式a. <用紙タイプ>
  書式b. <用紙タイプ>  <DVIフィルタ(デバイスドライバ)のオプション文字列>
  書式c. =             <DVIフィルタ(デバイスドライバ)のオプション文字列>

  書式bでは、<用紙タイプ>と<オプション文字列>の間に一つ以上のwhitespace
  が必要です。書式cでは、"="と<オプション文字列>の間にwhitespaceはあって
  もなくてもかまいません。<オプション文字列>中には、whitespaceを含ませる
  ことができます(行末までが<オプション文字列>と見なされます)。

  <用紙タイプ>には、xdviがサポートしている用紙タイプを書くことができます
  (ex. a4r)。ワイルドカード表現や正規表現は書けません。

  変換テーブルの検索は以下のように行ないます。

  先頭行から、"="を持つ行または<用紙タイプ>が一致する行が見つかるまで探
  します。もし見つかった行に<オプション文字列>があるなら(書式b, c)、それ
  を用います。もし<オプション文字列>がないなら(書式a)、<用紙タイプ>をそ
  のまま用います。もし一致する行(または"="を持つ行)が見つからない場合は、
  用紙タイプをそのまま用います。

  たとえば、変換テーブルファイルが以下のようになっていて、用紙サイズが
  a4rの時、変換して得られるオプション文字列(%Zの値)は"a4 -l"になります。

    ### sample
    a4			# A4 portrait
    b4		b4	# B4 portrait
    a4r		a4 -l	# A4 landscape
    =		a4	# default is A4 portrait

○内部変数の再帰的展開
  %Pおよび%Rは、コマンドとして解釈される文字列の一部分に展開されます。し
  たがって、その文字列中にさらに内部変数を記述してある場合、それがさらに
  展開される必要があります。そこで、この二つの変数に限り、展開を再帰的に
  行なうようにしてあります。他の内部変数は、文字列への展開を一度だけ行な
  うようになっています。
  したがって、%Pおよび%Rに相当するマクロシンボルをImakefileなどで定義す
  る場合は、その文字列中に%Pや%R自身を含まないように注意してください。
  環境変数PRINTCMDおよびDVIFILTERを定義する場合も同様です。

○カスタマイズ
  起動時オプション、リソースおよび環境変数の参照によるカスタマイズが可能
  になっています。

  (0) 出力コマンド文字列
      Print-outメニューから選択する出力コマンドに用いられるコマンド文字
      列は、以下の優先順位によって定まります。
	1. オプション
	   (-printall, -printcurrent, -printmarked, -printregion, -printlist)
	2. リソース
	   (.printAll, .printCurrent, .printMarked, .printRegion, .printList)
	3. コンパイル時default
	   (PRCMDALL, PRCMDCUR, PRCMDMRK, PRCMDRGN, PRCMDLST)

  (1) プリンタ
      出力コマンド文字列中に現れる内部変数%pの展開によって得られるプリン
      タ名は、以下の優先順位で定まります。
	0. Print-outメニューにおける指定
	1. -printerオプション
	2. .printerリソース
	3. 環境変数PRINTER
	4. コンパイル時default(DVIPRINTER)

  (2) テンポラリディレクトリ
      出力コマンド文字列中に現れる内部変数%Dの展開によって得られる、「出
      力時に作成するテンポラリファイルを置くディレクトリ」は、以下の優先
      順位で定まります。
	1. 環境変数TMPDIR
	2. コンパイル時default(TEMPDIR)

  (3) DVIフィルタ(デバイスドライバ)
      出力コマンド文字列中に現れる内部変数%Rの展開によって得られる、
     「DVIフィルタ(デバイスドライバ)として用いられるコマンド文字列」は、
      以下の優先順位で定まります。
	1. 環境変数DVIFILTER
	2. コンパイル時default(DVIFILTERCMD)

  (4) プリンタ出力制御コマンド
      出力コマンド文字列中に現れる内部変数%Pの展開によって得られる、「プ
      リンタ出力制御コマンド文字列(DVIをプリンタ依存形式へ変換するコマン
      ドは含まず、単にファイルをプリンタへ送るためのコマンド)」は、以下
      の優先順位で決まります。
	1. 環境変数PRINTCMD
	2. コンパイル時default(PRINTCMD)

  (5) 用紙タイプ-->DVIフィルタ(デバイスドライバ)オプション変換テーブル
      出力コマンド文字列中に現れる内部変数%Zの展開によって得られる、
      「DVIフィルタ(デバイスドライバ)のオプション」へxdviの用紙タイプか
      ら変換するためのテーブルファイル名は、以下の優先順位で決まります。
	1. 環境変数XDVIFILTOPTTBL
	2. コンパイル時default(FILTOPTTBLFILE)

  したがって、jdvi2kpsによる出力を想定したカスタマイズをするには、
	環境変数DVIFILTERを"jdvi2kps -p%Z"
	環境変数XDVIFILTOPTTBLを"/usr/local/lib/TeX/xdvipaper.jdvi2kps"
  また、dvipsによる出力を想定したカスタマイズをするには、
	環境変数DVIFILTERを"dvips -t%Z"
	環境変数XDVIFILTOPTTBLを"/usr/local/lib/TeX/xdvipaper.dvips"
  にしておけばいいはずです。

○独立性
  Use_MARKPAGE, Use_TOC(Use_PAGENUM), Use_PRINTDVI, Use_PAPERは、相互に
  独立し#define/#undefできるはずです(試していません)。もちろん、
	#undef	Use_MARKPAGE
	#define	Use_TOC
	#define Use_PAGENUM
	#define	Use_PRINTDVI
	#define Use_PAPER
  で作った場合は、TOC上でのマーキングができませんし(ページ移動はできる)、
  Print-outメニューはAll pagesとCurrent pageの二つだけになるでしょう。
  Use_TOCとUse_PAGENUMの関係についてはREADME.tasai-ussyを読んでください。

○著作権
  当該パッチの中のファイル
	markring.c
	markring.h
	markpage.c
	markpage.h
	toc.c
	toc.h
	print.c
	print.h
	paper.c
	paper.h
  の著作権は、作者である
	松浦 俊     MATSUURA Syun      syun@fuka.info.waseda.ac.jp
	平原 厚志   HIRAHARA Atsushi   hirahara@fuka.info.waseda.ac.jp
	小野 康一   ONO Kouichi        onono@fuka.info.waseda.ac.jp
  に帰属します。なお、著作者を明らかにする限り、当該パッチの一部または全
  体を改造、転送、再配布するのは自由とします。
  また、あさい&はらかわ両氏によるtasai-ussyパッチ部分の著作権については
  両氏にお問い合わせください。

○主な変更点およびバグフィックス
Revision 1			1993/09/13	fj.comp.texhax,fj.sources
	markpage+toc+printdvi patch Revision 1。
fix-1				1993/09/14	fj.comp.texhax,fj.sources.d
Message-ID: <ONONO.93Sep14222607@fuhito.fuka.info.waseda.ac.jp>
(1)	すでにDVIファイルをオープンしていて、'F'またはFileボタンで
	selFileメニューから別のDVIファイルをオープンすると、TOCとマーク
	の表示が以前のファイルのままになる、という不具合を修正。
	[報告 : NEC技術情報システム開発株式会社 平山 度 さん]

fix-2				1993/09/17	fj.comp.texhax,fj.sources
Message-ID: <ONONO.93Sep17XDVIpatch.fix-2@akira.fuka.info.waseda.ac.jp>
(1)	-expertオプションを用いて起動して、ボタンなしで使用している時に
	マークすると落ちてしまう、という不具合を修正。
	[報告 : 京都大学 上原 哲太郎 さん]
(2)	Print-out popupウィンドウのプルダウンメニューにおけるアイテム名
	で、``Marked page''という表現が``All marked pages''と間違え易い
	ので、``Last marked page''に変更。
	[提案 : 大阪大学 升谷 保博 さん]
(3)	DVIフィルタ(デバイスドライバ)の出力をlprの標準入力に与えるという
	仕様を、DVIフィルタ(デバイスドライバ)の出力を一旦テンポラリファ
	イルにリダイレクトし、それをlpr -s -rで出力するという仕様に変更。
	[提案 : 大阪大学 升谷 保博 さん]
(4)	ULTRIX V4.0にはstrdup()がないので、xmalloc()を使ったStrDup()を用
	いるように変更。
	[報告 : 東京大学 南田 幸紀 さん]
fix-3				1993/09/23
(1)	マークページリストの表記を
		5,8-12,27,29,35-36,41
	のようにする内部変数%o,%O,%g,%Gを追加。
fix-4				1993/10/02
(1)	-geometry指定をして起動するとTOCが表示されない(resize)してもバグ
	を修正(miyuパッチで入ったバグと思われる)。
	[報告 : 京都大学 今村 俊幸 さん]
(2)	X11R4でviewport widgetのサイズが0となって異常終了するバグを修正
	(X11R4のviewport widgetの設計ミスと思われる。X11R5では起きない)。
	[報告/提案 : 東京大学 南田 幸紀 さん]
(3)	font_open.cで探索ディレクトリの計算を行なっている部分の(orignal
	xdviからの)バグを修正。
	[報告/提案 : 東京大学 南田 幸紀 さん]
fix-5				1994/08/20
(1)	-paperオプションによって指定される用紙タイプ(ex. "a4")を示す内部
	変数%z,%Zを追加。
fix-6				1995/01/28
(1)	print.cにおいて、出力処理を子プロセスがsystem()で実行するのを、
	execl()に変更。
	[報告 : 東京大学 鍵本 崇 さん]
Revision 2			1995/09/23
	markpage+toc+printdvi patch Revision 2。
	Paperメニュー機能の追加により、	markpage+toc+printdvi+paperパッ
	チに名称変更。
(1)	DVIフィルタ(デバイスドライバ)に用いるコマンド文字列を環境変数で
	与えられるように、内部変数%Rを追加。
	[提案 : 京都大学 上原 正三 さん]
(2)	テンポラリファイルを置くディレクトリを環境変数で与えられるように、
	内部変数%Dを追加。
(3)	-paperオプションで与えられる用紙タイプを元に、変換テーブルを参照
	して、DVIフィルタ(デバイスドライバ)の用紙タイプ指定に変換してコ
	マンド実行できるように、内部変数%Zを変更。
(4)	プリンタ名を起動時に指定できるように、-printerオプションおよび
	.printerリソースを追加。
	オプション	リソース名	クラス名
	-printer	.printer	Printer
(5)	出力コマンド文字列を起動時に指定できるように、オプションおよびリ
	ソースを追加。
	オプション	リソース名	クラス名
	-printall	.printAll	PrintAll
	-printcurrent	.printCurrent	PrintCurrent
	-printmarked	.printMarked	PrintMarked
	-printregion	.printRegion	PrintRegion
	-printlist	.printList	PrintList
(6)	プリンタ制御出力コマンドを環境変数で与えられるように、内部変数%P
	を追加。
(7)	Paperボタンおよび't'コマンドによって、用紙タイプを変更できるよう
	にした。
fix-1				1995/10/07
(1)	用紙タイプを変更した時に二回redrawされるのを修正。
