Ubuntu Weekly Recipe

第548回 書籍制作を支援するソフトウェア「Re:VIEW」を使う

この記事を読むのに必要な時間:およそ 5 分

トンボなしのPDFを生成する

前述したように,Re:VIEWでは初期設定だとトンボありのPDFを生成します。トンボは印刷所に入稿する際に必要になるものの,生成したPDFをそのまま配布するのであれば邪魔なだけです。トンボの有無はconfig.ymltexdocumentclassで変更できます

# LaTeX用のdocumentclassを指定する
# オプションについてはsty/README.mdを参照
# デフォルトは印刷用。電子配布版を作るには media=ebook とする
texdocumentclass: ["review-jsbook", "media=print,paper=a5"]

上記の最終行にあるmedia=printmedia=ebookに変更した上で,rake pdfを実行すれば,トンボなしPDFが生成されるはずです。

もし印刷用と電子配布版の両方を作れるようにしておきたいのであれば,inheritパラメーターを用いて設定ファイルを継承し,一部の設定だけ書き換える方法があります。まずconfig.ymlを継承し,texdocumentclassのみ設定が異なるconfig-print.ymlを,次のような内容で作成しましょう。

inherit: ["config.yml"]
texdocumentclass: ["review-jsbook", "media=print,paper=a5"]

この状態でrake pdfを実行すると,config.ymlを元に電子配布版が作成されます。さらに印刷版を作りたい場合は,次のようにconfig-print.ymlを使うように呼び出します。

$ rake clean
$ REVIEW_CONFIG_FILE=config-print.yml rake pdf

この方法を用いれば,逐一設定ファイルを書き換えることなく,異なる設定の複数の書式を生成可能になります。

PDFにフォントを埋め込みたい

TeX LiveのupLaTeXからPDFを作成した場合,初期状態だとフォントは埋め込まれません。もし電子書籍として配布するにあたってフォントを埋め込みたい場合は,kanji-config-updmapコマンドもしくはpxchfonパッケージの設定が必要です。今回は書籍ごとに埋め込むフォントを変更可能な,pxchfonパッケージを使ってみましょう。pxchfonパッケージはtexlive-lang-japaneseに同梱されています。

まずRe:VIEW用のカスタムスタイルファイルにて,pxchfonパッケージの使用を宣言します。

$ echo '\usepackage[ipaex]{pxchfon}' >> sty/review-custom.sty

「ipaex」はプリセットと呼ばれるパラメーターで,ここではIPAexフォントを埋め込むように設定しています。pxchfonのパラメーターについては,texdoc pxchfonで表示されるPDFを確認してください。

設定できたら,あとはPDFを作り直すだけです。Evinceのプロパティから「フォント」タブを開くか,pdffontsコマンドを実行することで,フォントが埋め込まれているかどうか確認できます。

$ rake pdf
$ pdffonts book.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
REWOMU+NimbusSanL-Bold               Type 1C           WinAnsi          yes yes no       4  0
LSGTJF+IPAexGothic                   CID TrueType      Identity-H       yes yes no       6  0
QSYCKF+LMRoman10-Regular             Type 1C           WinAnsi          yes yes no      14  0
SQJYWU+IPAexMincho                   CID TrueType      Identity-H       yes yes no      22  0

上記の例の場合,⁠emb」「yes」になっているフォントがPDFに埋め込まれているフォントです。

当然のことながら,フォントをPDFに埋め込んで良いかどうかは,個々のフォントのライセンスに依存します。

正しいEPUBが出力されたかどうか検証する

EPUBCheckはEPUB仕様に従ったEPUBファイルかどうかを確認するJava製のツールです。EPUBCheckを用いて生成したファイルを検証しておけば,大抵のEPUBリーダーで期待通りに表示される可能性が高まることでしょう。

EPUBCheckはUbuntuのリポジトリにもありますし,最新のバージョンが必要であれば開発サイトからビルド済みのバイナリをダウンロードもできます。ただしリポジトリにある4.0.2のほうは大量の警告が出る問題があるようなので,可能であれば4.1.0以降を使いましょう。

$ sudo apt install unzip default-jre
$ wget https://github.com/w3c/epubcheck/releases/download/v4.1.0/epubcheck-4.1.0.zip
$ unzip epubcheck-4.1.0.zip
$ java -jar ~/epubcheck-4.1.0/epubcheck.jar book.epub
Validating using EPUB version 3.0.1 rules.
No errors or warnings detected.
Messages: 0 fatal / 0 errors / 0 warnings / 0 info

epubcheck completed

特に問題がないことがわかりましたね。

技術書典6に向けて本を作ってみよう!

Re:VIEWは紙書籍・電子書籍作成を作成するツール・フォーマットでありながら,原稿データはMarkdownやreStructured Textと同じようにプレーンテキストとして編集できます。つまりGitによるリビジョン管理やチームでの共同執筆がかんたんに実現できます。さらにGitで管理することで,既存の一般的なソフトウェアと同じように,Pull/Merge Requestを用いた修正・レビューや継続的インテグレーションを利用した品質管理も導入できるのです。

技術系同人誌のお祭りである技術書典は,来年4月に第6回の開催を予定しているようです。これを期にRe:VIEWを試して,次の技術書典に向けて何か本を執筆してみてはいかがでしょうか?

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。