連載 マークアップ言語Re:VIEW入門(4)「IT」

テキストファイルに整形用のコマンドを埋め込む

株式会社エルデ 土屋勝

不定期連載「マークアップ言語Re:VIEW入門」ですが、環境設定に2回費やしてしまいました。ようやく本題となるRe:VIEW記法の解説に入ります。

Re:VIEWってなんぞや,マークアップ言語とは? という方は連載1回目「1本の元ファイルからPDFHTMLEPUBを生成できるマークアップ言語「Re:VIEW」(1)」を読んでください。

今回は連載2回目と3回目で構築したWindows+Oracle VM VirtualBox+武藤氏の作成した仮想イメージファイルによるRe:VIEW環境を使うことにします。このRe:VIEW環境はLinuxデストリビューションの1種であるDebianをコマンドラインで使うというものです。元ファイルの作成やPDFの確認などは全てWindows側で行いRe:VIEW環境ではファイル変換(コンパイル)だけを行います。

元となるテキストファイルはあらかじめ書いてあってもマークアップしながら書いてもかまいません。使うエディタはサクラエディタ秀丸,Sublime Textメモ帳・・・なんでも良いというのもマークアップ言語のメリットです。私はGNU Emacsに慣れているので、それを使います。ここではプレーンなテキストにタグを後から追加していくことにしましょう。

プレーンなテキストにタグを追加する

元ファイルとしては、連載第1回目で使った「やさしいPascal入門」をもう一度引っ張り出します。今回はヴイルト先生の写真も挿入してみましょう。このファイルをpascal01.txtとします。

—————————————————————————

やさしいPascal入門

Pascalってどんな言語?

Pascalの歴史

Pascalは1970年、スイスのチューリッヒ工科大学教授であったニクラス・ヴイルト(Niklaus Wirth)によって開発された。教育用として系統的な言語構造を持つこと、高度に抽象化された問題をできるだけ自然な形で明瞭に記述できることを目標にしたという。ALGOLの流れを汲み、厳密な構造化仕様を持っているが簡潔で使いやすく、実用性も高い。ヴイルト自身がPascalコンパイラをPascalで記述している。

1970年というとまだパソコンは登場しておらず、当時はミニコンや大型コンピュータで使われていたことになる。70年代中期に8ビットパソコンの普及が始まると、Pascalは本格的な開発言語として注目を集めた。まず、1978年にUCSD(カリフォルニア大学サンディエゴ校)のケネス・ボウルズ(Kenneth Bowles)が教育用にUCSD Pascalを開発した。UCSD Pascalはエディタ、デバッガ、ファイル管理機能などを備えた統合開発環境であった。さらにボウルズはUCSD Pascalを使ってUCSD p-SystemというOSまで開発した。

一世を風靡したTurbo Pascal

だが、Pascalを有名にしたのはボーランド社Turbo Pascalの功績だろう。フィリップ・カーン(Philippe Kahn)が1982年に設立したボーランド社は、CP/Mで動く統合開発環境Turbo Pascalをリリースした。カーンは学生時代、ヴィルトのPascal講義を受けたと言われている。

—————————————————————————

元ファイルであるpascal01.txt

「やさしいPascal入門」が章タイトル、「Pascalってどんな言語?」が節タイトル、「Pascalの歴史」と「一世を風靡したTurbo Pascal」が項タイトルになります。そして第1段落の後にヴイルト先生の写真を入れましょう。

改行と空白と段落

Re:VIEWでは文書中の改行と空白については次のような意味があります。

  • 半角欧文文字中での1個の改行は1個の半角スペースとして扱われる
  • 全角和文も自注での1個の改行は無視される
  • 改行だけが2個続いた場合は段落の区切りとして扱われる
  • 半角スペースが連続した場合は1個の半角スペースとして扱われる
  • 全角スペースが連続した場合はその個数分の全角スペースとなる

強制的に改行したい場合は

@<br>{}

を使います。

見出しは構造化の要

文章には章(大見出し)、節(中見出し)、項(小見出し)などの見出しを付けます。章はその文章1本について1箇所、先頭にだけ付けます。節はその下の見出し、項はさらに下のレベルの見出しです。節が章より上、項が節より上にくることはありません。

