                          dvipdfm for Win32
                      --- dvipdfm-w32.tar.bz2 ---

[注意]
Mark Wicks による dvipdfm 0.13.2c を Win32 用に Microsoft VC++ 5.0 で
Make したものです。 DVI を PDF に変換するドライバです。バージョン
0.9.x から圧縮がサポートされました。また，バージョン 0.8.x から
virtual fonts 対応となっているので，ptmr8t などのフォントを使用する
ことができます。インストールするには TeX のインストールディレクトリ
(デフォルトは c:/usr/local)で，パッケージ dvipdfm-w32.tar.bz2 を展開すれば
よくなっています。texmf/doc/dvipdfm/base/dvipdfm.pdf がマニュアルです。
これは dvipdfm 自身によって作成した PDF です。オリジナルでは，paper size の
デフォルトが letter になっていますが，Win32 版では a4 に変更しています。
jpeg ファイルや epdf ファイルを埋め込む場合，texmf.cnf に TEXPICTS なる変数
が定義してあったら，それに従ってファイルをサーチします。定義してなかった
TEXINPUTS に従うはずです。バージョン 0.10.x からは Type 1 フォントが見つから
なかった場合，PK フォントが使用されるようになっています。この場合のデフォルト
dpi は 600 です。勿論 PK フォントはできるだけ避けたようがよいでしょう。
tpic special もサポートされています。バージョン 0.11 から PNG 画像もサポート
されています。このことに対応するため、graphics package は最新のものを使用して
下さい(ltxpkgs.tar.gz を入手すれば OK です)。0.12 から、MetaPost 出力ファイル
を埋め込むことができます。また、GhostScript の助けを借りて、通常の EPS を
取り込むこともできます。

ここに配布する dvipdfm は、元九州大学の平田さん (S. Hirata) によって
日本語サポート拡張が実現されたものです(0.13.3TL-j-p1d)。platex
で出力した dvi から、日本語 PDF を出力することができます。hyperref
パッケージを使って、所謂日本語しおりを作成するツール out2uni.exe を
入れておきます。
(ソースは out2uni.c)。使用法の例は以下のとおりです:
この j-p1d バージョンでは、縦書きがサポートされています。縦書きと画像
埋め込み等の点については、平田さんによる文書 jpatch-p1.pdf をご覧下さい。

Windows 版では、コンフィギュレーション設定ファイル名が config では
なくて dvipdfm.cfg であることに注意して下さい。

稲垣淳さんが、dviout ML で流された ums.sty を使って、msmin??, msgoth??
なるフォントを使用したとき、dvipdfm で Type1 フォントを埋め込むように
マップファイルと dvipdfm.cfg を準備してあります。ただし、Omega と Omegaj-w32
をインストールし、Type1 フォントを作成しておかないといけません。

o  日本語しおり作成法:

\usepackage[dvipdfm]{color}
\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,%
bookmarkstype=toc]{hyperref}
のようにして hyperref package を読み込んでおき、

platex foo
platex foo
out2uni foo
platex foo
dvipdfm foo

とすると、日本語しおりを含んだ PDF をつくることができます。
platex foo が終了したあと、out2uni foo を実行し、更に platex foo
を実行した直後の dvi を dvipdfm にかけて下さい。

このディレクトリにある、web756w32.pdf は、 dvipdfm で作成した
日本語 PDF のサンプルです。

日本語のしおりが、Acrobat Reader で読める環境は限られているので、
しおりだけは us-ascii で作成したほうが良いかもしれません。us-ascii
でしおりを作成する場合は out2uni を使用する必要はありません。


o  日本語文書情報作成法:

Acrobat Reader において Control D で表示される
文書情報 (pdftitle, pdfsubject, pdfauthor, pdfkeywords)
に日本語を含めるには次のようにします。

[1]
hyperref パッケージは次のようにして読み込みます:

... ...
\input docinfo.out
\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,%
bookmarkstype=toc,%
pdftitle=\PDFTITLE,%
pdfsubject=\PDFSUBJECT,%
pdfauthor=\PDFAUTHOR,%
pdfkeywords=\PDFKEYWORDS]{hyperref}
... ...

