                          dvipdfmx for Win32
                      --- dvipdfm-w32.tar.xz ---

[注意]
Mark Wicks による dvipdfm 0.13.2c を元九州大学の平田さん (S. Hirata) が
日本語をサポートするように拡張されたものを dvipdfmo.exe として入れています。
dvipdfm.exe 自体は、より新しい dvipdfmx と同じもので、名前が違うだけです。
hyperref パッケージを使って、所謂日本語しおりを作成するツール out2uni.exe
も同梱しておきます。
(ソースは out2uni.c)。使用法の例は以下のとおりです:

o  日本語しおり作成法 (out2uni を使用する方法):

\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 または dvipdfmo にかけて下さい。

日本語のしおりが、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 としておきます。
このディレクトリにあるサンプル web????w32.pdf には、上のようにして
作成した、しおり、文書情報、text annotation が入れてあります。
-------------------------------------------------------------------

                           dvipdfmx
                        (拡張 dvipdfm)

以前、開発版と呼んでいたものは平田さんから、平田さんを含む
dvipdfmx project team に引き継がれ、release 版やテスト版が配布
されるようになっています。Jin-Hwan Cho さんによって活発に機能の
充実化がされています。正式には URL
http://project.ktug.or.kr/dvipdfmx/
をご覧下さい。実行ファイル名は dvipdfmx.exe とされています。
現在では、オリジナルの dvipdfm.exe は dvipdfmx と同じものであり、
dvipdfmx の dvipdfm compatible mode で動くようになっています。
コンフィギュレーション設定ファイル名は、dvipdfmo.exe 用が
dvipdfm.cfg であるのに対して、dvipdfmx 用のものは dvipdfmx.cfg です。
またフォント設定用マップファイル名は、dvipdfmo.exe 用が cid.map である
のに対して、dvipdfmx 用のものは cid-x.map です。
フォントとして、Ryumin-Light, GothicBBB-Medium,HeiseiMin-W3,
HeiseiKakuGo-W5 を用いたものは、Acrobat Reader が理解できる predefined
フォントなので、埋め込みません。配布パッケージの cid-x.map では、rml
に対して msmincho.ttc, gbm に対して msgothic.ttc を対応させており、
これらは埋め込まれます。

マップファイルで 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 自身に
記述してある説明を読んで下さい。


[TrueType フォントの埋め込み法]
上に述べたように、パッケージをインストールしただけで、ＭＳ明朝と
ＭＳゴシックを埋め込むように設定してありますが、自分で多様なフォント
を埋め込みたい場合のために、典型的な方法を述べておきます。
まず、TeX で使うときの tfm フォント名を決めます。ここでは myfnt.tfm
として説明します。次に rml.tfm に対応する tfm 名 (dvips-tfm 名) を
決めます。ここではこれを psmyfnt.tfm として説明します。埋め込む
TrueType フォント名が somefnt.ttc (TrueType フォントコレクション)
であるとします。
(1)
texmf-dist/fonts/tfm/ptex/jextra など適当な名前のディレクトリをつくり、
そこに texmf-dist/fonts/tfm/ptex/jis にある jis.tfm を myfnt.tfm なる
名前でコピーします。
(2)
texmf-dist/fonts/vf/ptex/jextra など適当な名前のディレクトリをつくり、
コマンドプロンプト、或いは MS-DOS プロンプトで、カレントディレクトリ
を texmf-dist/fonts/vf/ptex/jextra にします。そうして
makejvf myfnt psmyfnt
というコマンドを実行します。そうすると myfnt.vf および psmyfnt.tfm
ができるので、myfnt.vf はそのままにし、psmyfnt.tfm を
texmf-dist/fonts/tfm/ptex/dvips なるディレクトリに移動しておきます。
(3)
texmf-dist/fonts/map/dvipdfmx/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//
としてあります。


[日本語しおりなど]
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

のように書きます。


[日本語マップファイルの選択]
デフォルトでどのような実フォントが使用されるかを知るには、
texmf-dist/fonts/map/dvipdfmx/base/cid-x.map
を参照して下さい。このファイルを編集すると、デフォルトを変更することが
できます。以下ではこれを編集すること無く、いろいろなフォントを使用する
方法を示します。otf パッケージ, upTeX など全てに影響があります。
(01)
Hiragino を使用したい場合、
dvipdfmx -f hiragino.map dviname
dvipdfmx -f hiragino04.map dviname
後者は JIS-2004 文字型を使用したい場合です。(以下同様)。
(02)
Hiragino ProN を使用したい場合、
dvipdfmx -f hiraginopron.map dviname
dvipdfmx -f hiraginopron04.map dviname
(03)
ipa フォントを使用したい場合、
dvipdfmx -f ipa.map dviname
(04)
ipaex フォントを使用したい場合、
dvipdfmx -f ipaex.map dviname
(05)
Kozuka Pro を使用したい場合、
dvipdfmx -f kozuka.map dviname
dvipdfmx -f kozuka04.map dviname
(06)
Kozuka Pr6N を使用したい場合、
dvipdfmx -f kozukapr6n.map dviname
dvipdfmx -f kozukapr6n04.map dviname
(07)
Morisawa を使用したい場合、
dvipdfmx -f morisawa.map dviname
dvipdfmx -f morisawa04.map dviname
(08)
Morisawa Pr6N を使用したい場合、
dvipdfmx -f morisawapr6n.map dviname
dvipdfmx -f morisawapr6n04.map dviname
(09)
msmincho, msgothic を使用したい場合、
dvipdfmx -f msmingoth.map dviname
(10)
no embedded にしたい場合、
dvipdfmx -f noembed.map dviname
dvipdfmx -f noembed04.map dviname

[その他]
(1)
Jin-Hwan Cho さん、平田さんによる README を読んで下さい。新しい special の
説明などがあります。それから dvipdfmx project の web ページからは
サンプルなどが入手できると思います。
(2)
dvipdfmo, dvipdfmx ともに、最初のオプションとして -f mapfilename
とすると、configuration file に記述してある map files よりも優先
されます。つまり同じ定義がある場合、コマンドラインで指定したほうが
優先されます。最初のオプションでなければいけないことに注意して
下さい。
--------------------------------------------------------------------------
    サポートファイルとして，pdftex-w32.tar.xz, t1fonts.tar.xz
    をインストールしておいて下さい。

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

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