いものやま。

雑多な知識の寄せ集め

TeXで同人誌を作ってみた。(トンボ)

f:id:yamaimo0625:20190918075457j:plain

今日は昨日の記事で省略したトンボの出力について。

トンボとは

そもそもトンボって何?という話。

トンボというのは裁断の目印となるマークのこと。

紙の大きさとピッタリ同じデザインだと、紙の裁断が少しズレると微妙な空白が入ってしまったりする。
それを防ぐために、普通は紙のサイズよりも3mmほどはみ出すようにデザインし(「断ち切り」という)、裁断が多少ずれてもおかしくならないようにする。
そして、そうやってはみ出したデザインになっているので、ここで切るという目印が必要で、それを示すのがトンボ。

ちなみに、「ねこのしっぽ」さんでは基本的にはトンボは不要みたい。

まず断ち切りが不要なデザインの場合はピッタリのサイズで入稿すればいいみたい。
そして断ち切りが必要な場合も断ち切り分(上下左右に3mmずつ)原稿サイズを大きくするだけでよく、トンボは不要(これがデフォルトの入稿形式)。
もちろん、トンボを入れての入稿もOK。
(トンボは不要と書かれていたので気になって問い合わせて、トンボがあってもOKという回答をもらった)

ただ、印刷所さんによってはトンボが必須ということもあるので、入れる方法は押さえておいた方がいい。

gentombowパッケージ

トンボを出力するにはgentombowパッケージを使えばいい。

ただし!
実はいろいろ罠がある・・・

最初に解答だけ書いておくと、以下のようにする:

% トンボ
% geometryパッケージよりあとにした方がおそらく安全
% voffset、hoffsetは絶対にいじらない
\usepackage[pdfbox]{gentombow}
\usepackage{bounddvi}

以下はいろいろな罠についての説明。

tombowオプション

ドキュメントクラスのオプションでtombowオプションがあって、これでトンボが出せるんじゃね?と思うんだけど、これがまず大きな罠。

bxjsclsのドキュメントには次のように書かれている:

■トンボオプション
トンボ(crop marks)を出力します。(省略)
取りあえず、pTeX系の場合に限り、JSクラスのトンボ関連のコードをそのまま活かしておく。
正常に動作する保証はない。

Oh...

実際のところ、後述するpaper-sizeの設定もちゃんとやれば動くとは思うんだけど、使わない方がいいと思う。

paper-sizeの設定

最初、

\usepackage[pdfbox]{gentombow}

とだけしてて全然うまく動く気配がなくて、なんでだろうとなってたんだけど、原因はpaper-sizeの設定だった。

トンボを出力する場合、印刷したい紙のサイズと実際に出力される紙のサイズが異なる
例えば、A5で印刷したい場合、A5で印刷されるエリアのさらに外側にトンボが出力されるので、紙のサイズは一回り大きいB5である必要がある。

じゃあ、それをどうやって \TeXに教えればいいのか?

実は、教える手段がない。
というか、そもそも \TeXに「用紙サイズ」という概念は存在しない・・・
\paperwidth\paperheightという長さは存在するけど、これはあくまで他の長さを計算するためのもので、それで紙のサイズが決まるわけではなかったりする。

けど、それじゃ困るので、特別な命令を使うことでDVIファイルに情報を出せるようになっている。
\AtBeginDvi{\special{paper-size=<width>,<height>}}とすることで用紙サイズの情報(paper-size)がDVIに埋め込まれる。

これをやってくれるのがbounddviパケージ。
gentombowパッケージによっていい感じに変えられた用紙サイズをDVIファイルに出力してくれる。

なお、レイアウト調整によく使われるgeometryパッケージもこのpaper-sizeの設定をやってくれるみたい。

じゃあ、paper-sizeの設定が複数あった場合はどうなるのか?

これは一番最後にされた指定が使われるっぽい。
なので、bounddviパッケージを読み込んだあとにgeometryパッケージを読み込むと、うまくいかない可能性がある
(たぶん大丈夫だとは思うけど・・・)

voffset、hoffset

 \TeXでレイアウトの原点となる位置は\voffset\hoffsetという長さによって決められていて、デフォルト値はどちらも0になっている。
けど、なぜか原点は紙の左上から\voffset + 1inch\hoffset + 1inchの位置となっている
マジでなんで1インチ足してるんだ・・・

この謎仕様に対処するため、\voffset\hoffset-1inに設定するというのを見かけたりする。
そうすれば紙の左上がちょうど原点になると。

それダメ!

とにかく\voffset\hoffsetは0のままにしてレイアウトを考えて、変更するなら\topmargin\oddsidemarginを変える。
あるいはgeometryパッケージを使う方がいい。

gentombowパッケージは紙のサイズを一回り大きくしてこの\voffset\hoffsetをその分増やすことで紙面のレイアウトは保ったまま外側にトンボを出力できるようにしている。
なので\voffset\hoffsetをいじるとちゃんと動いてくれない。


ーーと、そんな感じで罠をくぐり抜ければ、最初に書いた解答で問題なく出力できる。

宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!