[2]
別ファイル docinfo.out は、次のように作っておき、
あらかじめ一回だけ out2uni docinfo としておきます。
(これによって Unicode に変換する。)
ファイル名は docinfo.out である必要はありませんが、サフィックス
は必ず .out でなければいけません。 out2uni はサフィックスが .out である
ことを仮定しているからです。また一項目は一行で終わる必要があります。
ただし、行の最後のバックスラッシュ \ によって行を継続することができます。
プログラムはこの \ と、行末コードを取り除いて行を構成します。
\ の後にはすぐに Enter キーを打たないと、継続行とは解釈されないことに
注意して下さい。こうして作る一行の長さ制限は 16 キロバイトほど可能です
から、通常長さを気にする必要はありません。docinfo.out は out2uni docinfo
とすると書き換えられますから、内容を変更しながらくりかえす場合には、
編集するファイルを例えば docinfo.txt としておき、
copy docinfo.txt docinfo.out としてから out2uni docinfo とすれば良い
でしょう。docinfo.out に対しては out2uni を実行するのは一回だけである
ことに注意して下さい。訂正するには docinfo.txt を訂正してから
copy docinfo.txt docinfo.out とします。


%
% source of docinfo.out
% this is overwritten by out2uni
%
\catcode`\@=0
@catcode`@\=12
@def@PDFTITLE{TeX による日本語組版技術}
@def@PDFSUBJECT{TeX と PDF の連携について}
@def@PDFAUTHOR{中村 一郎}
@def@PDFKEYWORDS{TeX、メタフォント、メタポスト、ポストスクリプト、PDF}
@catcode`@\=0
\catcode`\@=12


あとは通常どおり
platex foo
platex foo
out2uni foo
platex foo
dvipdfm foo
です。


o  日本語 Text annotation 作成法

Text annotation に日本語を含めるには、上で述べた docinfo.out のソース
ファイルに次のような行を付加しておきます:

@def@ANNOT{これは Text annotaion の例です。}

そうして、TeX ソースに次のように dvipdfm special を書いておきます:

\special{pdf: ann width 7cm height 5cm
<< /Type /Annot /Subtype /Text /Open true
/Contents (\ANNOT) >>}

この special を覚えるのは大変なので、

