LaTeX のソースファイルを PDF に変換するときに注意しなければならないことが
結構あります。
自分の所属する研究室のプリンターで正常に印刷できても、最終的
に提出する PDF にフォントが完全に埋め込まれていないと、正常に印刷所のほう
で印刷できない可能性があります。
印刷所では PDF に Type3 フォントのような
ビットマップフォント(数百 dpi)が含まれていると、印刷してくれない所もあ
るそうです。
印刷所に渡すような PDF に対してフォントをすべて埋め込むことは
大変有効です。
印刷品質を劣化させることのないようにアウトラインフォントを
埋め込むと良い結果になります。
ただし、学位論文や学会に提出する論文にはそれほど積極的に書体を埋め込まない
ようにします。
特に和文書体(日本語フォント)は原則的に埋め込みません。
このページでは主に印刷所に渡すような PDF 作成について解説します。
原稿がすべて欧文(日本語を含まない)の場合はどの方法でも全然問題ありません。
上記のどの方法を選択しても完成度は和文に比べ高くなります。
しかし、今では GPL Ghostscript 9.10
がリリースされ、日本語 True Type フォントが埋め込めるようになったので、
状況は改善されています。
いつのまにか Windows ユーザー向けの解説で、Unix 系はどうすればよいのか
書いてありませんでした。
過去には東風明朝の自由度がなくなったために、
日本語フォントに関して、何らかの対処をしないといけない時期がありました。
まさか、みかちゃんフォントでデータ入稿するわけにも行きませんので。
しかし、今では IPA からフリーのフォントである IPAexフォント/IPAフォントが公開されているため、問題は解消しました。
TeX を PDF に変換するときに、 原稿に日本語があるときやってはいけないことがあります。
昔は LaTeX ではデバイスドライバとして dvips が使用されていたため
画像ファイルは一般的に EPS 画像が使用されていました。
しかし、今は dvipdfmx や pdflatex が良く使われるので
EPDF も頻繁に使われています。
dvipdfmx は
EPDF, JPEG, PNG, MetaPost
の画像は BoundingBox があれば PDF に取り込むことができます。
BoundingBox というのは画像の領域情報が記載されたファイルです。
手順としては hoge.png や hoge.jpg があった場合、コンソールから
extractbb hoge.png extractbb file.pdf extractbb name.jpg eman.jpg *.pdf
とすれば hoge.png 用の hoge.xbb、file.pdf 用の file.xbb、 name.jpg 用の name.xbb
が作成されます。
この hoge.xbb とかは画像ファイルの縦横を正しく扱うためのファイ
ルです。
hoge.xbb をtype file.xbb (cat file.xbb) で見れば分かりますが、中身は
%%Title: ./file.pdf %%Creator: extractbb 20140317 %%BoundingBox: 0 0 595 841 %%HiResBoundingBox: 0.000000 0.000000 595.000000 841.000000 %%CreationDate: Mon Apr 21 10:03:07 2014
となっています。
BoundingBox というのが縦横の長さの値です。
注意することは
拡張子は違っても、同じファイル名だと hoge.xbb が上書きされます。
TeX Live を使用している場合は texmf.cnf の shell_escape_commands に以下のように
extractbb を追加することで *.xbb ファイルを自動的に生成する事が出来ます.
shell_escape_commands = \ bibtex,bibtex8,bibtexu,upbibtex,biber,\ kpsewhich,\ makeindex,texindy,\ mpost,upmpost,\ repstopdf,epspdf,extractbb
次にソースファイルを以下のようにします。
\documentclass{ujarticle} \usepackage[dvipdfmx]{graphicx} \begin{document} \includegraphics{hoge.png} \end{document}
ここでは
\usepackage[dvipdfmx]{graphicx}
として graphicx.sty を dvipdfmx 用に読み込んで (include して) います。
TeX Live や W32TeX には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.
kpsewhich dvipdfmx.def
とターミナル(コンソール)から実行すればファイルの所在が分かりますし,
OS の検索機能でも探す事が出来ます.
ptex2pdf -u -l -ot "-synctex=1" hoge
とすれば、PDF や PNG が PDF に張り込めます。
このようにして画像を取り込むこと
ができます。
dvipdfmx での基本的な画像の取り扱いは以上です。
学会などの提出する投稿論文で、フォントは全部埋め込んで下さいとか
埋め込まないで下さいとか、色々言われたりします。
また、印刷所などに
PDF で原稿を渡すときは、トラブルを避けるためにほとんどのフォントを
埋め込んだ方が無難だと思います (Computer Modern フォントなんて普通の
PC とか Mac には入っていないので)。
そこで、 dvipdfmx などを使って全てのフォントを埋め込む方法を紹介します。
Windows の場合は簡単で、W32TeX を使っている場合はデフォルトでは
IPAex フォントが埋め込まれるように設定されているので
ptex2pdf -u -l -ot "-synctex=1" file
のようにすると IPAex フォントが埋め込まれます。
ptex2pdf -u -l -ot "-synctex=1" -od "-f msmingoth.map" file
とすれば、この場合は msmingoth.map というマップファイルが読み込まれて、 通常は cid-x.map で
urml UniJIS-UTF16-H ipaexm.ttf urmlv UniJIS-UTF16-V ipaexm.ttf ugbm UniJIS-UTF16-H ipaexg.ttf ugbmv UniJIS-UTF16-V ipaexg.ttf uprml-h UniJIS-UTF16-H ipaexm.ttf uprml-v UniJIS-UTF16-V ipaexm.ttf upgbm-h UniJIS-UTF16-H ipaexg.ttf upgbm-v UniJIS-UTF16-V ipaexg.ttf uprml-hq UniJIS-UCS2-H ipaexm.ttf upgbm-hq UniJIS-UCS2-H ipaexg.ttf
と設定されているところが
urml UniJIS-UTF16-H :0:msmincho.ttc urmlv UniJIS-UTF16-V :0:msmincho.ttc ugbm UniJIS-UTF16-H :0:msgothic.ttc ugbmv UniJIS-UTF16-V :0:msgothic.ttc uprml-h UniJIS-UTF16-H :0:msmincho.ttc uprml-v UniJIS-UTF16-V :0:msmincho.ttc upgbm-h UniJIS-UTF16-H :0:msgothic.ttc upgbm-v UniJIS-UTF16-V :0:msgothic.ttc uprml-hq UniJIS-UCS2-H :0:msmincho.ttc upgbm-hq UniJIS-UCS2-H :0:msgothic.ttc
のように変更されるので MS 明朝とか MS ゴシックなんていう TrueType フォントが
埋め込まれるようになります。
dvipdfmx であれば OpenType フォントでも OK です。
フォントを埋め込まないようにするには
ptex2pdf -u -l -ot "-synctex=1" -od "-f noembed04.map" file
とするとフォントが埋め込まれていない PDF ファイルが作成されます。
写研フォントを埋め込む場合も同様にできますが、大抵の場合は
設定しなくとも埋め込まれるようになります。
捕捉として、このように和文フォントなどの TrueType フォントを埋め込んだ PDF はそのフォントが PostScript Type42 フォントを互換性を持つようにサブセット化 された格納されているので Xpdf utilities の pdftops を使って
pdftops ipa.pdf
などとすると 和文の書体も埋め込んだ Postscript ファイル ipa.ps を
作成することが出来ます。
これは相互変換が可能で、作成された ipa.ps を
ps2pdf 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
のようになります。