PDF の作り方

投稿論文や予稿で PDF を要求されることが増えました。 ここでは PDF の上手な作り方を解説します。

Adobe Acrobat DC (Adobe Acrobat Distiller DC を含む) や dvipdfmx は CJK フォントを埋め込まないと仕様に違反した PDF を生成します。仕様にできるだけ従いたい場合には,これらのソフトを使う場合フォントを可能な限り埋め込むようにしましょう。



PDF を作るためのソフトウェア

PDF ファイルを作るためのソフトウェアや,PDF 編集ソフトウェア,PDF ビューアの一覧は PDF という項目にまとめられています。

LaTeX で PDF

LaTeX のインストールについては Windows へのインストールOS X へのインストールLinux へのインストール などのページをご覧ください.

要約

日本語の PDF ファイルを作成する場合

upLaTeX で日本語の PDF ファイルを作る場合は dvipdfmx を使用します. 具体的には dvipdfmx の使い方 をご覧ください.

dvipdfmx のほかに dvips でいったん PostScript に変換して,Ghostscript に付属の ps2pdf または Adobe Acrobat Distiller DC で PDF に変換する方法もあります. 詳しくは dvips の使い方 をご覧ください.

欧文のみの PDF ファイルを作成する場合

欧文のみの原稿ならば,pdfLaTeX が簡単です. BXcjkjatype を使用すると pdfLaTeX で日本語の PDF ファイルも作成できます.

Unicode を使用して多言語 PDF ファイルを作成する場合

Unicode を使用して多言語 PDF ファイルを作成する場合は,LuaLaTeX, XeLaTeX がおすすめです. 日本語の PDF ファイルを作成する場合は LuaTeX-jaZXjatype を使用します.

PDF形式出力を得るLaTeXタイプセットの主な流儀

(1) tex → pdf

platex-ng: tex → pdf
pdflatex: tex → pdf (日本語を使用する場合は BXcjkjatype)
lualatex: tex → pdf (日本語を使用する場合は LuaTeX-ja)
xelatex: tex (→ xdv) → pdf (日本語を使用する場合は ZXjatype)
※ 挿入図ファイルはPDF形式等も可

(2) tex → dvi → pdf

(2)-1: uplatex: tex → dvi
(2)-2: dvipdfmx: dvi → pdf
※ ptex2pdf を使用すると (2)-1, (2)-2 の処理を一度に実行できます.
※ 挿入図ファイルはPDF形式等も可(EPS形式以外はdvipdfmxが自力で対応するので,Ghostscriptの助けは不要).

(3) tex → dvi → ps → pdf

(3)-1: uplatex: tex → dvi
(3)-2: dvips: dvi → ps
(3)-3: ps2pdf (Ghostscript)  or 「Adobe Acrobat Distiller DC」: ps → pdf
※ [[arXiv]] 等ではこれを要求されるようです
※ 挿入図ファイルはEPS形式のみ, pstricks, powerdot 使用可能

PDF形式ファイル(図)の挿入について

$ extractbb foo.pdf

読み手に親切な PDF ファイルの作り方

dvipdfmx の使い方

dvipdfmx は TeX 出力(DVI ファイル)を PDF に変換するフリーソフトウェアです. TeX Live, W32TeX に含まれています. 『[改訂第6版] LaTeX2e 美文書作成入門』の電子版は dvipdfmx で PDF 化しました.

使い方は,Windows PowerShell またはコマンド プロンプトで

dvipdfmx foo.dvi

と打ち込むだけです. これで foo.dvi が foo.pdf に変換されます. コマンドラインを使用するのが苦手な方は LyX, TeXstudio, Texmaker, TeXworks などで dvipdfmx を使うように設定できます.

以下では dvipdfmx について説明します.

フォントの埋め込み設定

dvipdfmx がフォントを埋め込むかどうかは設定によります.