\def\textannot#1#2#3#4{%
\special{pdf: ann width #1 height #2
<< /Type /Annot /Subtype /Text /Open #3
/Contents (#4) >>}
}

のようなマクロを作っておくと便利でしょう。そうすると、

\textannot{7cm}{5cm}{false}{\ANNOT}

のように書くことができます。

docinfo.out では、一項目は必ず一行でなければいけないことに注意して
下さい。ただし、行の最後の文字 \ によって行を継続できます。
プログラムはこの \ と、行末文字を取り除いて一行を構成します。
このようにして作られた一行の長さ制限は約 16 キロバイトです。
通常気にする必要は無いでしょう。改行文字は上述のように取り除かれます
から、改行文字を陽に入れたい場合は \012 としておきます。
このディレクトリにあるサンプル web756w32.pdf には、上のようにして
作成した、しおり、文書情報、text annotation が入れてあります。
-------------------------------------------------------------------

                           dvipdfmx
                        (拡張 dvipdfm)

以前、開発版と呼んでいたものは平田さんから、平田さんを含む
dvipdfmx project team に引き継がれ、release 版やテスト版が配布
されるようになっています。Jin-Hwan Cho さんによって活発に機能の
充実化がされています。正式には URL
http://project.ktug.or.kr/dvipdfmx/
をご覧下さい。実行ファイル名は dvipdfmx.exe とされています。
また、コンフィギュレーション設定ファイル名は、通常版のものが
dvipdfm.cfg であるのに対して、dvipdfmx 用のものは dvipdfmx.cfg です。
またフォント設定用マップファイル名は、通常版のものが cid.map である
のに対して、dvipdfmx 用のものは cid-x.map です。CMap の設定
が必要ですが、最小限必要なものはパッケージ自体に含めていますから、
パッケージを展開するだけで、使用可能になります。より完全な CMap の
設定法は以下で述べます。フォントとして、Ryumin-Light, GothicBBB-Medium,
HeiseiMin-W3, HeiseiKakuGo-W5 を用いたものは、Acrobat Reader が理解
できる predefined フォントなので、埋め込みません。配布パッケージの
cid-x.map では、rml に対して Ryumin-Light, gbm に対して GothicBBB-Medium
を対応させており、これらは埋め込まれません。 TrueType フォントの
埋め込みのテストをするには -f msembed.map を最初のオプションにします:

dvipdfmx -f msembed.map dviname

マップファイルで TeX フォント名(tfm名) が解決した場合には、vf や ovf
はたとえ存在しても読みに行きません。よって、lambdaj, omagaj の dvi
において、omsmin, omsgoth を好みのフォントに割り当てて pdf にすることが
可能です。omsmin.ofm, omsgoth.ofm は omegaj-w32 によってインストールされます。


[PDF encryption]
dvipdfmx では、オプション -S によって、PDF 暗号化が可能になっています。
コマンドラインから、Owner Password と User Password を入力します。
dvipdfmx.cfg の K セクションで暗号化キービット数 (40 or 128)、を設定
できます。 dvipdfmx.cfg の P セクションについては、dvipdfmx.cfg 自身に
記述してある説明を読んで下さい。


[CMap のインストール法]
最小限必要なものは、既にインストール済みなので、通常使用には困りません
が、より沢山の CMap をインストールし、dvipdfmx が見つけることができる
ようにする方法を述べます。GS-CJK をインストールしている場合には既に
沢山の CMap をインストールしてあるはずです。この場合は、そのリソース
ディレクトリを texmf.cnf の変数 CMAPFONTS に記述するだけで dvipdfmx
から見えるようになります。
CMAPFONTS = d:/Resource/CMap//
のように記述します。最新の texmf.cnf では変数 CMAPFONTS
の内容は CMAPFONTS = .;$TEXMF/fonts/cmap// のように記述して
あります。つまり $TEXMF/fonts/cmap/ に入れておくと、texmf.cnf を編集
せずにアクセス可になります。変更の必要があれば編集します。
GS-CJK をインストールしていない場合には、
http://www.ring.gr.jp/pub/text/TeX/ptex-win32/gs/ から二つのファイル
adobe-cmaps-200204.zip と acro5-cmaps-2001.zip を get し、これを
適当なリソースディレクトリ、例えば d:/Resource をカレントディレクトリ
として展開します。そうして上で述べたように texmf.cnf の変数を
CMAPFONTS = .;$TEXMF/fnots/cmap//;d:/Resource/CMap//
のように変更します。或いはもっと簡単な方法として、Acrobat Reader を
インストールしている場合には充分な CMap がありますから、
CMAPFONTS = .;$TEXMF/fonts/cmap//;c:/acro5/Resource/CMap//
とするだけでもよいでしょう。dvipdfmx は CMap を探す場合、CMAPFONTS 
に記述してある場所を探します。パッケージに同梱の最小限のファイルは
texmf/fonts/cmap にあり、適切に CMAPFONTS が記述してありますから使
うことができます。


[TrueType フォントの埋め込み法]
上に述べたように、パッケージをインストールしただけで、ＭＳ明朝と
ＭＳゴシックを埋め込むように設定してありますが、自分で多様なフォント
を埋め込みたい場合のために、典型的な方法を述べておきます。
まず、TeX で使うときの tfm フォント名を決めます。ここでは myfnt.tfm
として説明します。次に rml.tfm に対応する tfm 名 (dvips-tfm 名) を
決めます。ここではこれを psmyfnt.tfm として説明します。埋め込む
TrueType フォント名が somefnt.ttc (TrueType フォントコレクション)
であるとします。
(1)
texmf/fonts/tfm/ptex/jextra なるディレクトリをつくり、
そこに texmf/fonts/tfm/ptex にある jis.tfm を myfnt.tfm なる
名前でコピーします。
(2)
texmf/fonts/vf/ptex/jextra なるディレクトリをつくり、
コマンドプロンプト、或いは MS-DOS プロンプトで、カレントディレクトリ
を texmf/fonts/vf/ptex/jextra にします。そうして
makejvf myfnt psmyfnt
というコマンドを実行します。そうすると myfnt.vf および psmyfnt.tfm
ができるので、myfnt.vf はそのままにし、psmyfnt.tfm を
texmf/fonts/tfm/dvips なるディレクトリに移動しておきます。
(3)
texmf/fonts/map/dvipdfm/base にあるファイル cid-x.map を編集し、
psmyfnt  H  :0:somefnt
なるエントリを作成しておきます。 TrueType フォントコレクション
(somefnt.ttc) の場合、使用するフレームをコロンの間に指定します。第一
フレームは 0, 第二フレームは 1 を指定します。フレームが一個しかない
もの (コレクションではないもの: somefnt.ttf) の場合は必ず 0 を指定
して下さい。
このように設定しておくと、TeX で myfnt なる名前で使用したフォントに
対して somefnt なる TrueType フォントを埋め込むことができます。
なお、
psmyfnt  H  :0:!somefnt
のように、フォント名の直前に記号 ! を置いておくと、フォントを埋め込まない
ように指定することができます。


[CFF/OpenType CID フォント]
新しい dvipdfmx は CFF/OpenType CID フォントの埋め込みもサポートされて
います。TrueType フォントと共存すると、混乱するので cid-x.map
に記述するとき、たとえば
rml H KozMinProVI-Regular.otf
gbm H KozGoPro-Medium.otf
のように、サフィックス .otf は付けておいて下さい。
dvipdfmx は OpenType CID フォントを探すとき、まず texmf.cnf における変数
OPENTYPEFONTS によって探します。最新の texmf.cnf ではデフォルト
として OPENTYPEFONTS = .;$TEXMF/fonts/opentype//
としてあります。少し前の texmf.cnf では、変数 OPENTYPEFONTS は定義して
ありません。


[日本語しおりなど]
dvipdfmx では、out2uni を使わないで日本語のしおり、文書情報、テキスト
アノテーションを含めることができます。このためには pLaTeX の場合はソースを

\documentclass[12pt]{jarticle}
\usepackage{atbegshi}
\AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}
... ...

