Cygwin上でREVIEWを動かす
市川せうぞーさんの記事「はじめてのReVIEW〜InDesignへの取り込み」に触発されて、Windows上でREVIEWを動かしてみました。CygwinもTexも初めてだったので、大分苦労しました。EPUB出力は正常に行えるようになりましたが、PDF出力はまだ原因不明のエラーが発生します。が、一応動作するまでの手順をメモっておきます。
1) Cygwinにインストールする必要があるソフトウェア
・Ruby
・vi
・bsdtar
・git
・wget
・rebase
・TexLive2011(TexLive2011のインストール手順については下記ページ参照)
Using LaTeX in Japanese on Cygwin.
2) REVIEWのインストール手順
下記のページ参照
ReVIEW の使い方
ただし、TexLive2011へのフォントのインストールは別途行うので、「otf.styのインストール」以降の手順は行う必要なし。
3) REVIEWの要修正箇所
Cygwin固有の問題で、REVIEWを実行するためのRubyコマンドスクリプトに修正を加える必要がある。
review-epubmaker
499行目から
# Zip epubファイルの作成。mimetypeは圧縮しないようにする fork { basedir = Dir.pwd Dir.chdir("#{tmp}/#{bookname}") {|d| exec("zip -0X ../#{bookname}.epub mimetype") } } Process.waitall fork { basedir = Dir.pwd Dir.chdir("#{tmp}/#{bookname}") {|d| exec("zip -Xr9D ../#{bookname}.epub META-INF OEBPS") } }
review-pdfmaker
436行目
unless File.directory?(dirname)
4) rebaseの実行
REVIEWを実行すると、多分、以下のようなエラーが出る。
$ review-epubmaker config.yml 1 [main] ruby 4896 C:\cygwin\bin\ruby.exe: *** fatal error - unable to rem ap \\?\C:\cygwin\lib\ruby\1.8\i386-cygwin\etc.so to same address as parent: 0x1A 0000 != 0x200000 Stack trace: Frame Function Args 02407288 6102796B (02407288, 00000000, 00000000, 00000000) 02407578 6102796B (6117EC60, 00008000, 00000000, 61180977) 024085A8 61004F1B (611A7FAC, 61243684, 001A0000, 00200000) End of stack trace 1 [main] ruby 4832 fork: child 4896 - died waiting for dll loading, errno 11 /home/hirai/review/bin/review-epubmaker:113:in `fork': Resource temporarily unav ailable - fork(2) (Errno::EAGAIN) from /home/hirai/review/bin/review-epubmaker:113:in `main' from /home/hirai/review/bin/review-epubmaker:109:in `each_line' from /home/hirai/review/bin/review-epubmaker:109:in `main' from /home/hirai/review/bin/review-epubmaker:108:in `open' from /home/hirai/review/bin/review-epubmaker:108:in `main' from /home/hirai/review/bin/review-epubmaker:638
この問題を解決するために、Cygwinのrebaseallというコマンドを実行する。
4-3) 以下のコマンドを実行する(Cygwinのインストール先がC:\cygwinの場合)
> cd c:\cygwin\bin > ash $ ./rebaseall
5) Cygwin.batの書き換え
以下のワーニングメッセージが出ないようにするために、Cygwin.batを書き換える。
cygwin warning: MS-DOS style path detected: C:/Users/hirai/AppData/Local Preferred POSIX equivalent is: /cygdrive/c/Users/hirai/AppData/Local CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Cygwin.batにrem以降の2行を追加する。
@echo off rem --- Cygwin が DOS 形式のパスについての警告を出力しないようにする set CYGWIN=nodosfilewarning C: chdir C:\cygwin\bin bash --login -i
ここまでの手順でEPUBの生成が可能になる。
PDFを生成する場合は、以降のセットアップを続ける。
6) PDF生成のためのフォント関連のセットアップ
TexLive2011への日本語フォントのセットアップ手順については、下記ページ参照。
日本語フォントのセットアップ
私の場合は、Adobe CS 4にバンドルされている小塚明朝、小塚ゴシックを使用。
上記ページの解説に従ってフォントをコピーし、フォントマップ(kozukaEmbed.map)を配置。
ls-Rデータベースを更新するために、Cygwinのコンソールから、
$ mktexlsr
を実行。
PDFファイルを生成するときに、kozukaEmbed.mapを使うようにreview-pdfmakerファイルを次のように書き換える。
135行目
exec("dvipdfmx -f kozukaEmbed.map -d 5 book.dvi")
以上のセットアップが完了したら、一応PDFの生成が可能になるが、以下のようなエラーが発生してテキストの一部が欠落してしまう。
! Undefined control sequence.
原因は不明だが、REVIEWのバグ?