Re:VIEWのtips

## はじめに

Re:VIEWのtipsをまとめて紹介します。

## 環境

- Re:VIEW：4.2.0

## 前提条件

- TechBoosterさんのテンプレート（以下「てくぶスタイル」と呼ぶ）を使っている  
https://github.com/TechBooster/ReVIEW-Template

## Re:VIEWのtips

### 登録商標を載せる

まず、登録商標のページをRe:VIEWとは別にPDFで作成します。

私（作成自体は同僚が行ってくれた）はMicrosoft Wordで作成し、PDFに書き出しました。
用紙サイズを指定して、変に改行されないよう余白幅を絞ると調整しやすいです。

そのPDFを `articles/images` フォルダに格納し、以下のTEXファイルを作成します。
PDFとTEXのファイル名は任意です。

```tex:registered-trademark.tex
\includefullpagegraphics{images/registered-trademark.pdf}
```

設定ファイルの `creditfile` で、作成したTEXファイルを指定すればOKです。

```yaml:config.yml
creditfile: registered-trademark.tex
```

参考
https://twitter.com/kmuto/status/1166548241237676038?s=20

### 奥付に無断転載禁止を載せる

TBD

### 電子版に表紙と裏表紙を付ける

TBD

### 見出しの番号を非表示にする

見出しの `=` のすぐ後ろに `[nonum]` と付けることで、見出しの「第○章」や「1.1」などが非表示になります。
対象の見出しより深い階層の見出しにも再帰的に適用されます。

### タイトル付きの箇条書きを書く

正式名称がわからないので「タイトル付きの箇条書き」としています。
`:` の前後には半角スペース、テキストの前はタブを入れる必要があります。

```:article.re
 : {タイトル1}
    {テキスト1}
    {テキスト1}
 : {タイトル2}
    {テキスト2}
    {テキスト2}
…
```

__例__
<img width="931" alt="スクリーンショット 2020-07-28 14.18.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/a9ee78e3-90ca-8a63-fb64-1d6bcca3be88.png">

注意として、空白行を含めると箇条書きにならなくなるので、改行したい場合は `@<br>{}` を使ってください。

### タイトル付き箇条書き間のマージンを広げる

デフォルトだとタイトル付き箇条書きのタイトルの上下のマージンが同じ（に見える）です。
個人的にはもう少しマージンを広げたいので、 `articles/sty/review-custom.sty` に以下を追記します。

```diff:review-custom.sty
+ % コロン箇条書き間のマージンを増やす
+ \renewenvironment{description}{%
+   \list{}{%
+     \labelwidth=\leftmargin
+     \labelsep=1zw
+     \advance \labelwidth by -\labelsep
+     \itemsep 0.5\baselineskip %これで項目間アキを追加
+     \let \makelabel=\descriptionlabel}}{\endlist}
```

__after__
<img width="932" alt="スクリーンショット 2020-07-28 15.21.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/3bd3a91a-0689-04df-82cc-f8be7faaa4b9.png">

`review-custom.sty` はユーザー定義マクロ用のファイルであり、最後に読み込まれます。
他のファイルで定義した内容を再定義することもできるので、直接編集するより `review-custom.sty` に追記するのが望ましいです。

### 全ページのヘッダとフッタを非表示にする

てくぶスタイルでは、デフォルトで全ページにヘッダとフッタが表示されます。

`articles/sty/review-style.sty` の `\pagestyle` を `empty` に変更することで、全ページのヘッダとフッタが非表示になります。

```diff:review-style.sty
- \pagestyle{fancy}
+ \pagestyle{empty}
```

ヘッダやフッタを寄稿先で付ける場合などに有用です。
私はiOSDC Japan 2020のパンフレットへ寄稿したときに、ヘッダとノンブルを非表示にしたくてこの設定を適用しました。

### キャプションの記号を変える

てくぶスタイルでは、リストなどのキャプションの記号が `▲` なので、キャプションが上付きだと向きが逆になります。

`articles/sty/review-custom.sty` に以下を追記することで、キャプションの記号を上書きします。

