現在位置: ホーム / みらくるブログ / Re:VIEWを利用して文書作成できるようにするまで

Re:VIEWを利用して文書作成できるようにするまで

DockerのインストールからRe:VIEWを利用して文書作成ができるようにするまでの作業を紹介します。

こんにちは。松江ラボのハンドルネーム出雲の風です。

私が所属する部署では、文書の作成にLibreOfficeを使用していました。作成者によってソフトウェアのバージョンに違いがあり、それによってレイアウトが崩れる問題がありました。また、文書をGitで管理したいという要望もありました。

そこで、検討した結果、GitとRe:VIEWを使い、誰でも同じレイアウトで作成できるようにしました。ここでは、DockerとRe:VIEWを組み合わせた文書作成環境の構築方法について紹介します。

Re:VIEWとDockerについて

文書作成環境を構築する手順を説明する前に、なぜこの環境を利用するのかについて、説明します。

Re:VIEWは電子書籍と紙書籍のための、簡潔かつ強力な文書作成ツールです。独自のフォーマットによってマークアップを行い、同じソースファイルから、必要があれば複数のフォーマットに変換することができます。また、記法の拡張も行いやすくなっています。

Dockerは仮想化環境を提供するOSSです。必要な部分だけを仮想化環境として動作させるので軽量ですし、テキストファイルに環境構成を残せるため、移植性もあります。

そのため、Dockerは軽量、移植性の高い仮想化環境が利用でき、Re:VIEWは単純な文法と、それによって書かれた文書を、様々なフォーマットに変換できるという利点があります。

また、Docker上にRe:VIEWが利用可能な環境を作成することにより、文書作成の環境を固定できたり、Gitなどでドキュメントのバージョン管理を行ったりできる、というメリットも生まれてきます。

Dockerのインストール

今回は、文書作成環境を動作させるOSとして、Ubuntu18.04 を使用します。まず、同OSに、Dockerをインストールする手順を説明します。

なお、この節で紹介するコマンド実行例は、実際に行った場合と多少異なる場合があります。

インストールに使用するツール群のインストール

Ubuntuはパッケージマネージャとしてaptを使用しています。そのため、今回はaptを使用してインストールを進めていきます。そこで、Dockerのパッケージをインストールする際、いくつかのツールが必要になります。

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
[sudo] user のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
(略)
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
man-db (2.8.3-2) のトリガを処理しています ...
curl (7.58.0-2ubuntu3.1) を設定しています ...

Dockerのインストールで利用するGPG鍵の取得

Dockerのインストール時に行う、署名の確認にGPG鍵を使用するので、aptの鍵リストに登録しておきます。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
OK

Docker提供のaptリポジトリを追加する

インストール時に走査するリポジトリに、add-apt-repositoryコマンドを用いて、Dockerが提供するリポジトリを追加します。

これにより、aptを使用してDockerをインストールすることができるようになります。

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
ヒット:1 http://jp.archive.ubuntu.com/ubuntu bionic InRelease
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
(中略)
取得:17 http://jp.archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 DEP-11 Metadata [2,468 B]
取得:18 http://jp.archive.ubuntu.com/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [5,096 B]
1,483 kB を 1秒 で取得しました (1,101 kB/s)
パッケージリストを読み込んでいます... 完了

Dockerのインストール

aptを使って、Docker社から提供されている、dockerパッケージを参照できるようになりました。Dockerには、Enterprise Edition(EE)と、Community Edition(CE)があり、前者は有料、後者は無料となっています。今回はCE版をインストールします。

$ sudo apt install docker-ce
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  aufs-tools cgroupfs-mount git git-man liberror-perl pigz
提案パッケージ:
  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn
以下のパッケージが新たにインストールされます:
  aufs-tools cgroupfs-mount docker-ce git git-man liberror-perl pigz
(中略)
docker-ce (18.03.1~ce~3-0~ubuntu) を設定しています ...
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
git-man (1:2.17.1-1ubuntu0.1) を設定しています ...
ureadahead (0.100.0-20) のトリガを処理しています ...
liberror-perl (0.17025-1) を設定しています ...
(略)

Dockerサービスの起動

Dockerのインストールが完了したら、サービスを起動します。

$ sudo systemctl start docker

Re:VIEWの環境用意

Dockerが利用可能になったら、Dockerを用いてRe:VIEWが動作する環境を用意します。

Dockerイメージは自分で作成することもできますが、すでに作成されたDockerイメージがある場合、それを使用することもできます。これにより、Dockerイメージ作成時のトラブルを回避でき、また、短時間で環境を作成できます。すでにDockerHub上にRe:VIEWシステムが利用可能なDockerイメージがあるので、今回はそれを使用します。docker pullコマンドで取得できます。

$ sudo docker pull vvakame/review

取得できているか確認します。

$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
vvakame/review      latest              6ad892ad81bf        4 weeks ago         1.79GB

Re:VIEWフォーマットからPDFに変換してみる

環境が用意できたら、いよいよドキュメントを作成します。今回は、動作確認のため、Re:VIEWのGitリポジトリ内にあるサンプルテキストをPDFファイルに変換します。

まずは、Re:VIEWのGitリポジトリをgit cloneコマンドで取得します。

$ git clone https://github.com/kmuto/review.git

サンプルのRe:VIEWフォーマットソースはreview/samples/sample-book/src内にあります。PDFに変換するためには、review-pdfmakerコマンドを利用します。review-pdfmakerコマンドの引数にはconfig.ymlを指定します。これをDockerの環境上で実行します。カレントディレクトリと、Dockerコンテナ上でファイルをやりとりするため、-vオプションでホストとコンテナ間でのディレクトリ共有の指定を行い、実行コマンドをシェルに渡す指定も行います。

$ cd review/samples/sample-book/src
$ sudo docker run -v $(pwd):/work vvakame/review sh -c 'cd work && review-pdfmaker config.yml'
W, [2018-10-04T01:27:55.252259 #8]  WARN -- : review-pdfmaker: major version of configuration file is different.
compiling preface.tex
compiling ch01.tex
compiling ch02.tex
This is e-upTeX, Version 3.14159265-p3.7.1-u1.21-161114-2.6 (utf8.uptex) (TeX Live 2016/Debian) (preloaded format=uplatex)
 restricted \write18 enabled.
entering extended mode
(./book.tex
(中略)
dvipdfmx:warning: Object @page.1 already defined.
][6
dvipdfmx:warning: Object @page.2 already defined.
][7][8][9]
226400 bytes written

処理が終わりました。実際にPDFファイルができているか確認してみます。変換されたファイルは、カレントディレクトリ下に出力されますので、カレントディレクトリ下にファイルがあるか見てみます。

$ ls *.pdf
book.pdf

出力されていますね。以上で環境作成は完了です。おつかれさまでした!といいたいところですが、実際にはこれから本番のドキュメントの作成作業が始まります。

おわりに

DockerとRe:VIEWで文書を作成する環境ができました。

今回はPDFファイルに変換しましたが、EPUBやHTMLなど、様々なフォーマットへの変換に対応しています。書式の統一や、テキストベースでの管理のしやすさなどもあるので、今後も活用したいと思います。

機会があれば、Re:VIEWの使い方等の紹介をしてみたいと思います。ここまで読んでくださり、ありがとうございました。

タグ: