まとめ
- Re:VIEWで執筆時にあれ?と思ったらこの記事を見よう
- あれが分からない…これもハマった…などあればコメントやSNSなどで連絡を!
- 他にも執筆環境はあるけれど、個人的にはもう慣れたのでRe:VIEWを使い続けるつもり
はじめに
技術同人誌を執筆する環境としてRe:VIEWを使用しています。
非常に便利ですし、助かってますし、これがなければ技術同人誌を出せないのですが、「ここがこうしたいけど、できない…」「この現象はどうしたら直るの…?」「あれってどうやるんだっけ…?」などが多いのも事実。
以下のようにSNSで困っている人同士で教え合うことも多いのですが、見落とす可能性もあるのでこの記事にまとめておこうかと思います。
#技術書典 #技書博
— FORTE@aozorafm (@FORTEgp05) 2024年10月30日
環境が分からないのでたぶんですが `config.yml` の `texdocumentclass` に `openany` を指定すれば直るかと。
以下の通りなので、openanyがないと章の始まり調整のため白紙が入ってると予想…
> openany: 章の始まりを左右どちらのページからでも始めますhttps://t.co/FKjyPUZh3T https://t.co/jMh27purlh
目次
- まとめ
- はじめに
- 目次
- この記事で紹介している内容のサンプルリポジトリ
- 初期設定
- 執筆の流れ
- フォーマットそれぞれの見た目
- インライン命令(太字やURLリンク、見出し指定など)
- プリプロセッサ命令
- config.ymlについて
- sty(マクロ)
- PDF出力時にエラーが発生したら
- おわりに
この記事で紹介している内容のサンプルリポジトリ
こちらにアップしています。
なにか間違いや追記要望などあればよしなにお願いします。
初期設定
インストール
すいません、6〜7年前にやったのでもう覚えておらず…。PCを買い替えたりして、もう一度やったら詳細に更新します。
ちなみに私はMacBook ProにRe:VIEWをインストールしており、PDF出力はDocker(使用バージョンは最新ではなく5.0)で行なっています。
公式のクイックスタートガイド
DockerでRe:VIEWを動かす
執筆の流れ
プロジェクト作成
コマンド:
review-init 本の名前
コマンド例:
review-init server-side-kotlin
review-initコマンドがない場合は、公式のクイックスタートガイドを参照のこと。
PDF出力に最低限必要なconfig.yml設定
これはRe:VIEWの設定や、PDF出力時の設定ファイル。デフォルトでも動くと思うけど、1個だけ確認した方がいいと思うので紹介。
ただし、奥付の連絡先メールアドレスなど絶対に記載したほうがいいと思う項目もあるので、あくまでPDF出力に最低限必要な設定です。入稿する際には全項目をざっと確認して設定要否を確認することを強くおすすめします。
その他の設定項目については後述します。
review_version
設定
# この設定ファイルでサポートするRe:VIEWのバージョン番号。 review_version: バージョン
設定例
# この設定ファイルでサポートするRe:VIEWのバージョン番号。 review_version: 5.0
たしか設定しなくても動いた、と思うけど、自分の環境に合わせておいた方が無難。
執筆
.reファイルに書く
執筆時に気をつけていること
- 文字だらけにならないようにする
- 適度に見出しや画像(なければURLのQRコードでもなんでもいい)をいれる
- 以下に示すとは書かず、次に示すと書く
- ブログなどとは違い必ず下に続きがあるとは限らないので、次のページなどにも対応する表現とする
- !?は全角にする(そのあとに全角スペースをいれる文書ルールもある)
- これは合同紙で指摘されて初めて知ったのですが、日本語の本は!?は全角にするというルールがあるそうです。手元の小説もそうなっていました。
.reファイルをPDF出力対象にする
catalog.ymlに作成した.reファイルを記載する
PREDEF: CHAPS: - review_sample.re APPENDIX: POSTDEF:
PREDEF
「はじめに」
CHAPS
本文
第n章となる。
APPENDIX
「付録X」
付録A、付録B…となっていく
POSTDEF
「あとがき」
PDF出力
コマンド:
docker run --rm -v `pwd`:/work vvakame/review:バージョン /bin/sh -c "cd /work && rake pdf"
コマンド例:
# バージョン5.0指定 docker run --rm -v `pwd`:/work vvakame/review:5.0 /bin/sh -c "cd /work && rake pdf" # 最新バージョン指定 docker run --rm -v `pwd`:/work vvakame/review:latest /bin/sh -c "cd /work && rake pdf"
1、2年前に当時の最新(5.7?)でPDF出力ができなくて、5.0に落としたままです。最新が5.10みたいなので、そのうち上げて試したいところ。
なお、このコマンドを.shファイルに記載してプロジェクト直下に置いておくと sh publish_pdf.sh
とかですぐPDF出力できます。便利。
EPUB出力
コマンド:
docker run --rm -v `pwd`:/work vvakame/review:バージョン /bin/sh -c "cd /work && rake epub"
コマンド例:
# バージョン5.0指定 docker run --rm -v `pwd`:/work vvakame/review:5.0 /bin/sh -c "cd /work && rake epub" # 最新バージョン指定 docker run --rm -v `pwd`:/work vvakame/review:latest /bin/sh -c "cd /work && rake epub"
Dockerコマンドの最後のpdfをepubに変えるだけです。
奥付について
特に理由がなければ作成しましょう。悪いことは言いません。
詳細は後述。
表紙
まず自作するか、他者に依頼するかで大きく変わってくると思います。
イラストが描けるならともかく、描けなくても以下の記事を参考に他の著者さんの表紙を参考に作るとよいかもしれません(ただし以下はpngのみの方法)
電子版
基本的に入稿用の表紙を電子版用に切り取ればいいですが、以下の注意点があります。
#技術書典 #技書博 の本をreviewで書いてる人、アプデで電子用pdf出力時の挙動が変わってハマったので備忘録。
— FORTE@aozorafm (@FORTEgp05) 2023年10月18日
カスタムマクロで表紙画像を拡大表示設定してた人は、この機能が公式実装されたので該当箇所(coverimageoption)を消して画像サイズを紙面に合わせる。
じゃないと1枚目みたいな隙間が出る。 pic.twitter.com/9ybpEAjsmJ
もしPDF出力してみて白い隙間が出る場合は、以下の記事を参考に設定を追加していないか確認し、追加していたら削除してください。
この設定を消しても隙間が出る場合は画像サイズが紙面サイズ(A5とかB5とか)にあっていない可能性があります。
画像ファイルの解像度によるのかもしれませんが、いつも用紙サイズとぴったりにならず微調整しています。
直近の新刊はA5で15 * 22.3cmとかにしていたようですが、なぜこの数字なのかはよくわかりません・・・。
バージョンを上げたら挙動が変わる気がするので、ここも要確認ですね。
印刷
基本的には、即売会イベントのバックアップ印刷所に依頼すれば間違いはありません。
もちろん、もっと安いだったり、納期ギリギリまで受け付けてくれたり、家から近い、箔押しなどの加工が特徴的な印刷所さんもあります。
慣れてきたらバックアップ印刷所以外も検討すると良いでしょう。
なお、私は表紙をpng入稿可能なねこのしっぽさんに依頼しています。
部数
ご自由に!と言いたいですが、決められん!という人に向けて参考記事をリンクしておきます。
2025年現在なら30〜50部くらいが検討スタートでしょうか。。
フォーマットそれぞれの見た目
公式のRe:VIEW フォーマットガイドに載っている文法がどう見えるのか、PDFの見た目を画像付きで載せておきます。
なお、見た目はバージョン5.0、config.ymlはデフォルト設定で確認したものになります。
また、ソースコードのハイライトやグラフ表現ツールなどRe:VIEW単体で完結しない、外部のツールなどが必要なものは(面倒なので)省略してます。
段落
.re上の入力
だんらくだんらく〜〜〜 この行も同じ段落 次の段落〜〜〜 あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもらりるれろわをん
見た目
1行の文字上限を超えると折り返します。改行では折り返さない。
この改行の見た目にこだわるとRe:VIEWは結構ツライ印象。。
もうそういうものだと割り切った方が幸せになれるかも。。
章・節・項・目・段(見出し)
.re上の入力
= 章のキャプション ここは章 == 節のキャプション ここの節 === 項のキャプション ここは項 ==== 目のキャプション ここは目 ===== 段のキャプション ここは段 ====== 小段のキャプション ここは小段 だんらくだんらく〜〜〜 この行も同じ段落 次の段落〜〜〜 あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもらりるれろわをん
見た目
コラムなど
.re上の入力
===[column] コンパイラコンパイラ コラムの内容 ===[/column]
見た目
見出しオプションは省略
箇条書き
.re上の入力
* 第1の項目 ** 第1の項目のネスト * 第2の項目 ** 第2の項目のネスト * 第3の項目
見た目
番号付き箇条書き
.re上の入力
1. 第1の条件 2. 第2の条件 3. 第3の条件
見た目
用語リスト
.re上の入力
: Alpha DEC の作っていた RISC CPU。 浮動小数点数演算が速い。 : POWER IBM とモトローラが共同製作した RISC CPU。 派生として POWER PC がある。 : SPARC Sun が作っている RISC CPU。 CPU 数を増やすのが得意。
見た目
ソースコードなどのリスト
.re上の入力
//list[main][main()][c]{ int main(int argc, char **argv) { puts("OK"); return 0; } //} //listnum[hello][ハローワールド][ruby]{ puts "hello world!" //} //emlistnum[][ruby]{ puts "hello world!" //}
見た目
ソースコード専用の引用
.re上の入力
//source[/hello/world.rb]{ puts "hello world!" # キャプションあり //} //source{ puts "hello world!" # キャプションなし //} //source[/hello/world.rb][ruby]{ puts "hello world!" # キャプションあり、ハイライトあり //} //source[][ruby]{ puts "hello world!" # キャプションなし、ハイライトあり //}
見た目
ハイライトはconfig.ymlの highlight:
で有効化できるみたいだけど、外部gemが必要らしいので未確認。
コマンドラインのキャプチャ
.re上の入力
//cmd{ $ @<b>{ls /} //}
見た目
なお @<b>{}
はインライン命令といって装飾用の命令。これは太字(になってるかは画像だとよく分からないけど…)
図
.re上の入力
//image[unixhistory][UNIX系OSの簡単な系譜]{ System V 系列 +----------- SVr4 --> 各種商用UNIX(Solaris, AIX, HP-UX, ...) V1 --> V6 --| +--------- 4.4BSD --> FreeBSD, NetBSD, OpenBSD, ... BSD 系列 --------------> Linux //}
見た目
画像はRe:VIEWのプロジェクトにデフォルトで入っている表紙画像。
表紙画像なのでサイズが大きく、原寸だとキャプションがトンボにかかってしまう。そこで3番目の引数に縮尺(Scale=X)を指定する。
.re上の入力
//image[unixhistory][UNIX系OSの簡単な系譜][scale=0.5]{ System V 系列 +----------- SVr4 --> 各種商用UNIX(Solaris, AIX, HP-UX, ...) V1 --> V6 --| +--------- 4.4BSD --> FreeBSD, NetBSD, OpenBSD, ... BSD 系列 --------------> Linux //}
見た目
わかりづらいかもですが、キャプションがトンボにかかっていない。
なお、{}の中身は無視されるそうです(公式ドキュメント通りに記載しましたが書く意味はなさそうだし私も{}自体を書いてないです)
表
.re上の入力
//table[envvars][重要な環境変数]{ 名前 意味 ------------------------------------------------------------- PATH コマンドの存在するディレクトリ TERM 使っている端末の種類。linux・kterm・vt100など LANG ユーザのデフォルトロケール。日本語ならja_JP.eucJPやja_JP.utf8 LOGNAME ユーザのログイン名 TEMP 一時ファイルを置くディレクトリ。/tmpなど PAGER manなどで起動するテキスト閲覧プログラム。lessなど EDITOR デフォルトエディタ。viやemacsなど MANPATH manのソースを置いているディレクトリ DISPLAY X Window Systemのデフォルトディスプレイ //}
見た目
表の各列のセル間は「1つ」のタブで区切ります。
と書いてある通り、公式ドキュメントをそのままコピペするとタブが半角スペースになってうまく表示されないので要注意(1敗)
なお、インデント設定が半角スペースになっていても「タブ」と入力して変換すれば入力できます。
引用・中央揃え・右揃え
.re上の入力
//quote{ 百聞は一見に如かず。 //} //centering{ これは 中央合わせ //} //flushright{ これは 右寄せ合わせ //}
見た目
引用の見た目がこれで正しいのか分からない…(今まで使ったことがない)
囲み記事
.re上の入力
//note[note1]{ これはノート //} //memo[memo1]{ これはメモ //} //tip[tip1]{ Tips //} //info[info1]{ これは情報 //} //warning[warning1]{ これは注意 //} //important[important1]{ これは重要 //} //caution[caution1]{ これは警告 //} //notice[notice1]{ これは注意 //}
見た目
memo以外はエラーとなりPDF出力できなかった。。
脚注
.re上の入力
パッケージは本書のサポートサイトから入手できます@<fn>{site}。 各自ダウンロードしてインストールしておいてください。 //footnote[site][本書のサポートサイト: http://i.loveruby.net/ja/stdcompiler ]
見た目
後注
.re上の入力
パッケージは本書のサポートサイトから入手できます@<endnote>{site}。 各自ダウンロードしてインストールしておいてください。 //endnote[site][本書のサポートサイト: http://i.loveruby.net/ja/stdcompiler ]
以下のエラーでPDF出力不可
WARN review-pdfmaker: compile error in review_sample.tex (ReVIEW::ApplicationError) WARN review-pdfmaker: review_sample.re:212: error: no such inline op: endnote ERROR review-pdfmaker: compile error, No PDF file output. rake aborted! Command failed with status (1): [review-pdfmaker config.yml...] lib/tasks/review.rake:112:in `block in <top (required)>' /var/lib/gems/2.5.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>' Tasks: TOP => pdf => book.pdf (See full trace by running task with --trace)
参考文献の定義
本文.re上の入力
…という研究が知られています(@<bib>{lins})。
bib.re上の入力
= 参考文献(bib.re) //bibpaper[lins][Lins, 1991]{ Refael D. Lins. A shared memory architecture for parallel study of algorithums for cyclic reference_counting. Technical Report 92, Computing Laboratory, The University of Kent at Canterbury , August 1991 //}
見た目
bib.reをcatalog.ymlに登録するのを忘れずに。どこでも追加できるけど、付録としてAPPENDIXに追加するのが個人的な好み。
リード文
本文.re上の入力
//lead{ 本章ではまずこの本の概要について話し、 次にLinuxでプログラムを作る方法を説明していきます。 //}
見た目
インライン命令(太字やURLリンク、見出し指定など)
公式ドキュメントを見てください。
では、あんまりかなと思うので、よく使うものだけ載せておきます。キーワード検索にひっかかることを期待して(公式ドキュメントを検索しろは本当にそう)
@<b>{〜}
: 太字にします。@<chap>{章ファイル名}
: 「第17章」のような、章番号を含むテキストに置換されます。@<title>{章ファイル名}
: その章の章題に置換されます。@<chapref>{章ファイル名}
: 『第17章「さらに進んだ話題」』のように、章番号とタイトルを含むテキストに置換されます。@<list>{識別子}
: リストを参照します。@<img>{識別子}
: 図を参照します。@<table>{識別子}
: 表を参照します。@<column>{ラベルまたは見出し}
: コラムを参照します。@<href>{URL}, @<href>{URL, 文字表現}
: ハイパーリンクを作成します
プリプロセッサ命令
これまでに説明したタグはすべて最終段階まで残り、見た目に影響を与えます。それに対して以下のタグは著者が使うための専用タグであり、変換結果からは除去されます。
だそうです。
これも使いそうなものだけ載せておきます。
#@#
: コメント。この行には何を書いても無視されます。
config.ymlについて
いつも私が設定しているところだけ解説します。
bookname: 出力(PDFとか)ファイル名
# ブック名(ファイル名になるもの。ASCII範囲の文字を使用) bookname: book
booktitle: 本のタイトル
# 書名 # 読みを入れる例 booktitle: {name: "Re:VIEW EPUBサンプル", file-as: "リビューイーパブサンプル"} booktitle: Re:VIEWサンプル書籍
1ページ目の1行目に表示される
aut: 著者名
# 著者名。「, 」で区切って複数指定できる # 読みを入れる例 aut: [{name: "青木峰郎", file-as: "アオキミネロウ"}, {name: "武藤健志", file-as: "ムトウケンシ"}, {name: "高橋征義", file-as: "タカハシマサヨシ"}, {name: "角征典", file-as: "カドマサノリ"}] aut: ["青木峰郎", "武藤健志", "高橋征義", "角征典"]
1ページ目の2行目に表示される
pbl: 出版社(発行所)
# a-pbl, pbl: 出版社(発行所) pbl: aozora Project
奥付に表示される
prt: 印刷所
# a-prt, prt: 印刷所 prt: ねこのしっぽ
奥付に表示される
contact: 連絡先(メールアドレスを推奨)
contact: hoge@example.com
ここは同人誌を頒布するイベントの規約にもよりますが、基本的に連絡が取れるメールアドレスを記載することを強くおすすめします。
たとえば、技書博のサークル向けご案内資料を見ると、奥付に記載が必要な項目に連絡先が含まれています。
メールアドレスではなくSNSのアカウントでもいいのでは?と思われるかもしれませんが、Twitterを始めとするSNSアカウントはIDを変更できてしまい、連絡が取れなくなる可能性がメールアドレスよりも高いです。そのため、メールアドレスが推奨されます。
私も必ずメールアドレスを記載しています。
date: 刊行日
# 刊行日(省略した場合は実行時の日付) date: 2024-11-03
1ページ目の3行目に表示される
即売会イベントで頒布するのなら、そのイベント開催日がよいでしょう。
history: 発行年月
# 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する # 複数指定する場合は次のように記述する # [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]] # 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。 history: [["2024-11-03"]]
奥付に表示される(はず)
初版発行日だけ入れていることが多いですが、2版を作成した場合はカンマ区切りで年月を追加します。
rights: 権利表記
# 権利表記(配列で複数指定可) # rights: (C) 2016-2020 Re:VIEW Developers rights: (C) 2024 FORTEgp05
奥付に表示される(はず)
toclevel: 目次対象の見出しレベル
# 目次として抽出する見出しレベル toclevel: 3
「= 章」のように書いた時に、=の数がいくつまで目次に表示されるかを設定します。
3だと「=== 項」までは目次に表示され、4つである「==== 目」は目次に表示されません。目次に表示されなくても本文中の書式は適用されます。
好みだと思いますが、私はデフォルトの3で執筆し目次を見ながら章立てを調整しています。
coverimage: 表紙画像ファイル名
# 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg) # PDFMaker 固有の表紙設定は pdfmaker セクション内で上書き可能 coverimage: cover.jpg
画像ディレクトリはimagesです。また、入稿用のPDFには表示されません。電子版には表示されます。
入稿用と電子用の切り替えは後述のtexdocumentclassで設定可能です。
colophon: 奥付の作成要否
# 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる # デフォルトの奥付における各項目の名前(「著 者」など)を変えたいときにはlocale.ymlで文字列を設定する(詳細はdoc/format.ja.mdを参照) colophon: true
デフォルトOFFで奥付が作成されないですが、特段の理由がなければ作成しましょう。作成して損はなく、作成しない方が損が大きいと思います。
デフォルトだとこんな内容ですが、前述した連絡先は記載した方が良いと思います。
texdocumentclass: 出力フォーマットの設定的な…
# LaTeX用のdocumentclassを指定する # オプションについてはsty/README.mdを参照 # デフォルトは印刷用。電子配布版を作るには media=ebook とする texdocumentclass: ["review-jsbook", "media=print,paper=a5"]
sty/README.mdはこちら
私が設定している項目を紹介します。詳細な解説は上記のsty/README.mdをご覧ください。
この項目を印刷用か電子用でどちらかをコメントアウトすることで、PDF出力を切り替えています。
印刷用
印刷所への入稿用設定で、紙で印刷することを前提としています。そのため、トンボが表示されたり表紙画像が表示されなかったりします。
# 入稿用 #texdocumentclass: ["review-jsbook", "media=print,paper=a5,openany,fontsize=9pt,hiddenfolio=nikko-pc,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm,serial_pagination=true"]
項目 | 解説 |
---|---|
media | printで印刷用を示す |
paper | 用紙サイズ、A5にしたいならa5 |
openany | これがないと章の始まり左ページ?にしようとする。なので意図しない空白ページが入ることがある |
fontsize | 文字サイズ |
hiddenfolio | 印刷所によっては要求される隠しノンブルを表示する。最近はねこのしっぽで印刷してるけどnikko-pc(日光企画)のままだな…w |
baselineskip | 行送りを与える…らしい、見た目の調整だと思う(しらんけど) |
line_length | 1行あたりの文字数 |
number_of_lines | 1ページあたりの行数 |
head_space | 天を与えます…つまり上側の余白かな(しらんけry) |
headsep | ヘッダー、フッターに関する位置調整らしい、見た目の調整だと思う(しらんry) |
headheight | 同上 |
footskip | 同上 |
serial_pagination | 通しページ番号(通しノンブル)、これも印刷所によって必要と言われるやつ |
電子用
電子版用の設定です。トンボが表示されず、表紙画像が表示されます。
印刷用と同じ設定は省略します。
# 電子用 texdocumentclass: ["review-jsbook", "media=ebook,paper=a5,fontsize=9pt,baselineskip=13pt,line_length=38zw,number_of_lines=37,head_space=15mm,headsep=3mm,headheight=5mm,footskip=10mm,serial_pagination=true,openany,oneside"]
項目 | 解説 |
---|---|
media | ebookで電子版用を示す |
oneside | 奇数ページ・偶数ページで同じ体裁にする、これは印刷用だと奇数(左用の体裁)、偶数(右用の体裁)になるのを電子版では不要なのでオフにする |
sty(マクロ)
Re:VIEWでここの見た目を変えたいんだけど、ここまでの解説に出てきていない…!という場合はstyは配下をいじることになると思います(たぶん)
ただ私はまったく内容を理解しておらず、諸先輩方にいただいた設定をそのまま流用していたり、ネットで調べて適当に直したものを使ってます(秘伝のタレ)
基本的に通称「テクブのテンプレート」にあるものを使うと良いと思います。私が使用しているものもこれを魔改造したものだと思います、たぶん。
PDF出力時にエラーが発生したら
書き終えていざPDFを出力しようとしたら、エラーでPDFが出力できない…Re:VIEWあるあるだと思います。
原因を探す
まずエラーの原因を探しましょう。
だいたい、というか確実にどこかをRe:VIEW的に間違えているのでエラーとなっています。そこを直せばPDFが出るはずです。
よくある原因
では、どこを間違えているのか?
よくある原因を紹介します。
存在しないファイルを指定している
.reファイル、画像などファイル指定しているのに、一致するファイルがないとエラーになると思います。catalog.ymlやimg指定を見返してみましょう。
記法や命令などを間違えている
コラムやソースコードなどRe:VIEW独自の記法を間違えているとエラーになることがあります。
また、コピペした記法がバージョンに合ってなかったりすると、公式ドキュメントにのっていてもエラーになります。
Dockerが起動していない
DockerコンテナでRe:VIEWを動かしてPDF出力する場合、当然Dockerが起動していないとエラーになります。
二分探索で原因を探す
よくある原因をもとに探しても見つからない場合、二分探索がオススメです。これはソーティングアルゴリズムの一種ですが、二つに分ける考えを活用して原因探索に用います。
まずcatalog.ymlに記載した.reファイルのうち、半分をコメントアウトしてエラーになるか確認します。もしエラーになれば、のこった.reファイルのうち半分をコメントアウトして確認します。これをエラーがなくなるまで繰り返します。
これでエラーが発生する.reファイルが特定できたら、今度はそのファイルの半分を消して確認します。もしエラーになれば、残った行の半分を消して確認します。これをエラーが無くなるまで繰り返します。
このように半分ずつ探索していくことで1ファイルずつ、1行ずつ確認するより圧倒的に早く原因を特定できます。
エラーメッセージはわかりづらい
これは様々な事情があるそうなのですが、Re:VIEWのエラーメッセージはわかりづらい、というかわからないので見て解決することはあまりありません。画像ファイルがない系はわかるかな、くらいです。
エラーの例
参考に囲み記事でmemo以外を指定したときのエラーメッセージを載せておきます。
review-pdfmaker config.yml INFO review-pdfmaker: compiling review_sample.tex WARN review-pdfmaker: warning: duplicate ID: unixhistory (#<ReVIEW::Book::Index::Item:0x000055a256713970 @id="unixhistory", @number=2, @caption="UNIX系OSの簡単な系譜", @path=nil, @index=nil>) INFO review-pdfmaker: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex ERROR review-pdfmaker: failed to run command: uplatex -interaction=nonstopmode -file-line-error -halt-on-error __REVIEW_BOOK__.tex Error log: This is e-upTeX, Version 3.14159265-p3.8.1-u1.23-180901-2.6 (utf8.uptex) (TeX Live 2019/dev/Debian) (preloaded format=uplatex) restricted \write18 enabled. entering extended mode (./__REVIEW_BOOK__.tex pLaTeX2e <2018-12-01u02> (based on LaTeX2e <2018-12-01>) (./review-jsbook.cls (/usr/share/texlive/texmf-dist/tex/latex/plautopatch/plautopatch.sty (/usr/share/texlive/texmf-dist/tex/latex/filehook/filehook.sty)) Document Class: review-jsbook 2021/08/23 v5.3 Re:VIEW pLaTeX class modified for jsbook.cls (/usr/share/texlive/texmf-dist/tex/latex/base/fix-cm.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/everypage/everypage.sty) (./jsbook.cls Document Class: jsbook 2020/10/09 jsclasses (okumura, texjporg) (/usr/share/texlive/texmf-dist/tex/platex/jsclasses/jslogo.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvipdfm.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) (/usr/share/texlive/texmf-dist/tex/platex/pxjahyper/pxjahyper.sty)) (./gentombow.sty ***** Package gentombow detected a5paper. ***** ***** Now the output size is automatically set to b5. ***** ) (./reviewmacro.sty (./review-base.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty) (/usr/share/texlive/texmf-dist/tex/platex/japanese-otf-uptex/otf.sty (/usr/share/texlive/texmf-dist/tex/platex/japanese-otf/ajmacros.sty)) (/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty (/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty) Package caption Warning: Unsupported document class (or package) detected, (caption) usage of the caption package is not recommended. See the caption package documentation for explanation. ) (/usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty) (/usr/share/texlive/texmf-dist/tex/latex/bigfoot/suffix.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def)) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics-def/dvipdfmx.def))) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty) (/usr/share/texlive/texmf-dist/tex/latex/platex-tools/plarray.sty))) (/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty) (/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/ascmac/ascmac.sty (/usr/share/texlive/texmf-dist/tex/latex/ascmac/tascmac.sty)) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/bm.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty) (/usr/share/texlive/texmf-dist/tex/latex/endnotesj/endnotesj.sty) (./jumoline.sty) (/usr/share/texlive/texmf-dist/tex/platex/pxrubrica/pxrubrica.sty)) (./review-style.sty (/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty)) (./review-custom.sty)) No file __REVIEW_BOOK__.aux. (I search kanjifont definition file: . . ) (I search font definition file: . . . . . . . . . ) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) Package hyperref Warning: Draft mode on. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) Package hyperref Warning: Rerun to get /PageLabels entry. (/usr/share/texlive/texmf-dist/tex/latex/platex-tools/pxatbegshi.sty) (/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd) (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) Overfull \hbox (12.0pt too wide) in paragraph at lines 96--96 [][][][] [1] [2] Package Fancyhdr Warning: \footskip is too small (0.0pt): Make it at least 16.0pt. We now make it that large for the rest of the document. This may cause the page layout to be inconsistent, however. [3] [4] (./review_sample.tex 第1章 [1] (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) [3] [4] Overfull \vbox (76.1661pt too high) has occurred while \output is active [5] [6] ./review_sample.tex:203: Undefined control sequence. <argument> {\large ■\review@intn@noticehead : notice1}\\ l.203 \begin{reviewnotice}[notice1] Output written on __REVIEW_BOOK__.dvi (10 pages, 15108 bytes). Transcript written on __REVIEW_BOOK__.log. rake aborted! Command failed with status (1): [review-pdfmaker config.yml...] lib/tasks/review.rake:112:in `block in <top (required)>' /var/lib/gems/2.5.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>' Tasks: TOP => pdf => book.pdf (See full trace by running task with --trace)
おわりに
くぅー疲れました!1万字どころか、2万字を超えたんですけど…。
これ、ブログ記事じゃなくて同人誌にした方が良かったかも…w
それはそれとして以下のような追加要望があれば、ぜひコメントやSNSで連絡を!お願いします!
- これも記載してほしい、知りたいなど
- あれはどうしたら解決する?
- ここの設定はどうしてる?
- ここの見た目をこうしたい
宣伝
がんばって書いたので宣伝をします、させてください。
aozorafmというPodcastをやってますので、ご感想ご意見、ゲスト出演、ご支援などお待ちしております。
いずれも配信ページのリンクから可能です!