summaryrefslogtreecommitdiff
path: root/macros/jptex/latex/jlreq/jlreq-trimmarks-ja.md
blob: f76e369f55714b2fe8fd71eed96416e5baccaf9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# jlreq-trimmarks

## これは何?
トンボ(トリムマーク)を出力するためのパッケージです.[LuaTeX-ja](https://osdn.jp/projects/luatex-ja/wiki/FrontPage) / pLaTeX / upLaTeX / dvipdfmx / Dvips / dviout上で動きます.jlreqクラスファイルのみでなく,汎用的に動くように設計されています.以下の機能を提供します.

* トンボの出力
* 可能な場合には,TrimBox / BleedBoxを設定
* 紙サイズの設定

なお,本パッケージは[日本語組版処理の要件](https://www.w3.org/TR/jlreq/ja/) (JLReq)とは無縁です.JLReqにはトンボに関する記述はありません.

## インストール
$TEXMF/tex/latex/jlreq内にjlreq-trimmarks.styとjlreq-helpers.styを配置してください.


## 使い方
ドライバおよびエンジンを指定して`\usepackage`で読み込みます.エンジンは省略が可能です.

````
\usepackage[dvipdfmx,platex]{jlreq-trimmarks}
````

なお,クラスファイルの`tombow`オプションは使わないでください.

## ノート
jlreq-trimmarksは紙サイズを設定しますが,その他のパッケージとの兼ね合いで正しく機能しないことがあります.その際は[bxpapersize](https://github.com/zr-tex8r/BXpapersize)のようなより強力なパッケージを試してみてください.

## オプション
以下のパッケージオプションを受け付けます.keyval形式です.

### `platex`, `uplatex`, `lulatex`
エンジンの指定です.省略時は,

* `jlreq`クラスファイルを読み込んでいる場合はそれと連動する
* そうでなければ自動推定

です.

### `dvipdfmx`,`dvips`,`dviout`
dviドライバの指定です.エンジンに`lualatex`を利用する場合は指定する必要はありません.省略時は`dvipdfmx`が使われます.

### `trimmarks_paper`
トンボ付きの紙サイズを指定します.
* `trimmarks_paper=a4paper`のように,`a0paper--a10paper`, `b0paper--b10paper`, `c2paper--c8paper`を指定できる他,`trimmarks_paper={<width>,<height>}`と直接寸法を指定することができます.B列はISO B列です.JIS B列を指定する場合は`b0j--b10j`を指定してください.
* `a4+{1cm,2cm}`や`{10cm,20cm}+{1cm,2cm}`のように`<紙サイズ>+{<寸法横>,<寸法縦>}`とした場合は,指定された紙サイズから指定された寸法だけ増やした紙サイズを設定します.
* `a4+2cm`は`a4+{2cm,2cm}`と等価です.
* `+2cm`と紙サイズの部分を省略すると,現在の紙サイズを利用します.
* デフォルトは`+2in`です.

### `landscape`
紙のサイズの縦と横とを入れ替えます.ただし入れ替えるのは`trimmarks_paper`で明示的に指定された値に限ります.例えば`landscape,trimmarks_paper=+{1cm,2cm}`とすると,もともとの紙サイズ(これは入れ替わらない)の横幅が2cm増え,縦幅が1cm増えた紙サイズとなります.

### `show`
出力する対象を指定します.`show={trimmarks,banner,digital}`のようにカンマ区切りのリストを与えます.引数を与えない場合は全て表示します.

* `trimmarks`:トンボ自身を出力します.
* `banner`:日付などを出力します.
* `digital`:TrimBoxとBleedBoxの設定を行います(デジタルトンボ).
* `no`:何も表示しません.

### `bleed_margin`
仕上がりと裁ち落としの間(ドブ)の長さを指定します.次のようにすると,上下左右を独立に変更できます.
```latex
\usepackage[bleed_margin={top=3mm,bottom=5mm,gutter=0mm,fore-edge=2mm}]{jlreq-trimmarks}
```

## `\jlreqtrimmarkssetup`
パッケージオプションで指定できない設定を行えます.keyval形式です.

### `banner`
`show=banner`時に出力される文字列.通常は左上に出力されますが,四つ角および上下左右の中心に出力することもできます.指定は
```latex
\jlreqtrimmarkssetup{
  banner={
    <場所(上下,左右中央)>={
      <細かな位置>={
        <ページ数の偶奇に応じて>={
          <表示項目>
        }
      }
    }
  }
}
```
のようになります.キー名は省略することもできます.例えば次のように指定します.

```latex
\jlreqtrimmarkssetup{
  banner={
    top-right={
      tate={
        odd={奇数ページの右上に縦書きで表示},
        even={偶数ページの右上に縦書きで表示},
      },
      yoko={右上に横書きで表示}, % ページの偶奇によらず共通
      corner={右上角に横書きで表示},
      in-yoko={右上版面内に横書きで表示},
      in-tate={右上版面内に縦書きで表示},
    },
    bottom-center={
      left={中央下の左に表示}, % odd=, even=も使用可能
      right={中央下の右に表示},
      in={中央下の版面内に表示},
    },
    center-gutter={
      above={ノド側中央の上側に表示},
      below={ノド側中央の下側に表示},
    },
  }
}
```
場所は`top/bottom/center`と`left/right/center/gutter/fore-edge`の可能な組み合わせが指定可能です.各項目に`\thepage`を指定するとページ数を出力できます.

次のような指定も可能です.
```latex
\jlreqtrimmarkssetup{
  banner={
    tate={左上に縦書き}, % 場所が省略されるとtop-leftと見なされる.
    odd={左上奇数ページ}, % 省略されたのでyokoと見なされる.
    top-right={
      odd={右上奇数ページ} % ここもyokoが省略されている.
    }
  }
}
```


### `trimmarks_width`
トンボ自身の太さを指定します.

### ` color`
トンボの色.この機能を利用するには,あらかじめ`\color`を定義するパッケージ(`color`パッケージまたはその派生)を読み込んでおく必要があります.ここでの指定は次のようにして`\color`命令に変換されます.

* `cy`や`myk`のように`cmyk`という文字列の一部の場合は,`cmyk`で指定された色のみの色になります.例えば`color=cy`は`\color[cmyk]{1,0,1,0}`となります.
* そうでない場合は`\color`の引数に回されます.`[***]`という形が先行する場合は,`\color`のオプションとして扱われます.例えば以下のようになります.

    - `black` -> `\color{black}`
    - `[cmyk]0.5,0.5,0.5,0` -> `\color[cmyk]{0.5,0.5,0.5,0}`

### `trimmarks_pattern`
トンボの形.直接の描画コードを指定します.次のように`centers`に指定すると,上下左右の真ん中のトンボの形が変わります.指定するのは上の真ん中のトンボの描画コードであり,そのほかの場所にはそれを回転したものが描画されます.なお,指定前に`graphicx`パッケージを読み込んでおく必要があります.また`\jlreqtrimmarkswidth`には
```latex
\jlreqtrimmarkssetup{
  trimmarks_pattern = {
    centers = {
      \raisebox{3mm}{
        \vrule width10mm height\jlreqtrimmarkswidth depth 0pt
        \vrule height10mm width\jlreqtrimmarkswidth depth 3mm
        \vrule width10mm height\jlreqtrimmarkswidth depth 0pt
      }
    }
  }
}
```
上下左右の形を個別に指定することもできます.例えば上の真ん中のみ変更するには`top-center=<描画コード>`を指定します.同様に`bottom-center`,`left-center`,`right-center`が指定できます.個別指定には`graphicx`パッケージは不要です.


## ライセンス
このパッケージは二条項BSDライセンスの元で配布されています.詳しくは[LICENSE](LICENSE)をご覧ください.

## 履歴
* 2018-05-19
    - 最初のバージョン
* 2018-06-17
    - バグ修正.
* 2018-08-08
    - `trimmarks_paper`を拡張.
    - パッケージオプション`landscape`を追加.
* 2018-09-01
    - `bleed_margin`を`\jlreqtrimmarkssetup`からパッケージオプションに移した.
    - `\mag`が`1000`でない場合も動くようにした(つもり)
    - バグ修正
* 2018-12-10
    - `\jlreqtrimmarkssetup`内の`banner`を拡張.
* 2019-04-01
    - `\jlreqtrimmarkssetup`内の`banner`を更に拡張.
    - `bleed_margin`を拡張.
* 2020-05-01
    - `\jlreqtrimmarkssetup`の`banner`を使わない場合,`\@bannertoken`の中身を偶奇ページ両方に出力するようにした.
    - `\jlreqtrimmarkssetup`の`banner`を使う場合,`\@bannertoken`の中身を無視するようにした.
    - `\jlreqtrimmarkssetup`の`banner_font`が指定された場合,`\@bannerfont`を無視するようにした.
* 2021-07-22
    - expl3コードとの親和性を高めた.
* 2021-08-12
    - `etoolbox`に依存しないようにした.
* 2022-07-13
    - 読み込み時にエラーが出るバグ修正.
* 2022-11-28
    - `trimmarks_pattern`を`\jlreqtrimmarkssetup`に追加.
* 2023-06-19
    - 縦書きで読み込み時にエラーが出るバグ修正.
* 2024-02-13
    - ドキュメントの間違いを修正.
* 2024-08-23
    - `\DeclareKeys`などを使うようにした.

--------------
Noriyuki Abe
https://github.com/abenori/jlreq