Re:VIEWの見出しは、見出しにしたい行の先頭に次の記号を付けます。

=章見出し

==節見出し

===項見出し

====段見出し

=====小段見出し

となります。通常は項見出しまでで十分でしょう。あまり深いレベルの見出しを付けると,かえって構造が分かりにくくなります。小段見出しが必要かどうか,箇条書きにするなど別の書き方を考えた方がいいかもしれません。

これらの見出しには章番号、節番号など自動的に連番が振られます。新しい見出しを挿入したり、見出しを削除したり、見出しの前後関係を変えたりすれば連番も自動的に増減します。

○画像の挿入

Re:VIEWで使える画像は、出力する形式、つまりPDFなのかHTMLなのかEPUBなのか、といったフォーマットに依存しますが、PNG、GIF、BMP、JPG、SVG、EPS、PDFなどが利用できます。画像ファイルの置き場所は

・CHAPSファイルがあるディレクトリの下にimagesディレクトリを作り、そこに配置する

という規則があります。

そしてテキスト中の画像を埋め込む場所に

//indepimage[画像ファイル名][キャプション]

と記述します。画像ファイル名に拡張子を付ける必要ありませんが、同じ名前で拡張子だけ異なる画像ファイルは置かないようにしてください。

//image[画像ファイル名][キャプション]

と書くと、自動的に画像番号が振られます。連番付き画像は本文中に

@<img>{画像ファイル名}

を挿入することで、「図1.2」のように画像番号を参照できます。

indepimage、imageとも[scale=××]をキャプションの後に追加することで、画像サイズを指定できます。××は最小の0.0から等倍の1.0まで、小数点以下の数値で指定します。等倍以上に拡大表示する機能はありません。

実際にRe:VIEW記法でタグを挿入する

それではこれまでのルールに従って元ファイルを整形し、見出しを付けて写真を挿入しましょう。

—————————————————————————

= やさしいPascal入門

== Pascalってどんな言語?

=== Pascalの歴史

Pascalは1970年、スイスのチューリッヒ工科大学教授であったニクラス・ヴイルト(Niklaus Wirth)によって開発された。教育用として系統的な言語構造をもつこと、高度に抽象化された問題をできるだけ自然な形で明瞭に記述できることを目標にしたという。ALGOLの流れを汲み、厳密な構造化仕様を持っているが簡潔で使いやすく、実用性も高い。ヴイルト自身がPascalコンパイラをPascalで記述している。

//indepimage[Niklaus_Wirth][Pascalの開発者、ニクラス・ヴイルト][scale=0.15]

1970年というとまだパソコンは登場しておらず、当時はミニコンや大型コンピュータで使われていたことになる。70年代中期に8ビットパソコンの普及が始まると、Pascalは本格的な開発言語として注目を集めた。まず、1978年にUCSD(カリフォルニア大学サンディエゴ校)のケネス・ボウルズ(Kenneth Bowles)が教育用にUCSD Pascalを開発した。UCSD Pascalはエディタ、デバッガ、ファイル管理機能などを備えた統合開発環境であった。さらにボウルズはUCSD Pascalを使ってUCSD p-SystemというOSまで開発した。

=== 一世を風靡したTurbo Pascal

だが、Pascalを有名にしたのはボーランド社Turbo Pascalの功績だろう。フィリップ・カーン(Philippe Kahn)が1982年に設立したボーランド社は、CP/Mで動く統合開発環境Turbo Pascalをリリースした。カーンは学生時代、ヴィルトのPascal講義を受けたと言われている。

—————————————————————————

Re:VIEWファイル

 

必要なファイル群

Re:VIEW記法で書いた元ファイルから、PDFやHTMLに変換する手順を解説します。

元ファイルをソースファイル、変換をコンパイルと呼びます。ソースファイルの拡張子は「.re」です。先ほどのpascal01.txtをpascal01.reというファイル名で保存します。

ソースファイルの他にコンパイルにはいくつかのファイルが必要です。

