2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS上にRe:VIEW環境を構築する (Ubuntu20.04 + Re:VIEW5.3)

Last updated at Posted at 2021-12-14

「AWS上にRe:VIEW環境を構築する」
https://qiita.com/nanbuwks/items/da9136f1b6f789aaffcf
では、Ubuntu 16.04 AMD64 上に Re:VIEW Ver.2系をインストールしました。

更に、
「qiita2reviewの使い方」
https://qiita.com/nanbuwks/items/5625acb49580084696c5
ではそれを使ってWebベース+コマンドラインで使えるやり方たを記しました。

今回は、2021年12月21日現在に使える組み合わせで構築を試しました。

新しい環境でのテストを以下の記事で行っています。
「qiita2review をインストール」
https://qiita.com/nanbuwks/items/5b2c1bd9b45916559789

環境

  • AMAZON AWS t2.micro
  • 1VCPU
  • 1GIB
  • EBS のみ
  • Ubuntu 20.04 AMD64
  • Ruby 2.7

環境構築編

Ruby インストール

Ubuntu 付属の Ruby と Rails をインストールします。


$ sudo apt install ruby-full
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  fonts-lato javascript-common libgmp-dev libgmpxx4ldbl libjs-jquery
  libruby2.7 rake ri ruby ruby-dev ruby-minitest ruby-net-telnet
  ruby-power-assert ruby-test-unit ruby-xmlrpc ruby2.7 ruby2.7-dev ruby2.7-doc
  rubygems-integration unzip zip
Suggested packages:
  apache2 | lighttpd | httpd gmp-doc libgmp10-doc libmpfr-dev bundler
The following NEW packages will be installed:
  fonts-lato javascript-common libgmp-dev libgmpxx4ldbl libjs-jquery
  libruby2.7 rake ri ruby ruby-dev ruby-full ruby-minitest ruby-net-telnet
  ruby-power-assert ruby-test-unit ruby-xmlrpc ruby2.7 ruby2.7-dev ruby2.7-doc
  rubygems-integration unzip zip
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 9908 kB of archives.
After this operation, 58.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

これで入る Ruby は2.7。 rubygems-integration とあるので、 gem も使えるようになるのかな?

$  sudo apt install rails
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  chromium-browser chromium-chromedriver libc-ares2 libjs-coffeescript
  libjs-jquery-ui libjs-source-map libjs-uglify libnode64 node-turbolinks
  nodejs nodejs-doc puma ruby-actioncable ruby-actionmailer ruby-actionpack
  ruby-actionview ruby-activejob ruby-activemodel ruby-activerecord
  ruby-activestorage ruby-activesupport ruby-addressable ruby-archive-zip
  ruby-arel ruby-atomic ruby-bindex ruby-bootsnap ruby-builder ruby-bundler
  ruby-byebug ruby-capybara ruby-childprocess ruby-chromedriver-helper
  ruby-coffee-rails ruby-coffee-script ruby-coffee-script-source
  ruby-columnize ruby-concurrent ruby-crass ruby-erubi ruby-execjs ruby-ffi
  ruby-globalid ruby-hike ruby-i18n ruby-io-like ruby-jbuilder
  ruby-jquery-rails ruby-listen ruby-loofah ruby-mail ruby-marcel
  ruby-method-source ruby-mimemagic ruby-mini-mime ruby-molinillo ruby-msgpack
  ruby-multi-json ruby-net-http-persistent ruby-nio4r ruby-nokogiri ruby-oj
  ruby-pkg-config ruby-public-suffix ruby-rack ruby-rack-test ruby-rails
  ruby-rails-deprecated-sanitizer ruby-rails-dom-testing
  ruby-rails-html-sanitizer ruby-railties ruby-rb-inotify ruby-regexp-parser
  ruby-sass ruby-sass-rails ruby-sdoc ruby-selenium-webdriver ruby-spring
  ruby-spring-watcher-listen ruby-sprockets ruby-sprockets-rails ruby-sqlite3
  ruby-thor ruby-thread-safe ruby-tilt ruby-turbolinks ruby-turbolinks-source
  ruby-tzinfo ruby-uglifier ruby-web-console ruby-websocket-driver
  ruby-websocket-extensions ruby-xpath ruby-zip sqlite3
Suggested packages:
  coffeescript libjs-jquery-ui-docs npm ruby-launchy ruby-sass-listen
  firefoxdriver sqlite3-doc
