ちゃっくのメモ帳

ちゃっくがメモしときたいことをメモしとくよ

技術同人を書くのにRe:VIEWを使った話

技術書典7に出す同人誌を書くときの執筆環境の選択についての記録。
まず、最初に思いついたのがTexTexで執筆することの問題点として想定されたのはスタイルの変更が難しいことだった。
印刷所に納品する上で、どのような注意点があるのかは知らなかったがTexでスタイル変更が必要になったら辛いなぁと思ったりしていた。
次に思いついたのがRe:VIEWRe:VIEWは最近話題になってる(電子)書籍執筆システム。
独自の文法で文章を記述して、CSSでスタイルを修正できるくらいの認識だった。

特に理由はないが、話題になってるし使ってみようかなぁくらいの軽い気持ちでRe:VIEWを選択した。

最初はRe:VIEWの(公式の?)Dockerを使うことにした。
とりあえず動かしてみるとPDFを出力する場合はCSSでスタイルを変更できないらしい。
(最初はCSSの記述に応じてTexのスタイルを定義するコードを吐くのだと思っていたけど違いそう。多分。)
PDFを出力したときのスタイルが上下左右にT字のマークが入ってあまり好きではなかったので変更したいが、Texでスタイルを弄るのも嫌だったので別の方法を探すことにした。

aiyaさんがRe:VIEWで書いていたのを思い出したので相談したらreview-css-typesettingというものを教えてもらった。
これはVivliostyleというものを使うことで,CSSでスタイルを定義してブラウザ上ではPDFっぽく見えるなにかが表示される。
ブラウザの印刷機能を使ってPDFに変換してあげれば良い。
調べるとreview-and-css-typesettingのほうがあたらしそうだったのでこちらを使った。
github.com

これは確かに便利だった。
特に新しくコマンドを定義するのもCSSで書けるのがよい。
ただ、いくつか問題にぶつかった。
例えば、listnumを使用したときだけキャプションが上に来るとか、表紙を入れて上手く表示できないとか....
多分前者はrubyの拡張とかで上手くやればいいし、後者は印刷所に出す時は表紙は別でいい(これは後からしった)ので実は問題ではない。

ただ、この問題にぶつかったのが締め切りの前日とかでかなり焦っていたので、別のRe:VIEWの執筆環境を使うことにした。

次にRe:VIEWのStarterキットを使用した。
config.ymlを書かなくて良いので便利だった記憶があるが、何か問題が起きた。(何が問題だったか正直忘れてしまったけど、ページ番号を大扉を1ページ目にできないとかそんなんだった気がする)

結局、締切当日に大扉を1ページ目にできない問題を解決できていなかった。
最終的にはTechBoosterさんのC89-FirstStepReVIEW-v2を使用した。
github.com
これは、日光企画さんに出したことがあるという記述をみたのでこれを使うことにした。
原稿は書き上がっているので、移行のコストは殆ど無かった。

正直締切ギリギリだったので日光企画さんに出したことがあることが分かっているのは安心感がつよい。
Re:VIEWに詳しくないので、細かい調整を指定されたりしても直す時間は無かっただろうし....

これを使った感じだと、唯一設定方法がわからなかったのが「本文を何ページ目から始める」かの設定ができなかったくらい。正直これは時間が無いなら諦めてもいいという判断をしたのでTechBoosterさんのリポジトリを使わせてもらった。

感想

Re:VIEW、最近流行っていると噂を聞いたので使ってみた。便利だと感じたのはRubyで拡張を書けるのとCSSでスタイルを書けるのが便利。ただ、PDFを直接生成しようとすると結局スタイルをCSSでは書けなくてTexで書く必要があるので、Vivliostyleとか使ってるreview-css-and-typesettngとか使ってブラウザで表示したものをPDFにするのが良さそう。


まぁ、後はまだTexほど知見がたまっていないのがちょっと辛い。何かをしようと思ったときにTexだとぐぐると大体なんとかなったり、周りに解決方法を提示できる人がいるので安心感がある。