elyxerでlyxからhtmlを生成してみた
elyxerというpythonで記述されたconverterがあり、lyx標準のxhtmlよりプリティな出力が得られるらしいので試してみた。
パッチとインストール
本家からダウンロードして
% sudo python install.py
でインストール完了だが、このままだと、includeしたlisting環境が一行おきの表示(つまり改行が余分についてしまう)となるので、以下のパッチを当てた方がいい。
diff -ru elyxer-1.2.3/src/elyxer/gen/include.py elyxer-1.2.3.patch/src/elyxer/gen/include.py --- elyxer-1.2.3/src/elyxer/gen/include.py 2011-02-02 07:32:37.000000000 +0900 +++ elyxer-1.2.3.patch/src/elyxer/gen/include.py 2013-02-24 21:45:21.000000000 +0900 @@ -90,7 +90,11 @@ def readlisting(self): "Read a document as a listing." listing = Listing() - listing.contents = self.readcontents() + lines = self.readcontents() + result = list() + for line in lines: + result.append(Constant(line.string.strip('\n'))) + listing.contents = result listing.parameters = self.parameters listing.process() self.contents = [listing]
パッチを当てたら、
$ sh make
でビルドし直した後、上記のようにしてインストールする。
使い方
コマンドラインから
% elyxer.py --html inputfile.lyx output.html
のようにする。オプションがたくさんあるが、例えばチャプターごとにページを分けたいときは
% elyxer.py --html --splitpart 1 inputfile.lyx output.html
のようにする。output.htmlの他、output-n.htmlの形でセパレートされる。
自動でナビゲーションもつく。
現在の困った点は、パッチを当てないとincludeしたlisting環境が間延びしてしまう事の他は、同じくlisting環境のパラメタがデフォルトのプリアンブルを解釈してくれないため、各環境に埋め込まないといけない点くらい。
epsで作った図もきちんとビットマップにしてくれる。便利。