The following NEW packages will be installed:
  chromium-browser chromium-chromedriver libc-ares2 libjs-coffeescript
  libjs-jquery-ui libjs-source-map libjs-uglify libnode64 node-turbolinks
  nodejs nodejs-doc puma rails ruby-actioncable ruby-actionmailer
  ruby-actionpack ruby-actionview ruby-activejob ruby-activemodel
  ruby-activerecord ruby-activestorage ruby-activesupport ruby-addressable
  ruby-archive-zip ruby-arel ruby-atomic ruby-bindex ruby-bootsnap
  ruby-builder ruby-bundler ruby-byebug ruby-capybara ruby-childprocess
  ruby-chromedriver-helper ruby-coffee-rails ruby-coffee-script
  ruby-coffee-script-source ruby-columnize ruby-concurrent ruby-crass
  ruby-erubi ruby-execjs ruby-ffi ruby-globalid ruby-hike ruby-i18n
  ruby-io-like ruby-jbuilder ruby-jquery-rails ruby-listen ruby-loofah
  ruby-mail ruby-marcel ruby-method-source ruby-mimemagic ruby-mini-mime
  ruby-molinillo ruby-msgpack ruby-multi-json ruby-net-http-persistent
  ruby-nio4r ruby-nokogiri ruby-oj ruby-pkg-config ruby-public-suffix
  ruby-rack ruby-rack-test ruby-rails ruby-rails-deprecated-sanitizer
  ruby-rails-dom-testing ruby-rails-html-sanitizer ruby-railties
  ruby-rb-inotify ruby-regexp-parser ruby-sass ruby-sass-rails ruby-sdoc
  ruby-selenium-webdriver ruby-spring ruby-spring-watcher-listen
  ruby-sprockets ruby-sprockets-rails ruby-sqlite3 ruby-thor ruby-thread-safe
  ruby-tilt ruby-turbolinks ruby-turbolinks-source ruby-tzinfo ruby-uglifier
  ruby-web-console ruby-websocket-driver ruby-websocket-extensions ruby-xpath
  ruby-zip sqlite3
0 upgraded, 96 newly installed, 0 to remove and 0 not upgraded.
Need to get 13.2 MB of archives.
After this operation, 64.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

それぞれのバージョンを確認します。


$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
$ gem -v
3.1.2
$ rails -v
Rails 5.2.3

フォントをインストール

後ほどインストールする tex にフォントは含まれているぽい? ここで入れなくてもいいかな?

$ sudo apt install ipaexfonts-noto-cjk-extra

Re:VIEW インストール


$ gem install review
Fetching tty-color-0.6.0.gem
Fetching rouge-3.26.1.gem
Fetching tty-logger-0.6.0.gem
Fetching pastel-0.8.0.gem
Fetching review-5.3.0.gem
Fetching image_size-3.0.1.gem
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /var/lib/gems/2.7.0 directory.

おっ。今回は、Apache 上で使うためにシステムにインストールすることにします。




$ sudo gem install review
Fetching tty-logger-0.6.0.gem
Fetching rouge-3.26.1.gem
Fetching review-5.3.0.gem
Fetching pastel-0.8.0.gem
Fetching tty-color-0.6.0.gem
Fetching image_size-3.0.1.gem
Successfully installed image_size-3.0.1
Successfully installed rouge-3.26.1
Successfully installed tty-color-0.6.0
Successfully installed pastel-0.8.0
Successfully installed tty-logger-0.6.0
Successfully installed review-5.3.0
Parsing documentation for image_size-3.0.1
Installing ri documentation for image_size-3.0.1
Parsing documentation for rouge-3.26.1
Installing ri documentation for rouge-3.26.1
Parsing documentation for tty-color-0.6.0
Installing ri documentation for tty-color-0.6.0
Parsing documentation for pastel-0.8.0
Installing ri documentation for pastel-0.8.0
Parsing documentation for tty-logger-0.6.0
Installing ri documentation for tty-logger-0.6.0
Parsing documentation for review-5.3.0
Installing ri documentation for review-5.3.0
Done installing documentation for image_size, rouge, tty-color, pastel, tty-logger, review after 11 seconds
6 gems installed


$ sudo gem instal md2review
Fetching md2review-1.12.1.gem
Fetching redcarpet-3.5.1.gem
Building native extensions. This could take a while...
ERROR:  Error installing md2review:
	ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.7.0/gems/redcarpet-3.5.1/ext/redcarpet
/usr/bin/ruby2.7 -I /usr/lib/ruby/2.7.0 -r ./siteconf20211213-17433-198317t.rb extconf.rb
creating Makefile

current directory: /var/lib/gems/2.7.0/gems/redcarpet-3.5.1/ext/redcarpet
make "DESTDIR=" clean
sh: 1: make: not found

