Re:VIEWの技術資料「技術書をかこう!」

Re:VIEWとは

Re:VIEWとは

技術書をかこう! ~はじめてのRe:VIEW~

2018年5月、Windows10に書籍執筆支援システム Re:VIEWをインストールし、使い方を修得中です。

Re:VIEWの参考資料を検索していたら「技術書をかこう! ~はじめてのRe:VIEW~ 改訂版【C92新刊】- TechBooster」という電子書籍(1,000円)を見つけました。内容的に興味がある書籍ですが、アニメ調の表紙なのでスルーしていました。さらに調べていたら、同じ書籍がTechBooster/C89-FirstStepReVIEW-v2で無償公開していました。

「技術書をかこう!~はじめてのRe:VIEW~ 改訂版」はRe:VIEW 2.3.0に対応した執筆ノウハウ本です。 Re:VIEWの使い方と制作にあたっての企画~執筆~編集~告知~会場頒布までのノウハウをギュッと詰めています。

このレポジトリはRe:VIEWで書いた原稿を公開しており、PDFは自分で生成しなければなりません。

私はWindows10にRe:VIEWをインストールしていますが、環境に相違点があるのかエラーが発生しましたので一部修正してEPUB/PDFを生成しました。

Re:VIEWの概要、インストール、設定方法、VS Code拡張機能については、下記ブログを参照してください。

Windows10に Re:VIEW 執筆支援システムをインストールする方法

書籍執筆支援システム Re:VIEWの設定ファイルについて

Visual Studio Codeプラグインで Re:VIEW を使う方法

書籍のファイル構成

GitHub TechBooster/C89-FirstStepReVIEW-v2からC89-FirstStepReVIEW-v2-master.zipをダウンロードします。

.zipを展開すると、下記のようなディレクトリー構成になっています。

ディレトクリ構造

ディレトクリ構造

articles ディレトクリ構造

articles ディレトクリ構造

articlesに原稿(.re)と環境一式が入っており、Re:VIEW 2.3.0に対応しているのでEPUB/PDFを問題なく生成できそうです。

EPUB生成

EPUBを生成すると、エラーが発生しました。

> review-epubmaker config.yml
Traceback (most recent call last):
        15: from C:/Ruby25-x64/bin/review-epubmaker:23:in `'
        14: from C:/Ruby25-x64/bin/review-epubmaker:23:in `load'
        13: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/review-2.5.0/bin/review-epubmaker:48:in `'
        12: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/review-2.5.0/lib/review/epubmaker.rb:103:in `produce'
        11: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/review-2.5.0/lib/review/epubmaker.rb:409:in `copy_stylesheet'
        10: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/review-2.5.0/lib/review/epubmaker.rb:409:in `each'
         9: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/review-2.5.0/lib/review/epubmaker.rb:410:in `block in copy_stylesheet'
         8: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:358:in `cp'
         7: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:1461:in `fu_each_src_dest'
         6: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:1477:in `fu_each_src_dest0'
         5: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:1463:in `block in fu_each_src_dest'
         4: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:359:in `block in cp'
         3: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:432:in `copy_file'
         2: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:1291:in `copy_file'
         1: from C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:1291:in `open'
C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb:1291:in `initialize': No such file or directory @ rb_sysopen - style.css (Errno::ENOENT)

スタイルシート 拡張子

No such file or directory @ rb_sysopen – style.css (Errno::ENOENT)

style.cssが存在しないというエラーです。ディレクトリーを探してみるとstyle.scssというファイルがあります。正しい対応かどうかわかりませんが、拡張子を.cssに変更しました。

EPUBを生成します。

