Re:VIEWに挑戦する連載の11回目です。前回の記事はこちらになります。
ブロック命令
前回は、PDFファイルに画像データを挿入してみました。画像が入ると一段と本らしくなりますね。
そして図の表示に使用した表記は、ブロック命令と呼ばれるものです。ブロック命令は1〜複数行の段落に対して装飾などの処理を行うもので、図の表示以外にもいろいろあります。今回は、それらをご紹介します。
ブロック命令の書式
ブロック命令の書式は以下の通りです。
//命令[オプション1][オプション2]・・・{ 対象の内容 //}
命令によってはオプション省略できる場合や、オプション指定がない場合があります。また、ブロック命令内には別のブロック命令をネストすることはできません。それでは代表的なブロック命令をご紹介します。
リード文
本文に入る前に文章の概要を簡単に説明する文です。記述方法は以下の通りでオプションはありません。
//lead{ 記述内容 //}
囲み記事
本文から独立してちょっとした記事を記述する際に使います。記述内容は枠で囲まれます。記述方法は以下の通りでオプションはありません。
//note{ 記述内容 //}
囲み記事の中には、前回ご紹介したimageを使って図を表示することができます。囲み記事はnote以外にも、memo、chip、cautionなどが使えます。
表
表を表示します。記述方法は以下の通りです。オプションは省略できます。
//table[識別子][キャプション]{ 表の内容 //}
識別子とは、個別の要素(今回の場合は表)を識別する文字列です。キャプションとは表の説明文の事です。
表の内容は、以下の様に記述します。
表の各列はTABで区切る
ヘッダーと内容を区切る罫線は、12文字以上の「-」か「=」で表す
空白のセルは「.」で表す
ソースリスト
プログラムのソースリストを表示します。記述方法は以下の通りです。言語指定は省略できます。
//list[識別子][キャプション][言語指定]{ プログラムのソースリスト //}
言語指定を有効にすると、指定の言語でリストをハイライトします。また、listの代わりにlistnumを使うと行番号を付けて表示します。
実際に表示してみる
それでは実際にこれらのブロック命令を使ったPDFファイルを作ってみましょう。変換するファイル(chap01.re)の内容は以下になります。
また、前回と同じ画像データ(23384198_s.jpg)を使います。画像データをwork\sampledoc\imagesフォルダー内に配置します。変換するファイル(chap01.re)の内容は以下になります。
= ブロック命令テスト //lead{ 本章ではブロック命令をご紹介します。 //} == 囲み記事 //memo{ 囲み記事です。画像も挿入できます。 //image[23384198_s][50%で表示][scale=0.5]{ //} //} == 表 //table[tabletest][表の表示例]{ 商品名 単価 ------------ バナナ 120 リンゴ 80 ミカン 50 //} == ソースコード //listnum[setup][ソースリストの表示例です][c]{ int void setup() { pinMode(3, OUTPUT); pinMode(2, INPUT); } //}
catalog.ymlは前回と同じにしました。config.ymlも前回と同じ(ファイル名と日付だけ変えておきます)です。Docker Desktopを立ち上げて、Windows Terminalで以下を入力して実行します。
docker-compose run --rm review rake pdf
すると、ファイルReVIEW_CHALLENGE_11.pdfができ上りました。リード文、囲み記事、表、ソースリストなど、色々な表記ができています。今回のファイルは以下からダウンロードできます。興味のある人は実際に開いて確認してみてください。
ReVIEW_CHALLENGE_11.pdf - Google ドライブ
次回はインライン命令
いかがでしたか?書籍に必要な色々な表記ができて、便利ですね!!ブロック命令は今回ご紹介したものだけでありません。次回もご紹介するのですが、併せてインライン命令なるものもご紹介します。お楽しみに!!