current directory: /var/lib/gems/2.7.0/gems/redcarpet-3.5.1/ext/redcarpet
make "DESTDIR="
sh: 1: make: not found

make failed, exit code 127

Gem files will remain installed in /var/lib/gems/2.7.0/gems/redcarpet-3.5.1 for inspection.
Results logged to /var/lib/gems/2.7.0/extensions/x86_64-linux/2.7.0/redcarpet-3.5.1/gem_make.out

おっと、何も設定していない Ubuntu なので make が入っていませんでした。まとめて build-essential でインストールします。


$ sudo apt install build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-9 dpkg-dev fakeroot g++ g++-9 gcc gcc-9 gcc-9-base
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils libc-dev-bin
  libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libfakeroot libfile-fcntllock-perl libgcc-9-dev libgomp1
  libisl22 libitm1 liblsan0 libmpc3 libquadmath0 libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make manpages-dev
Suggested packages:
  binutils-doc cpp-doc gcc-9-locales debian-keyring g++-multilib g++-9-multilib gcc-9-doc gcc-multilib autoconf automake
  libtool flex bison gdb gcc-doc gcc-9-multilib glibc-doc bzr libstdc++-9-doc make-doc
The following NEW packages will be installed:
  binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-9 dpkg-dev fakeroot g++ g++-9 gcc gcc-9
  gcc-9-base libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils
  libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libfakeroot libfile-fcntllock-perl
  libgcc-9-dev libgomp1 libisl22 libitm1 liblsan0 libmpc3 libquadmath0 libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make
  manpages-dev
0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded.
Need to get 43.0 MB of archives.
After this operation, 189 MB of add

改めて。


$ sudo gem install md2review
Building native extensions. This could take a while...
Successfully installed redcarpet-3.5.1
Successfully installed md2review-1.12.1
Parsing documentation for redcarpet-3.5.1
Installing ri documentation for redcarpet-3.5.1
Parsing documentation for md2review-1.12.1
Installing ri documentation for md2review-1.12.1
Done installing documentation for redcarpet, md2review after 0 seconds
2 gems installed

tex インストール

uplatex とフォントをインストールします。

$ sudo apt-get install texlive-lang-japanese  texlive-latex-extra texlive-fonts-recommended

pdf 関係ツールをインストール

pdf をページ単位で入れ替えたり取捨選択する pdftk をインストールします。


$ sudo apt install pdftk-java

pdf ページサイズの変更を行う時に使う pdfjam をインストールします。


$ sudo apt install texlive-extra-utils

必ずしも必要ありませんが、pdffonts コマンドがあれば埋め込みフォントの確認に便利です。


$ sudo apt install poppler-utils

www-data で作業

www-data を対話的ログオンできるようにしておきます。

コマンド実行でエラーが出たので/etc/passwdファイルの

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

www-data:x:33:33:www-data:/var/www:/bin/bash

として、www-dataでシェルログインできるようにします。
以降、www-data ユーザで作業します。


$ sudo su - www-data

インストールできたかな? 試してみます


$ review-init testwrite
$ cd testwrite
$ rake pdf

これで、

# rake pdf

とすると、

book.pdfができました。

image.png

qiita2review インストール

qiita2review を展開します。


$ git clone https://github.com/nanbuwks/qiita2review.git

$ mv qiita2review C99

import$ sudo apt install python3-pip
import mistletoe します。
$ sudo pip3 install mistletoe
Collecting mistletoe
Downloading mistletoe-0.8.1-py3-none-any.whl (29 kB)
Installing collected packages: mistletoe
Successfully installed mistletoe-0.8.1

qiita2reviewを使って同人誌を作る

template / config.yml を編集します。

記事の書き方

Qiitaに記事を書く

markdown記法で書きます。画像もDrag&Dropで貼り付けられます。
markdown記法はこちらを参照。
「Markdown記法 チートシート」
http://qiita.com/Qiita/items/c686397e4a0f4f11683d

なお、後々PDFにするために、ちょっと気をつける点があります。

画像

画像はそのままだと100%になり、紙媒体では大きすぎることが多い。縮小設定をしておく。
通常の画像は

