[[チュートリアル]]

***PDFの作成 [#hb151a98]
#contents

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

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

***方法 [#h7c4b0b7]

+pdflatex (pdfelatex, pdfxlatex) を使う(文書が欧文のとき)
+dvipdfmx を使う 
+dvips(k) と Distiller 4.0 以降を使う 
+lualatex を使う
+luajitlatex を使う
+xelatex を使う
+pdflatex を使う
+uplatex + dvipdfmx を使う
+uplatex + dvips + Ghostscript (ps2pdf) を使う
+uplatex + dvips + Acrobat Distiller を使う

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

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


*** 注意事項 [#c582499c]

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

-Ghostscript の pdfwrite なるべくなら使わないようにします。
GSview や Gview などからも操作できますが、 これらの GUI ベースの
プログラムから変換にかかると不測の事態に陥る場合があるので、
お勧めできません。
-dvipdfm-e, dvipdfm-cjk, dvipdfm-jpn などは使わないほうが良いようです。
これらはすでに Obsolete です。変わりに dvipdfmx を使うようにしましょう。
-欧文の原稿ならば何の迷いも必要ありません。dvipdfmx や pdflatex でさくっと。
-dvipdfmx を使用する場合は画像ファイルに EPS ファイルをなるべくなら使わないようにします。
EPS ファイルを使用すると Ghostscript を使用するので
EPS ファイルから PDF ファイルへの変換に時間がかかります。
-dvipdfmx を使用する場合は画像ファイルは PDF ファイルを使うようにしましょう。
EPS ファイルを使用する場合に比べて高速に処理できるようになります。
-欧文の原稿ならば何の迷いも必要ありません。pdflatex でさくっと。

*** 画像の取り込み [#hac77f3b]
LaTeX では EPS 画像が推奨されます。しかし、近年は dvipdfmx が良く使われるので
EPDF も頻繁に使われています。dvipdfm(x) は
昔は LaTeX ではデバイスドライバとして dvips が使用されていたため~
画像ファイルは一般的に EPS 画像が使用されていました。~
しかし、今は dvipdfmx や pdflatex が良く使われるので
EPDF も頻繁に使われています。~
dvipdfmx は

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

の画像を BoundingBox されあれば PDF に取り込むことができます。
BoundingBox というのは画像の領域情報が記載されたファイルです。
の画像は 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) で見れば分かりますが、中身は
 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: ebb Version 0.5.2
 %%Creator: extractbb 20140317
 %%BoundingBox: 0 0 595 841
 %%CreationDate: Fri Oct 03 10:03:07 2003 
となっています。BoundingBox というのが縦横の長さの値です。注意することは
拡張子は違っても、同じファイル名だと hoge.bb が上書きされます。
 %%HiResBoundingBox: 0.000000 0.000000 595.000000 841.000000
 %%CreationDate: Mon Apr 21 10:03:07 2014
となっています。~
BoundingBox というのが縦横の長さの値です。~
注意することは
拡張子は違っても、同じファイル名だと hoge.xbb が上書きされます。~

最近は井上先生が作られた [[mediabb.sty:http://www.ma.ns.musashi-tech.ac.jp/Pages/TeX/mediabb.sty.html]]
を使う事によって *.bb ファイルを自動的に生成する事が出来るようになっています.
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{jarticle}
   \usepackage[dvipdfm]{graphicx}
 \documentclass{ujarticle}
   \usepackage[dvipdfmx]{graphicx}
 \begin{document}
   \includegraphics{hoge.png}
 \end{document} 
ここでは
 \usepackage[dvipdfm]{graphicx}
として ''graphicx.sty'' を dvipdfm 用に読み込んで (include して) います。
 \usepackage[dvipdfmx]{graphicx}
と %%は決してしません%% する事もできます.最近の LaTeX 環境(角藤版 Windows pTeX)には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.
として ''graphicx.sty'' を dvipdfmx 用に読み込んで (include して) います。~
TeX Live や W32TeX には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.~
 kpsewhich dvipdfmx.def
とターミナル(コンソール)から実行すればファイルの所在が分かりますし,
OS の検索機能でも探す事が出来ます.
OS の検索機能でも探す事が出来ます.~
//まあ、何が使えるかは graphicx パッケージに添付されて
//いる各デバイスドライバに関する情報を見ればよいのですが。

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

*** フォントを全部埋め込むとか [#gc811052]
学会などの提出する投稿論文で、フォントは全部埋め込んで下さいとか
埋め込まないで下さいとか、色々言われたりします。また、印刷所などに
埋め込まないで下さいとか、色々言われたりします。~
また、印刷所などに
PDF で原稿を渡すときは、トラブルを避けるためにほとんどのフォントを
埋め込んだ方が無難だと思います (Computer Modern フォントなんて普通の
PC とか Mac には入っていないので)。
そこで、 dvipdfmx などを使って全てのフォントを埋め込む方法を紹介します。
Windows の場合は簡単で、角藤さんの W32TeX を使っている場合は
 platex file
 platex file
 dvipdfmx -f msembed.map -o output.pdf file.dvi
とすれば、この場合は msembed.map という''マップファイル''が読み込まれて、
PC とか Mac には入っていないので)。~
そこで、 dvipdfmx などを使って全てのフォントを埋め込む方法を紹介します。~
Windows の場合は簡単で、W32TeX を使っている場合はデフォルトでは
IPAex フォントが埋め込まれるように設定されているので
 uplatex file
 dvipdfmx -o output.pdf file.dvi
のようにすると IPAex フォントが埋め込まれます。~
 uplatex file
 dvipdfmx -f msmingoth.map -o output.pdf file.dvi
とすれば、この場合は msmingoth.map という''マップファイル''が読み込まれて、
通常は cid-x.map で
 rml  H Ryumin-Light
 gbm  H GothicBBB-Medium
 rmlv V Ryumin-Light
 gbmv V GothicBBB-Medium
 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
と設定されているところが
 rml  H :0:msmincho
 gbm  H :0:msgothic
 rmlv V :0:msmincho
 gbmv V :0:msgothic
 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 です。
他にも 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 が作成されます。
埋め込まれるようになります。~
dvipdfmx であれば OpenType フォントでも OK です。~
フォントを埋め込まないようにするには
 uplatex file
 dvipdfmx -f noembed04.map -o output.pdf file.dvi
とするとフォントが埋め込まれていない 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 から作成されます。これを
作成することが出来ます。~
これは相互変換が可能で、作成された 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
のようになります。
のようになります。~

***参照ページ [#b17d2d72]
-[[チュートリアル/PDFの操作]] --- PDF の結合,分割,パスワードの付与…
-[[チュートリアル/Illustratorの図をTeXに]] --- 実は Illustrator 8 以降の *.ai ファイルは
BoundingBox さえ分かれば変換せずに取り込む事が可能です.