Unix 環境での PDF の作り方を簡単に紹介します。 TeX で元の文章を書いておくと言うのは暗黙の了解です。 2004年8月の VineLinux 3.0 公開に合わせて、このページの内容を大きく書き換えました。 もう必要ないでしょうが、以前の内容は dvipdfm で日本語 PDF を作る に保存しておきます。ps2pdf vs dvipdfmx
Unix 環境で日本語の PDF を作るにもいろいろ方法が出てきました。 結論を先に書くと、 Vine3.0 以降なら
'ps2pdf -dNOKANJI'
か'dvipdfmx'
、 Vine2.6r4 までなら'dvipdfm(x)'
を使うのがよい、ということになります。
ps2pdf
ghostscript 5.50
(VineLinux2.1〜2.6r4)ps2pdf -dNOKANJI
ghostscript 7.07
(VineLinux3.0〜)dvipdfm +
日本語パッチdvipdfmx 欧文フォント ビットマップ? ベクトル? 日本語フォント ビットマップ? 埋め込まず ファイルサイズ 大 小 処理時間 長 短 日本語, カラー, 縦書き ◯ 日本語のしおり ◯ JPEG, PNG 画像をそのまま取り込む × ◯ 暗号化 × ◯ OpenType フォント × ◯ 同一画像の埋め込みを
1回だけに× △ PSTricks ◯ ×
- ps2pdf (ghostscript 5.50(VineLinux2.1〜2.6r4)付属)
- フォントをビットマップで埋め込むので、 文字が汚い&ファイルサイズが大きくなります。 ビューアが日本語フォントを持たなくても 表示できるという好都合もありますが、 Win/Mac/Linux の Adobe Reader (旧称 Acrobat Reader) を前提にすれば、 文字の汚さばかりが目立ってしまいます。
- ps2pdf(ghostscript 7.07(VineLinux3.0〜)付属)
- 山田泰司さんのパッチ が当たっていれば、-dNOKANJI オプションを付けることで (パッチのあてかたによっては不要かも) ほぼ実用的な PDF を作ることができます。 Vine Linux 以外の ghostscript ではあまり整備されていません。 PSTricks に依存した文書は dvipdfm(x) で処理できませんが、 そのような場合でも大丈夫です。 処理時間は長めですが、普通に使うにはこれで十分でしょう。
- dvipdfm(x)
- PS を介さず DVI から直接 PDF を作れます。 処理時間も短く、PNG 画像をそのまま取り込める等、数々の特徴があります。 状況によっては Acrobat Distiller よりも高品質の PDF を作れます。 残念ながら、prosper クラスのように PSTricks に依存したものは処理できないようです。
- dvipdf
- 紛らわしい名前のコマンドですが、 内部で dvips と ps2pdf を続けて呼び出しているだけです。
- pdftex
- TeX コンパイラ一族のようです。(UNIX 環境では)日本語にはまだ非対応です。 私は使ったことはありません。
配布に適した、日本語フォントを埋め込まない PDF の特徴をまとめておきます。 Linux での問題も徐々に解決に向かっています。
- ファイルが小さくて文字が綺麗。
- Win/Mac/Unix の Adobe Reader (Acrobat Reader) で読める。Unix の xpdf でも読める。
- ghostscript でも読める。(7.07 ならば。古いものでは無理かも。)
- 文字列検索ができる。 (Unix 版の Acrobat Reader 5.0 までは日本語が入力できないが、 Adobe Reader 7.0 からは大丈夫。)
dvipdfmx のインストール
dvipdfmx は、本家 dvipdfmx から入手できます。 平田さんによる旧来の dvipdfm の日本語化 をあえて使う理由はないでしょう。
以下に VineLinux でのインストール方法を説明します。 dvipdfm(x) だけでなく TXfonts/PXfonts のインストールもほぼ同じ手順で行えます。 パッケージは RedHat 等でも流用できるかもしれません。
Vine 3.0/3.1/3.2 で apt
Vine 3.0/3.1/3.2 では Vine 本体に dvipdfmx が含まれているはずです。 TXfonts/PXfonts は tetex-extra パッケージに含まれていますが、 これはインストール CD には収録されていません。
"/etc/apt/sources.list"
の
rpm [vine] http://updates.vinelinux.org/apt 3.2/ main devel plus extras updates rpm-src [vine] http://updates.vinelinux.org/apt 3.2/ main devel plus extras updates
のような行が有効になっていることを確認して(標準でなっているはずです)、root で
'apt-get update; apt-get install task-tetex'
を実行すれば、tetex-extra を含めて、 TeX 環境に必要ないくつかのパッケージがまとめてインストールされます。Vine 2.5/2.6r4 で apt
Vine 2.5/2.6r4 では VinePlus に dvipdfm, txfonts, pxfonts を contribute しています。
"/etc/apt/sources.list"
の
rpm http://www.t.ring.gr.jp/pub/linux/Vine/apt 2.6/ main plus plus-noarch rpm-src http://www.t.ring.gr.jp/pub/linux/Vine/apt 2.6/ main plus
のような行を有効にして、root で
'apt-get update; apt-get install dvipdfm txfonts pxfonts'
を実行すればよいです。Vine 2.0/2.1 あるいは手動
Vine 2.0/2.1、あるいは apt を使わない場合、RPM は以下から入手できます。
- Vine 3.0/3.1 Vine 本体に入っています。
- Vine 2.5/2.6 VinePlus( dvipdfm txfonts pxfonts )にあります。 TeX 関連 RPMS にもあります。
- Vine 2.0/2.1 VinePlus( dvipdfm txfonts pxfonts )にあります。 TeX 関連 RPMS にもあります。
- RedHat7.0 TeX 関連 RPMS からどうぞ。
RPM のインストールは、 バイナリパッケージを入手して root で
'rpm -Uhv dvipdfm-*.i386.rpm'
とします。日本語のしおり
PDF に日本語のしおりを作るにはコツがあります。 単純に PDF を作ると、たいてい化けてしまいます。 また、Linux版の Acrobat Reader 5.0 までは化けて表示されますので、 動作確認は Linux 版の Adobe Reader 7.0 以降か、 Win 版等で行う必要があります。
以下のような対策が必要です。
- dvipdfmx の場合、プリアンプル (TeX ソースの
\documentclass{...}
のすぐ後)に
\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,% bookmarkstype=toc]{hyperref} \AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}
などと書いておいて(3行目がポイント)、
% platex foo % dvipdfm foo
と普通にコンパイルします。 nDiki によりますと、ポイントとなる3行目の代わりに 以下のように書けば SJIS/EUC にかかわらずうまくいくようです。
\ifnum 42146=\euc"A4A2 \AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}\else \AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}}\fi
- dvipdfm の場合、hoge.out の文字コードを UTF に変換して、 もう一度 platex コンパイルする必要があります。 TeX ソースの
\documentclass{...}
のすぐ後に
\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,% bookmarkstype=toc]{hyperref}
などと書いておいて、
% platex foo % platex foo % out2uni foo % platex foo % dvipdfm foo
とコンパイルします。- ps2pdf の場合、PS 中のしおり部分を UTF に変換しておく必要があります。 TeX ソースの
\documentclass{...}
のすぐ後に
\usepackage[dvips,bookmarks=true,bookmarksnumbered=true,% bookmarkstype=toc]{hyperref}
などと書いておいて、松本隆太郎さんの hyperrefと日本語 の convert-euc.txt を使うとよいでしょう。 Vine Linux 3.0 以降ならば、ps2jpdf というパッケージが同じ事をしてくれます。prosper で LaTeX のコマンドが化ける時は、竹澤さんの しおりのタイトルとスライドのタイトルを別に指定する も参考になります。
Vine2.0/2.1 では、しおりを作るのに必要な
\usepackage[dvipdfm]{hyperref}
命令を使うためには、 新しい LaTeX マクロを入手する必要があるようです。 付属の sample.tex を処理するためには、CTAN の hyperref graphics の直下のファイルをカレントディレクトリに置いて'latex hyperref.ins'
と'latex graphics.ins'
を実行しておけばよいようです。TX/PX fonts との組み合わせ
TX/PX fonts はデザイン上の理由で用いられることが多いですが、 PS/PDF 制作の観点からは、英文でも Adobe フォントを用いて、 フォントを埋めこまなくなり、ファイルサイズの節約に貢献できます。 tetex-2.0 に取り込まれたため、インストール作業はほぼ不要で、 プリアンプルに以下のように書くだけで使えるようになってきています。
\usepackage{txfonts}
詳しい使い方は、奥村先生の TX フォント を御覧下さい。
- Vine3.0/3.1 tetex-extra に含まれています。
- Vine2.5/2.6 VinePlus に txfonts, pxfonts があります。
- Vine2.0/2.1
txfonts-3.1-9.noarch.rpm(1.1Mbyte)
pxfonts-1.0-9.noarch.rpm(744Kbyte)
Vine2.0/2.1 では更にフォントの追加が必要です。 teTeX-texmf-1.0.2.tar.gz(31.6Mbyte) から
"fonts/type1/urw/"
以下のファイルを取り出して、"/usr/share/texmf/fonts/type1/urw/"
の下に置き、'mktexlsr'
を実行してやります。 追加するフォントのサイズは 1Mbyte 程度です。画像ファイルの取り込み
dvipdfm(x) では、EPS に変換することなく、直接画像ファイルを扱えます。
ebb foo.png
のようなコマンドで、 前もって画像の大きさを示すファイル
"foo.bb"
を作っておきます。そして、LaTeX ソースに
\usepackage[dvipdfm]{graphicx} ... \includegraphics{foo}
と書くと、foo.png といった画像を直接読み込みます。 (拡張子まで書いてもよいですが、 dvips との共存のために省略した方が都合が良いです。)
PNG 以外にも JPEG, PDF の画像も同じ方法で取り込めます。 BMP は不用意にファイルサイズが大きくなることが多いので、
'convert hoge.bmp hoge.png'
として PNG に変換して用いるのがよいでしょう。ちなみに PNG も
'convert hoge.png hoge2.png'
とすると、 ファイルサイズが小さくなることがあります。 convert コマンドは ImageMagick に含まれています。 普通のディストリビューションに含まれているはずです。
dvips では(もうおなじみでしょうが)EPS に変換する必要があります。 PNG 画像はやはり convert コマンドで、
convert hoge.png eps2:hoge.eps ^^^^^形式を指定
として、出力形式を Encapsulated PostScript Level II にしてやると、 データ圧縮され、ファイルサイズが爆発せずにすみます。 JPEG 画像も同様に変換できますが、 同時に圧縮率(quality)もディフォルト値(75?)に変更されてしまいます。 jpeg2ps を使えばそのようなことはありませんが、 ライセンス上の問題で、Linux ディストリビューションでは、 nonFree のカテゴリに入ってしまうことになるでしょう。
LaTeX ソースには
\usepackage[dvips]{graphicx} ... \includegraphics{foo}
と書きます。拡張子の eps は書かなくても自動で補われます。 前述のように、dvipdfm と切替えても、 (\usepackage のオプション以外は)変更する必要がなくなるので、 書かない方が好都合です。
プレゼンテーションツール
PDF をよく知れば、Acrobat Reader がプレゼンテーションツールとしても 役立ちそうであることがわかるでしょう。 Windows でも Unix でも、全画面表示ができて、 マウスのクリックで次の画面に進むようにも設定できます。 全画面表示をやめれば、サムネール表示もできます。 dvipdfm を使えば、複雑な数式はもちろん、画像の張り込み、色つけ、 ページ間にリンクを張った文章を、 LaTeX で作れるわけですから、人によってはかなり便利になるでしょう。 平田さんのページの PDF のサンプルを見れば、非常にインパクトがあります。 ページ切り替えの際の効果を PDF から指定できるのですね。 Acrobat Reader の設定でも変えることができます。
そこで slides class を使ったサンプルソース を作ってみました。出来は良くないですが、 A5 用紙横置きで、文字の領域を拡大する設定が入っていますので、 ちょっとは参考になるかもしれません。
slides class 以外に prosper という、 もっと派手なスライドを作れるクラスがありますが、 これは dvipdfm が使えませんので、ps2pdf を用いるのがよいです。 渡部さんの How to use PROSPER には有用な情報があります。
prosper で作った PostScript を縮小印刷するには、 in.ps を A4 横置きのPSファイルだとして、 mpage, psmulti-dna, psutils 等を用いて次のようにするのがよいでしょう。
(1/4) mpage -4 -o -a -R in.ps > out.4.ps psmulti -pages 4 -nodecor -cmajor -btot in.ps > out.4.ps psnup -4 -l in.ps > out.4.ps (1/6) psmulti -pages 6 -nodecor in.ps > out.6.ps psnup -6 -l in.ps > out.6.ps (1/8) mpage -8 -o -a -R in.ps > out.8.ps psmulti -pages 8 -nodecor in.ps > out.8.ps psnup -8 -l in.ps > out.8.ps
ホーム > TeX 関連 RPMS 置場
リンクはご自由にどうぞ。 |
土村 展之(tutimura(a)nn.iij4u.or.jp) '(a)'は'@'に置き換えて 更新日 12/27 0:41, 2005 |