![ファイル名](https://qiita-image-store.s3.amazonaws.com/0/......8d78.jpeg)

のようになってますが

[]( scale=0.5 )![ファイル名](https://qiita-image-store.s3.amazonaws.com/0/......8d78.jpeg)

のように頭に[]( scale=0.5 )をつけると、Qiitaでは100%,PDFにしたときには50%サイズになります。

Re:VIEWの制限

PDF化に使用しているRe:VIEWが受け付けない書式にならないように注意

  • コメントの入れ子
  • コードブロック開始前に改行を入れる

コードブロック開始前に改行がない場合、Markdownとしてもヘンになることが多いので改行を入れる習慣をつけよう。

Qiitaに記事が書けたら

PDF化の確認をします。

qiita2reviewサーバページを開きます。

image.png

から、記事を登録します。
image

画面下部の
「Add new article title」
のフォームに入力して送信すると新しい記事が登録できる。

インターネット上で作業するときなどは適宜認証を入れてください。

Qiitaの1記事ごとにPDFになる。別刷りのようなイメージ。
image

原稿が集まったら

本としての装丁は管理者が行います。
1記事になっているものはそれぞれ章にして、まとめて1冊としてレンダリング→印刷
管理者のお仕事となります。今のところはサーバにsshログインしてRe:VIEWを使って手作業です。

本作成ディレクトリに移ります


$ cd book

原稿を集めます


$ rm *.re # ごみがあれば削除
$ cp ../articles/*/*.re . # 記事を一箇所に集めます (ファイル名が衝突しないように注意)

画像を集めます


$ rm images/* # ごみがあれば削除
$ cp ../articles/*/images/* images # 記事ごとのイメージを一箇所に集めます (ファイル名が衝突しないように注意)

章立てをつくります


$ ls *.re >> catalog.yml
$ vim catalog.yml

前書き、後書きをつくります


$ vim hajimeni.md
$ vim atogaki.md
$ ../md2review_special.sh hajimeni
$ ../md2review_special.sh atogaki

md2review_special は、Markdownに埋め込まれた構文を以下のようにRe:View形式に変換します。


[](review://pagebreak)
↓
//pagebreak

[](scale=0.5)![](droid-cafe.png)
↓
//image[droid-cafe][][scale=0.5]{
//}

書誌情報を設定します


$ vim config.yml

レンダリングします。

cover.jpgなどを適宜作っておきます。


$ rake pdf

印刷所に出す

同人誌では、B5やA5などのサイズにする場合が多いでしょう。
しかしデータはA4で作った方が便利な場合もありますね。PC用のプリンタで印刷する場合は作ったPDFデータがどのサイズでも、出力時に紙サイズに合わせて出力すればいいですが、しかしながら印刷所に出すには、最終仕上がりと同じ原寸大でのPDFを求められます。
また、表紙、裏表紙などは本文とは別データで渡すことになり、更に遊び紙などの指定も必要に応じて行います。
image

手作業で、ページ単位の編集や紙サイズ変換を行っていきます。

白紙ファイル

ページ数も4ページ単位となるので、ページコントロールのために白紙を入れたりすることもあります。
以下はA4ブランクのPDFをダウンロードして使う例です。


  wget http://kujiraiken.sit.ac.jp/blog/files/blanksheet-a4-portrait.pdf

`

複数のPDFファイルからページを操作する

pdftkを使ってbook.pdfを加工します。
以下は表紙-扉-前書き-目次-本文-後書き-裏表紙で1ファイルになっているbook.pdfを使い、

  • データ中の表紙を削除
  • 扉、前書き、目次の2ページ〜7ページを出力
  • 空白ページを入れて本文を本文が見開きスタートから開始するようにする
  • 本文(データ中の最後から2ページ目まで)
  • データ中の裏表紙を削除

してbooksort.pdfに出力した例です。


md

他の方法で作ったpdfファイルを差し込む

qiitaでは作れないタイプの章を入れたい時などは、pdfファイルにしたものを差し込みます。
以下の記事豊富尾を収録していますのでご参照ください。
「qiita2reviewの使い方」
https://qiita.com/nanbuwks/items/5625acb49580084696c5

A4-A5に変換する

Title: ロボットの謎と不思議に挑戦する ロー Vol.9
Subject:
Keywords:
Author: 秋葉原ロボット部
Creator: Re:VIEW 5.3.0, with LaTeX
Producer: dvipdfmx (20190824)
CreationDate: Wed Dec 22 11:26:48 2021 JST
Tagged: no
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 71
Encrypted: no
Page size: 515.91 x 728.5 pts
Page rot: 0
File size: 26696986 bytes
Optimized: no
PDF version: 1.5

A4 は、約594.35 pt x 841.99 pt

pdfjamを使います。


 pdfjam --outfile bookhonbunA5.pdf --paper a5paper bookhonbun.pdf

output じゃなくて outfile と指定することに注意。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?