- 追加された行はこの色です。
- 削除された行はこの色です。
[[チュートリアル]]
***PDFの作成 [#hb151a98]
#contents
***概要 [#v3468589]
LaTeX のソースファイルを PDF に変換するときに注意しなければならないことが
結構あります。~
自分の所属する研究室のプリンターで正常に印刷できても、最終的
に提出する PDF にフォントが完全に埋め込まれていないと、正常に印刷所のほう
で印刷できない可能性があります。~
印刷所では PDF に Type3 フォントのような
ビットマップフォント(数百 dpi)が含まれていると、印刷してくれない所もあ
るそうです。~
印刷所に渡すような PDF に対してフォントをすべて埋め込むことは
大変有効です。~
印刷品質を劣化させることのないようにアウトラインフォントを
埋め込むと良い結果になります。~
ただし、学位論文や学会に提出する論文にはそれほど積極的に書体を埋め込まない
ようにします。~
特に和文書体(日本語フォント)は原則的に埋め込みません。~
このページでは主に印刷所に渡すような PDF 作成について解説します。~
***方法 [#h7c4b0b7]
+lualatex を使う
+luajitlatex を使う
+xelatex を使う
+pdflatex を使う
+uplatex + dvipdfmx を使う
+uplatex + dvips + Ghostscript (ps2pdf) を使う
+uplatex + dvips + Acrobat Distiller を使う
原稿がすべて欧文(日本語を含まない)の場合はどの方法でも全然問題ありません。~
上記のどの方法を選択しても完成度は和文に比べ高くなります。~
しかし、今では GPL Ghostscript 9.10
がリリースされ、日本語 True Type フォントが埋め込めるようになったので、
状況は改善されています。
Ghostscript は日本語 True Type フォントが埋め込めます。&br;
日本語 True Type フォントに関しては
IPA からフリーのフォントである IPAexフォント/IPAフォントが公開されています。&br;
いつのまにか Windows ユーザー向けの解説で、Unix 系はどうすればよいのか
書いてありませんでした。~
過去には東風明朝の自由度がなくなったために、
日本語フォントに関して、何らかの対処をしないといけない時期がありました。~
まさか、みかちゃんフォントでデータ入稿するわけにも行きませんので。~
しかし、今では IPA からフリーのフォントである IPAexフォント/IPAフォントが公開されているため、問題は解消しました。
*** 注意事項 [#c582499c]
TeX を PDF に変換するときに、 原稿に日本語があるときやってはいけないことがあります。
-dvipdfmx を使用する場合は画像ファイルに EPS ファイルをなるべくなら使わないようにします。
EPS ファイルを使用すると Ghostscript を使用するので
EPS ファイルから PDF ファイルへの変換に時間がかかります。
-dvipdfmx を使用する場合は画像ファイルは PDF ファイルを使うようにしましょう。
EPS ファイルを使用する場合に比べて高速に処理できるようになります。
-欧文の原稿ならば何の迷いも必要ありません。pdflatex でさくっと。
*** 画像の取り込み [#hac77f3b]
昔は LaTeX ではデバイスドライバとして dvips が使用されていたため~
画像ファイルは一般的に EPS 画像が使用されていました。~
しかし、今は dvipdfmx や pdflatex が良く使われるので
EPDF も頻繁に使われています。~
PDF も頻繁に使われています。~
dvipdfmx は
EPDF, JPEG, PNG, MetaPost
PDF, PNG, JPEG, JPEG 2000, MetaPost
の画像は BoundingBox があれば PDF に取り込むことができます。~
の画像は PDF に取り込むことができます。~
画像ファイルは 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,mendex,texindy,xindy,\
mpost,upmpost,\
repstopdf,epspdf,extractbb
次にソースファイルを以下のようにします。
BoundingBox は extractbb で作成できます。~
TeX Live 2015 以降を使用している場合は extractbb が自動的に実行されます.~
ソースファイルのプリアンブルに
\usepackage[dvipdfmx]{graphicx}
を追加すれば OK です.~
ソースファイルは以下のようになります。
\documentclass{ujarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{bmpsize}
\begin{document}
\includegraphics{hoge.png}
\end{document}
ここでは
\usepackage[dvipdfmx]{graphicx}
として ''graphicx.sty'' を dvipdfmx 用に読み込んで (include して) います。~
TeX Live や W32TeX には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.~
TeX Live には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.~
kpsewhich dvipdfmx.def
とターミナル(コンソール)から実行すればファイルの所在が分かりますし,
OS の検索機能でも探す事が出来ます.~
//まあ、何が使えるかは graphicx パッケージに添付されて
//いる各デバイスドライバに関する情報を見ればよいのですが。
ptex2pdf -u -l -ot "-synctex=1" hoge
とすれば、PDF や PNG が PDF に張り込めます。~
このようにして画像を取り込むこと
ができます。~
dvipdfmx での基本的な画像の取り扱いは以上です。~
*** フォントを全部埋め込むとか [#gc811052]
学会などの提出する投稿論文で、フォントは全部埋め込んで下さいとか
埋め込まないで下さいとか、色々言われたりします。~
また、印刷所などに
PDF で原稿を渡すときは、トラブルを避けるためにほとんどのフォントを
埋め込んだ方が無難だと思います (Computer Modern フォントなんて普通の
PC とか Mac には入っていないので)。~
そこで、 dvipdfmx などを使って全てのフォントを埋め込む方法を紹介します。~
Windows の場合は簡単で、W32TeX を使っている場合はデフォルトでは
IPAex フォントが埋め込まれるように設定されているので
ptex2pdf -u -l -ot "-synctex=1" file
TeX Live を使っている場合はデフォルトでは和文フォントは埋め込まれません。~
IPAex フォントを埋め込む場合は
ptex2pdf -u -l -ot "-synctex=1" -od "-f uptex-ipaex.map -f otf-up-ipaex.map" 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 フォントが
ptex2pdf -u -l -ot "-synctex=1" -od "-f uptex-ms.map -f otf-up-ms.map" file
とすれば、MS 明朝とか MS ゴシックなんていう TrueType フォントが
埋め込まれるようになります。~
dvipdfmx であれば OpenType フォントでも OK です。~
フォントを埋め込まないようにするには
ptex2pdf -u -l -ot "-synctex=1" -od "-f noembed04.map" file
ptex2pdf -u -l -ot "-synctex=1" -od "-f uptex-noEmbed-04.map -f otf-up-noEmbed.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
のようになります。~
***参照ページ [#b17d2d72]
-[[チュートリアル/PDFの操作]] --- PDF の結合,分割,パスワードの付与…
-[[チュートリアル/Illustratorの図をTeXに]] --- 実は Illustrator 8 以降の *.ai ファイルは
BoundingBox さえ分かれば変換せずに取り込む事が可能です.