まず欧文フォントですが,TeX Live ではデフォルトで欧文フォントを埋め込みますが,W32TeX では通常は PostScript Level 1 での基本14書体は埋め込みません. W32TeX で基本14書体を埋め込むには

dvipdfmx -f dlbase14.map ファイル名

のようにして起動してください. あるいはソースに

\AtBeginDvi{\special{pdf:mapfile dlbase14.map}}

なる special コマンドを書いておいてもよいです.(\specialの用法について (qa:55664, qa:55665, qa:55672))

次に和文フォントですが,TeX Live はデフォルトで和文フォントを埋め込みませんが,W32TeX はデフォルトでは IPAexMincho・IPAexGothic を埋め込みます. TeX Live で IPAexフォントを埋め込む場合は,Windows PowerShell またはコマンド プロンプトから

kanji-config-updmap-sys ipaex

または

kanji-config-updmap ipaex

を実行します.

W32TeX の場合は和文フォントはデフォルトでは IPAexMincho・IPAexGothic を埋め込みます.

$TEXMF/fonts/map/dvipdfmx/base/cid-x.map に

%%
%% upTeX examples
%%
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

と書いてあれば「IPAexMincho」・「IPAexGothic」が埋め込まれます.

cid-x.map の場所は Windows PowerShell またはコマンド プロンプトから以下のコマンドを実行すれば検索できます.

kpsewhich -progname=dvipdfmx -format=map cid-x.map

なお,dvipdfmx はフォントを埋め込まないと仕様に違反した PDF を生成するようです. 日本語版 dvipdfm にはこの問題はないようです. (参照:PDF1.7 仕様書 The Identity-H and Identity-V CMaps shall not be used with a non-embedded font. Only standardized character sets may be used.)(--> これは ISO 32000-1 で加わった仕様で,PDF Reference, Sixth edition, version 1.7 とそれ以前の PDF Reference にはそのような記述はありません.このため ISO 32000-1 は過去の PDF のバージョンと非互換です.Adobe Acrobat Distiller DC 等も同様の問題を抱えているようです.)

dvipdfmx は PDF,PNG,JPEG,MetaPost 出力,EPS を挿入できます. EPS 挿入には外部プログラムとして Ghostscript が必要です. ベクトル画像は PDF 形式,ラスター画像は PNG または JPEG 形式で挿入するのがいいでしょう.

extractbb の自動実行

TeX Live 2015 以降,MacTeX-2015 以降,W32TeX美文書第6版 からインストールした場合は texmf.cnf の shell_escape_commands に extractbb が指定されていて,自動的に extractbb が実行されるので,あらかじめ extractbb を実行する必要はありません. これら以外の環境の場合は,こちらのアーカイブ情報を参考に extractbb の自動実行を設定するか,次の項も読んで下さい.

LaTeX ファイル中では

\usepackage[dvipdfmx]{graphicx}
...
\includegraphics[width=8cm]{zu.png}

のようにします. graphicx パッケージを読み込む際には次のように必ず dvipdfmx オプションを与えます.

\usepackage[dvipdfmx]{graphicx}

これを LaTeX と dvipdfmx で処理します.

Ghostscript で PDF を作る場合,正しい設定をすれば和文フォントを埋め込まずにきれいな EPS ファイルができます. 詳しくは Ghostscript のページをご覧ください.

Adobe Acrobat Distiller DC をコマンドラインから使いたい場合,OS X では

$ open -a 'Acrobat Distiller.app' ファイル名

とします(alias を設定しておくと便利でしょう).

dvipdfmx で PSfrag を使うには,まず \pagestyle{empty} で図と PSfrag だけのページを作り,“dvips -Ppdf -E” で いったん EPS にしてから,それをメインの LaTeX ファイルに挿入します. ちょっと面倒ですので, overpiclabelfig を使うのがいいでしょう.

dvipdfmx は PFB 形式の Type 1 フォントしか使えません. PFA → PFB 変換には FontForge が使えそうです

