まだ技術書を書いたことがない人にとって、すでに書いたことがある人のことを「すごい人」「特別な人」と思うかもしれません。
ですが実際は、書くためのツールを知っていれば誰でも本を書くことができます。
執筆した内容を本の形式に出力するツールはいろいろありますが、無料で使えるツールの代表例として、Re:VIEW というものがあります。
ただ扱いに少し癖があったり、デザインがシンプルすぎるというデメリットがありました。
デメリットを改善したツールが、Re:VIEW Starter です。
Re:VIEW Starter を使用することで、初期設定を GUI で完了させ、おしゃれなデザインで本を出力することができるようになります。
本記事では、Re:VIEW Starter を使用した環境構築の方法と、実際に本に出力する方法について解説しました。
私はすでにこのツールを使用して8冊の書籍を執筆しているので、ポイントだけ抜粋してお伝えできると思います。
最後まで記事を読むことで、本を執筆する準備を整えることができます。
では、さっそく見ていきましょう。
エンジニアが技術書を執筆するための環境構築
まずはじめに、雛形をダウンロードしてきてから執筆作業を始める必要があります。
ダウンロードした雛形をもとに、手を加えていく流れです。
Re:VIEW Starter でプロジェクトファイルを作成する
Re:VIEW Starter の公式サイトにアクセスします。
下に「プロジェクトの作成を始める」のボタンがあるので、クリックしましょう。
最初に、著者名またはサークル名を入力します。
カタカナの読み方も入力したら次に進みます。
次にタイトルとサブタイトルを決めます。
あとでも変えられるので、仮のタイトルで問題ありません。
次はサイズです。
個人的にあまりページ数が増えるのが好きではないので、B5 で設定しています。
このあたりの設定はすべて後で変更することができます。
次にフォントサイズです。
私は B5 サイズで作成するので、より小さい文字サイズである 10pt を指定しました。
次に、章タイトルや目次を右ページから始めるかどうかです。
私の場合は PDF の出力のみを考えているため、「章や目次が左右どちらのページから始まってもよい」にしています。
次に章や節、項のデザインです。
ここは個人の趣味で問題ありませんが、私は次の設定にしています。
次のフォントの種類です。
ここも自由に設定して構いません。
ターミナル用のフォントも変更できます。
次に、プログラムやターミナルの表示オプションです。
プログラムが右で折り返しされると見にくいので、文字を小さめにしておくのがオススメです。
あとは code のタグで囲ったときに、薄いグレーの背景で表示するオプションもよく使っています。
私は PDF の出力しかしないので、デフォルトの出力を PDF にしています。
あとは自由に設定してください。
最後にプロジェクト名を設定します。
何でも構いませんが、英語名しか指定できません。
出版予定日も後で変更できるので、適当で構いません。
書籍の販売は「技術書典」が有名ですが、「技術博」というイベントも開催されています。
技術博の場合は、発行責任者と連絡先情報が必要なので、専用の入力欄が用意されています。
ここでようやく準備が完了です。
ファイル一式をダウンロードできるようになっているので、青いボタンからダウンロードして、解凍してください。
プロジェクトファイルの解説
プロジェクトファイルの中身を見てみましょう。
「たくさんファイルがあってよくわからない」と思うかもしれませんが、知っておくべきところは少ないので安心してください。
contents フォルダ
一番重要なのは、contents フォルダの中身です。
contents フォルダは実際に出力される本の中身を置いておく場所です。
章ごとに「.re」ファイルを作成し、特有の形式で記述することで、いい感じに出力してくれます。
マニュアルは、Re:VIEW Starter の「ユーザーズマニュアル」のリンクから確認できます。
images フォルダ
次に重要なのが、画像を配置する images フォルダです。
images フォルダに画像を置いておくことで、本文から画像を参照することができます。
章ごとにフォルダを作成しておくのがいいでしょう。
cover_b5.pdf は本の表紙で、B5 の場合はこちらのファイルを使用します。
catalog.yml
catalog.yml は、contents フォルダで作成した各章を分類するファイルです。
ここにファイル名の記載がないと、PDF 出力に含まれません。
contents フォルダの中身と catalog.yml の中身は必ず一致させるようにしてください。
config.yml
config.yml は、Re:VIEW 側の設定ファイルです。
本のタイトルや著者名などは、このファイルから修正することができます。
config-starter.yml
config-starter.yml は、Re:VIEW Starter 独自の設定です。
用紙サイズや出力のターゲット(PDF や紙など)はこのファイルから修正することができます。
オススメの執筆環境
私がオススメする執筆環境は、「VS Code」です。
Docker も使うので、ターミナルも一体になっているところが使いやすいと思います。
さらに、Re:VIEW Starter Syntax Highlight という拡張機能を入れることで、入力補完もしれくれるのでとても便利です。
実際に出力をする手順
本の形式に出力をするには、Docker が必要になります。
まずは、Docker をインストールしてください。
Docker をインストールして起動したあと、以下のコマンドを実行してください。
$ cd hoge-book/
$ docker pull kauplan/review2.5 ← 3GB 以上ダウンロードするので注意(初回のみ実行)
$ docker run --rm -v $PWD:/work -w /work kauplan/review2.5 rake pdf
docker run のコマンドで、PDF ファイルが出力されます。
mac の場合は「rake docker:pdf」とするだけでも、PDF 出力が可能です。
実際にコマンドを実行してみましょう。
$ rake docker:pdf
docker run --rm -v $PWD:/work -w /work kauplan/review2.5 rake pdf
compiling 00-preface.tex
compiling 01-install.tex
compiling 02-tutorial.tex
compiling 03-syntax.tex
compiling 04-customize.tex
compiling 05-faq.tex
compiling 06-bestpractice.tex
compiling 91-compare.tex
compiling 92-filelist.tex
compiling 93-background.tex
compiling 99-postface.tex
[pdfmaker]$ /usr/bin/ruby2.5 /work/lib/hooks/beforetexcompile.rb /work/hoge-book-pdf /work
[pdfmaker]$ uplatex --version | head -1
e-upTeX 3.14159265-p3.7.1-u1.22-161114-2.6 (utf8.uptex) (TeX Live 2017/Debian)
[pdfmaker]$ time uplatex -halt-on-error -file-line-error -interaction=batchmode book.tex > /dev/null
13.73 real 10.60 user 0.71 sys
[pdfmaker]$ time uplatex -halt-on-error -file-line-error -interaction=batchmode book.tex > /dev/null
12.06 real 9.45 user 0.55 sys
[pdfmaker]$ time uplatex -halt-on-error -file-line-error -interaction=batchmode book.tex > /dev/null
12.12 real 9.77 user 0.53 sys
[pdfmaker]$ time dvipdfmx -q -d 5 -z 3 -o ../hoge-book.pdf book.dvi
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 bskarr10
mktexpk: Running mf-nowin -progname=mf \mode:=ljfour; mag:=0+480/600; nonstopmode; input bskarr10
This is METAFONT, Version 2.7182818 (TeX Live 2017/Debian) (preloaded base=mf)
(/usr/share/texlive/texmf-dist/fonts/source/public/boisik/bskarr10.mf
(/usr/share/texlive/texmf-dist/fonts/source/public/boisik/bskbase.mf)
(/usr/share/texlive/texmf-dist/fonts/source/public/boisik/bskarrows.mf
(/usr/share/texlive/texmf-dist/fonts/source/public/boisik/bsklist-ar.mf)
(/usr/share/texlive/texmf-dist/fonts/source/public/boisik/bsksymbols.mf
[251] [254] [250] [253] [252] [255] [30] [7] [9] [10] [32] [34] [33] [35]
[6] [8] [31] [248] [14] [15] [249] [0] [21] [1] [22] [16] [232] [233] [234]
[235] [230] [231] [240] [241] [242] [243] [244] [245] [26] [27] [28] [29]
[246] [247] [23] [4] [5] [3] [25] [2] [24] [18] [236] [12] [20] [237] [11]
[13] [17] [238] [19] [239] [49] [38] [39] [40] [41] [42] [43] [37] [48]
[44] [50] [227] [46] [36] [47] [226] [45] [229] [228] [225] [224] [223]
[222] [221] [220]) ) )
Font metrics written on bskarr10.tfm.
Output written on bskarr10.480gf (87 characters, 12928 bytes).
Transcript written on bskarr10.log.
mktexpk: /root/.texlive2017/texmf-var/fonts/pk/ljfour/public/boisik/bskarr10.480pk: successfully generated.
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 bskarr10
mktexpk: /root/.texlive2017/texmf-var/fonts/pk/ljfour/public/boisik/bskarr10.480pk already exists.
5.86 real 3.24 user 0.64 sys
ひと通りの処理が完了すると、フォルダ直下にプロジェクト名と同じ PDF が出力されます。
とりあえず表紙だけ載せておきますね。
最後に
Re:VIEW Starter を使用した環境構築の方法と、実際に本に出力する方法について解説しました。
1冊目の執筆は覚えることがたくさんあって大変ですが、一度やってしまえば2冊目以降はスムーズに執筆を進めることができます。
この記事を参考に、みなさんも素敵な執筆ライフをお送りください。