5.1 review-compile で技術書がつくれる優れものです。く /p> . ( 以下省略 ) HTML 向け出力は、執筆時に「大まかにどのような出力になるのか」を確認するため に使います。その他にもプレーンテキスト形式にする --target=text 、 PDF を出力する ために必要な TeX 形式のファイルを出力する一一 target = latex 、軽量マークアップ言語 である Markdown 形式を出力する --target=markdown などがあります。 読者の環境で一 target で指定できるフォーマットを調べるには、 Re:VIEW 本体のイ ンストール先にある lib/review/???builder. rb というファイル名のファイルを確認す るのが早道です。 > ls lib/review/*builder . rb lib/review/builder . rb lib/review/ewbbuilder. rb lib/review/idgxmlbuilder. rb lib/review/latexbuilder. rb lib/review/textbuilder. rb lib/review/epubbuilder. rb lib/review/htmlbuilder . rb lib/review/inaobuilder . rb lib/review/markdownbuilder . rb lib/review/topbuilder . rb 対応する出力形式の多くは Re : VIEW 開発者らが仕事上利用するために用意されまし た。執筆時には一一 target = html を指定する機会が多いでしよう。 --check を指定すると結果は出力せず、そのフォーマットで人力したファイルが正しく 変換できるかを確認します。たとえば、 footnote と f Ⅱで対応がとれていなければ、その 旨が表示されます。これもまた執筆中にエラーを前もって避けるために便利です * 1 出力された html を、執筆時のデバッグ用途としてではなく見栄えのよい公開用ファイ ルにすることもできます。ーー y 1 = ( ファイル名 ) で Re : VIEW プロジェクトの設定を読 みこませることでスタイルを変更するとよいでしよう。 ~ a11 を指定すると、指定したファイルだけではなく、 catalog. yml に記載されている すべてのファイルを一気にコンパイルすることもできます。 @く chapref>{chapter} や@く hd>{head} などの章・見出しの参照をリンクにする一一 c hapterlink というオプションもあります。 > review—compile —check ——target=html build. re build. re : 11 : error : ReVIEW : : KeyError * 1 review-pdfmaker にはこの機能がない一方、前述したとおり review-compile では直接は PDF を出力 しません。対策として review-compile--check--target=latex とすると PDF で問題が起こる前に 修正できます 45
7.5 関連各所の紹介 -chapterlink # html の生成 review—compile # latex の生成 review—compile # idgxml の生成 review—compile # pdf の生成 ー a11 ー a11 ー a11 —html —stylesheet=style . css —footnotetext —target=latex —target— —target=idgxml review—pdfmaker config ・ yml # epub の生成 review—epubmaker config ・ yml 69 ・記号などの文字化け探し (Tex 、フォントは UTF-8 対応しているとは限らない ) ・紙面を = や * で検索する ( 文法ミスを見つけるため ) レビューを実施する ( 読者の視点を作り出す ) ・執筆時点は早めの締め切りを設定する ( こうしておくと致命傷で済む ) 一人でかかない ( 共同執筆がお勧め ) ・企画は書きたいことを選ぶ ( モチベーション維持 ) 限られた時間のなかで可能な限り品質を確保するポイントをリスト形式で紹介します。 7.6 品質を高めるためのチェックポイント ありがとう ! そしてありがとう ! ! 日光企画 : お世話になっている印刷所 トップスタジオ : Re:VIEW によるリフロー ( 自動組版 ) を導人している制作会社 ・達人出版会 : Re:VIEW を使った電子書籍を扱う出版社 介します。 TechBooster が Re:VIEW を使っているなかで関係したお世話になっている各所を紹 7.5 関連各所の紹介 master/Gruntfi1e. js Node. js v4 以上が必要ですので注意してください。 しています。 https://github.com/TechBooster/C89—FirstStepReVIEW-v2/b10b/ これらを詰め込んだ、実際に TechBooster で使っている grunt 用設定ファイルを公開 あとはそれぞれのターゲット向けに下準備とビルドを行うタスクを作成するだけです。 ください。 マンドそのものが違うので注意します。詳細は第 3 章「 Re:VIEW の書き方」を参照して 欲しい出力結果に応じて、コマンドを使い分けます。 pdf 、 epub については利用するコ
第 5 章 コンバイルの仕方 本章では Re:VIEW ファイルをコンパイルする方法を解説します。フォーマットを変 換する review-compile 、 PDF を出力する review-pdfmaker 、 EPUB を出力する rev iew-epubmaker を順番に紹介します。 人稿に利用する形式は review-pdfmaker コマンドでの PDF 形式ですが、 Re:VIEW は、プレーンテキスト、 HTML や EPUB など多様なフォーマットに対応しています。 5 review-compile review-compi1eRe:VIEW ファイル 1 つを --target オプションで指定するフォー マットに変換します。 もっとも簡単な例として、 HTML を出力する例をリスト 5.1 に示します。 review-compile で HTML を出力する例 リスト 5.1 > review—compile ——target=html preface. re く ?xml version="l . 0 ” encoding='tUTF—8"?> く ! DOCTYPE html PUBLIC "—//W3C//DTD XHTML 1 . I//EN" "http : //www.w3.org/TR/xhtm111/DTD/xhtmIII.dtd" > く html xmlns="http : //www.w3.org/1999/xhtm1" xmlns:ops="http://www. idpf . 0 て g / 2007 / ops " xml : lang="ja"> く head> く meta http—equiv='℃ ontent—Type" content="text/html ; charset=UTF¯8"/> く meta http—equiv="Content—StyIe—Type" content="text/css"/> く meta name= 'generator" content="Re:VIEW"/> く title> はじめにく /title> く /head> く body> く hl > く a id = " h " > く / a > はじめにく / hl > く p> はじめての Re:VEIW 第 2 版を手に取っていただき、ありがとうございます。本書は色々な種類・ 性質の技術書がもっと世の中に溢れてほしい、という気持ちから生まれました。最新の Re:VIEW にあ わせたアップデートはもちろん、技術書を書くことにフォーカスをあてたガイドブックです。く /p> く p > タイトルにもある Re : VIEW は書籍制作のためのツールセットです。すこしの文法をおぼえるだけ 44
第 5 章コンバイルの仕方 作業を自動化するツールは Rakefi1e だけではありません。 TechBooster では grunt を 使って作業を自動化しています。 grunt による自動化は「 7.4 タスクランナーの設定」で 解説しています。 執筆時の注意点 review-pdfmaker は、その書籍に含まれる Re:VIEW ファイルに間題があっても、 見正常に PDF を出力してしまいます。この場合、コマンド自身は「成功」と報告するの ですが、該当する章のデータが勝手に抜け落ちている、という事態につながります。 もっとも単純な事例は、 catalog. yml の CHAPS での指定を忘れることです。また、一部 の構文工ラーについても、そのファイルがなかったこととして、 PDF が生成されてしま います。 これは、複数の Re:VIEW ファイルを用いて原稿執筆している際に若干厄介な問題で す。特に執筆後半では、見栄えの調整のために review-compile よりも頻繁に review- pdfmaker 等を実行することがあるのですが、 re ⅵ ew ー c 。 mpile 工ラーで中止する代わり に、コマンドはエラーが発生した章を無視して PDF を生成します。 対策として、執筆時には review-compile--target=latex--check を実行して執筆中 review-pdfmaker 同様、 review-epubmaker はプロジェクトのメタデータとなる 5.3 review-epubmaker NumberOfPages : 103 > pdftk book. pdf dump_data—utf8 ー grep NumberOfPages ます。参考まで、 L ⅲ ux の pdftk コマンドでページ数を見る例を示します。 章がまるまる抜け落ちることを利用してページ数が減っていないか確認することもでき すめします。 の原稿単体で発生している問題を排除してから review-pdfmaker を実行することをおす 48 マリスト 5.4 review-epubmaker の例 を使用します。事前に ZIP コマンドをインストールしておいてください。 Re:VIEW は EPUB の生成処理で、システムにインストールされている ZIP コマンド HTML ファイルや CSS ファイルを ZIP 圧縮でアーカイプ化したものです。 YAML ファイルを引数として EPUB ファイルを生成します。 EPUB ファイルの実態は
第 7 章役に立つ豆知識 古い生成ファイルを消す ( 消さないとエラーになる場合がある ) 最低限必要なのは次のコマンドと同様の動作です。 rm -rf artic1es/C89—FirstStepReVIEW-v2-pdf/ \ articles/* . pdf \ articles/* . epub \ articles/* . tml \ articles/* . xml \ articles/* . txt それぞれ、 pdf 、 epub 、 html 、 idgxml (Adobe InDesign 用 XML) 、 text 生成時に作成され る一時ファイルまたは最終出力ファイルです。一番最初の行の C89-FirstStepReVIEW- v2-pdf 部分は articles/config. yml の bookname の設定により変化します。特に、最初の 行は必ず行わないと PDF を生成しようとした時にエラーになるので PDF 生成処理前に は必ず消すようにします。 ・ review-preproc コマンドを実行する 最低限必要なのは次のコマンドの実行です。 # articles ディレクトリ内で実行する想定 $ review—preproc ーて——tabwidth=2 * . re review-preproc コマンドは Re:VIEW の仕組みの中で、もっとも便利な、愛すべきコ マンドといえます。 review-preproc コマンドは文書中に埋め込まれた pragma を処理し、 サンプルコードを文書中に展開したり指定のコマンドの実行結果を文書中に展開してくれ たりします。 C 言語のマクロとだいたい同じものだと思えばよいでしよう。 文書にソースコードを貼りこむ時、インデントは 2 スペースとします。このため、 4 ス ペース派の人はサンプルコードではタブを使うようにして、エデイタ上では 1 タブ = 4 ス ペースで作業し、文書中に貼りこむ時にタブを 2 スペースに変換するとよいでしよう。 詳細は第 3 章「 Re:VIEW の書き方」に譲ります。 各ターゲット向けのビルド用コマンドを実行する 最低限必要なのは次のコマンドの実行です。 # 全て、 articles ディレクトリ内で実行する想定 # text の生成 $ review—compile ー a11 ¯target=text 68
5.2 review-pdfmaker from /opt/review/bin/review—pdfmaker : 219 : in ( く main> ' 再度コンパイルする際には、まず手動で PDF (book. pdf) と中間ファイルを収めるディ レクトリ (book-pdf/) を削除してから、再度 review-pdfmaker を実行します。 review—pdfmaker は内部で review—compile——target=latex を行ったあとに plate x や dvipdfmx のような TeX 形式のファイルから PDF へ変換する Re:VIEW 外部のコマ ンドを実行します。 Re:VIEW の外部のコマンドを実行している際には外部のログがその まま標準出力や標準ェラー出力に反映されるため、面食らうかもしれません。 rake で自動化 コンパイル前に bo 。 k. pdf 等を手動で削除する作業は少々面倒です。そこで、 rake コマ ンドで自動化してしまいましよう。 rake コマンドは RubyGems から簡単にインストール できます。 rake コマンドに行わせるタスクは Rakefi1e というファイルに記述します。「 2.2 Re:VIEW をインストールする」の解説のとおりに review- init コマンドを使って環 境を構築していれば、すでに Rakefi1e というファイルが存在し、各種タスクが記述され ています。 Rakefi1e が無ければ作りましよう。リスト 5.3 は pdf のビルドを行う Rakefi1e の簡 単なサンプルです。 ▽リスト 5.3 Rakefile に book. pdf と book-pdf の削除を行わせてしまう一例 gem install rake task desc task SRC file sh sh sh end :default = > :pdf generate PDF file ' :pdf = > "book. pdf" Fi1eListC'* . re'] + ["config. yml"] ”b00k. pdf" = > SRC d0 "rm —f b00k. pdf" "rm —rf b00k book—pdf ” "review—pdfmaker config. yml" このように記述しておくと、 rake コマンドは関連する ReVEW ファイルや conf ig ・ ym 1 に変更があった際に限って削除と review-pdfmaker の実行を行います。 47
第 5 章コンバイルの仕方 なお、一一 help を指定すると、ファイルを読み込んで変換する代わりに対応するオプショ ンの一覧が表示されます。本章で説明されていないオプションも多々あるので、必要に応 じて参照してください。 注意 : review-compile ではそのまま PDF と EPUB は生成できない 現時点では review-compile からは直接 PDF と EPUB 形式のファイルを生成するこ とはできません、 2 。後述する review-pdfmaker と review-epubmaker をそれぞれ利用し てください。 review-compile は主に単一のファイルに対して操作を行う一方、 review-pdfmaker と review-epubmaker は Re:VIEW プロジェクト全体を対象とするため、用途も異なり ます。仮に執筆途中の Re:VIEW ファイルのみ、 PDF によるフォーマットを確認したい 場合、自身で TeX 形式から生成する、あるいは逆に全体を review-pdfmaker で生成した ( 出力省略 ) > review-pdfmaker config. yml イル (config. yml) をひとつ指定します。 review-pdfmaker はそのプロジェクトの PDF を生成します。引数として YAML ファ 5.2 review-pdfmaker あと、該当する章を pdktk 等のコマンドで切り出してください。 /opt/review/bin/review—pdfmaker : 57 : in 'mkdir ' : > review—pdfmaker config. yml v リスト 5.2 すでに PDF を一度作成したあとに再度 review-pdfmaker したときの実行例 Re:VIEW はコマンドの実行を中止します。 クトリに保存します。仮にこれらのファイル・ディレクトリがすでに存在している場合、 途中過程で生成されるファイルを保存した上で、最終的に「 book. pdf 」を自身のディレ book Ⅱ e が「 book 」となっている場合、 Re:VIEW は「 book-pdf/ 」ディレクトリに しておきます。その設定のひとつ「 bookn e 」が出力される PDF に対応しています。 YAML ファイルには本のタイトルや筆者名といった本のメタデータとなる設定を記述 * 2 . /book-pdf (Errno : : EEXIST) Fi1e exists from /opt/review/bin/review—pdfmaker : 57 : in 'main ' --target=epub は圧縮して EPUB 形式とする前のただの HTML を出力します。 46