Re:VIEW(latex)で吐き出したpdfをそのまま同人誌の本文として入稿しようとすると怒られる可能性大です。大体
- ノンブルに(i, ii)とか入っている、そもそもない、順番違う
- タチキリ分の余白がない
とか言われます。こういうのは同人誌印刷所のホームページを漁るとけっこう情報が出てきます。具体的な方法についてみてみましょう。
隠しノンブルを入れる & タチキリ分の余白を入れる
解決方法は簡単で、ページごとに隠しノンブルとタチキリ分の余白を入れればOKです。
隠しノンブルについては(ノンブルの入れ方 ~隠しノンブル~
)が詳しいです。要するに隠しノンブルを使えば人が見えるところのノンブルを自由に作って、実際のページ番号は見えないところに入れるということが可能です(一応、入稿時に説明したほうがよい)。
タチキリについては同人誌初心者のための しまねぇ&まやちゃん はじめての同人誌が詳しいです。つまり裁断するとき用に余白入れろってことです。
以上を踏まえてcpdfというコマンドラインツールでpdfを加工します。ただcpdfだけだと辛い部分があるので、雑にnode.jsでスクリプトを書きます。
#!/usr/bin/env node
const { execSync } = require("child_process");
const fs = require("fs");
// 環境に合わせて設定を変更する
// B5は WIDTH = 182; HEIGHT = 257;
const PAGE_START = 3;
const WIDTH = 182;
const HEIGHT = 257;
const MARGIN = 3;
execSync("mkdir -p tmp");
// バラして
execSync("cpdf -split book.pdf -o tmp/%%%.pdf");
// 隠しノンブル入れて
const files = fs.readdirSync("tmp").sort();
files.forEach((file, i) => {
const page = file.split(".").shift();
const nombre = ((+page + PAGE_START - 1) + "").split("").join("\\n");
const pos = ["0mm 15mm", `${WIDTH - 1.3}mm 15mm`][i % 2];
execSync(`cpdf -add-text "${nombre}" -pos-left "${pos}" -font "Courier" -font-size "6" tmp/${file} -o tmp/${page}-nombre.pdf`);
});
// マージし直して
execSync(`cpdf -merge ${files.map(f => f.replace(/(\d{3})/, "tmp/$1-nombre")).join(" ")} -o tmp/merged.pdf`);
// 余白を入れる
execSync(`cpdf -mediabox "-${MARGIN}mm -${MARGIN}mm ${WIDTH + MARGIN * 2}mm ${HEIGHT + MARGIN * 2}mm" tmp/merged.pdf -o book-release.pdf`);
execSync("rm -rf tmp");
Re:VIEWのプロジェクトのルートで実行すると、以下のようにbook-release.pdfに結果が出力されます。簡単ですね!
※ページ番号の開始(PAGE_START
)、タチキリの余白(MARGIN
)等は各印刷所の指示に従ってください。このケースではページサイズは同人誌ではポピュラーだと思われるB5サイズ用に設定されています(Re:VIEWの設定例は以下)。ページサイズに合わせて修正してください。
texdocumentclass: ["jsbook", "10pt,b5j,uplatex,oneside"]