最終更新:2015-04-16 (木) 23:29:55 (1252d)

チュートリアル

PDFの作成

概要

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

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

方法

  1. lualatex を使う
  2. luajitlatex を使う
  3. xelatex を使う
  4. pdflatex を使う
  5. uplatex + dvipdfmx を使う
  6. uplatex + dvips + Ghostscript (ps2pdf) を使う
  7. uplatex + dvips + Acrobat Distiller を使う

原稿がすべて欧文(日本語を含まない)の場合はどの方法でも全然問題ありません。
上記のどの方法を選択しても完成度は和文に比べ高くなります。
Ghostscript は日本語 True Type フォントが埋め込めます。
日本語 True Type フォントに関しては IPA からフリーのフォントである IPAexフォント/IPAフォントが公開されています。

注意事項

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

  • dvipdfmx を使用する場合は画像ファイルに EPS ファイルをなるべくなら使わないようにします。 EPS ファイルを使用すると Ghostscript を使用するので EPS ファイルから PDF ファイルへの変換に時間がかかります。
  • dvipdfmx を使用する場合は画像ファイルは PDF ファイルを使うようにしましょう。 EPS ファイルを使用する場合に比べて高速に処理できるようになります。
  • 欧文の原稿ならば何の迷いも必要ありません。pdflatex でさくっと。

画像の取り込み

昔は LaTeX ではデバイスドライバとして dvips が使用されていたため
画像ファイルは一般的に EPS 画像が使用されていました。
しかし、今は dvipdfmx や pdflatex が良く使われるので PDF も頻繁に使われています。
dvipdfmx は

PDF, PNG, JPEG, JPEG 2000, MetaPost

の画像は PDF に取り込むことができます。
画像ファイルは BoundingBox を使用して PDF に取り込みます。
BoundingBox というのは画像の領域情報が記載されたファイルです。
BoundingBox は extractbb で作成できます。
TeX Live 2015 以降を使用している場合は extractbb が自動的に実行されます.
ソースファイルのプリアンブルに

\usepackage[dvipdfmx]{graphicx}

を追加すれば OK です.
ソースファイルは以下のようになります。

\documentclass{ujarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
  \includegraphics{hoge.png}
\end{document} 

ここでは

\usepackage[dvipdfmx]{graphicx}

として graphicx.sty を dvipdfmx 用に読み込んで (include して) います。
TeX Live には dvipdfmx.def という dvipdfmx 用の設定ファイルが添付されています.

kpsewhich dvipdfmx.def

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

ptex2pdf -u -l -ot "-synctex=1" hoge  

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

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

学会などの提出する投稿論文で、フォントは全部埋め込んで下さいとか 埋め込まないで下さいとか、色々言われたりします。
また、印刷所などに PDF で原稿を渡すときは、トラブルを避けるためにほとんどのフォントを 埋め込んだ方が無難だと思います (Computer Modern フォントなんて普通の PC とか Mac には入っていないので)。
そこで、 dvipdfmx などを使って全てのフォントを埋め込む方法を紹介します。
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 uptex-ms.map -f otf-up-ms.map" file

とすれば、MS 明朝とか MS ゴシックなんていう TrueType フォントが 埋め込まれるようになります。
dvipdfmx であれば OpenType フォントでも OK です。
フォントを埋め込まないようにするには

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

のようになります。

参照ページ