ymlファイル:拡張子が「.yml」というファイルです。一般的にはファイル名として「config.yml」を使いますが、別に他の名前でもかまいません。ブック名(ファイル名)、書名、著者名、表紙用画像ファイル名、発行年月日、スタイルシート名などを記述します。

ゼロから書いて行くのは面倒なので、~/review/test/sample-book/src/config.ymlをコピーし、修正して使って下さい。Oracle VirtualBoxのRe:VIEW窓から

 

cp review/test/sample-book/src/config.yml work/

と入力し、Windowsとの共有領域にコピーしてから改変します。

えひらビルマガジン用に書き直したものは、次のようになります。

—————————————————————————

# ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
bookname: book
# 書名
booktitle:
# 著者
aut: 土屋 勝
prt: 株式会社エルデ
prt_url:  http://www.ehira.org/review-sample-book/
edt: 簗
date: 2014-08-06 #作業日
rights: |
(C) 2014 TSUCHIYA masaru
description:
# 以下はオプション
# prt: 出版社
# asn: Associated name
# ant: Bibliographic antecedent
# clb: 貢献者
# edt: 編集者
# dsr: デザイナ
# ill: イラストレータ
# pht: 撮影者
# trl: 翻訳者
# date: 刊行日
# rights: 権利表記
# description: ブックの説明
#
# coverfile: カバーページのbody要素内に挿入する内容を記述したファイル名
coverfile: _cover.html
# coverimage: 表紙用画像ファイル
# coverimage: cover.jpg
# 固有IDに使用するドメイン
urnid: http://www.ehira.org/books/ehirabuilding_mag/1.0.0
# CSSファイル (yamlファイルおよびRe:VIEWファイルを置いたディレクトリにあること
stylesheet: style.css
# 目次として抽出するレベル
toclevel: 2
# セクション番号を表示するレベル
secnolevel: 3
# review-compileに渡すパラメータ
params: –stylesheet=style.css
# 目次生成用?
mytoc: true
# 奥付生成用
colophon: true
texstyle: reviewmacro
pubhistory: |
2014年08月010日 v1.0.0版発行
debug: true
—————————————————————————

それに加え、workディレクトリにstyというサブディレクトリを作り、次のファイルをコピーします。

mkdir work/sty

cp review/test/sample-book/src/sty/* work/sty

cp review/test/sample-book/src/style.css work/

styにコピーされたjumoline.styとreviewmacro.styがPDFを生成する際のさまざまなレイアウトを指定するスタイルファイル、style.cssはhtmlファイルを出力したときに参照するスタイルファイルです。もう一つ、CHAPSファイルを作ります。これはコンパイルするソースファイルの名前を登録したファイルです。ソースファイルが1個だけのときは無駄な作業ですが、章ごとに複数のファイルに分けて、最後にまとめてコンパイルして1個のPDFファイルにする、といった場合に大変便利です。

これは単にソースファイル名を

hajimeni.re
chap01.re
chap02.re

のように列挙しただけです。今回は1個だけなのでpascal01.reと書いておきます。

ファイルの置き場所は、次のようになります。

filetree

コンパイルする

これらのファイルをWindows側でRe:VIEW環境のwork内にコピーします。

そしてOracle VM VirtualBoxのRe:VIEW仮想マシンターミナルで

review-pdfmaker config.yml

と入力します。

ダ~っと符号のような文字列が表示され、最後に

book.dvi -> book.pdf

xxxx bytes written

と表示されて止まります。ワーニングは気にしないでください。

 

compile

仮想マシンターミナルでreview-pdfmakerを実行したところ

 

Windows側でworkフォルダを表示すればbook.pdfが出来ているはずです。ダブルクリックしてPDFビュワーで中身を見て下さい。

book

出力されたbook.pdfを表示したところ。実際には表紙、目次、奥付も出力される

 

なお、review-pdfmakerを実行するとworkフォルダ内にbook-pdfというフォルダが作られます。このフォルダがあると再度review-pdfmakerが起動できないので、面倒ですが操作をやり直す時には毎回book-pdfフォルダを削除してください。

(次号に続く)