練習
dvipdfmx
|
LaTeXdvipdfmxdvi を pdf に変換LaTeXのコンパイルで出力される dvi を dvipdfmx を使い pdf に変換する方法を示します. 目次はじめにpdf は デジタルドキュメント のデファクトスタンダードです.多くの場合,LaTeX で作成した文書も pdf での提出が求められます.少し以前のように,dvi あるいは PostScript(PS) で配布するようなことはほとんどありません.ここでは,dvi ファイルを pdf に変換する dvipdfmx について説明します. インストールdvipdfmx二通りの方法でインストールすることができます.どちらを選択するかは,元の LaTeX のインストール方法に依存します. CTANCTAN で TeX Live をインストールすると,dvipdfmx は自動的にインストールされます. apt-getapt-get を使って,インストールすることもできます.dvipdfmx は,texlive-base に含まれます.以下のコマンドでインストールします. $ sudo apt-get install texlive-base フォントフォントをインストールディレクトリーは,コマンド「kpsewhich -show-path="truetype fonts"」で表示させることができます.私の環境 (Ubuntu 14.04, CTAN TeX Live 2015) では,以下のとおりです. $ kpsewhich -show-path="truetype fonts" .:/home/yamamoto/.texmf-config/fonts/truetype//:/home/yamamoto/.texmf-var/fonts/truetype//:/home/yamamoto/texmf/fonts/truetype//:/etc/texmf/fonts/truetype//:!!/var/lib/texmf/fonts/truetype//:!!/usr/local/share/texmf/fonts/truetype//:!!/usr/share/texmf/fonts/truetype//:!!/usr/share/texlive/texmf-dist/fonts/truetype//:/home/yamamoto/.texmf-config/fonts/opentype//:/home/yamamoto/.texmf-var/fonts/opentype//:/home/yamamoto/texmf/fonts/opentype//:/etc/texmf/fonts/opentype//:!!/var/lib/texmf/fonts/opentype//:!!/usr/local/share/texmf/fonts/opentype//:!!/usr/share/texmf/fonts/opentype//:!!/usr/share/texlive/texmf-dist/fonts/opentype//:/usr/share/fonts// 複数のパスがコロン「:」で区切られ,指定されています.パスの前に二重ビックリマーク「!!」があるパスは検索対象外です,パスの終わりが二重スラッシュ「//」はサブディレクトリーも検索対象です(詳細は,Installing LaTeX packages). ここでは,IPA フォントを,「/usr/share/texmf/fonts」にフォントをインストールします. IPA フォントには,「IPAフォント」と「IPAexフォント」の二通りがあります.それらの違いや選択の基準については,「IPA フォントか、IPAex フォントか」に詳しい考察があります.筆者は,以下の手順で IPA フォントをインストールしました.
設定マップファイルフォント埋め込みフォントが埋め込まれた pdf を作成するためには,設定が必要です.ここでは,IPA フォントを設定します.他のフォントを使う場合でも同じようにします. フォントの指定dvipdfmx で使われる和文フォントは,dvipdfmx 用のマップファイル「$TEXMF/fonts/map/dvipdfm/base/cid-x.map」に書かれています.ディレクトリーの変数は,コマンド「kpsewhich -var-value TEXMF」で調べることができます.そんなことをしなくても,コマンド「kpsewhich cid-x.map」を使うと容易にファイルのパスは分かります.私の場合,「/usr/share/texmf-texlive/fonts/map/dvipdfmx/cid-x.map」となっていました.% 記号で始まっている行は,コメント行です.dvipdfmx で,フォント埋め込みに関係する行は以下の通りです. %% Ryumin and GothicBBB found in PostScript printers: rml H Ryumin-Light gbm H GothicBBB-Medium rmlv V Ryumin-Light gbmv V GothicBBB-Medium rml と rmlv は明朝体,gbm と gbmv はゴシック体を表します.H と V は,横書きと縦書きを表します.デフォルトの「Ryumin-Light」と「GothicBBB-Medium」は,(株)モリサワの高価なフォントです.普通の人はこれらのフォント持っていないので,フォントが埋め込まれない pdf ができあがります.表示するときに適当なフォントに置き換えられます.したがって,pdf 表示用のソフトウェアーによって,文字の形が異なります. 先ほどインストールした IPA フォントを埋め込んだ pdf を作成するためには,マップファイル「cid-x.map」を以下のように変更します. %% Ryumin and GothicBBB found in PostScript printers: rml H ipam.ttf gbm H ipag.ttf rmlv V ipam.ttf gbmv V ipag.ttf 以上でフォントの指定は,完了です.これで,IPA フォントが埋め込まれた pdf が作成されます. ここでは,元のフォントマップファイル「cid-x.map」を変更しましたが,別ファイルにすることも可能です.その場合は,-f オプションを使い,コマンド「dvipdfmx -f フォントマップファイル(*.map) dviファイル(*.dvi)」で pdf を作成します.その具体例が「フォントを埋め込まない」に書かれています. 使い方pdf作成もっとも単純な使い方は,dviファイルを指定するだけです.たとえば, $ dvipdfmx hogehoge.dvi とすると,pdf ファイルが作成されます.フォントが埋め込まれるか,埋め込まれないかは設定ファイル「cid-x.map」次第です. WARNING が出た場合pdf に変換する課程で,「** WARNING ** Failed to load AGL file "pdfglyphlist.txt"...」や「** WARNING ** Failed to load AGL file "glyphlist.txt"...」という WARNING が出ることがあります.できあがった pdf は問題ありません.気持ち悪いので,対策をした方が良いでしょう. 必要なファイルをダウンロードします. $ wget ftp://core.ring.gr.jp/pub/text/TeX/ptex-win32/current/dvipdfm-w32.tar.xz ダウンロードしたファイルを解凍します.
$ tar Jxvf dvipdfm-w32.tar.xz ワーキングディレクトリーを移動します. $ cd share/texmf-dist/fonts/map/agl ファイル「glyphlist.txt」と「glyphlist.txt」をディレクトリー「/etc/texmf/dvipdfmx/」にコピーします. $ sudo cp glyphlist.txt pdfglyphlist.txt /etc/texmf/dvipdfmx/ 以上で,「glyphlist.txt」と「glyphlist.txt」に関する WARNING は消えます. オプションdvipdfmx には,様々なオプションがあります.オプションは,「dvipdfmx -h」で表示されます. $ dvipdfmx -h バージョン dvipdfmx-20090708 では,以下のオプションを使えます.デフォルトの値は,設定「/usr/share/texlive-base/dvipdfmx.cfg」に書かれています.
日本語フォントが埋め込みついてここでは,日本語フォントを埋め込む/埋め込まない pdf の作成方法と埋め込みの確認方法を示します. フォントを埋め込む日本語フォントを埋め込んだ pdf を作成するためには,「設定 (フォント埋め込み)」に示したように,(1)フォントをインストール,(2)設定ファイル「cid-x.map」の編集が必要です.そして,コマンド「dvipdfmx dviファイル(*.dvi)」を実行します.
フォントを埋め込まない日本語フォントを埋め込まないと軽い(ファイルサイズの小さい) pdf になります.いろいろな方法で,そのようなファイルの作成は可能です.お手軽な方法は,(1)元の「cid-x.map」を「not_embeded.map」というようなファイル名にコピーし,(2)次のように編集します. %% Ryumin and GothicBBB found in PostScript printers: rml H !ipam.ttf gbm H !ipag.ttf rmlv V !ipam.ttf gbmv V !ipag.ttf フォント名の前にびっくりマーク (!) を付けるだけです.これを元の,cid-x.map と同じ場所に保存します.そして,設定を反映挿せるために,コマンド「sudo mktexlsr」を実行します.設定は,以上の通りです. dvi ファイル「
$ dvipdfmx -f not_embeded.map hoge.dvi オプション -f でフォントマップファイルを指定するだけです. フォント埋め込みのチェックAdobe Reader を使う方法Adobe Reader を使うと,pdf のフォントの埋め込み状態のチェックができます.ファイルを Adobe Reader で開き,メインメニューの ファイル(F) → プロパティ(E) を選択すると,文書のプロパティのダイアログが現れます.フォントのタブを選択すると,埋め込みフォントの確認ができます.以下の図のように (埋め込みサブセット),あるいは (埋め込み) と表示があるとフォントは埋め込まれています.何も表示が無い場合は,フォントは埋め込まれていません.
pdffonts を使う方法コマンド「pdffonts」を使うこともできます.Windows 系の OS は分かりませんが,Ubuntu ではこのコマンドが使えます.以下は,「hoge.pdf」を検査した結果です. $ pdffonts hoge.pdf name type emb sub uni object ID ----------------------------- --------------- --- --- --- --------- MGQWLQ+CMR10 Type 1C yes yes no 4 0 Ryumin-Light-Identity-H CID Type 0 no no no 6 0 三列目の「emb」がフォンと埋め込み状態を示しています.フォント「MGQWLQ+CMR10」は yes となっていますので,埋め込まれています.一方,フォント「Ryumin-Light-Identity-H」は,埋め込まれていません. ページ作成情報参考資料
更新履歴
|