第 5 章 原稿の出力形式 73
5.4 DVI を PDF にその 2
平田俊作氏と
Cho Jin Hwan
氏が中心となって活動しているDvipdfmx Project
によって 開発されている中国語,日本語,韓国語などにも対応したdvipdfm
の拡張版Dvipdfmx
を 使うことができます.Dvipdfmx Project
ウェブページはhttp://project.ktug.or.kr/dvipdfmx/
にあります.
Dvipdfmx
は中国語(Chinese
),日本語(Japanese
),韓国語(Korean
),16
ビットエンコーディングの文字コード(Unicode
など)にも対応しています.CID
フォ ントの埋め込みによって日本語フォントなどを持っていない人でも日本語dvipdfm
の上位互換なのでdvipdfm
で可能なことはDvipdfmx
でも可能でしょう.ちなみ にgraphicxやpict2eパッケージでのオプションには\usepackage[dvipdfmx]{graphicx,color}
好き好き
L
ATEX 2ε 5.4 DVI
を2
5
ではなく
\usepackage[dvipdfm]{graphicx,color}
とするようにしてください.
Dvipdfmx
で指定できる主なコマンドラインオプションは以下の通りです.-S PDF
のセキュリティを有効にします.-K
h数字i40
か128
です. 標準で40
です.-P PDF
のセキュリティのレベルを設定します.-vh
用紙サイズを指定する-p
で使用できる用紙一覧を表示します.実にさまざまな用 紙がすでに定義されています.-p
h幅i,h高さi 定義済みの‘a4’
以外にも,用紙のサイズを単位付きで‘20cm,20cm’
のよ うに指定することもできます.詳しくはdvipdfmx -vh
として表示される情報を見てください.
Dvipdfmx
の-P
オプションによる5.1
を見てください.
0x04
から0x20
までのビットにそれぞれ許可・不許可が割り当てられていま表5.1 Dvipdfmxでのセキュリティレベルの指定
ビット 印刷 改変 文字列などのコピー 注釈の追加
0x04
許可0x08
許可0x10
許可0x20
許可0x28
許可 許可0x3C
許可 許可 許可 許可す.要は表中の
16
進数の値を10
進数に直し,それを自分の設定したいレベルに併せて,それぞれのビットを足したものを再び
16
進数に直せば良いのです.印刷(0x04
)と文 書の改変(0x08
)だけを許可したいならばこのビットを10
進に直して2
つのビットを 足します.すると12
になるのでこれを16
進に直してあげます.電卓などで計算すると‘0x0C’
になりますからdvipdfmx -S -P 0x0C input.dvi
とすれば良いことになります.さらにdvipdfmx -S -P 0x28 input.dvi
とすると改変と注釈の追加だけを許可するようにできますし,特に制限を課さないならば
dvipdfmx -S -P 0x3C input.dvi
とするとパスワードによる保護と暗号化のみになるものと思われます.
5.4.1 もうちょっぴり使いこなす
例えば論文投稿や印刷所に渡すような
Dvipdfmx
を 使うときにはちょっと注意が必要です.自分の環境で正常に印刷できても印刷所の環境 によってはフォントがないなどでうまくできない場合があります.また低解像度のビッ トマップフォントが含まれている場合も受け付けれてくれないかもしれません.1
つの手です.日本語などではなく欧文の場合はpdfL
ATEX
かpdfε-L
ATEX
を使いますとL
ATEX
から直接pL
ATEX
で処理したDVI
ファイルをDvipdfmx
でDvipdfmx
はEPS
などのPostScript
ファイ ルを画像としてL
ATEX
に張り込んでいる場合は,それらをGhostscript
の力を借りてGhostscript
の性能が結果に依存します.現段階ではDvipdfmx
がPostScript
を解釈するのは難しいそうです.日本語の処理もある程度できるGhostscript
のバージョン
7.07
を使うのが良いそうです.Dvipdfmx
の場合は基本的にJPEG
,PNG
,MeTaPost
形式の画像しかサポート しておりませんのでEPS
形式の画像は何らかの形でEPS
ファイルはGhostscript
の‘pdfwrite’
というデバイスを使って変 換することがほとんどです.そのときにepstopdf
かps2pdf14
などを使います.epstopdf
はEPS
のBoundingBox
を反映してくれます.ps2pdf
系を使う場合はBoundingBox
がうまく反映されないので以下のようなシェルスクリプトeps2pdfs
#!/bin/bash EPS=‘ls *.eps‘;
for fig in $EPS; do epstopdf $fig
$f=‘basename $fig .eps‘
grep "^%%BoundingBox:" $fig > $f.bb done
を作成し
PATH
の通っている場所に複製したならばeps2pdfs
とすると同ディレクトリの
EPS
ファイルが全て.eps
があっ たとすればこれはhfilei.bb
が作成されます.このようにしてEPS
からL
ATEX
の原稿で好き好き
L
ATEX 2ε 5.4 DVI
を2
5
\documentclass{jarticle}
\usepackage[dvipdfm]{graphicx}
\begin{document}
\includegraphics{filename.pdf}
\end{document}
のようにして取り込むことができます.ちなみにhfilei
.bb
は%%BoundingBox: 142 160 443 665
のような情報が出力されているでしょう.以上のようなシェルスクリプトを動作させるこ とができない
Windows
ユーザーの方はフリーのCygwin
を導入されるのが良いと思うの ですが^^;
.このhfilei.bb
にある4
つの数値を原稿中で\includegraphics[bb={142 160 443 665}]{filename.pdf}
と記述するとhfilei
.bb
はいらなくなります.フォントの設定として
$TEXMF/fonts/map/dvipdfm/base/
近辺にcid-x.map
という ファイルがあります.cid-x.map
はCMapファイルと呼ばれ,端末などからkpsewhich -progname=platex -expand-path=’$CMAPINPUTS’
とすると
.;/usr/local/share/texmf/fonts/cmap
のように
Cmap
ファイルの所在が分かります.ファイルcid-x.map
の中に rml H Ryumin-Lightgbm H GothicBBB-Medium rmlv V Ryumin-Light gbmv V GothicBBB-Medium
のように
‘rml’
や‘gbm’
で始まる行がある思います.この記述をフォント名などに変更すると日本語のフォントに何を使うのかが指定できます.標準では日本語などのフォ ントを埋め込まないようになっていると思います.例えばみかちゃん氏によるフォント
mikachanAll.ttc
を日本語の明朝体に使い,MS
ゴシックをゴシック体に使う場合の設 定は次のようになります.rml H :0:mikachanAll rmlv V :0:mikachanAll gbm H :0:msgothic gbmv V :0:msgothic
5.4.2 PDF ファイルの操作
xpdf
に付属するツールを使うと良いでしょう.xpdf
に付属するツールを使うには
xpdfrc
という設定ファイルに以下のような設定をすると良いで しょう.cidToUnicode Adobe-Japan1 /Resource/Adobe-Japan1.cidToUnicode unicodeMap ISO-2022-JP /Resource/ISO-2022-JP.unicodeMap unicodeMap EUC-JP /Resource/EUC-JP.unicodeMap unicodeMap Shift-JIS /Resource/Shift-JIS.unicodeMap cMapDir Adobe-Japan1 /Resource/CMap
toUnicodeDir /Resource/CMap
下記のプログラムは
pdftops
PostScript
ファイルに変換します.pdfimages
ます.あらかじめ出力するディレクトリを作成しておきます.
pdfiamges filename.pdf dir/
とするとディレクトリ
‘dir’
にppm
形式かpbm
形式の画像として抽出されますの で適宜お望みの変換してください.pdftotext
イルを必要とします.
ASCII
コード中の標準的な文字でなければうまくいかないか もしれません.pdfinfo
pdffonts
トの種類,フォントが埋め込まれているかなどが分かります.
例えば
pdffonts file.pdf
とすると次のような情報が表示されます.
name type emb sub uni object ID
--- --- --- --- ---Times-Roman Type 1 no no no 7 0
GothicBBB-Medium-Identity-H CID Type 0 no no no 9 0 Helvetica Type 1 no no no 10 0
Ryumin-Light-Identity-H CID Type 0 no no no 12 0 Times-Italic Type 1 no no no 13 0
FRZWWS+txsy Type 1C yes yes yes 14 0 EPSMLX+t1xtt Type 1C yes yes yes 15 0 Times-Bold Type 1 no no no 16 0 LEPUME+rtxmi Type 1C yes yes yes 23 0 CACNFM+rtxsc Type 1C yes yes yes 32 0 Helvetica-Oblique Type 1 no no no 65 0 UQXVYG+rtxr Type 1C yes yes yes 66 0