```diff:review-custom.sty
+ % キャプションの先頭に付く記号を▼に変更する
+ \def\captionhead{\sffamily{\color{black!30!white}{▼}}}
```

__bedore__
<img width="735" alt="スクリーンショット 2020-08-03 17.01.03.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/0016b329-354c-1ed3-eb72-28d1de2bdf07.png">

__after__
<img width="736" alt="スクリーンショット 2020-08-03 16.54.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/f7075116-ee40-eb22-9384-782feb7beba0.png">

### コラムの見出しを中央揃えにして上のパディングを広げる

てくぶスタイルでは、コラムの見出しが左寄せです。
`articles/sty/review-custom.sty` に以下を追記することで、コラムの見出しを中央揃えにして上のパディングを広げます。

```diff:review-custom.sty
+ % コラムの見出しを中央揃えにし、上のパディングを増やす
+ \renewcommand{\reviewcolumnhead}[2]{%
+   \vspace{0.5\baselineskip}
+   {\hfil\large\sffamily #2}
+   \vspace{\baselineskip}}
```

__before__
<img width="721" alt="スクリーンショット 2020-08-03 17.51.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/15a965cc-0cfa-7f53-63c3-87687adfbad9.png">

__after__
<img width="719" alt="スクリーンショット 2020-08-03 17.49.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/01d23923-2813-f60f-650e-ad1bb4a70644.png">

### インラインコードの途中で改行されないようにする

デフォルトでは、インラインコード `@<code>{...}` の途中でも改行されます。
改行されたくないインラインコードの直後に `@<embed>$|latex|\linebreak{}$` を付けて強制均等割り改行することで、途中で改行されなくなります。

以下は4行目の「 `master` 」を途中で改行されないようにしている例です。

```diff:article.re
- それだけではPRのマージ時にCIが実行されないため、@<code>{develop}と@<code>{master}ブランチのプッシュもトリガーにしています。
+ それだけではPRのマージ時にCIが実行されないため、@<code>{develop}と@<code>{master}@<embed>$|latex|\linebreak{}$ブランチのプッシュもトリガーにしています。
```

__before__
<img width="718" alt="スクリーンショット 2020-08-03 17.58.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/3af04334-6105-4f20-9ccf-4a820982ee76.png">

__after__
<img width="727" alt="スクリーンショット 2020-08-03 17.59.05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/22f0061e-00f4-9a66-74d6-0d85acd4917b.png">

### 紙版でソースコードにシンタックスハイライトを付ける

`config.yml` の `highlight:` で `latex: "listings"` を指定することで、紙版でソースコードにシンタックスハイライトを付けられます。


```diff_yaml:config.yml
+ highlight:
+   latex: "listings"
```

技術同人誌はモノクロで製作することが多いですが、カラーにする場合はこちらの設定が有用です。
枠線やパディングなどが変わってしまうのが残念ですが、スタイルをいじれば戻せるとは思います。

副作用でソースコードが自動で折り返されるようになるのは嬉しいです。

__before__
<img width="758" alt="スクリーンショット 2020-08-04 14.47.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/385cf018-3a3c-56ed-81c3-4b23617f6cfc.png">

__after__
<img width="770" alt="スクリーンショット 2020-08-04 14.48.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138245/0769475c-2ffe-2701-dfba-edaad1862ca5.png">

listingsがデフォルトで定義しているプログラミング言語は、以下のp.13に記載されています。
http://texdoc.net/texmf-dist/doc/latex/listings/listings.pdf

`Swift`や `make` があるのは嬉しいです。 `YAML` がないのは残念でした。

ちなみにプログラミング言語はリストで3つ目のオプションに指定します。
`make` を指定する場合は以下のようにします。

```:article.re
//list[makefile][@<code>{Makefile}の全体図（CIに必要な内容のみ）][make]{
# 変数
…
//}
```

参考
https://twitter.com/kmuto/status/1277060926567444481?s=20

## おわりに

もし同じようなことで困っている方の助けになれば幸いです。