チュートリアル

PDFの作成

概要

LaTeX のソースファイルを PDF に変換するときに注意しなければならないことが 結構あります。自分の所属する研究室のプリンターで正常に印刷できても、最終的 に提出する PDF にフォントが完全に埋め込まれていないと、正常に印刷所のほう で印刷できない可能性があります。印刷所では PDF に Type3 フォントのような ビットマップフォント(数百 dpi)が含まれていると、印刷してくれない所もあ るそうです。印刷所に渡すような PDF に対してフォントをすべて埋め込むことは 大変有効です。印刷品質を劣化させることのないようにアウトラインフォントを 埋め込むと良い結果になります。

ただし、学位論文や学会に提出する論文にはそれほど積極的に書体を埋め込まない ようにします。特に和文書体(日本語フォント)は原則的に埋め込みません。 このページでは主に印刷所に渡すような PDF 作成について解説します。

方法

  1. pdflatex (pdfelatex, pdfxlatex) を使う(文書が欧文のとき)
  2. dvipdfmx を使う
  3. dvips(k) と Distiller 4.0 以降を使う

原稿がすべて欧文(日本語を含まない)の場合は全然問題ありません。 pdflatex, dvipdfm, dvips(-Ppdf)+Distiller, dvips(-Ppdf)+Ghostscript などでもも完成度は高くなります。しかし、ようやっと AFPL Ghostscript 8.50 がリリースされ、日本語 True Type フォントが埋め込めるようになったので、 状況は改善されれています (2004 年後半)。

いつのまにか Windows ユーザー向けの解説で、Unix 系はどうすればよいのか 書いてありませんでした。今となっては東風明朝の自由度がなくなったために、 日本語フォントに関してはフリーな感じじゃなくなった気がしてなりません。日 本語フォントに関して、何らかの対処をしないといけないと思います。まさか、 みかちゃんフォントでデータ入稿するわけにも行きませんので。 しかし、ようやっと IPA の GRASS から IPA 明朝と IPA ゴシックなるフリーに 近い書体が公開されたため、状況は変わりました (2004 年後半)。

注意事項

TeX を PDF に変換するときに、 原稿に日本語があるときやってはいけないことがあります。

画像の取り込み

LaTeX では EPS 画像が推奨されます。しかし、近年は dvipdfmx が良く使われるので EPDF も頻繁に使われています。dvipdfm(x) は

EPDF, JPEG, PNG, MetaPost, Windows BMP, (TIFF)

の画像を BoundingBox されあれば PDF に取り込むことができます。 BoundingBox というのは画像の領域情報が記載されたファイルです。

手順としては hoge.png や hoge.jpg があった場合、コンソールから

ebb hoge.png
ebb file.pdf
ebb name.jpg eman.jpg *.pdf

とすれば hoge.png 用の hoge.bb、file.pdf 用の file.bb、 name.jpg 用の name.bb が作成されます。この hoge.bb とかは画像ファイルの縦横を正しく扱うためのファイ ルです。hoge.bb をtype file.bb (cat file.bb) で見れば分かりますが、中身は

%%Title: ./file.pdf
%%Creator: ebb Version 0.5.2
%%BoundingBox: 0 0 595 841
%%CreationDate: Fri Oct 03 10:03:07 2003 

となっています。BoundingBox というのが縦横の長さの値です。注意することは 拡張子は違っても、同じファイル名だと hoge.bb が上書きされます。

最近は井上先生が作られた mediabb.sty を使う事によって *.bb ファイルを自動的に生成する事が出来るようになっています.

次にソースファイルを以下のようにします。

\documentclass{jarticle}
  \usepackage[dvipdfm]{graphicx}
\begin{document}
  \includegraphics{hoge.png}
\end{document} 

ここでは

\usepackage[dvipdfm]{graphicx}

として graphicx.sty を dvipdfm 用に読み込んで (include して) います。

\usepackage[dvipdfmx]{graphicx}