のように書き始めておきます。

NTT-jLaTeX の場合は、デフォルトのエンコーディングが Shift-JIS であっても、
PDF string は EUC に決められていますので、

\documentclass[12pt]{j-article}
\usepackage{atbegshi}
\AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}
... ...

のようにして始めます。


[ConTeXt サポート]
Jin-Hwan Cho さんによって、ConTeXt の出力 dvi を dvipdfmx で dvi に
できるようになっています。詳細は dvipdfmx project の web ページを見て
下さい。 ConTeXt に付加して必要なファイルは、本パッケージに含めてあります。
ソースは

\starttext
\setupoutput [dvipdfmx]
... ...
... ...
\stoptext

のように書きます。


[その他]
(1)
Jin-Hwan Cho さん、平田さんによる README を読んで下さい。新しい special の
説明などがあります。それから dvipdfmx project の web ページからは
サンプルなどが入手できると思います。
(2)
dvipdfm, dvipdfmx ともに、最初のオプションとして -f mapfilename
とすると、configuration file に記述してある map files よりも優先
されます。つまり同じ定義がある場合、コマンドラインで指定したほうが
優先されます。最初のオプションでなければいけないことに注意して
下さい。
--------------------------------------------------------------------------
    サポートファイルとして，pdftex-w32.tar.bz2, t1fonts.tar.bz2
    をインストールしておいて下さい。 Type 1 フォントの探索場所を
    示す T1FONTS なる変数を texmf.cnf において適切に設定しておく
    ことも重要です。dvipdfmx の場合、TrueType フォントの場所が
    TTFONTS なる texmf.cnf の変数に正しく設定してあることが必要です。
    最新の texmf.cnf では、システムフォントの場所が
    c:/windows/fonts, c:/winnt/fonts, c:/winnt35/fonts である場合
    には、変更不要なように記述してあります。

使用法 (dvipdfm)
    foo.dvi がカレントディレクトリに存在すれば
    dvipdfm  foo
    とすると，うまく行けば foo.pdf ができます。
    dvipdfm
    とすると，使用法の説明が表示されます。

使用法 (dvipdfmx)
    foo.dvi がカレントディレクトリに存在すれば
    dvipdfmx  foo
    とすると，うまく行けば foo.pdf ができます。
    dvipdfmx
    とすると，使用法の説明が表示されます。
----------------
Akira Kakuto <kakuto@fuk.kindai.ac.jp>
