GitBook で本を作る


GitBook の前に、まずはつらつらと既存の書籍制作に関する自分のまとめを…

書籍制作上の難しさ

本を作るためには、中身を書いて編集をし、そして最後に、ユーザーが見れるフォーマットでアウトプットしなくてはいけません。ユーザーが見れるフォーマットとはつまり、紙の物理的な本だったり、PDFだったり、Kindle 用の電子書籍フォーマットだったり、HTML のサイトのことです。私は、この中身をフォーマットに変換する作業こそが一番手間のかかるものであり、かつ技術的にクリアしなくてはいけないハードルが高いと感じています。(紙、各種デジタルデータではそれぞれ必要とされる技術が異なるため) そしてこの悩みは、専業 DTP 技術者ではないひと全般に共有される悩みではないかなと思います。

マルチプラットフォームで出力するのはとてもむずかしい

書籍のフォーマットにコンテンツを変換する作業において、特に難しいのはマルチプラットフォームでの出力、つまり同じコンテンツから紙版や PDF 版や HTML 版といった様々なプラットフォームを作り出すことです。なぜなら、繰り返しになりますが、プラットフォームによって必要な技術が完全に異なるからです。

フォーマットによって扱う概念が異なる

わかりやすいところでいえば、紙の本を作るためには「トンボ」、「断ち切り」といった印刷後に各ページを裁断してサイズを調節することにともなう概念や、もっと根本的には紙のサイズ、紙の厚さ(重さ)といった物理的な問題、それから「1ページ」という枠組みも処理しなくてはいけません。しかし、当然ですがデジタルデータ、例えば HTML による静的なサイトの場合、あとで裁断する作業は発生しませんので、トンボも断ち切りを考える必要もありませんし、紙の厚さを決める必要も、1ページにどれくらいのコンテンツが入るかを考える必要もありません。(もちろん ウェブページの場合、紙とは異なるデザインの必要が発生しますが) PDF は    HTML よりもう少し紙媒体に近いといえます。それは「1ページの概念」があるからです。ユーザーの体験としては、ちょうど紙の本をデジタルデータに変換したような形が PDF です。(実際、Word や Pages といった文書作成ソフトから PDF を作成するのはかなり精度が高く、また簡単)

紙と PDF、HTML と ePub はそれぞれ近い

そして、実は書籍関係のフォーマットとして紙媒体からかなり遠いのが、HTML、ePub、Kindle 用フォーマットです。(反対にこれら同士はかなり近い) なぜなら、これらのフォーマットにおいては「1ページの概念がそもそもないか、もしくは流動的」だからです。

HTML をブラウザで見る場合、縦方向に関しては無限に長さを確保できます。つまり、1ページというくくりは発生しません。横方向は、紙媒体は固定ですが、HTML をブラウザでみるにあたっては、ユーザー各自のデバイスによって変化します。しかもかなり。結果として、コンテンツの配置が流動的になりますし、流動的にすることで、どんな横幅の端末でみても見やすい最終アウトプットを実現できます。これは特にスマートフォンにおいて顕著で、狭い画面でも見やすいコンテンツを作成するには PDF よりも HTML 系のフォーマットのほうが明らかに優れています。

フォーマットの特性、特に1ページという概念の有無によってかなり編集段階の違いが生まれる

結局のところ、HTML や ePub のような、1ページという概念が希薄な「巻物タイプ」か、紙の本やPDFのような「見開き1ページがあるタイプ」の2つにわけられると思うのですが、この2つは編集段階で違いがかなりあります。なぜなら、

GitBook

GitBook の良いところは、HTML と PDF をいっぺんに作成してくれる可能性を持っていることです。ただし、PDF のフォントが記事執筆時点では、おかしいので、自分で手を加える必要があります。それでも HTML と PDF の両方をカバーできる可能性が現実的にあるのは GitBook とオライリーのアトラスだけです。

ファイルの作成、編集、ディレクトリの移動はローカルで

GitBook はその名の通り、管理の中心が Git によって行われていますので、Git でローカルにクローンしてあげれば、WebStorm や Atom といった IDE 及び エディタで編集ができます。GitBook は基本的に各記事は .md ファイル、目次だけは a リンクが貼られた .md ファイルなので、ファイル及びリンクの管理は IDE で管理したほうが楽です。

各記事の編集はオンラインのエディタで

IDE でマークダウンを書いてももちろんいいのですが、私個人はウェブ上の辞書や、その他検索を多用するので、むしろブラウザで書いたほうが早いと思っています。なのでローカル環境の IDE でマークダウンを書くことはありません。オンラインのエディタが早いと思います。ただし、オンラインエディタの場合、publish するとGit commit を強制的にしてしまうので、コミットツリーが汚くなります。

HTML に書き出すには gitbook-cli で

オンラインエディタで編集して、そのまま HTML に書き出すことはできるのですが、その場合、GitBook のサービス上にそのページが構成されます。もし自分の独自ドメイン上に配置したいなら、ローカル開発環境で GitBook CLI を使ってビルドしたほうがいいと思います。

PDFを作るにはオンラインエディタ上で

オンラインエディタから PDF に書き出すことができます。ただし、もしかしたら GitBook CLI を使ったほうが詳細な設定ができるのかもしれません。(特に現状では大きなフォントの問題があるので、これを解決するにはローカルで処理した方がいいのかも。もう少し調べる必要あり)

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *