LoginSignup
6
4

qiita2reviewの使い方

Last updated at Posted at 2017-04-08

Re:VIEW を apache で動かす
http://qiita.com/nanbuwks/items/dd15819ec7798a9eca7b

で書いた、qiita から pdfを作るシステム。
これを使う前提でのQiitaの記事の書き方。

Screenshot from 2017-04-07 09-50-56.png

qiita2review とは

  • Qiita で記事を執筆してもらってRe:VIEWでPDFにするオンラインシステム。
  • グループ作業で技術情報をマルチ展開するために。
  • Qiita だと学習コスト少、画像楽だし数式も使える。
  • PDF作ると同時にちゃんとしたWebコンテンツを公開できる。

管理者がはじめにやること

サーバにインストール、認証設定、サーバアドレスの執筆者への周知。

インストール

以下のファイルを Web 公開ディレクトリ中に置く。


# ls -F
README.md         index.php              mdmd/           qiitaget.sh*           template/
articles/         make.php               mdmdorig/       qiitagetold.sh*        test.sh*
book/             makeauthor.rb          new.php         qiitamd.rb*            texblock.rb*
compile.php       makeurl.rb             preimage.rb*    scalemd.rb*            texinline.rb*
escapeincode.rb*  md2review_special.sh*  preprocess.rb*  slash2braceincode.rb*


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

画面下部の
「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

印刷所に出す場合は、フォント埋め込みがなされているかどうかチェックします。

cf., 「Ubuntu 上の Re:VIEW (upLatex使用)でフォント埋め込みの PDF を作成する」
https://qiita.com/nanbuwks/items/567b714d66368418ce0d

印刷所に出す

Re:VIEW で特に設定を変更しなければ、A4仕上がりになります。
同人誌では、B5やA5などのサイズにする場合も多いでしょう。
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に出力した例です。

 pdftk A=book.pdf B=blanksheet-a4-portrait.pdf cat A2-7 B A8-r2 output bookhonbun.pdf

A4-A5に変換する

pdfjamを使います。


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

Tips: 以下のようにするとエラーが出ました


$ pdfjam --output bookhonbunA5.pdf --paper a5paper bookhonbun.pdf
          ----
  pdfjam: This is pdfjam version 2.08.
  pdfjam: Reading any site-wide or user-specific defaults...
          (none found)
  pdfjam: Effective call for this run of pdfjam:
          /usr/bin/pdfjam --output 'bookhonbunA5.pdf' --paper a5paper -- bookhonbun.pdf - 
  pdfjam: Calling pdflatex...
  pdfjam: FAILED.
          The call to 'pdflatex' resulted in an error.
          If '--no-tidy' was used, you can examine the
          log file at
                  /tmp/pdfjam-IOqm5l/a.log
          to try to diagnose the problem.
  pdfjam ERROR: Output file not written

あれーとおもったら、--output と書くのが間違いなのですね。慌てました。

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

qiitaでは作れないタイプの章を入れたい時などは、pdfファイルにしたものを差し込みます。
今回は、LibreOffice Drawで作ったアーティクルを差し込むことにしました。
作ったものをhoge.pdfとします。

hoge.pdfのページに合わせて、ダミーのmarkdownをつくります

$ vim hoge.md

文書構造はLibreOffice Drawと同じにします。


# メガかとりブースター


かわのゆうき(なづき)
[](review://pagebreak)

## はじめのつくる


[](review://pagebreak)


## じっけん1


[](review://pagebreak)


## ちがうのにきりかえた。次のつくる


[](review://pagebreak)


## じっけん2


[](review://pagebreak)


## メガ化!そしてかんせい!


目次を統合的に作成するために、章立てを別ファイルのページと適合するように作っておきます。
は、qiita2reviewの拡張markdownで、改ページコマンドです。

markdownから変換します。


$ ruby ../../escapeincode.rb hoge.md | ruby ../../preprocess.rb |  md2review | ruby -Ku ../../scalemd.rb > hoge.re

hoge.reファイルを使い、この稿の「原稿が集まったら」の手順で他のアーティクルと一緒にbook.pdfを作ります。


$ rake pdf

として、できたpdfファイル「book.pdf」を確認すると、hoge.reは12~17ページに差し込まれていました。

その情報を元に、book.pdf と hoge.pdf をマージします。


pdftk A=book.pdf B=hoge.pdf cat A1-11 B A18-end output bookhonbun.pdf

として、差し込みます。

6
4
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
6
4