は決してしません する事もできます.最近の LaTeX 環境(角藤版 Windows pTeX)には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.

kpsewhich dvipdfmx.def

とターミナル(コンソール)から実行すればファイルの所在が分かりますし, OS の検索機能でも探す事が出来ます.

platex hoge  
dvipdfmx hoge

とすれば、PDF や PNG が PDF に張り込めます。このようにして画像を取り込むこと ができます。dvipdfmx での基本的な画像の取り扱いは以上です。

フォントを全部埋め込むとか

学会などの提出する投稿論文で、フォントは全部埋め込んで下さいとか 埋め込まないで下さいとか、色々言われたりします。また、印刷所などに PDF で原稿を渡すときは、トラブルを避けるためにほとんどのフォントを 埋め込んだ方が無難だと思います (Computer Modern フォントなんて普通の PC とか Mac には入っていないので)。 そこで、 dvipdfmx などを使って全てのフォントを埋め込む方法を紹介します。 Windows の場合は簡単で、角藤さんの W32TeX を使っている場合は

platex file
platex file
dvipdfmx -f msembed.map -o output.pdf file.dvi

とすれば、この場合は msembed.map というマップファイルが読み込まれて、 通常は cid-x.map で

rml  H Ryumin-Light
gbm  H GothicBBB-Medium
rmlv V Ryumin-Light
gbmv V GothicBBB-Medium

と設定されているところが

rml  H :0:msmincho
gbm  H :0:msgothic
rmlv V :0:msmincho
gbmv V :0:msgothic

のように変更されるので MS 明朝とか MS ゴシックなんていう TrueType フォントが 埋め込まれるようになります。dvipdfmx であれば OpenType フォントでも OK です。 他にも GRASS 配布の IPA 明朝・ IPA ゴシックを埋め込むには

rml  H :0:ipam.ttf
gbm  H :0:ipag.ttf
rmlv V :0:ipam.ttf 
gbmv V :0:ipag.ttf

という記述をした ipa.map というファイルを用意して

dvipdfmx -f ipa.map -o ipa.pdf file.dvi

とすると IPA フォントが埋め込まれた ipa.pdf が作成されます。 写研フォントを埋め込む場合も同様にできますが、大抵の場合は 設定しなくとも埋め込まれるようになります。

捕捉として、このように和文フォントなどの TrueType フォントを埋め込んだ PDF はそのフォントが PostScript Type42 フォントを互換性を持つようにサブセット化 された格納されているので Xpdf utilities の pdftops を使って

pdftops ipa.pdf

などとすると 和文の書体も埋め込んだ Postscript ファイル ipa.ps を 作成することが出来ます。これは相互変換が可能で、作成された ipa.ps を

ps2pdf14 ipa.ps ps2pdf.pdf

とすると ps2pdf.pdf が ipa.ps から作成されます。これを

pdffonts ps2pdf.pdf

などとすると

name                                 type         emb sub uni object ID
------------------------------------ ------------ --- --- --- ---------
ZKJGWS+IPAGothic_03                  TrueType     yes yes no      22  0
LYFLYF+IPAMincho_03                  TrueType     yes yes no      25  0
PYJGKY+IPAGothic_09                  TrueType     yes yes no      19  0
JAAEQV+IPAGothic_0b                  TrueType     yes yes no      13  0 
ZHEMUT+CMBX10                        Type 1C      yes yes no      10  0 
UDPLJD+CMSS17                        Type 1C      yes yes no      16  0

となっていることからも、わかるでしょう。通常は

name                                 type         emb sub uni object ID
------------------------------------ ------------ --- --- --- ---------
SCJWRU+CMBX10                        Type 1C      yes yes yes      4  0
SCJWRU+IPAGothic                     CID TrueType yes yes no       6  0
WPOMZQ+CMSS17                        Type 1C      yes yes yes      7  0
WPOMZQ+IPAMincho                     CID TrueType yes yes no       9  0

のようになります。

参照ページ