> review-epubmaker config.yml
WARN: warning: duplicate ID: image_sample (#)
WARN: review-epubmaker: images/tips/sheet-page1.png: 4234x3636 exceeds a limit. suggeted value is 2158x1853
WARN: review-epubmaker: images/tips/sheet-page2.png: 4234x2591 exceeds a limit. suggeted value is 2556x1564
WARN: review-epubmaker: images/tips/sheet-page3.png: 4257x3044 exceeds a limit. suggeted value is 2365x1691
WARN: review-epubmaker: images/tips/sheet-page4.png: 4257x3168 exceeds a limit. suggeted value is 2318x1725

ワーニング(WARN)が発生しています。

画像サイズの上限指定

WARN: review-epubmaker: images/tips/sheet-page1.png: 4234×3636 exceeds a limit. suggeted value is 2158×1853
WARN: review-epubmaker: images/tips/sheet-page2.png: 4234×2591 exceeds a limit. suggeted value is 2556×1564
WARN: review-epubmaker: images/tips/sheet-page3.png: 4257×3044 exceeds a limit. suggeted value is 2365×1691
WARN: review-epubmaker: images/tips/sheet-page4.png: 4257×3168 exceeds a limit. suggeted value is 2318×1725

いくつかの画像ファイルが画像サイズ上限を超えています。

画像の縦ピクセル×横ピクセルの上限値を指定します(デフォルト値は、おそらく 4000000)。config.yml を修正します。

epubmaker:
     image_maxpixels: 16000000

IDの重複

WARN: warning: duplicate ID: image_sample (#)

image_sampleというIDが重複しているようです。調べてみるとreview-introduction.reファイルに記述ミスがあるようです。

//indepimage[image_sample][連番なしの図]

//indepimage[image_sample][表示倍率25%][scale=0.25]

image_sampleが2回出現していますが、image_sampleというファイル名です。これが、IDなのかな・・・? 同じファイルを2回参照するとワーニングエラーが発生するのかな?これが仕様なのかな?
とりあえず review-introduction.reファイルを修正します。

//indepimage[image_sample][連番なしの図]

//indepimage[image_sample2][表示倍率25%][scale=0.25]

このイメージファイルは、images/review-introductionにあります。イメージファイルimage_sample.pngをコピーしてimage_sample2.pngを作成します。

修正後のEPUB生成

EPUBを生成します。

> review-epubmaker config.yml

EPUBファイルを生成しました。

EPUBサンプル

EPUBサンプル

EPUBサンプル

EPUBサンプル

PDF生成

PDFを生成します。

> review-pdfmaker config.yml
compiling preface.tex
compiling writing-book.tex
compiling planning-book.tex
compiling workflow.tex
compiling publishing-book.tex
compiling distribution.tex
compiling setup.tex
compiling review-introduction.tex
compiling configure.tex
compiling build.tex
compiling tips.tex
compiling contributors.tex

・・・(省略)・・・

PDFを生成しました。

PDFサンプル

PDFサンプル

技術書をかこう! ~はじめてのRe:VIEW~の内容

「技術書をかこう! ~はじめてのRe:VIEW~」は興味深い内容で構成しています。

はじめに
第1章 技術書を書くための要求仕様
第2章 書きたいことを見つけよう
第3章 制作ワークフロー
第4章 書籍を発行する
第5章 技術を広める
第6章 Re:VIEWでの執筆環境を整える
第7章 Re:VIEW記法を理解する
第8章 設定ファイルの解説
第9章 書籍をビルドする
付録A 役に立つ豆知識
著者紹介


第2章の「書きたいことを見つけよう」で執筆経験がない技術者が技術書を書く理由について記述がありました。

近年は技術の変遷も速く、本屋さんにならぶ商業誌では変化のスピードに太刀打ちできない状況がつづいています。

ひとつの技術が業界の大勢を決する時代は過ぎ去りました。いまや多くの技術要素が複雑に絡まり合ってパラダイムを形成しています。ニッチな技術であっても必要とする人がいます。それどころか、まだ普及していない新技術や、専門領域でのみ通用する技術に価値があります。

自分も何か技術書を書いてみたくなりました。私はソフトウェア技術者として38年間を歩んだ道で、いろいろな経験をしました。技術と経験から何かの技術書を書けそうな気がします。


第3章の「制作ワークフロー」で、校正支援用ツールprhを紹介しています。いろいろ調べてみたいと思います。


付録A「役に立つ豆知識」でプリプロセッサ命令についての説明があります。使いこなせばより快適にRe:VIEWを使えるように思います。

まとめ

「技術書をかこう! ~はじめてのRe:VIEW~」という電子書籍の原稿を入手して、Windows10環境でRe:VIEWを使用して原稿からEPUB/PDFを生成することができました。