BoundingBox の指定

手動で BoundingBox を直接指定する,もしくは extractbb を実行することも可能です.

BoundingBox を直接指定する場合は

\includegraphics[bb=0 0 横ポイント数 縦ポイント数,width=幅]{ファイル名}

を挿入します.

なお “bb” とは “bounding box” を意味しています. bb の単位は既定では bp (big point) です.

bb で直接指定する方法には次の欠点があります.

通常は次に述べる extractbb を使用した方がよいです.

TeX Live, W32TeX には dvipdfmx 用の BoundingBox を作成する extractbb というツールが付属しています.

extractbb hoge.pdf

とすると hoge.xbb というファイルが生成されます. extractbb は TeX ソースの本文に記述するものではなく,ターミナルまたは Windows PowerShell またはコマンド プロンプトから実行するコマンドです.

dvips の使い方

dvips は TeX の出力(DVI ファイル)を PostScript (PS) ファイルに変換するツールです.

dvips で変換した PS ファイルは Ghostscript 付属の ps2pdf コマンドや Adobe Acrobat Distiller DC で PDF ファイルに変換できます. ただし,処理速度や使いやすさの観点では dvipdfmx のほうがいいかもしれません.

詳細は dvips を参照してください。

図の描き方

図の作り方で,おもに EPS 形式の画像ファイルの作り方を説明しています。

Word で PDF

Word は,同じファイルでも環境の違いによって,レイアウトが変わってしまうという嫌な特徴を持っています. 正しい方法で PDF にしておけば,レイアウトの崩れは防げます. Microsoft Office を参照してください。

Adobe Acrobat DC で PDF

Adobe Acrobat Reader DC と Adobe Acrobat DC の違い

Adobe Acrobat Reader DC は Adobe Acrobat DC から表示・印刷・注釈の追加機能だけを抜き出したもので,Adobe Acrobat Reader DC のダウンロードサイトから無償で入手できます. Adobe Acrobat DC は Adobe Acrobat Distiller DC を含む製品(商品)です. 値段は Adobe Systems で確認してください.

その機能によってプランが幾つか存在しています. 参考:「プランと価格:プラン比較表 | Adobe Acrobat DC

Adobe Acrobat DC があれば Adobe Acrobat Reader DC がなくても PDF ファイルを表示できます.

Adobe 製品は,なるべく最新のアップデートを適用しておきましょう. アップデートについてはアドビシステムズの ダウンロードのページをご覧ください.

Adobe Acrobat Distiller DC の設定

PDFWriter ではなく Distiller を使います.

コントロールパネルから[デバイスとプリンター]画面を表示します. [プリンターと FAX]にある「Adobe PDF」プリンターアイコンを右クリックし,「通常使うプリンターに設定」します.

「Adobe PDF」プリンターアイコンを右クリックし,[印刷設定] → [レイアウト] → [詳細設定] (または[プリンターのプロパティ] → [全般] → [基本設定] → [レイアウト] → [詳細設定]) で細かい設定をします.

[TrueTypeフォント]の項目は,デフォルトでは「デバイス フォントと代替」になっています. このままのほうが軽い PDF ファイルができます. 論文のオンライン投稿ではこのままにしておきます. デザインものなどで,まったく同じフォントで出力してほしいなら,ここを「ソフト フォントとしてダウンロード」にします.

また,PostScript オプションの左の [+] をクリックし,[PostScript出力オプション]を「エラーが軽減するよう最適化」にするといいでしょう. その下の TrueTypeフォントダウンロードオプションは「自動」または「Native TrueType」にしておきます.

Distiller を立ち上げます.

Distiller の[ファイル] → [環境設定]で「PDFファイルの保存先を確認」をオンにします. 「Distillerで変換後にPDFを表示」もオンにしておくと確認のため便利です.

