縦組みのpdfをつくる

そろそろ iPad も発売になることだし、そうするとやっぱり縦組みで日本語を読みたくなるとおもいませんか?

そう、こういう感じの pdf を、生成できるようにしておきたい!

ということでいろいろ調べてまわって、サイト 青空キンドル で自動変換までしてくれることがわかりました。そして作者さまがこれを自分で生成するためのスクリプトほかの情報を公開してくださっているということも。

収集すべきファイル群

情報が散在しているので、ここで収集すべきファイル群をまとめておきます。

青空キンドル での変換結果として使われる IPA フォントを利用するためにはさらに以下も必要になるとおもわれます。(わたしは使っていないため導入方法ほかは割愛)

.sty ファイル群は TeXディレクトリー「(例えば) texmf/ptex/platex/misc にコピーします。必要に応じてmktexlsrを実行して下さい。」と http://psitau.at.infoseek.co.jp/aozora.html に書かれていますが、この手順は飛ばしても動くことは動きます。

実際の変換

青空文庫パッケージ、 aozora.zip を展開した aozora ディレクトリー配下に上述のファイルをすべてそろえたことを前提とします。

$ cd aozora
$ ruby az2tex mojika.txt
  # ファイル名は青空文庫から持ってきたものに適宜置き換えてください。
  # ruby がインストールされている必要があります
$ platex mojika.tex
  # ファイルが見つからないだとか警告だとか出てきますが、
  #ファイル名に関しては ENTER で逃げ、その後の警告は R + ENTER で処理を
  # 続けさせます。運が良ければ .dvi が生成されます
$ dvipdfmx -p a5 mojika.dvi
  # .pdf の作成がゴールのため、これでおしまいです。
  # 上記コマンドで A5 サイズの pdf が生成されます

platexコマンド

Mac OS X でも Windows でも、実のところ platex を使える環境をつくるところが一番の難題だったりします。 TeX にもたくさんのバリエーションがあるんだな、と今回の作業を通じてはじめて知りました。 TeX にはじまり LaTeXpTeXpLaTeX、 teTeX、 pteTeX、そして今の最新版は TeX Live だそうです。

縦組み日本語を生成できる環境を整えるには http://www.nn.iij4u.or.jp/~tutimura/tex/ptetex.html で公開されている ptetex3 を利用するのが、 2010 年 2 月現在、もっとも簡単な方法のようです。 Windows の場合は続く手順で Cygwin が必要になりますので、別途フルインストールしてください。

以下、必要ファイルのダウンロード含め、コンパイルしてインストールまでの最小限のコマンドです。

$ curl -O http://tutimura.ath.cx/~nob/tex/ptetex/ptetex3/ptetex3-20090610.tar.gz
$ curl -O http://www.ring.gr.jp/pub/text/CTAN/obsolete/systems/unix/teTeX/3.0/distrib/tetex-src-3.0.tar.gz
$ curl -O http://www.ring.gr.jp/pub/text/CTAN/obsolete/systems/unix/teTeX/3.0/distrib/tetex-texmf-3.0po.tar.gz
$ tar xzf ptetex3-20090610.tar.gz
$ cd ptetex3-20090610
$ cp my_option.sample my_option
$ make
$ sudo make install

なお my_option はいくつか書き換えておく必要があります。上記 make を実行する前に、以下の行の冒頭の # を消して保存しておきます。

# KANJI_CODE=SJIS
# conf_option --without-x
# conf_option --without-xdvik
# XDVI=echo
# PXDVI=echo

また Mac OS X の場合は my_option 末尾あたり (実際にはどこでもよい) に以下の行を追加します。*5 *6

export CFLAGS="-DSTDC_HEADERS -O2 -I/usr/X11/include"
export CPPFLAGS="-I/usr/X11/include"
export LDFLAGS="-L/usr/X11/lib"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/X11/lib

(本来 CPPFLAGS でなく CXXFLAGS であるべきところなのだろうけれど…。よくある誤解である。)

さらに ptetex3 (platex) は、パスの通っていないディレクトリーにインストールされるため、利用前にシェルで以下を実行しておく必要があります。蛇足気味ですが ~/.bashrc に以下を追記しておくとログインのたびにパスを通す手間を省略できます。

$ export PATH=/usr/local/teTeX/bin:$PATH

*1:http://psitau.at.infoseek.co.jp/aozora.html で公開されている。青空文庫の .txt を .tex に変換するスクリプトおよび tex から dvi を生成する時に参照する .sty (スタイル) ファイルがまとめられている。

*2:青空文庫パッケージ内の aozora.sty を Kindle 向けにカスタマイズしたスタイルファイル。青空文庫パッケージ内のファイルを上書きして利用する。

*3:青空文庫パッケージ内の aozora.rb を代替する .txt を .tex に変換するための ruby スクリプトファイル。

*4:ふりがなを振るために使われるスタイルファイル。http://homepage3.nifty.com/xymtex/fujitas2/texlatex/index.htmlにて配布。

*5:この場合 conf_option --without-x は # を消さず、コメントアウトしたままでよい。

*6:加えて OS X では、ビルドの最後のテストで ps2pdf コマンドがないというエラーが出ます。これは my_option でテストからはずすよう設定しても解消しません。無視して make install しても問題はないようです。なお ps2pdf は ghostscript パッケージに付属のスクリプトのため、 MacPort を導入するなどして ghostscript を追加すればこのテストでのエラーを解消できます。