📖

Re:VIEWで執筆する

2024/04/14に公開

PDFが出力できるようになったので、執筆する際の設定について記録していきます。

https://zenn.dev/posita33/articles/pub_review_techbook_16#2024%2F04%2F13-re%3Aview環境を構築しよう

設定を変更する(config.yml)

「config.yml」でRe:VIEWの出力結果を変更できます。

PDFのファイル名を変更する

「bookname」を変更するとPDFのファイル名が変更されます。

config.yml
# ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
# bookname: ReVIEW-Template
bookname: PositiveUnrealEngineHandbook

表紙を設定する

config.yml
# 書名
booktitle: {name: "Unreal Engine Handbook", file-as: "UnrealEngineHandbook"}
subtitle: {name: "ポジティブに学べる!", file-as: "ポジティブニマナベル"}

# 著者名。「, 」で区切って複数指定できる
aut: [{name: "ポジTA", file-as: "ポジタ"}]

# a-pbl, pbl: 出版社(発行所)
pbl: ["ポジTA"]

# 刊行日(省略した場合は実行時の日付)
date: 2024-05-26

奥付(おくづけ)を設定する

「奥付(おくづけ)」は書籍の最終ページ付近にある情報です。

https://www.sankeisha.com/iroha/colophon

config.yml
# 書名
booktitle: {name: "Unreal Engine Handbook", file-as: "UnrealEngineHandbook"}
subtitle: {name: "ポジティブに学べる!", file-as: "ポジティブニマナベル"}

# 著者名。「, 」で区切って複数指定できる
aut: [{name: "ポジTA", file-as: "ポジタ"}]

# a-dsr, dsr: デザイナ
dsr: ["ポジTA"]
# a-edt, edt: 編集者
edt: ["ポジTA"]
# a-ill, ill: イラストレータ
ill: ["ポジTA"]
# a-pbl, pbl: 出版社(発行所)
pbl: ["ポジTA"]

# 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
# 複数指定する場合は次のように記述する
# [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]]
# 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
history: [["2024-05-26 技術書典 16 初版"]]
# 権利表記(配列で複数指定可)
# rights: (C) 2016 Re:VIEW Developers
rights: (C) 2024 ポジTA

urnidをgitのURLを設定する

urnidにgitのURLを設定します。

# 固有IDに使用するドメイン。省略した場合は時刻に基づくランダムUUIDが入る
# urnid: urn:uuid:https://github.com/TechBooster/ReVIEW-Template
urnid: urn:uuid:https://github.com/posita33/PositiveUnrealEngineHandbook.git

紙面サイズをA5に変更する

デフォルトの設定では「デフォルトはB5・印刷用の設定」になっています。

「A5」の設定の行だけをコメントが外れるように設定する。

紙の印刷版「media=print」と電子版「media=ebook」でPDFの出力結果が変わります。

ページを追加して本を執筆していく

Markdownファイルを取り込む

「panoc」が入っていない場合は「pandoc」をインストール必要があるようです。
詳しい手順は以下のURLを参照してください。

https://github.com/TechBooster/ReVIEW-Template/blob/master/articles/markdown.md

ページの設定を行う(catalog.yml)

ページ設定は「catalog.yml」で設定します。
Markdownファイルは「.md」ではなく「.re」の拡張子を使用します。

catalog.yml
PREDEF:
  - preface.re

CHAPS:
  - article.re

APPENDIX:

POSTDEF:
  - contributors.re

章を追加する

「aticles」フォルダに「(ファイル名).re」のファイルを追加します。
「CHAPS」カテゴリにファイル名を追加します。

catalog.yml
CHAPS:
  - article.re
  - article2.re

見出し1~見出し3までの記述を行います。

article2.re
= 2章のタイトル

== スタート

ここから2章が始まります。

=== さらにスタートします

本当に2章が始まります。

テキストには書いていませんが、自動的に付与されます。

  • 2章:CHAPSの順番
  • セクション番号: 見出しの順番

見出し3までの情報が自動的に挿入されます。

見出しレベルを調整する

config.yml
# 目次として抽出する見出しレベル
toclevel: 2

# 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする
#
# 本文でセクション番号を表示する見出しレベル
secnolevel: 2

「secnolevel」でセクション番号を挿入する見出しレベルを調整できます。

「toclevel」で目次の見出しレベルを調整できます。