まず,Acrobat では[Adobe PDF 設定]の[デフォルト設定]で選びます. Web 用なら 最小ファイルサイズ,論文提出用には低品位でよければ 標準,より高品位にするには 高品質印刷にすればいいでしょう. なお,Acrobat は最小ファイルサイズ設定にしてフォントを埋め込まないようにすると仕様に違反した PDF を生成するようです. (参照:PDF1.7 仕様書 The Identity-H and Identity-V CMaps shall not be used with a non-embedded font. Only standardized character sets may be used.)

プレス品質は論文では必要ないでしょう.

[設定] → [Adobe PDF 設定] の [編集]は次のように設定します.

以上の設定内容を「名前を付けて保存」します. ファイル名は例えば “A4.joboptions” のようにします.

以上の設定が終われば Distiller は[×]で閉じておいてかまいませんが,二つ同時には立ち上がらないようにできていますので,立ち上げたままにしておけば起動時間が節約できます.

LaTeX + dvips で作った PS ファイルを変換する際に “Warning: Ryumin-Light not found, using Font Substitution. Font cannot be embedded.” などと いう警告が出ますが,無視してかまいません. むしろこのように出るほうがフォントが埋め込まれず軽い PDF になります. この PDF を開くと,Ryumin-Light がなければ小塚明朝またはMS 明朝で表示されます. これに対して,“XXX not found, using Courier.” というメッセージはエラーです.

Distiller をコマンド プロンプトから使うには

start hoge.ps

と打ち込みます. 拡張子 “.ps” と関連づけられていれば Distiller が起動するか,すでに起動している Distiller が処理を始めます. Distiller に関連付けしたくない場合は Distiller に入力/出力ファイル名を指定してコマンドラインから実行することもできます.(→ Distillerを入力/出力ファイル名を指定して起動する方法について) 保存場所や上書き確認をせず Adobe Acrobat DC を立ち上げない設定にしておけば便利です. さらに,共有フォルダを「監視フォルダ」に指定して立ち上げておけば Linux などからでも使えます.

LaTeX で color パッケージを使って dvips → Distiller で作った PDF を印刷すると文字がアミカケ状態になってしまうことがあります. [設定] → [ジョブオプション] → [カラー] を「カラーマネジメント用にすべてタグ付け」,作業用スペースの CMYK を Photoshop 5 Default CMYK にすると直りました(理屈はよくわかってないのですが)(qa:16839).
設定ファイルを「プリプレス-日本」にしても直るようです (qa:18199).

Photoshop 5 Default CMYK にすると今度は色が変わってしまうというご指摘をいただきました. 設定ファイルを「プリプレス-日本」にするのがよさそうです. ただ,文字がアミカケ状態になるのは Adobe Acrobat DC から非 PS プリンターに出力する際の問題のようですので,PS プリンター(イメージセッタも)では大丈夫かもしれません.

pdf(のサイズ)を拡大

下記が目標:

方法1:

Acrobat Pro DC(有償ソフト)を用いて対象の pdf ファイルを開き,Adobe PDF プリンターを用いて印刷し新たなpdf ファイルを生成.

Adobe Acrobat Reader DC /Acrobat DC のヒント

印刷ダイアログの「用紙サイズに合わせてページを縮小」は,特に必要なければオフにします. これがオンの場合,ほんの少し小さく印刷されることがあります.

「画像として印刷」はオフにします. どうしても印刷がうまくいかない場合にオンにしますが,ガタガタの印刷になってしまいます.

「2バイトフォントのダウンロード」も通常はオフにします.

文字がきれいに表示されない場合には,うんと拡大してみてください. ギザギザに見えてくるなら,間違ってビットマップフォントが埋め込まれてしまったのです. 設定を見直してください. 拡大するときれいに見えるなら,Adobe Acrobat Reader DC/Acrobat DC の設定の問題でしょう. スムージング(アンチエイリアシング),グリーキング(小さい文字を潰して表示すること)の設定を変えてみてください.

Illustrator のヒント

