2011-10-30
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のインストール手順
下記のページ参照
ただし、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-1) Cygwinのコマンドプロンプトを閉じる。
4-2) Windowsのコマンドプロンプトを開く。
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のバグ?
- 82 http://www.google.co.jp/url?sa=t&rct=j&q=インデザイン セル テキスト&source=web&cd=15&ved=0CEsQFjAEOAo&url=http://d.hatena.ne.jp/ditahack/20101210
- 77 http://study-room.info/id/relatedinfo/link/
- 72 http://study-room.info/id/
- 42 http://search.yahoo.co.jp/search?p=インデザインデータ結合したものを並べる&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8
- 35 http://www.google.com/search
- 23 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2010-27,GGLG:ja&q=tsv+文字化け
- 22 http://study-room.info/id/relatedinfo/link/link02.html
- 20 http://www.google.co.jp/url?sa=t&rct=j&q=cmecab-java&source=web&cd=4&ved=0CC8QFjAD&url=http://d.hatena.ne.jp/ditahack/20101113/1289643178&ei=7h3XTr-CDsftmAW997HGCw&usg=AFQjCNFmVh3mUW4pnT0i3XCx23YxU_yD1g
- 19 http://www.google.co.jp/url?sa=t&rct=j&q=正規表現 2桁の数字を全角に変換&source=web&cd=9&ved=0CGUQFjAI&url=http://d.hatena.ne.jp/ditahack/20
- 17 http://d.hatena.ne.jp/keyword/IDML

