ととろぐ!臨時増刊号

ととろぐ!消滅につき、出張臨時増刊号。

pdfにフォントが埋め込まれてるか確認するコマンドpdffonts

pdfにフォントが埋め込まれてるか確認したい

pdf原稿にフォントが埋め込まれてるかを確認する手段は3つあるらしい。

  1. Adobe Readerでプロパティを見る
  2. webサービスを使う(これとか)
  3. pdffontsコマンド

Adobe Readerを使う案はAdobe Readerがクソなので却下です。Adobe Readerがクソなので

Webサービスを使う案も悪くはないけど, 学会に投稿する原稿とかで利用するにはためらわれる。

というわけでpdffontsコマンド。(pdffontsよりAdobe Readerのチェックの方が信頼性が高いとか書いてるサイトもあったけどAdobe Readerがクソだから仕方がない)

pdffontsの導入

pdffontsはxpdfというX Window用pdfビューワーの一部みたいな感じ。 なのでxpdfをインストールすれば使える。

$ brew install xpdf

多分portsにもある。

pdffonts機能だけインストールする方法もありそうだけど必要ないので調べない。

pdffontsの使い方

$ pdffonts hoge.pdf

簡単。embの列が全部yesならフォントは問題なく埋め込まれている。

エラーが出るよ!

普通にインストールしただけだと多分エラーがでます。こんな感じ。日本語パッケージがないとかそんな感じ。多分。

name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Syntax Error: Unknown character collection 'Adobe-Japan1'
Syntax Error: Unknown character collection 'Adobe-Japan1'
VEGXWY+CMR12                         Type 1C           yes yes no      13  0
JIWGPZ+CMR12                         Type 1C           yes yes yes     14  0
MISIJK+CMSY8                         Type 1C           yes yes no       9  0
IAQNLZ+HiraMinPro-W3                 CID Type 0C       yes yes no       7  0

エラーを消す方法

Xpdf: Download から xpdf-japanese.tar.gzをダウンロード。

展開した中身を/usr/local/share/xpdf/japaneseにコピー。

~/.xpdfrcに以下の内容を書き込み。

cidToUnicode    Adobe-Japan1    /usr/local/share/xpdf/japanese/Adobe-Japan1.cidToUnicode
unicodeMap      ISO-2022-JP     /usr/local/share/xpdf/japanese/ISO-2022-JP.unicodeMap
unicodeMap      EUC-JP          /usr/local/share/xpdf/japanese/EUC-JP.unicodeMap
unicodeMap      Shift-JIS       /usr/local/share/xpdf/japanese/Shift-JIS.unicodeMap
cMapDir         Adobe-Japan1    /usr/local/share/xpdf/japanese/CMap
toUnicodeDir                    /usr/local/share/xpdf/japanese/CMap

これで解消。多分消さなくても問題ない気がするけど。

TOLLE ET LEGE 屋根裏の備忘録 : MacOSXでpdftops

あたりを参考に。

おまけ:TeX原稿にフォント埋め込む方法

日本語フォントのセットアップ

ここ読めばわかるはず。 わかんなかったらpdfを開いて印刷メニューから「pdfとして保存」するとフォント埋め込んでくれるのでそれで。