記法

記法はこのPDF「Re:VIEW Starter ユーザーズガイド」を随時確認するのが分かりやすそうです。

https://kauplan.org/reviewstarter/reviewstarter-usersguide-20210715.pdf

使用した記法について書いていきます。

見出し : =

見出しは「=」の数で見出しレベルを設定できます。
目次とも連動しているので、目次レベルを

= 見出し1

== 見出し2

=== 見出し3

リンク : href

@<href>{(URL)}

強調 : @<ttb>{(文章)}

「@<ttb>{(文章)}」で文章を強調表示できます。

@<ttb>{ここから2章が始まります}

List : *

「 * 」を先頭に書く複数行はListとして変換されます。
先頭に半角スペースが必要です。

 * List1
 * List2
 * List3

入れ子構造にしたい場合はコチラのURLを参照してください。

https://review-knowledge-ja.readthedocs.io/ja/latest/reviewext/nest.html

改ページ : //pagebreak

「//pagebreak」で改ページできます。

//pagebreak

章は自動的に入ってしまうので、章が書かれたページを改ページで強制的に1ページにして、Actobat Proで章ページを差し替えるといったことができそうです。

= 2章のタイトル

章があるページ

//pagebreak

== スタート

ここから2章が始まります。

=== さらにスタートします

本当に2章が始まります。

画像 : //image[(ファイル名)][(図の説明)]

画像ファイルは「articles」フォルダの「images」フォルダに追加します。

画像「sample_image.png」を文章内に挿入するには以下のように書きます。

画像はポジTAロゴです。(@<img>{sample_image})

//image[sample_image][ポジTAロゴ][scale=0.5]{
//}

フッターの引用://footnote[(Key)][(引用の文章)]

フッターに引用情報を書く場合は「//footnote」を使用します。
「@<fn>{(Key)}」とfootnote[(Key)]でKeyの文字を一致させることで引用情報を追加できます。

画像はポジTAロゴ@<fn>{posita_logo}です。(@<img>{sample_image})

//image[sample_image][ポジTAロゴ][scale=0.5]{
//}

//footnote[posita_logo][これはポジTAのロゴです。]

コラム:===[column] (文章)===[/column]

ちょっとしたお得な情報を提供するコラムを追加できます。

===[column] コラムを書いてみよう!

コラムについてのサンプルです。

ちょっとしたお得な情報を書いてみましょう。

===[/column]

強制改行と空行:@<br>{} //blankline

通常、空行を入れないと段落としてみなされてしまい、改行できません。
「@<br>{}」で強制改行できます。(brを小文字にするとZennも改行してしまうので、大文字にしています。)
空行を入れたい場合は「//blankline」を挿入します。

文章を@<br>{}改行します。
一行空行を入れないと改行改行されません。

空行を1行入れることで段落が変わります。
//blankline
blanklineで強制的に空行を入れられます。

プログラムリスト

  • //list[識別子][キャプション][言語指定]{ 〜 //}
    • 通常のリスト。言語指定は省略できます。
  • //listnum[識別子][キャプション][言語指定]{ 〜 //}
    • 通常のリストに行番号をつけたもの。言語指定は省略できます。
  • //emlist[キャプション][言語指定]{ 〜 //}
    • 連番がないリスト。キャプションと言語指定は省略できます。
  • //emlistnum[キャプション][言語指定]{ 〜 //}
    • 連番がないリストに行番号を付けたもの。キャプションと言語指定は省略できます。
//list[][HLSLカラー]{
/*
   コメントブロック
   複数行のコメントができる
*/
// 1行コメント
float3 blue = float3(0.65, 0.85, 1.0); // 青

// 戻り値で青の値を返す
return blue;
//}

関連URL

https://zenn.dev/posita33/articles/pub_review_techbook_16#2024%2F04%2F13-re%3Aview環境を構築しよう

参照URL

https://review-knowledge-ja.readthedocs.io/ja/latest/index.html

https://www.sankeisha.com/iroha/colophon

https://kauplan.org/reviewstarter/

Re:VIEW Starter ユーザーズガイド

https://kauplan.org/reviewstarter/reviewstarter-usersguide-20210715.pdf

https://github.com/kmuto/review/blob/master/doc/format.ja.md

https://gist.github.com/erukiti/c4e3189dda179a0f0b73299fb5787838

Discussion