Kodama's home / tips.

LaTeX(DVI)から作成する PDF のフォント埋め込み

注.

この文書は, 奥村晴彦著 "LaTeX2e美文書作成入門" (技術評論社) と http://www6.atwiki.jp/unixcafe/pages/51.html を参考にしています. また, Linux / Unix での使用を仮定しています.

Windows, Mac での状況は使っていないので分かりません. 質問されても困ります. 特に, 日本版windows を使っていて, 海外でのプレゼンに困ったとか? どうなんでしょう?

なぜフォントを埋め込むか?

PDF をプレゼンなどで他所に持っていって印刷すると, 和字のフォントが意図したものとは変わっている, 文字化け, 表示できないなどの問題が起こることがある.

日本語版Windows では, MS-明朝 が用いられる. 英語版 windows ではもちろん和字フォントは無い. Linux, Unix では, PostScript プリンタの Ryumin-Light が用いられる. Mac では ヒラギノ明朝 が用いられる. 相互に移動したりすると, 文字化けや表示エラーが起こる.

フォント埋め込みとは何か?

PDF では, 用いるフォント名(書体名)だけが書き込まれた形式と, フォントのデータを PDF の中に持っている形式の両方を使える. フォントのデータを PDF の中に持っている形式を フォントの埋め込みと云う.

フォント名だけが書き込まれている方がファイルサイズの節約になるので通常はそれが望ましい. しかし, 持っていった先で対応するフォントが無い場合には, 代替のフォントを張り込んで印刷されてしまう. 代替フォントが無い場合には表示ができない.

特に書体を変えられては困る場合には, 印刷用の文字データを埋め込んだ形式が良い.

例(埋め込みでのサイズ変化)

40ページ相当の文書の例. 和字を埋め込むと PDF のサイズが大きくなることが分かる. ファイルサイズが 205406 から 387524 に, 2倍近くに膨らんでいる.
$ ls -l *pdf
-rw-r--r--  1 kdm users 319504  1月 27日  20:49 sample.dvi  (DVI)
-rw-r--r--  1 kdm users 205406  1月 27日  20:48 sample-noemb.pdf  (PDF 和字の埋め込み無し)
-rw-r--r--  1 kdm users 387524  1月 27日  20:49 sample-emb.pdf  (PDF 和字の埋め込みあり)

例(フォントの確認方法 part1)

pdffonts を用いる. 表の emb 欄で yes はフォントが埋め込まれている. TeX 特有の Computer Modern(CM)フォントは埋め込まれている. 和字のフォント(Ryumin-Light, GothicBBB) は no なので埋め込まれていない. (Linux で実行)
$  pdffonts  sample-noemb.pdf
name                                 type         emb sub uni object ID
------------------------------------ ------------ --- --- --- ---------
GothicBBB-Medium-Identity-H          CID Type 0   no  no  no       8  0
QEFPFE+CMBX12                        Type 1C      yes yes yes      9  0
ORMRLI+CMR10                         Type 1C      yes yes yes     13  0
ONEMZA+CMBX10                        Type 1C      yes yes yes     17  0
CCLSCI+CMMI10                        Type 1C      yes yes yes     19  0
Ryumin-Light-Identity-H              CID Type 0   no  no  no     261  0
XSNNGN+CMSY10                        Type 1C      yes yes yes    285  0

例(フォントの確認方法 part2)

同じ文書の和字埋め込み版. 和字のフォント(IPA フォント) は yes なので埋め込まれている.
$  pdffonts  sample-emb.pdf
name                                 type         emb sub uni object ID
------------------------------------ ------------ --- --- --- ---------
DZYRTV+IPAGothic                     CID TrueType yes yes no       8  0
XMDHBY+CMBX12                        Type 1C      yes yes yes      9  0
ULDJPJ+CMR10                         Type 1C      yes yes yes     13  0
XPPTLU+CMBX10                        Type 1C      yes yes yes     17  0
XOUXHN+CMMI10                        Type 1C      yes yes yes     19  0
BCLQVY+IPAMincho                     CID TrueType yes yes no     261  0
UKPGCN+CMSY10                        Type 1C      yes yes yes    285  0

フォントと埋め込みの指定

DVI から PDF に変換するときに, フォントの種類と 埋め込みの有無 を指定することができる.

例1(dvipdfmx での指定方法)

フォントの指定をファイル texfonts.map に書いて, 次のようにする.
$ dvipdfmx -f texfonts.map  sample.dvi

例2(LaTeX ソースで指定する方法)

dvipdfmx の -f ではなく、LaTeX 文書内で指定することもできる. 利用目的によって埋め込む文字を変えている場合はこれが便利.
%% LaTeX 文書ファイルの先頭辺りに special コマンドで読み込みを指定する
\AtBeginDvi{\special{pdf:mapfile texfonts.map}}

例(texfonts.map フォント指定の内容)

  1. 行頭が %文字 は注釈扱いになる. (% の行を除いて考える.)
  2. rml,rmlv が和字明朝, gbm,gbmv が和字ゴシックに相当する.
  3. :0: があると 埋め込みの指定になる.
以下の例では, 明朝に ipam.ttf, ゴシックに ipag.ttf の埋め込みが指定されている.
%%  texfonts.map  dvipdfmx font map
% Usage:  dvipdfmx -f texfonts.map  (DVI-file)
%%%%%  :0: for embedding
% c.f. http://www6.atwiki.jp/unixcafe/pages/51.html
% To check  font list:  pdffonts text.pdf 

%%% Ryumin and GothicBBB : Linun/Unix/PostScript printers
%rml  H Ryumin-Light
%gbm  H GothicBBB-Medium
%rmlv V Ryumin-Light
%gbmv V GothicBBB-Medium

%%% IPA-fonts
rml  H :0:ipam.ttf
gbm  H :0:ipag.ttf
rmlv V :0:ipam.ttf 
gbmv V :0:ipag.ttf

%%% MS-fonts: Windows
%rml  H :0:msmincho
%gbm  H :0:msgothic
%rmlv V :0:msmincho
%gbmv V :0:msgothic

Kodama's home / tips.