Illustrator 9/10 から EPS 形式で保存するときは,互換性は最新のもの(「バージョン 9」「バージョン 10」)でかまいません. CMYK ポストスクリプト(レベル 2)にします. プレビューやサムネールは TeX では不要ですが,他のアプリケーションに埋め込む際にはプレビューがあったほうが便利です. Word などに埋め込む際には,プレビューのラジオボタンは必ず「不透明」にします.

「フォントデータを含む」チェックボックスはオンにしないと文字化けします. あるいは,逆にこれをオフにして,フォント名をエディタなどで標準的なものに置き換えるという手もあります. たとえば Illustrator に附いている小塚明朝 Std M を使った場合,KozMinStd-Medium-90ms-RKSJ-H を Ryumin-Light-RKSJ-H に置き換えます.

PDF をパスワードで保護するには

Adobe Acrobat DC を使えばできますが,フリーウェアとして QPDF もあります.

また,OS Xでは印刷するときに「PDFで保存」を選択すれば必要なセキュリティオプションを選択できます. ただし,Adobe Acrobat Reader DC からはこの操作はできませんので,一度作成したPDFを「プレビュー」「TeXShop」などで開いてから実行してください.

LaTeX ユーザーの方は,dvipdfmx を用いて,PDF にパスワード保護をつけることができます. 具体的には,

dvipdfmx -S filename

のように,“-S” オプションをつけます. あとは所有者のパスワードとユーザーパスワード(PDF ファイルを開いたときに入力させるパスワード)の2つを問われますので,入力して Enter キーを押してください. なお,確認のために2度入力を求められます.

また,"-P"オプションでセキュリティオプションを細かく指定できます.

その他の細かいオプションについては,dvipdfmx.cfgに記載されています.

また,20110307以降のdvipdfmxでは,\specialを用いてセキュリティオプションをtex原稿に埋め込むことができるようになりました. プリアンブルに記述します.

PDF のパスワードを忘れてしまった場合は

を使うと正しいパスワードを教えてくれます.

RedMon による PDF 作成

Windows 上で,フリーウェアだけで簡単に PDF が作れます. RedMon というツールと Ghostscript を組み合わせて使います.

あらかじめ最新版の Ghostscript をインストールしておきます. フォントを埋め込むように設定しておくといいでしょう.

RedMon を展開して setup.exe を実行します.

次に,コントロールパネルの「プリンターの追加」(「プリンターのインストール」)を実行します. 「ローカルプリンター」「自動的に検出しない」でいいでしょう. プリンターポートは「新しいポートの作成」で「Redirected Port」を選びます. ポート名は “RPT1:” のままでかまいません(複数作ると “RPT2:” 等々になります). プリンターソフトウェアは,カラーのPSプリンターなら何でもかまいません. “Apple” “Apple Color LaserWriter 12/600J” でも “Canon” “Canon LBP-2260PS” でも大丈夫でした. テスト印刷はしません.

「デバイスとプリンター」の「プリンターと FAX」に新しいプリンターアイコンができますので, 適当な名前に変えます(例えば “Ghostscript PDF writer”). さらに,右クリックして「プロパティ」の「ポート」タブを選び,上で指定したポート名 (“RPT1:” など)が選ばれている状態で[ポートの構成]を押し,たとえば次のように設定します:

Redirect this port to the program:
C:\texlive\2015\bin\win32\rungs.exe
Arguments for this program are:
-sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dSAFER -sPAPERSIZE=a4 -sOutputFile="%1" -
Output:
Prompt for filename
Run:
Minimized

Word などのアプリケーションからこのプリンターに印刷すると,保存するファイル名を聞かれます. 適当な名前(何々.pdf)を入力すれば,PDF ファイルが出来上がります.

同趣向の PDFCreator 日本語対応版 というフリーソフトウェアがあります. 日本語も通ります.

その他のリンク


Last-modified: 2015-06-23 (火) 17:33:22 (72d)