]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/notation/spacing.itely
Doc - NR + CG: Clarify Emmentaler is the 'font' and Feta/Parmesan are glyphs
[lilypond.git] / Documentation / ja / notation / spacing.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: cc3b9e1430f4cc9c54da7252e504f3d274a7ea17
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.19.22"
12
13
14 @c Translators: Yoshiki Sawada
15 @c Translation status: post-GDP
16
17
18 @ignore
19 GDP TODO list
20
21 Negative numbers are allowed:
22 > Are you sure? The following works well
23 > \paper{
24 >   first-page-number = -2
25 > }
26 > and prints page number -1 on the second page, for example.
27
28
29 In 5.2.1 the @refbugs (line 495 in spacing.itely on master) it
30 states:
31
32 "@code{layout-set-staff-size} does not change the distance between
33 the
34 staff lines."
35
36 Could we add a sentence:
37 "Use instead the pair               fontSize = #@var{N}
38             \override StaffSymbol.staff-space = #(magstep
39 @var{N})
40 inside the Staff context to change the size of the font and the
41 distance between
42 staff lines accordingly."
43
44 Actually I found, that the @internalsref{StaffSymbol} at line 481
45 sends to an incomplete
46 documentation.  The property staff-space is not explained here.  I
47 thought Y-extent might be of
48 help, but it is in turn explained by x-space which again is
49 missing from the list.  Who has the
50 knowledge to fix this?
51
52
53 Clarify
54 http://code.google.com/p/lilypond/issues/detail?id=68
55
56 @end ignore
57
58
59 @node スペースの問題
60 @chapter スペースの問題
61 @translationof Spacing issues
62
63 紙面全体のレイアウトは 3 つの要素によって決定されます:
64 ページ レイアウト、改行、そしてスペースです。@c
65 これらはすべて互いに影響を与え合います。@c
66 スペース入れ方を選択することは音楽システムを@c
67 どれくらいの密度で譜刻するかを決定します。@c
68 これは改行をどこに挿入するかに影響を与え、@c
69 それゆえ最終的には、@c
70 楽曲が占めるページ数を決定します
71
72 大雑把に言って、@c
73 このプロセスには 4 つのステップがあります:
74 最初に、演奏時間に基づいて可変距離 (@q{スプリング}) が選択されます。@c
75 とり得る改行の組み合わせがすべて試され、@c
76 相対的に @q{悪い} 楽譜が算出されます。@c
77 それから、起こり得るシステムの高さが推定されます。
78 最後に、@c
79 水平方向と垂直方向のスペースが混み合いすぎたり、@c
80 広がりすぎたりしないように、@c
81 改ページと改行の組み合わせが選択されます。
82
83 2 タイプのブロックがレイアウト設定を保持できます:
84 @code{\paper @{@dots{}@}} と @code{\layout @{@dots{}@}} です。@c
85 @code{\paper} ブロックは book のすべての score で共通の@c
86 ページ レイアウト設定を保持します
87 -- ページの高さやページ番号を表示するか等です。@c
88 @ref{ページ レイアウト} を参照してください。@c
89 @code{\layout} ブロックは score のレイアウトを保持します
90 -- システム数や譜グループ間の間隔等です。@c
91 @ref{ページ レイアウト} を参照してください。@c
92
93 @menu
94 * ページ レイアウト::
95 * 楽譜レイアウト::
96 * 改行/改ページ::
97 * 垂直方向のスペース::
98 * 水平方向のスペース::
99 * 音楽を少ないページに収める::
100 @end menu
101
102 @node ページ レイアウト
103 @section ページ レイアウト
104 @translationof Page layout
105
106 このセクションでは @code{\paper} ブロックで使用するページ レイアウト
107 オプションについて説明します。
108
109 @menu
110 * paper ブロック::
111 * 紙面サイズと自動拡縮::
112 * 固定された垂直方向の paper スペース変数::
113 * 可変な垂直方向の paper スペース変数::
114 * 水平方向の paper スペース変数::
115 * 他の paper 変数::
116 @end menu
117
118
119 @node paper ブロック
120 @subsection @code{\paper} ブロック
121 @translationof The \paper block
122
123 @code{\paper} ブロックは、@code{\book} ブロック内に配置することができますが、@c
124 @code{\score} ブロック内に配置することはできません。@c
125 @code{\paper} ブロックでの設定は book 全体に適用されます。@c
126 book が複数の score を含む場合も、すべての score に適用されます。@c
127 @code{\paper} ブロックで可能な設定には以下のものがあります:
128
129 @itemize
130
131 @item
132 @code{set-paper-size} Scheme 関数
133
134 @item
135 ページ レイアウトをカスタマイズするのに用いられる @code{\paper} 変数
136
137 @item
138 ヘッダ、フッタ、それにタイトルのレイアウトを@c
139 カスタマイズするのに用いられるマークアップ定義
140
141 @end itemize
142
143 @code{set-paper-size} 関数は次のセクション
144 @ref{紙面サイズと自動拡縮}
145 で説明します。@c
146 ページ レイアウトを扱う @code{\paper} 変数は後のセクションで説明します。@c
147 ヘッダ、フッタ、それにタイトルを扱うマークアップ定義は
148 @ref{カスタム ヘッダ、フッタ、タイトル} で説明します。
149
150 たいていの @code{\paper} 変数は @code{\paper} ブロック内でのみ機能します。@c
151 @code{\layout} ブロック内でも機能するいくつかの @code{\paper} 変数を@c
152 @ref{\layout ブロック} でリスト アップしています。
153
154 ページの長さに関係する @code{\paper} 変数の単位は、@c
155 ユーザによって他の単位が指定されていなければ、@c
156 ミリメーターです。@c
157 例えば、以下の宣言は @code{top-margin} を @code{10mm} に設定します:
158
159 @example
160 \paper @{
161   top-margin = 10
162 @}
163 @end example
164
165 @code{top-margin} を @code{0.5} インチに設定するには、@c
166 単位接尾辞 @code{\in} を使用します:
167
168 @example
169 \paper @{
170   top-margin = 0.5\in
171 @}
172 @end example
173
174 利用可能な単位接尾辞は @code{\mm}, @code{\cm}, @code{\in},
175 それに @code{\pt} です。@c
176 これらの単位はミリメーターから変換するための値であり、@c
177 @file{ly/paper-defaults-init.ly} で定義されています。@c
178 技術的には必要はありませんが、明快さのために、@c
179 ミリメーターを用いる場合であっても @code{\mm} をコードに記述します。
180
181 Scheme を用いて @code{\paper} の値を定義することも可能です。@c
182 上の例と等価な Scheme は以下のようになります:
183
184 @example
185 \paper @{
186   #(define top-margin (* 0.5 in))
187 @}
188 @end example
189
190 @seealso
191 記譜法リファレンス:
192 @ref{紙面サイズと自動拡縮},
193 @ref{カスタム ヘッダ、フッタ、タイトル},
194 @ref{\layout ブロック}
195
196 インストールされているファイル:
197 @file{ly/paper-defaults-init.ly}
198
199
200 @node 紙面サイズと自動拡縮
201 @subsection 紙面サイズと自動拡縮
202 @translationof Paper size and automatic scaling
203
204 @cindex paper size (紙面サイズ)
205 @cindex page size (ページ サイズ)
206
207 @funindex \paper
208
209 @menu
210 * 紙面サイズを設定する::
211 * 紙面サイズに応じた自動拡縮::
212 @end menu
213
214
215 @node 紙面サイズを設定する
216 @unnumberedsubsubsec 紙面サイズを設定する
217 @translationof Setting the paper size
218
219 紙面サイズを変更するために 2 つの関数が利用可能です:
220 @code{set-default-paper-size} と @code{set-paper-size} です。
221 @code{set-default-paper-size} は最上位スコープに配置する必要があり、@c
222 and @code{set-paper-size} は @code{\paper} ブロックの中に@c
223 配置する必要があります:
224 @q{A4} が紙面サイズを明示的に設定しなかった場合のデフォルト値です。@c
225 しかしながら、デフォルト値を変更するために使うことができる関数が 2 つあります。@c
226 1 つは @code{set-default-paper-size} です:
227
228 @example
229 #(set-default-paper-size "quarto")
230 @end example
231
232 この関数は常に最上位スコープに配置する必要があります。@c
233 もう 1 つは @code{set-paper-size} です:
234
235 @example
236 \paper @{
237   #(set-paper-size "tabloid")
238 @}
239 @end example
240
241 この間数は常に @code{\paper} ブロックの中に配置する必要があります。
242
243 @code{set-default-paper-size} 関数を最上位スコープで用いる場合、@c
244 どの @code{\paper} ブロックよりも前に配置する必要があります。@c
245 @code{set-default-paper-size} はすべてのページの紙面サイズを設定しますが、@c
246 @code{set-paper-size} が設定する紙面サイズは @code{\paper} ブロックが適用@c
247 されるページだけです。@c
248 例えば、@code{\paper} ブロックがファイルの最上位に配置されている場合、すべての@c
249 ページの紙面サイズに摘要されます。@c
250 @code{\paper} ブロックが @code{\book} の中に配置されている場合、そのブックの@c
251 ページだけに適用されます。
252
253 @code{set-paper-size} 関数を用いる場合、同じ @code{\paper} ブロック内で@c
254 用いられる他のすべての関数よりも @emph{前に} 配置する必要があります。@c
255 @ref{Automatic scaling to paper size} を参照してください。
256
257 紙面サイズは @file{scm/paper.scm} で定義されていて、カスタム サイズを追加する@c
258 ことも可能ですが、追加後のソフトウェア アップデートにより上書きされます。@c
259 利用可能な紙面サイズは @ref{Predefined paper sizes} でリスト アップされています。
260
261 @c An appendix entry exists for paper sizes but is not auto-generated
262
263 以下のコマンドを用いてカスタム紙面サイズを追加することができ、追加した紙面サイズは
264 @code{set-default-paper-size} または @code{set-paper-size} で使用することが@c
265 でいます。
266
267
268 @example
269 #(set! paper-alist (cons '("my size" . (cons (* 15 in) (* 3 in))) paper-list))
270
271 \paper @{
272   #(set-paper-size "my size")
273 @}
274 @end example
275
276 単位 @code{in} (インチ)、@code{cm} (センチメートル)、それに @code{mm}
277 (ミリメートル) のすべてを使うことができます。
278
279 @cindex paper size, orientation (紙面サイズの向き)
280 @cindex page, orientation (紙面の向き)
281 @cindex paper size, landscape (横向きの紙面サイズ)
282
283 紙面サイズ関数にシンボル @code{'landscape} を渡すとページは 90°回転し、@c
284 それに応じてより長い行幅となります。
285
286 @example
287 #(set-default-paper-size "a6" 'landscape)
288 @end example
289
290 紙面が回転するだけで、楽譜は回転 @emph{しません}。
291
292 @seealso
293 記譜法リファレンス:
294 @ref{Automatic scaling to paper size},
295 @ref{Predefined paper sizes}
296
297 インストールされているファイル:
298 @file{scm/paper.scm}
299
300
301 @node 紙面サイズに応じた自動拡縮
302 @unnumberedsubsubsec 紙面サイズに応じた自動拡縮
303 @translationof Automatic scaling to paper size
304
305 Scheme 関数
306 (@code{set-default-paper-size} または @code{set-paper-size})
307 により紙面サイズが変更された場合、@c
308 いくつかの @code{\paper} 変数は自動的に新しいサイズに合わせて拡縮されます。@c
309 特定の変数の自動拡縮をスキップするには、@c
310 紙面サイズを設定した後にその変数を設定します。@c
311 @code{paper-height} 変数や @code{paper-width} 変数の変更では、@c
312 自動拡縮は起こらないということに注意してください。@c
313 しかしながら @code{paper-width} 変数の変更は他の値に影響を与えます
314 (これは拡縮とは別のことで、後で説明します)。
315 @code{set-default-paper-size} 関数と @code{set-paper-size} 関数については
316 @ref{Setting the paper size} で説明します。
317
318 自動拡縮によって影響を受ける垂直方向の長さは
319 @code{top-margin} と @code{bottom-margin} です
320 (@ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数} を参照してください)。@c
321 自動拡縮によって影響を受ける水平方向の長さは
322 @code{right-margin}, @code{inner-margin}, @code{outer-margin},
323 @code{binding-offset}, @code{indent}, それに @code{short-indent} です
324 (@ref{水平方向の paper スペース変数,,水平方向の @code{@bs{}paper} スペース変数} を参照してください)。
325
326 これらの長さに対するデフォルト値は
327 @code{top-margin-default}, @code{bottom-margin-default} 等の内部変数を@c
328 用いて @file{ly/paper-defaults-init.ly} で設定されています。@c
329 これらはデフォルトの紙面サイズ @code{a4} の場合の値です。@c
330 参考のために、@code{a4} 紙面での
331 @code{paper-height} は @code{297\mm} であり、@c
332 @code{paper-width} は @code{210\mm} です。
333
334 @seealso
335 記譜法リファレンス:
336 @ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数},
337 @ref{水平方向の paper スペース変数,,水平方向の @code{@bs{}paper} スペース変数}
338
339 インストールされているファイル:
340 @file{ly/paper-defaults-init.ly},
341 @file{scm/paper.scm}
342
343
344 @node 固定された垂直方向の paper スペース変数
345 @subsection 固定された垂直方向の @code{\paper} スペース変数
346 @translationof Fixed vertical spacing \paper variables
347
348 @warning{いくつかの @code{@bs{}paper} 変数は紙面サイズに応じて@c
349 自動的に拡縮され、結果として予期せぬ振る舞いを引き起こすことがあります。@c
350 @ref{紙面サイズに応じた自動拡縮} を参照してください。}
351
352 (拡縮する前の) デフォルト値は
353 @file{ly/paper-defaults-init.ly} で定義されています。
354
355 @table @code
356 @item paper-height
357 @funindex paper-height
358
359 ページの高さ -- デフォルトでは設定されていません。@c
360 これは垂直方向の長さの自動拡縮は影響を与えません。
361
362 @item top-margin
363 @funindex top-margin
364
365 ページの上端と印刷可能エリアの上端との間のマージン。@c
366 紙面サイズが変更されると、それに応じてこの長さのデフォルト値も拡縮されます。
367
368 @item bottom-margin
369 @funindex bottom-margin
370
371 印刷可能エリアの下端とページの下端との間のマージン。@c
372 紙面サイズが変更されると、それに応じてこの長さのデフォルト値も拡縮されます。
373
374 @item ragged-bottom
375 @funindex ragged-bottom
376
377 真に設定されている場合、システムはページ下端まで広がりません。@c
378 これは最後のページには影響しません。@c
379 ページに 2, 3 しかシステムを持たない楽曲 -- オーケストラ譜等 -- では、@c
380 この変数を真に設定すべきです。
381
382 @item ragged-last-bottom
383 @funindex ragged-last-bottom
384
385 偽に設定されている場合、最後のページでシステムはページ下端まで広がります。@c
386 2 ページ以上ある楽曲では、この変数を偽に設定すべきです。@c
387 これは book パート
388 -- すなわち @code{\bookpart} ブロックによって作成された部分 --
389 の最後のページにも影響を与えます。
390
391 @end table
392
393 @seealso
394 記譜法リファレンス:
395 @ref{紙面サイズに応じた自動拡縮}
396
397 インストールされているファイル:
398 @file{ly/paper-defaults-init.ly}
399
400 コード断片集:
401 @rlsr{Spacing}
402
403 @knownissues
404 (@code{\header} ブロックによって作成された)
405 タイトルはシステムとして扱われます。@c
406 このため、@code{ragged-bottom} と @code{ragged-last-bottom} は@c
407 タイトルと score の最初のシステムとの間にスペースを追加します。
408
409 明示的に定義された紙面サイズは、ユーザ定義の上または下のマージン設定を上書きします。
410
411
412 @node 可変な垂直方向の paper スペース変数
413 @subsection 可変な垂直方向の @code{\paper} スペース変数
414 @translationof Flexible vertical spacing \paper variables
415
416 たいていの場合、ある要素間
417 (マージン、タイトル、システム、score 等の間)
418 の垂直方向の間隔は、状況に応じて伸びたり縮んだりするよう、@c
419 可変であることが好まれます。@c
420 いくつかの @code{\paper} 変数
421 (以下でリスト アップします) は、長さを微調整することができます。
422
423 このセクションで説明する @code{\paper} 変数は、@c
424 個々のシステム内にある譜のスペースを制御しないということに注意してください。@c
425 システム内のスペースは、@c
426 普通は @code{\score} ブロックや @code{\score} ブロックの中に配置される設定を@c
427 通じて、@c
428 グラフィカル オブジェクトのプロパティによって制御されます。@c
429 @ref{システム内部の可変な垂直方向のスペース} を参照してください。
430
431 @menu
432 * 可変な垂直方向スペース連想リストの構造::
433 * 可変な垂直方向の paper スペース変数のリスト::
434 @end menu
435
436
437 @node 可変な垂直方向スペース連想リストの構造
438 @unnumberedsubsubsec 可変な垂直方向スペース連想リストの構造
439 @translationof Structure of flexible vertical spacing alists
440
441 可変な垂直方向の @code{\paper} スペース変数は、@c
442 それぞれが 4 つの @emph{キー} を保持する連想配列 (association list) です:
443
444 @itemize
445
446 @item
447 @code{basic-distance} -- 2 つの要素の @emph{参照ポイント} 間の@c
448 垂直方向の間隔。単位は譜スペースです。@c
449 衝突が生じない場合は、伸縮されません。@c
450 (タイトルまたは最上位の) マークアップの参照ポイントは最も上の箇所です。@c
451 システムの参照ポイントは、@c
452 譜線を持たない (@code{Lyrics} コンテキスト等) であっても、@c
453 最も近くにある @code{StaffSymbol} の垂直方向の中心です。@c
454 @code{basic-distance} の値が @code{padding} や @code{minimum-distance} よりも@c
455 小さいと無意味になります。@c
456 なぜなら、間隔が @code{padding} や @code{minimum-distance} よりも@c
457 小さくなることはないからです。
458 @code{minimum-distance} の値が @code{padding} よりも小さいと無意味になります。@c
459 なぜなら、間隔が @code{padding} よりも小さくなることはないからです。
460
461 @c TODO: explain skylines somewhere and xref to it from here.
462
463 @item
464 @code{padding} -- 2 つの要素間の境界ボックス (または輪郭) の間に必要な、@c
465 垂直方向の最小の間隔。単位は譜スペースです。@c
466
467 @item
468 @code{stretchability} -- 間隔の伸び率。@c
469 0 の場合、間隔は広がりません (衝突が生じない限りは)。@c
470 正の値の場合、ある間隔の @code{stretchability} 値は@c
471 他の間隔の @code{stretchability} との相対関係になります。@c
472 例えば、ある間隔の @code{stretchability} 値が@c
473 もう一つの間隔の @code{stretchability} の 2 倍である場合、@c
474 間隔の広がり方は 2 倍になります。@c
475 値は 0 以上の有限数でなければなりません。@c
476 @code{+inf.0} は @code{programming_error} を引き起こし、無視されます。@c
477 一方、@code{1.0e7} はほとんど無限の広がり方となります。@c
478 値が設定されなければ、デフォルト値が設定されます。@c
479 間隔の @emph{縮み} 率をユーザが直接設定することはできず、@c
480 (@code{basic-distance}@tie{}@minus{}@tie{}@code{minimum-distance})
481 であることに注意してください。
482
483 @end itemize
484
485 譜がページの下端まで広がらない設定の場合、間隔は以下の中の最大値となります:
486 largest of:
487
488 @itemize
489
490 @item
491 @code{basic-distance},
492
493 @item
494 @code{minimum-distance},
495
496 @item
497 @code{padding} + 衝突を回避するのに必要な最小の距離
498
499 @end itemize
500
501 複数ページの楽譜で、最後のページの楽譜がページ下端まで広がらない場合、最後の@c
502 ページのスペースは前のページと同じです。
503
504 配列リストを変更する方法は、@ref{Modifying alists} で説明します。@c
505 以下の例は、連想配列を変更する 2 つの方法を提示しています。@c
506 最初の宣言はキー値を個別に変更していて、2 つ目は変数全体を再定義しています:
507
508 @example
509 \paper @{
510   system-system-spacing.basic-distance = #8
511   score-system-spacing =
512     #'((basic-distance . 12)
513        (minimum-distance . 6)
514        (padding . 1)
515        (stretchability . 12))
516 @}
517 @end example
518
519
520 @node 可変な垂直方向の paper スペース変数のリスト
521 @unnumberedsubsubsec 可変な垂直方向の @code{\paper} スペース変数のリスト
522 @translationof List of flexible vertical spacing \paper variables
523
524 以下の変数の名前は @code{@var{upper}-@var{lower}-spacing} という形式で、@c
525 @code{@var{upper}} 要素と @code{@var{lower}} 要素との間隔です。@c
526 間隔の距離は 2 つの要素の参照ポイント間です
527 (上記の連想配列構造の説明を参照してください)。@c
528 変数名の中の @q{@code{markup}} は @emph{タイトル マークアップ}
529 (@code{bookTitleMarkup} や @code{scoreTitleMarkup}) と
530 @emph{最上位のマークアップ} (@ref{ファイル構造}) の両方を指します。@c
531 すべての間隔の距離の単位は譜スペースです。
532
533 デフォルト設定は @file{ly/paper-defaults-init.ly} で定義しています。
534
535 @c TODO: Where do headers/footers fit in? -mp
536
537 @table @code
538 @item markup-system-spacing
539 @funindex markup-system-spacing
540
541 (タイトルまたは最上位の) マークアップと、その後に続くシステムとの間隔。
542
543 @item score-markup-spacing
544 @funindex score-markup-spacing
545
546 score の最後のシステムと、その後に続く (タイトルまたは最上位の)
547 マークアップとの間隔
548
549 @item score-system-spacing
550 @funindex score-system-spacing
551
552 score の最後のシステムと、その後に score の最初のシステムとの間隔
553 -- score と score の間に (タイトルまたは最上位の) マークアップが無い場合。
554
555 @item system-system-spacing
556 @funindex system-system-spacing
557
558 同じ score の中にある 2 つのシステムの間隔。
559
560 @item markup-markup-spacing
561 @funindex markup-markup-spacing
562
563 2 つの (タイトルまたは最上位の) マークアップの間隔。
564
565 @item last-bottom-spacing
566 @funindex last-bottom-spacing
567
568 ページの最後のシステムまたは最上位のマークアップから、@c
569 印刷可能エリアの下端 (つまり、ボトム マージンの上端) までの距離。
570
571 @item top-system-spacing
572 @funindex top-system-spacing
573
574 印刷可能エリアの上端 (つまり、トップ マージンの下端) から、@c
575 ページの最初のシステムまでの距離
576 -- 間に (タイトルまたは最上位の) マークアップが無い場合。
577
578 @item top-markup-spacing
579 @funindex top-markup-spacing
580
581 印刷可能エリアの上端 (つまり、トップ マージンの下端) から、@c
582 ページの最初の (タイトルまたは最上位の) までの距離
583 -- 間にシステムが無い場合。
584 @end table
585
586 @seealso
587 記譜法リファレンス:
588 @ref{システム内部の可変な垂直方向のスペース}
589
590 インストールされているファイル:
591 @file{ly/paper-defaults-init.ly}
592
593 コード断片集:
594 @rlsr{Spacing}
595
596
597 @node 水平方向の paper スペース変数
598 @subsection 水平方向の @code{\paper} スペース変数
599 @translationof Horizontal spacing \paper variables
600
601 @warning{いくつかの @code{@bs{}paper} の間隔は紙面サイズに応じて自動的に@c
602 拡縮され、それにより予期せぬ結果となることがあります。@c
603 @ref{紙面サイズに応じた自動拡縮} を参照してください。}
604
605 @menu
606 * 幅とマージンの paper 変数::
607 * 両面モードのための paper 変数::
608 * シフトとインデントのための paper 変数::
609 @end menu
610
611
612 @node 幅とマージンの paper 変数
613 @unnumberedsubsubsec 幅とマージンの @code{\paper} 変数
614 @translationof \paper variables for widths and margins
615
616 ここでリスト アップされていない (拡縮する前の) デフォルト値は、@c
617 @file{ly/paper-defaults-init.ly} で定義されています。
618
619 @table @code
620
621 @item paper-width
622 @funindex paper-width
623
624 ページの幅 - デフォルトでは、値は設定されていません。@c
625 @code{paper-width} は水平方向の自動拡縮に影響を与えませんが、@c
626 @code{line-width} 変数に影響を与えます。@c
627 @code{paper-width} と @code{line-width} の両方に値が設定された場合、@c
628 @code{left-margin} と @code{right-margin} が更新されます。@c
629 @code{check-consistency} も参照してください。
630
631 @item line-width
632 @funindex line-width
633
634 この変数に値が設定されていない場合、@c
635 インデントされず、ページ右端まで広がるシステムの譜線の水平方向の長さは、@c
636 @code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}
637 です。@c
638 @code{left-margin} と @code{right-margin} に値が設定されていなければ、@c
639 マージンは自動的に更新されて、@c
640 システムはページの中央に配置されます。
641 @code{check-consistency} も参照してください。@c
642 この変数は @code{\layout} ブロック内で設定される可能性もあります。
643
644 @item left-margin
645 @funindex left-margin
646
647 ページの左端とインデントされていないシステムの譜線開始点との間のマージンです。@c
648 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
649 @code{left-margin} に値が設定されず、@c
650 @code{line-width} と @code{right-margin} の両方に値が設定された場合、@c
651 @code{left-margin} は
652 @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}right-margin)}
653 に設定されます。@c
654 @code{line-width} だけに値が設定された場合、@c
655 左右のマージンは
656 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}
657 に設定され、@c
658 結果としてシステムはページの中央に配置されます。@c
659 @code{check-consistency} も参照してください。@c
660
661 @item right-margin
662 @funindex right-margin
663
664 ページの右端とページの右端まで広がる譜線終点との間のマージンです。@c
665 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
666 @code{right-margin} に値が設定されず、@c
667 @code{line-width} と @code{left-margin} の両方に値が設定された場合、@c
668 @code{right-margin} は
669 @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}left-margin)}
670 に設定されます。@c
671 @code{line-width} だけに値が設定された場合、@c
672 左右のマージンは
673 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}
674 に設定され、@c
675 結果としてシステムはページの中央に配置されます。@c
676 @code{check-consistency} も参照してください。@c
677
678 @item check-consistency
679 @funindex check-consistency
680
681 真にセットされた場合、@code{left-margin}, @code{line-width},
682 それに @code{right-margin} の和が @code{paper-width} にならなければ警告を@c
683 表示して、@c
684 @code{left-margin} と @code{right-margin} をデフォルト値に置き換え
685 (必要に応じて紙面サイズに合わせて拡宿し) ます。@c
686 偽にセットされた場合、不一致を無視して、@c
687 システムがページの左端からはみ出すことを許可します。
688
689 @item ragged-right
690 @funindex ragged-right
691
692 真にセットされた場合、システムは譜線の幅いっぱいまで広がらず、@c
693 本来の長さで終了します。@c
694 デフォルトでは、1 つだけシステムを持つ score の場合は @code{#t}、@c
695 複数のシステムを持つ score の場合は @code{#f} です。@c
696 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
697
698 @item ragged-last
699 @funindex ragged-last
700
701 真にセットされた場合、score の最後のシステムは譜線の幅いっぱいまで広がらず、@c
702 本来の長さで終了します。@c
703 デフォルトでは @code{#f} です。@c
704 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
705
706 @end table
707
708 @seealso
709 記譜法リファレンス:
710 @ref{紙面サイズに応じた自動拡縮}
711
712 インストールされているファイル:
713 @file{ly/paper-defaults-init.ly}
714
715 @knownissues
716 明示的に定義された紙面サイズは、ユーザ定義の左または右のマージン設定を上書きします。
717
718
719 @node 両面モードのための paper 変数
720 @unnumberedsubsubsec 両面モードのための @code{\paper} 変数
721 @translationof \paper variables for two-sided mode
722
723 (拡縮される前の) デフォルト値は
724 @file{ly/paper-defaults-init.ly} で定義されています。
725
726 @table @code
727
728 @item two-sided
729 @funindex two-sided
730
731 @cindex gutter
732 @cindex binding gutter
733
734 真にセットされた場合、@c
735 ページ番号が偶数か奇数かに応じて @code{inner-margin}, @code{outer-margin}
736 それに @code{binding-offset} を用いてマージンを決定します。@c
737 これは @code{left-margin} と @code{right-margin} を上書きします。
738
739 @item inner-margin
740 @funindex inner-margin
741
742 book の一部であるページすべてが見開きページの内側に持つマージンです。@c
743 (左ページの場合は右側のマージン、右ページの場合は左側のマージンです。)
744 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
745 @code{two-sided} が真にセットされてい場合にのみ、機能します。
746
747 @item outer-margin
748 @funindex outer-margin
749
750 book の一部であるページすべてが見開きページの外側に持つマージンです。@c
751 (左ページの場合は左側のマージン、右ページの場合は右側のマージンです。)
752 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
753 @code{two-sided} が真にセットされてい場合にのみ、機能します。
754
755 @item binding-offset
756 @funindex binding-offset
757
758 製本により何かが隠れてしまわないように
759 @code{inner-margin} を増加させる量です。@c
760 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
761 @code{two-sided} が真にセットされてい場合にのみ、機能します。
762
763 @end table
764
765 @seealso
766 記譜法リファレンス:
767 @ref{紙面サイズに応じた自動拡縮}
768
769 インストールされているファイル:
770 @file{ly/paper-defaults-init.ly}
771
772
773 @node シフトとインデントのための paper 変数
774 @unnumberedsubsubsec シフトとインデントのための @code{\paper} 変数
775 @translationof \paper variables for shifts and indents
776
777 このにリスト アップされていない (拡縮される前の) デフォルト値は
778 @file{ly/paper-defaults-init.ly} で定義されています。
779
780 @table @code
781
782 @item horizontal-shift
783 @funindex horizontal-shift
784
785 @c This default value is buried in the middle of page.scm.  -mp
786
787 (タイトルとシステム セパレータを含む) すべてのシステムを@c
788 右にシフトさせる量です。@c
789 デフォルトでは @code{0.0\mm} です。
790
791 @item indent
792 @funindex indent
793
794 score の最初のシステムに対するインデントのレベルです。@c
795 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
796 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
797
798 @item short-indent
799 @funindex short-indent
800
801 最初のシステムを除くすべてのシステムに対するインデントのレベルです。@c
802 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
803 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
804
805 @end table
806
807 @seealso
808 記譜法リファレンス:
809 @ref{紙面サイズに応じた自動拡縮}
810
811 インストールされているファイル:
812 @file{ly/paper-defaults-init.ly}
813
814 コード断片集:
815 @rlsr{Spacing}
816
817
818 @node 他の paper 変数
819 @subsection 他の @code{\paper} 変数
820 @translationof Other \paper variables
821
822 @menu
823 * 改行のための paper 変数::
824 * 改ページのための paper 変数::
825 * ページ番号のための paper 変数::
826 * その他の paper 変数::
827 @end menu
828
829
830 @node 改行のための paper 変数
831 @unnumberedsubsubsec 改行のための @code{\paper} 変数
832 @translationof \paper variables for line breaking
833
834 @c TODO: Mention that ly:optimal-breaking is on by default? -mp
835
836 @table @code
837
838 @item max-systems-per-page
839 @funindex max-systems-per-page
840
841 1 ページに配置されるシステムの最大数です。@c
842 現在、これは @code{ly:optimal-breaking} アルゴリズムでのみサポートされます。@c
843 デフォルトでは、値は設定されていません。
844
845 @item min-systems-per-page
846 @funindex min-systems-per-page
847
848 1 ページに配置されるシステムの最小数です。@c
849 この値が大きすぎると、システムがページからはみ出す可能性があります。@c
850 現在、これは @code{ly:optimal-breaking} アルゴリズムでのみサポートされます。@c
851 デフォルトでは、値は設定されていません。
852
853 @item systems-per-page
854 @funindex systems-per-page
855
856 各ページに配置すべきシステム数です。@c
857 現在、これは @code{ly:optimal-breaking} アルゴリズムでのみサポートされます。@c
858 デフォルトでは、値は設定されていません。
859
860 @item system-count
861 @funindex system-count
862
863 score で使用すべきシステム数です。@c
864 デフォルトでは、値は設定されていません。@c
865 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
866
867 @end table
868
869 @seealso
870 記譜法リファレンス:
871 @ref{改行}
872
873
874 @node 改ページのための paper 変数
875 @unnumberedsubsubsec 改ページのための @code{\paper} 変数
876 @translationof \paper variables for page breaking
877
878 ここでリスト アップされていないデフォルト値は
879 @file{ly/paper-defaults-init.ly} で定義されています。
880
881 @table @code
882
883 @item blank-after-score-page-penalty
884 @funindex blank-after-score-page-penalty
885
886 楽譜の後ろ (と次の楽譜の前) に強制的に白紙を挿入します。@c
887 デフォルトでは、この値は @code{blank-page-penalty} よりも小さいため、@c
888 楽譜の途中ではなく後ろに白紙が挿入されます。
889
890 @item blank-last-page-penalty
891 @funindex blank-last-page-penalty
892
893 楽譜の最後が奇数ページの場合、楽譜の後ろに白紙を挿入します。
894
895 @item blank-page-penalty
896 @funindex blank-page-penalty
897
898 楽譜の途中に強制的に白紙を挿入します。@c
899 この値は @code{ly:optimal-breaking} では用いられません。@c
900 なぜなら、楽譜の途中の白紙を考慮しないからです。
901
902 @item page-breaking
903 @funindex page-breaking
904
905 改ページのアルゴリズムを指定します。@c
906 選択肢は @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
907 それに @code{ly:optimal-breaking} です。
908
909 @item page-breaking-system-system-spacing
910 @funindex page-breaking-system-system-spacing
911
912 改ページ アルゴリズムに @code{system-system-spacing} を実際の値とは異なる@c
913 値だと思わせるトリックです。@c
914 例えば、@code{page-breaking-system-system-spacing #'padding} を
915 @code{system-system-spacing #'padding} よりも十分に大きくすると、@c
916 改ページ アルゴリズムは各ページに数個のシステムしか配置しません。@c
917 デフォルトではセットされていません。
918
919 @item page-count
920 @funindex page-count
921
922 score で使用すべきページ数です。@c
923 デフォルトでは、値は設定されていません。
924
925 @end table
926
927 @seealso
928 記譜法リファレンス:
929 @ref{改ページ},
930 @ref{最適改ページ},
931 @ref{最適ページめくり},
932 @ref{最小改ページ},
933 @ref{1 行の改ページ}
934
935 インストールされているファイル:
936 @file{ly/paper-defaults-init.ly}
937
938
939 @node ページ番号のための paper 変数
940 @unnumberedsubsubsec ページ番号のための @code{\paper} 変数
941 @translationof \paper variables for page numbering
942
943 ここでリスト アップされていないデフォルト値は
944 @file{ly/paper-defaults-init.ly} で定義されています。
945
946 @table @code
947
948 @cindex page numbers, auto-numbering (ページ番号を自動付番する)
949 @item auto-first-page-number
950 @funindex auto-first-page-number
951
952 @c 未訳
953 The page breaking algorithm is affected by the first page number
954 being odd or even.  If set to true, the page breaking algorithm
955 will decide whether to start with an odd or even number.  This
956 will result in the first page number remaining as is or being
957 increased by one.  Default: @code{#f}.
958
959 @cindex page numbers, specify the first (最初のページ番号を指定する)
960 @item first-page-number
961 @funindex first-page-number
962
963 最初のページのページ番号の値です。
964
965 @item print-first-page-number
966 @funindex print-first-page-number
967
968 真にセットされた場合、最初のページにページ番号が譜刻されます。
969
970 @cindex page numbers, suppress (ページ番号を抑制する)
971 @item print-page-number
972 @funindex print-page-number
973
974 偽にセットされた場合、ページ番号は譜刻されません。
975
976 @end table
977
978 @seealso
979 インストールされているファイル:
980 @file{ly/paper-defaults-init.ly}
981
982 @knownissues
983 奇数のページ番号は常に右側に配置されます。@c
984 楽譜をページ 1 から始めたいのであれば、@c
985 カバー ページの裏にブランク ページ配置して、@c
986 ページ 1 が右側にくるようにする必要があります。
987
988
989 @node その他の paper 変数
990 @unnumberedsubsubsec その他の @code{\paper} 変数
991 @translationof Miscellaneous \paper variables
992
993 @table @code
994
995 @item page-spacing-weight
996 @funindex page-spacing-weight
997
998 (垂直方向の) ページ スペースと (水平方向の) 行スペースの重要度の関係です。@c
999 大きな値だと、ページ スペースがより重要になります。@c
1000 デフォルトでは、@code{10} です。
1001
1002 @item print-all-headers
1003 @funindex print-all-headers
1004
1005 真にセットされている場合、@c
1006 出力の各 @code{\score} のすべてのヘッダを譜刻します。@c
1007 通常、@code{piece} ヘッダ変数と @code{opus} ヘッダ変数だけが譜刻されます。@c
1008 デフォルトでは、@code{#f} です。
1009
1010 @item system-separator-markup
1011 @funindex system-separator-markup
1012
1013 しばしばオーケストラ譜で使用される、@c
1014 システム間に挿入されるマークアップ オブジェクトです。@c
1015 デフォルトでは、設定されていません。@c
1016 以下の例のように、@c
1017 @file{ly/titling-init.ly} で定義されている @code{\slashSeparator} マークアップ@c
1018 を使用すると適当です:
1019
1020 @lilypond[quote,verbatim,noragged-right,line-width=30\mm]
1021 #(set-default-paper-size "a8")
1022
1023 \book {
1024   \paper {
1025     system-separator-markup = \slashSeparator
1026   }
1027   \header {
1028     tagline = ##f
1029   }
1030   \score {
1031     \relative { c''1 \break c1 \break c1 }
1032   }
1033 }
1034 @end lilypond
1035
1036 @end table
1037
1038 @seealso
1039 インストールされているファイル:
1040 @file{ly/titling-init.ly}
1041
1042 コード断片集:
1043 @rlsr{Spacing}
1044
1045 @knownissues
1046 デフォルトのページ ヘッダは、@c
1047 ページ番号と @code{\header} ブロックの @code{instrument} フィールドを@c
1048 同一の行に配置します。
1049
1050
1051 @node 楽譜レイアウト
1052 @section 楽譜レイアウト
1053 @translationof Score layout
1054
1055 このセクションでは、@code{\layout} ブロックで使用する@c
1056 楽譜レイアウト オプションについて説明します。
1057
1058 @menu
1059 * \layout ブロック::
1060 * 譜サイズを設定する::
1061 @end menu
1062
1063
1064 @node \layout ブロック
1065 @subsection @code{\layout} ブロック
1066 @translationof The \layout block
1067
1068 @funindex \layout
1069
1070 @code{\paper} ブロックがドキュメント全体のページ フォーマットに関係する@c
1071 設定を保持する一方で、@c
1072 @code{\layout} ブロックは楽譜特有のレイアウトに関する設定を保持します。@c
1073 楽譜レイアウト オプションを全体に設定するには、@c
1074 設定を最上位の @code{\layout} ブロックに配置します。@c
1075 個々の楽譜に対してレイアウト オプションを設定するには、@c
1076 音楽表記の後の @code{\score} ブロック内の @code{\layout} ブロックの中に@c
1077 設定を配置します。@c
1078 @code{\layout} ブロックに配置される設定には以下のものがあります:
1079
1080 @itemize
1081 @item @code{layout-set-staff-size} Scheme 関数、
1082 @item @code{\context} ブロック内のコンテキスト変更、それに
1083 @item 楽譜レイアウトに影響を与える @code{\paper} 変数
1084 @end itemize
1085
1086 @code{layout-set-staff-size} 関数は次のセクション @ref{譜サイズを設定する}
1087 で説明します。@c
1088 コンテキスト変更は @ref{Modifying context plug-ins} と
1089 @ref{Changing context default settings} で説明します。@c
1090 @code{\layout} ブロック内で使用される @code{\paper} には以下のものがあります:
1091
1092 @itemize
1093
1094 @item
1095 @code{line-width}, @code{ragged-right} それに @code{ragged-last}
1096 (@ref{幅とマージンの paper 変数,,幅とマージンの @code{@bs{}paper} 変数} を参照してください)
1097
1098 @item
1099 @code{indent} と @code{short-indent}
1100 (@ref{シフトとインデントのための paper 変数,,シフトとインデントのための @code{@bs{}paper} 変数} を参照してください)
1101
1102 @item
1103 @code{system-count}
1104 (@ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数} を参照してください)
1105
1106 @end itemize
1107
1108 ここで、@code{\layout} ブロックの例を挙げます:
1109
1110 @example
1111 \layout @{
1112   indent = 2\cm
1113   \context @{
1114     \StaffGroup
1115     \override StaffGrouper.staff-staff-spacing.basic-distance = #8
1116   @}
1117   \context @{
1118     \Voice
1119     \override TextScript.padding = #1
1120     \override Glissando.thickness = #3
1121   @}
1122 @}
1123 @end example
1124
1125 最上位の表記として複数の @code{\layout} ブロックを配置することができます。@c
1126 これは、例えば、異なる設定が別個のファイルに保存されていて、任意の方法で@c
1127 インクルードする場合に有用です。@c
1128 内部的には、@code{\layout} ブロックが評価される時、カレントの
1129 @code{\layout} 構成のコピーが作成され、評価する @code{\layout} ブロックの@c
1130 内部で定義されている変更が適用され、その結果が新しいカレントの構成として@c
1131 保存されます。@c
1132 ユーザからは @code{\layout} ブロックが組み合わされたように見えますが、@c
1133 衝突が発生した場合 (複数のブロックで同じプロパティが変更された場合)、@c
1134 最後の定義が有効になります。
1135
1136 例えば、下記のブロック:
1137
1138 @example
1139 \layout @{
1140   \context @{
1141     \Voice
1142     \override TextScript.color = #magenta
1143     \override Glissando.thickness = #1.5
1144   @}
1145 @}
1146 @end example
1147
1148 これが一つ前の例の後に配置された場合、@code{TextScript} の @code{'padding}
1149 設定と @code{'color} 設定は組み合わせれますが、@code{Glissando} の
1150 @code{'thickness} 設定は前の設定と置き換わります (前の設定を上書きします)。
1151
1152 @code{\layout} ブロックを後で再利用するために変数に代入することができます。@c
1153 しかしながら、この方法は @code{\layout} ブロックを直接記述した場合とは@c
1154 少しですが重大な違いがあります。
1155
1156 変数を以下のように定義した場合:
1157
1158 @example
1159 layoutVariable = \layout @{
1160   \context @{
1161     \Voice
1162     \override NoteHead.font-size = #4
1163   @}
1164 @}
1165 @end example
1166
1167 カレントの @code{\layout} 構成に @code{NoteHead #'font-size} 設定を追加@c
1168 しますが、この組み合わせは新しいカレントの構成として保存され @emph{ません}。@c
1169 @q{カレントの構成} は変数が定義された時に評価されるのであり、変数が使われる@c
1170 時に評価されるのではありません。@c
1171 そのため、変数の効果は変数がソースに配置された位置によって異なります。
1172
1173 変数を他の @code{\layout} ブロックの中で使うことができます。@c
1174 例えば、以下のように:
1175
1176 @example
1177 \layout @{
1178   \layoutVariable
1179   \context @{
1180     \Voice
1181     \override NoteHead.color = #red
1182   @}
1183 @}
1184 @end example
1185
1186 上記のような変数を含む @code{\layout} ブロックは、カレントの構成をコピー@c
1187 せず、設定を追加するためのベースとなる構成として @code{\layoutVariable} の@c
1188 内容を用います。@c
1189 このことは、変数が定義されてから使われるまでの間に定義された変更は失われる@c
1190 ということを意味します。
1191
1192 @code{layoutVariable} が使われる (あるいは @code{\include} される) 直前に@c
1193 定義されている場合、@code{layoutVariable} の内容はカレントの構成に変数内部@c
1194 で定義した設定を加えたものになります。@c
1195 そのため、上で示した @code{\layoutVariable} の使用例の場合、最終的な
1196 @code{\layout} ブロックの構成は以下のようになります:
1197
1198 @example
1199   TextScript.padding = #1
1200   TextScript.color = #magenta
1201   Glissando.thickness = #1.5
1202   NoteHead.font-size = #4
1203   NoteHead.color = #red
1204 @end example
1205
1206 これに @code{indent} と @code{StaffGrouper} の設定がプラスしたものです。
1207
1208 しかしながら、変数が最初の @code{\layout} ブロックより前に定義されていた@c
1209 場合、カレントの構成は以下だけになってしまいます:
1210
1211 @example
1212   NoteHead.font-size= #4 % (変数定義で記述されたものです)
1213   NoteHead.color = #red % (変数が使用された後に追加されたものです)
1214 @end example
1215
1216 注意深く計画を立てれば、@code{\layout} 変数はソースのレイアウト設計を構築@c
1217 して、@code{\layout} 構成を既知の状態にリセットするための有用なツールに@c
1218 なります。
1219
1220 @seealso
1221 記譜法リファレンス:
1222 @ref{Changing context default settings}
1223
1224 コード断片集:
1225 @rlsr{Spacing}
1226
1227
1228 @node 譜サイズを設定する
1229 @subsection 譜サイズを設定する
1230 @translationof Setting the staff size
1231
1232 @cindex font size, setting (フォント サイズを設定する)
1233 @cindex staff size, setting (譜サイズを設定する)
1234 @funindex layout file
1235
1236 デフォルトの @strong{譜サイズ} は 20 ポイントに設定されています。@c
1237 これを変更するには 2 つの方法があります:
1238
1239 譜サイズをファイルの中にあるすべての楽譜
1240 (正確には @code{book} ブロックの中にあるすべての楽譜)
1241 に設定するには、@c
1242 @code{set-global-staff-size} を使用します。
1243
1244 @example
1245 #(set-global-staff-size 14)
1246 @end example
1247
1248 @noindent
1249 これはグローバルなデフォルトの譜サイズを高さが 14pt になるよう設定し、@c
1250 それに応じてすべてのフォントを拡縮します。
1251
1252 それぞれの楽譜に個別に譜サイズを設定するには、@c
1253 以下のようにします:
1254 @example
1255 \score@{
1256   @dots{}
1257   \layout @{
1258     #(layout-set-staff-size 15)
1259   @}
1260 @}
1261 @end example
1262
1263 Emmentaler フォントは 8 つのサイズの音楽シンボルを提供します。
1264 各フォントは譜サイズに合わせて調整されます:
1265 小さなサイズになるにつれて、@c
1266 相対的に太くなる譜線に対して釣り合いをとるために、@c
1267 太くなります。@c
1268 推奨されるフォント サイズを以下の表にリストアップします:
1269
1270 @quotation
1271 @multitable @columnfractions .15 .2 .22 .2
1272
1273 @item @b{フォント名}
1274 @tab @b{譜の高さ (pt)}
1275 @tab @b{譜の高さ (mm)}
1276 @tab @b{用途}
1277
1278 @item feta11
1279 @tab 11.22
1280 @tab 3.9
1281 @tab ポケット サイズの楽譜
1282
1283 @item feta13
1284 @tab 12.60
1285 @tab 4.4
1286 @tab
1287
1288 @item feta14
1289 @tab 14.14
1290 @tab 5.0
1291 @tab
1292
1293 @item feta16
1294 @tab 15.87
1295 @tab 5.6
1296 @tab
1297
1298 @item feta18
1299 @tab 17.82
1300 @tab 6.3
1301 @tab 歌集
1302
1303 @item feta20
1304 @tab 20
1305 @tab 7.0
1306 @tab 標準パート譜
1307
1308 @item feta23
1309 @tab 22.45
1310 @tab 7.9
1311 @tab
1312
1313 @item feta26
1314 @tab 25.2
1315 @tab 8.9
1316 @tab
1317 @c modern レンタルの資料?
1318
1319 @end multitable
1320 @end quotation
1321
1322 これらのフォントは任意のサイズで利用可能です。@c
1323 コンテキスト プロパティ @code{fontSize} と@c
1324 レイアウト プロパティ @code{staff-space}
1325 (@rinternals{StaffSymbol} の中にあります)
1326 を使用することで、@c
1327 個々の譜に対してサイズを調整することができます。@c
1328 個々の譜のサイズはグローバル サイズとの相対値です。
1329
1330 @seealso
1331 記譜法リファレンス:
1332 @ref{記譜フォント サイズを選択する},
1333 @ref{The Emmentaler font}.
1334
1335 コード断片集:
1336 @rlsr{Spacing}
1337
1338 @knownissues
1339 @code{layout-set-staff-size} は譜線の間隔を変更しません。
1340
1341
1342 @node 改行/改ページ
1343 @section 改行/改ページ
1344 @translationof Breaks
1345
1346 @menu
1347 * 改行::
1348 * 改ページ::
1349 * 最適改ページ::
1350 * 最適ページめくり::
1351 * 最小改ページ::
1352 * 1 行の改ページ::
1353 * 明示的な改行/改ページ::
1354 * 改行/改ページのために追加のボイスを使用する::
1355 @end menu
1356
1357 @node 改行
1358 @subsection 改行
1359 @translationof Line breaking
1360
1361 @cindex line breaks (改行)
1362 @cindex breaking lines (改行する)
1363
1364 通常、改行は自動的に決定されます。@c
1365 改行は、行が混み合って見えたり散漫に見えたりしないように、@c
1366 連続する行の密度が同じくらいになるように選択されます。
1367
1368 小節線が引かれる場所で手動で強制的に改行を入れるには、@c
1369 @code{\break} コマンドを使用します:
1370
1371 @lilypond[quote,ragged-right,verbatim]
1372 \relative c'' {
1373   c4 c c c | \break
1374   c4 c c c |
1375 }
1376 @end lilypond
1377
1378 デフォルトでは、小節の途中での @code{\break} は無視され、@c
1379 警告が表示されます。@c
1380 小節の途中で強制的に改行を入れるには、@c
1381 @w{@samp{\bar ""}} を用いて不可視の小節線を追加します:
1382
1383 @lilypond[quote,ragged-right,verbatim]
1384 \relative c'' {
1385   c4 c c
1386   \bar "" \break
1387   c |
1388   c4 c c c |
1389 }
1390 @end lilypond
1391
1392 連符が開始する小節と終了する小節が異なる場合などのように、@c
1393 前の小節が音符の途中で終わっている場合、@c
1394 前の小節の終わりに @code{\break} を配置しても無視されます。@c
1395 そのような状況で、@code{\break} コマンドを機能させるには、@c
1396 @code{Voisce} コンテキストから @code{Forbid_line_break_engraver} を@c
1397 削除します。@c
1398 音符の途中で強制的に改行を入れるには、@c
1399 音楽と並列に改行コマンドを追加する必要があるということに注意してください:
1400
1401 @lilypond[quote,ragged-right,verbatim]
1402 \new Voice \with {
1403   \remove "Forbid_line_break_engraver"
1404 } \relative {
1405   <<
1406     { c''2. \tuplet 3/2 { c4 c c } c2. | }
1407     { s1 | \break s1 | }
1408   >>
1409 }
1410 @end lilypond
1411
1412 同様に、通常は連桁が小節線を跨いでいる場合も、改行は禁止されます。@c
1413 この振る舞いは、@code{\override Beam.breakable = ##t} により、@c
1414 変更することができます:
1415
1416 @lilypond[quote,ragged-right,verbatim]
1417 \relative c'' {
1418   \override Beam.breakable = ##t
1419   c2. c8[ c | \break
1420   c8 c] c2. |
1421 }
1422 @end lilypond
1423
1424 @code{\noBreak} コマンドは、コマンドが配置された小節線での改行を禁止します。
1425
1426 行スペースに影響を与える最も基本的な設定は @code{indent} と
1427 @code{line-width} です。@c
1428 これらは @code{\layout} ブロック内で設定されます。@c
1429 これらは音楽の最初の行のインデントと行の長さを制御します。
1430
1431 @code{\layout} ブロック内で @code{ragged-right} が真にセットされた場合、@c
1432 システムは、行全体に広がらずに、本来の長さで終了します。@c
1433 これは短い楽譜の断片を記譜する場合や、@c
1434 本来のスペースがどれくらい密になっているかチェックする場合に有用です。
1435
1436 @c TODO Check and add para on default for ragged-right
1437
1438 オプション @code{ragged-last} は @code{ragged-right} と似ていますが、@c
1439 楽曲の最後の行にだけ効果を持ちます。
1440
1441 @example
1442 \layout @{
1443   indent = 0\mm
1444   line-width = 150\mm
1445   ragged-last = ##t
1446 @}
1447 @end example
1448
1449
1450
1451 @cindex regular line breaks (規則的な改行)
1452 @cindex four bar music (4 小節楽譜)
1453
1454 規則的な間隔で改行を行うには、@c
1455
1456 スキップで区切られた @code{\break} を用いて、@c
1457 それを @code{\repeat} で繰り返します。@c
1458 例えば、@c
1459 以下の例は 28 小節 (4/4 拍子と仮定して) であり、@c
1460 4 小節ごとに改行が入ります
1461 (それ以外の場所で改行が入ることはありません):
1462
1463 @example
1464 <<
1465   \repeat unfold 7 @{
1466     s1 \noBreak s1 \noBreak
1467     s1 \noBreak s1 \break
1468   @}
1469   @{ @var{実際の音楽@dots{}} @}
1470 >>
1471 @end example
1472
1473 @c TODO Check this
1474 改行設定を自動的に @file{.ly} ファイルに保存することができます。@c
1475 これにより、@c
1476 2 回目のフォーマット実行時に垂直方向のスペースがページにフィットするよう@c
1477 引き伸ばされます。@c
1478 この機能は本当に新しく、複雑です。@c
1479 詳細は @rlsr{Spacing} を参照してください。
1480
1481
1482 @predefined
1483 @funindex \break
1484 @code{\break},
1485 @funindex \noBreak
1486 @code{\noBreak}
1487 @endpredefined
1488
1489 @seealso
1490 記譜法リファレンス:
1491 @ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数}
1492
1493 コード断片集:
1494 @rlsr{Spacing}
1495
1496 内部リファレンス:
1497 @rinternals{LineBreakEvent}
1498
1499
1500 @node 改ページ
1501 @subsection 改ページ
1502 @translationof Page breaking
1503
1504 デフォルトの改ページは、@c
1505 @code{\pageBreak} や @code{\noPageBreak} を挿入することによって@c
1506 上書きすることができます。@c
1507 これらのコマンドは @code{\break} と @code{\noBreak} に似ています。
1508 これらのコマンドは小節線のところに挿入すべきであり、@c
1509 改ページを強制/禁止します。@c
1510 当然のことですが、@c
1511 @code{\pageBreak} は強制的に改行も行います。
1512
1513 @code{\pageBreak} コマンドと @code{\noPageBreak} コマンドは@c
1514 最上位レベルに挿入することができ、@c
1515 score や最上位レベルのマークアップの間に挿入することができます。
1516
1517 @code{ragged-right} や @code{ragged-last} と類似で、@c
1518 垂直方向のスペースに対して同じ効果を持つ設定があります:
1519 @code{ragged-bottom} と @code{ragged-last-bottom} です。@c
1520 これらの設定が @code{#t} にセットされている場合、@c
1521 すべてのページあるいは最後のページのシステムは@c
1522 ページの垂直方向全体には広がりません。@c
1523 @ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数} を参照してください。
1524
1525 改ページは @code{page-breaking} 関数によって算出されます。@c
1526 LilyPond は改ページを算出するために 3 つのアルゴリズムを提供します:
1527 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking}, それに
1528 @code{ly:minimal-breaking} です。@c
1529 デフォルトは @code{ly:optimal-breaking} ですが、@c
1530 @code{\paper} ブロックの中で変更することができます:
1531
1532 @example
1533 \paper @{
1534   page-breaking = #ly:page-turn-breaking
1535 @}
1536 @end example
1537
1538 @funindex \bookpart
1539
1540 1 つのブックが多くの楽譜とページを持つ場合、@c
1541 改ページを処理するのに多くの処理時間とメモリが必要になり、@c
1542 改ページの問題を解決することが困難になる可能性があります。@c
1543 改ページ処理を簡単にするために、@c
1544 @code{\bookpart} ブロックを用いてブックをいくつかのパートに分割します:
1545 改ページはパートごとに別々に処理されます。@c
1546 異なるブック パートには、@c
1547 異なる改ページ関数を使用することもできます。
1548
1549 @example
1550 \bookpart @{
1551   \header @{
1552     subtitle = "Preface"
1553   @}
1554   \paper @{
1555      %% ほとんどテキストしか保持していないパートでは
1556      %% ly:minimal-breaking が適しています
1557      page-breaking = #ly:minimal-breaking
1558   @}
1559   \markup @{ @dots{} @}
1560   @dots{}
1561 @}
1562 \bookpart @{
1563   %% このパートは音楽を保持しているので、デフォルトの
1564   %% ly:optimal-breaking を使用します
1565   \header @{
1566     subtitle = "First movement"
1567   @}
1568   \score @{ @dots{} @}
1569   @dots{}
1570 @}
1571 @end example
1572
1573
1574 @predefined
1575 @funindex \pageBreak
1576 @code{\pageBreak},
1577 @funindex \noPageBreak
1578 @code{\noPageBreak}
1579 @endpredefined
1580
1581 @seealso
1582 記譜法リファレンス:
1583 @ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数}
1584
1585 コード断片集:
1586 @rlsr{Spacing}
1587
1588
1589 @node 最適改ページ
1590 @subsection 最適改ページ
1591 @translationof Optimal page breaking
1592
1593 @funindex ly:optimal-breaking
1594
1595 @code{ly:optimal-breaking} 関数は、@c
1596 LilyPond が改ページを決定するためのデフォルトの手法です。
1597 この関数は、@c
1598 ページの (水平方向と垂直方向の両方の) 混み合いや広がりすぎを@c
1599 最小にする改ページを見つけ出そうと試みます。@c
1600 @code{ly:page-turn-breaking} とは異なり、@c
1601 この関数はページめくりについて考慮しません。
1602
1603 @seealso
1604 コード断片集:
1605 @rlsr{Spacing}
1606
1607
1608 @node 最適ページめくり
1609 @subsection 最適ページめくり
1610 @translationof Optimal page turning
1611
1612 @funindex ly:page-turn-breaking
1613
1614 しばしば、@c
1615 2 枚目のページ (横書きの本を開いたときの右側のページ) の終わりに@c
1616 休符を置くための改ページ構成が必要になります。@c
1617 こうすることで、@c
1618 演奏者は音符を見失うことなくページをめくることができます。@c
1619 @code{ly:page-turn-breaking} 関数は@c
1620 ページの混み合いや広がりすぎを最小にする改ページを見つけ出そうと試みますが、@c
1621 ページめくりを特定の場所だけに置くための制約を受けます。
1622
1623 この改ページ関数を使うには、2 つのステップがあります。@c
1624 最初に、@ref{改ページ} で説明されているように、@c
1625 @code{\paper} ブロックの中でこの関数を有効にする必要があります。@c
1626 次に、この関数に改ページを許可したい場所を教える必要があります。
1627
1628 2 番目のステップを達成するには、2 つの方法があります。@c
1629 1 つ目の方法では、@c
1630 入力ファイルの適当な場所に @code{\allowPageTurn} を挿入することによって、@c
1631 潜在的なページめくりを手動で指定します。
1632
1633 この方法では手間がかかりすぎる場合は、@c
1634 @code{Page_turn_engraver} を
1635 @code{Staff} あるいは @code{Voice} コンテキストに追加します。@c
1636 @code{Page_turn_engraver} はコンテキストをスキャンして@c
1637 音符の無いセクションを探します
1638 (休符を探すわけではなく、音符の無い部分を探すということに注意してください。@c
1639 単一譜の多声で、ボイスの 1 つが休符を持つ場合に、@c
1640 @code{Page_turn_engraver} に渡されないようにするためです。)
1641 @code{Page_turn_engraver} は音符を持たない十分に長いセクションを見つけると、@c
1642 @q{特殊な} 小節線 (2 重小節線など) がないかぎりは、@c
1643 そのセクションの最後の小節線のところに @code{\allowPageTurn} を挿入します。
1644
1645 @funindex minimumPageTurnLength
1646
1647 @code{Page_turn_engraver} は@c
1648 コンテキスト プロパティ @code{minimumPageTurnLength} を読み込んで、@c
1649 どれくらい音符が無いセクションが続いたらページめくりを考慮するかを決定します。@c
1650 @code{minimumPageTurnLength} のデフォルト値は
1651 @code{(ly:make-moment 1/1)} です。@c
1652 ページめくりを不可にしたいのならば、@c
1653 @code{minimumPageTurnLength} に非常に大きな値をセットします。
1654
1655 @example
1656 \new Staff \with @{ \consists "Page_turn_engraver" @}
1657 @{
1658   a4 b c d |
1659   R1 | % ここでページめくりが許可されます
1660   a4 b c d |
1661   \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
1662   R1 | % ここではページめくりは許可されません
1663   a4 b r2 |
1664   R1*2 | % ここでページめくりが許可されます
1665   a1
1666 @}
1667 @end example
1668
1669 @funindex minimumRepeatLengthForPageTurn
1670
1671 @code{Page_turn_engraver} は volta 繰り返しを検出します。@c
1672 繰り返しの開始と終わりにページめくりを行うのに十分な時間がある場合にのみ、@c
1673 その繰り返しの最中でのページめくりが許可されます。@c
1674 繰り返しが非常に短い場合、@c
1675 @code{Page_turn_engraver} はページめくりを不可にする可能性があります。@c
1676 コンテキスト プロパティ @code{minimumRepeatLengthForPageTurn} に値を@c
1677 設定した場合、@c
1678 その値よりも長い演奏時間を持つ繰り返しに対してのみ、@c
1679 @code{Page_turn_engraver} は繰り返しの最中でページめくりを許可します。
1680
1681 ページめくりコマンド @code{\pageTurn}, @code{\noPageTurn}
1682 それに @code{\allowPageTurn} は、@c
1683 最上位レベル、score や最上位のマークアップの間で使用される可能性もあります。
1684
1685 @predefined
1686 @funindex \pageTurn
1687 @code{\pageTurn},
1688 @funindex \noPageTurn
1689 @code{\noPageTurn},
1690 @funindex \allowPageTurn
1691 @code{\allowPageTurn}
1692 @endpredefined
1693
1694 @seealso
1695 コード断片集:
1696 @rlsr{Spacing}
1697
1698 @knownissues
1699 score の中に配置する @code{Page_turn_engraver} は 1 つだけにするべきです。@c
1700 複数の @code{Page_turn_engraver} がある場合、@c
1701 互いに干渉し合います。
1702
1703
1704 @node 最小改ページ
1705 @subsection 最小改ページ
1706 @translationof Minimal page breaking
1707
1708 @funindex ly:minimal-breaking
1709
1710 The @code{ly:minimal-breaking} 関数は最小限の改ページを算出します:
1711 この関数は 1 ページに可能な限り多くのシステムを配置します。@c
1712 そのため、多くのページを持つ楽譜
1713 -- そのような場合、他の改ページ関数では時間がかかりすぎたり、@c
1714 メモリ使用量が多くなりすぎたりします --
1715 や、多くのテキストを持つ楽譜でこの関数を使用すると良いかもしれません。@c
1716 この関数を有効にするには以下のようにします:
1717
1718 @example
1719 \paper @{
1720   page-breaking = #ly:minimal-breaking
1721 @}
1722 @end example
1723
1724 @seealso
1725 コード断片集:
1726 @rlsr{Spacing}
1727
1728 @node 1 行の改ページ
1729 @subsection 1 行の改ページ
1730 @translationof One-line page breaking
1731
1732 @funindex ly:one-line-breaking
1733
1734 @code{ly:one-line-breaking} 関数は特殊な目的のための改ページアルゴリズム@c
1735 で、楽譜をそれぞれ 1 ページに 1 行で配置します。@c
1736 この改ページ関数はタイトルやマージンを譜刻しません。楽譜だけを譜刻します。
1737
1738 ページ幅は最も長い楽譜が 1 行に納まるように調節されます。@c
1739 @code{\paper} ブロックの中にある変数 @code{paper-width}, @code{line-width}
1740 それに @code{indent} は無視されますが、@code{left-margin} と
1741 @code{right-margin} は有効です。@c
1742 ページの高さは変更されません。
1743
1744 @node 明示的な改行/改ページ
1745 @subsection 明示的な改行/改ページ
1746 @translationof Explicit breaks
1747
1748 LilyPond はしばしば明示的な @code{\break} や @code{\pageBreak} を@c
1749 却下します。@c
1750 この振る舞いを上書きするための 2 つのコマンドがあります:
1751
1752 @example
1753 \override NonMusicalPaperColumn.line-break-permission = ##f
1754 \override NonMusicalPaperColumn.page-break-permission = ##f
1755 @end example
1756
1757 @code{line-break-permission} が偽に上書きされた場合、@c
1758 LilyPond は明示的な改行である @code{\break} コマンドのところで改行を行い、@c
1759 他の場所では改行を行いません。@c
1760 @code{page-break-permission} が偽に上書きされた場合、@c
1761 LilyPond は明示的な改ページである
1762 @code{\pageBreak} コマンドのところで改ページを行い、@c
1763 他の場所では改ページを行いません。
1764
1765 @lilypond[quote,verbatim]
1766 \paper {
1767   indent = #0
1768   ragged-right = ##t
1769   ragged-bottom = ##t
1770 }
1771
1772 music = \relative { c''8 c c c }
1773
1774 \score {
1775   \new Staff {
1776     \repeat unfold 2 { \music } \break
1777     \repeat unfold 4 { \music } \break
1778     \repeat unfold 6 { \music } \break
1779     \repeat unfold 8 { \music } \pageBreak
1780     \repeat unfold 8 { \music } \break
1781     \repeat unfold 6 { \music } \break
1782     \repeat unfold 4 { \music } \break
1783     \repeat unfold 2 { \music }
1784   }
1785   \layout {
1786     \context {
1787       \Score
1788       \override NonMusicalPaperColumn.line-break-permission = ##f
1789       \override NonMusicalPaperColumn.page-break-permission = ##f
1790     }
1791   }
1792 }
1793 @end lilypond
1794
1795 @seealso
1796 コード断片集:
1797 @rlsr{Spacing}
1798
1799
1800 @node 改行/改ページのために追加のボイスを使用する
1801 @subsection 改行/改ページのために追加のボイスを使用する
1802 @translationof Using an extra voice for breaks
1803
1804 通常、改行/改ページ情報は音符入力部分に直接入力します。
1805
1806 @example
1807 music = \relative @{ c''4 c c c @}
1808
1809 \score @{
1810   \new Staff @{
1811     \repeat unfold 2 @{ \music @} \break
1812     \repeat unfold 3 @{ \music @}
1813   @}
1814 @}
1815 @end example
1816
1817 この方法では @code{\break} と @code{\pageBreak} コマンドを入力しやすいですが、@c
1818 音楽入力と@c
1819 音楽をどのようにページにレイアウトするかを指定する情報とが混ざってしまいます。@c
1820 改行/改ページ情報を保持するための追加のボイスを導入することによって、@c
1821 音楽入力と改行/改ページ情報を 2 つ場所に分けることができます。@c
1822 この追加のボイスはスキップ、@code{\break}、@code{\pageBreak}、それに、@c
1823 その他の改行/改ページ情報だけを保持します。
1824
1825 @lilypond[quote,verbatim]
1826 music = \relative { c''4 c c c }
1827
1828 \score {
1829   \new Staff <<
1830     \new Voice {
1831       s1 * 2 \break
1832       s1 * 3 \break
1833       s1 * 6 \break
1834       s1 * 5 \break
1835     }
1836     \new Voice {
1837       \repeat unfold 2 { \music }
1838       \repeat unfold 3 { \music }
1839       \repeat unfold 6 { \music }
1840       \repeat unfold 5 { \music }
1841     }
1842   >>
1843 }
1844 @end lilypond
1845
1846 @ignore
1847 This pattern becomes especially helpful when overriding
1848 @code{line-break-system-details} and the other useful but long properties of
1849 @code{NonMusicalPaperColumnGrob}, as explained in @ref{垂直方向のスペース}.
1850 @end ignore
1851
1852 以下の方法は、@ref{垂直方向のスペース} で説明されているように、@c
1853 @code{NonMusicalPaperColumnGrob} の @code{line-break-system-details} と@c
1854 他の有用だが長いプロパティを上書きするときに、非常に役に立ちます。
1855
1856 @lilypond[quote,verbatim]
1857 music = \relative { c''4 c c c }
1858
1859 \score {
1860   \new Staff <<
1861     \new Voice {
1862       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
1863       s1 * 2 \break
1864
1865       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
1866       s1 * 3 \break
1867
1868       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
1869       s1 * 6 \break
1870
1871       \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
1872       s1 * 5 \break
1873     }
1874     \new Voice {
1875       \repeat unfold 2 { \music }
1876       \repeat unfold 3 { \music }
1877       \repeat unfold 6 { \music }
1878       \repeat unfold 5 { \music }
1879     }
1880   >>
1881 }
1882 @end lilypond
1883
1884 @seealso
1885 記譜法リファレンス:
1886 @ref{垂直方向のスペース}
1887
1888 コード断片集:
1889 @rlsr{Spacing}
1890
1891
1892 @node 垂直方向のスペース
1893 @section 垂直方向のスペース
1894 @translationof Vertical spacing
1895
1896 @cindex vertical spacing (垂直方向のスペース)
1897 @cindex spacing, vertical (垂直方向のスペース)
1898
1899 垂直方向のスペースは 3 つの要素によって制御されます:
1900 利用可能なスペースの量 (つまり、紙面サイズとマージン)、@c
1901 システムの間隔、それにシステム内部での譜の間隔です。
1902
1903 @menu
1904 * システム内部の可変な垂直方向のスペース::
1905 * 譜とシステムを明示的に配置する::
1906 * 垂直方向の衝突回避::
1907 @end menu
1908
1909
1910 @node システム内部の可変な垂直方向のスペース
1911 @subsection システム内部の可変な垂直方向のスペース
1912 @translationof Flexible vertical spacing within systems
1913
1914 @cindex distance between staves (譜の間隔)
1915 @cindex staff distance (譜の間隔)
1916 @cindex space between staves (譜の間のスペース)
1917 @cindex space inside systems (システム内部のスペース)
1918
1919 システム内部の可変な垂直方向のスペースを制御する 3 つの仕組みがあり、@c
1920 以下のカテゴリに分けられます:
1921
1922 @itemize
1923
1924 @item
1925 @emph{グループ化されていない譜},
1926
1927 @item
1928 @emph{グループ化されている譜}
1929 (@code{ChoirStaff} 等のような譜グループ内の譜)
1930
1931 @item
1932 @emph{譜ではない行}
1933 (@code{Lyrics}, @code{ChordNames} 等)
1934
1935 @end itemize
1936
1937 @c TODO: Clarify this.  This almost implies that non-staff lines
1938 @c       have NO effect on the spacing between staves.  -mp
1939
1940 システムの高さは 2 つのステップで決定されます。@c
1941 最初に、すべての譜が利用可能なスペースの量に応じた間隔で配置されます。@c
1942 次に、譜ではない行が譜の間に配置されます。
1943
1944 このセクションでは、@c
1945 システム内部の譜と譜ではない行の垂直方向のスペースを制御する@c
1946 仕組みだけを説明しているということに注意してください。@c
1947 システム、score、マークアップ、それにマージン間の垂直方向のスペースは、@c
1948 @code{\paper} 変数によって制御されます
1949 -- @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数} で説明しています。
1950
1951 @menu
1952 * システム内部のスペース プロパティ::
1953 * グループ化されていない譜のスペース::
1954 * グループ化されている譜のスペース::
1955 * 譜ではない行のスペース::
1956 @end menu
1957
1958
1959 @node システム内部のスペース プロパティ
1960 @unnumberedsubsubsec システム内部のスペース プロパティ
1961 @translationof Within-system spacing properties
1962
1963 @funindex staff-affinity
1964 @funindex staffgroup-staff-spacing
1965 @funindex staff-staff-spacing
1966 @funindex nonstaff-unrelatedstaff-spacing
1967 @funindex nonstaff-relatedstaff-spacing
1968 @funindex nonstaff-nonstaff-spacing
1969 @funindex default-staff-staff-spacing
1970 @funindex minimum-Y-extent
1971 @funindex extra-offset
1972 @funindex self-alignment-X
1973 @funindex X-offset
1974 @funindex VerticalAxisGroup
1975
1976 システム内部の垂直方向のスペースは、2 セットのグラフィカル オブジェクト
1977 プロパティによって制御されます。@c
1978 1 つ目は @code{VerticalAxisGroup} グラフィカル オブジェクト
1979 -- これは、譜と譜ではない行によって作成されます --
1980 のプロパティ セットです。@c
1981 2 つ目は @code{StaffGrouper} グラフィカル オブジェクト
1982 -- これは、明示的に呼び出された場合に、譜グループによって作成されます --
1983 のプロパティ セットです。@c
1984 これらのプロパティは、このセクションの終わりで説明します。
1985
1986 これらのプロパティの名前は (@code{staff-affinity} を除いて)、@c
1987 @code{@var{item1}-@var{item2}-spacing} という形式に従います
1988 -- ここで、@code{@var{item1}} と @code{@var{item2}} は、スペースを入れられる@c
1989 要素です。@c
1990 @code{@var{item2}} は必ずしも @code{@var{item1}} の下にある要素ではないという@c
1991 ことに注意してください。@c
1992 例えば、@code{staff-affinity} が @code{UP} である場合、@c
1993 @code{nonstaff-relatedstaff-spacing} は譜ではない行から@c
1994 上向きにスペースをとります。
1995
1996 スペースは、2 つの要素の @emph{参照ポイント} 間の距離です。@c
1997 譜の参照ポイントは、その譜の @code{StaffSymbol}
1998 (すなわち、@code{line-count} が奇数の場合は中央の譜線で、@c
1999 @code{line-count} が偶数の場合は中央のスペースです)
2000 の垂直方向の中央です。@c
2001 譜ではない行の参照ポイントは、以下の表のようになります:
2002
2003 @multitable {Non-staff line} {Reference point}
2004 @headitem 譜ではない行   @tab 参照ポイント
2005 @item @code{ChordNames}  @tab ベースライン
2006 @item @code{NoteNames}   @tab ベースライン
2007 @item @code{Lyrics}      @tab ベースライン
2008 @item @code{Dynamics}    @tab 垂直方向の中央
2009 @item @code{FiguredBass} @tab 最も上のポイント
2010 @item @code{FretBoards}  @tab トップ ライン
2011 @end multitable
2012
2013 以下の画像では、水平方向の線が参照ポイントの位置を示しています:
2014
2015 @lilypond[quote,noragged-right,line-width=110\mm]
2016 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
2017
2018 alignToZero = \with {
2019   \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
2020   \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
2021 }
2022 lowerCaseChords = \with {
2023   chordNameLowercaseMinor = ##t
2024 }
2025 staffAffinityDown = \with {
2026   \override VerticalAxisGroup.staff-affinity = #DOWN
2027 }
2028 labelContext =
2029 #(define-music-function
2030      (context)
2031      (string?)
2032    #{ s1*0^\markup { \typewriter #context } #})
2033
2034 \layout {
2035   \context { \Dynamics    \alignToZero }
2036   \context { \FiguredBass \alignToZero }
2037   \context { \Lyrics      \alignToZero }
2038   \context { \NoteNames   \alignToZero \staffAffinityDown }
2039   \context { \ChordNames  \alignToZero
2040                           \staffAffinityDown
2041                           \lowerCaseChords }
2042   \context { \FretBoards  \alignToZero \staffAffinityDown }
2043   \context { \Score
2044     \omit BarLine
2045     \override DynamicText.self-alignment-X = #-1
2046     \override FretBoard.X-offset = #1.75
2047     \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
2048     \override InstrumentName.extra-offset = #'(0 . -0.5)
2049     \override TextScript.minimum-Y-extent = #'(-2 . 3)
2050     \omit TimeSignature
2051   }
2052 }
2053
2054 %% These contexts have reference points at the baseline:
2055 %%   ChordNames, NoteNames, and Lyrics
2056 <<
2057   \new ChordNames { \chords { g1:m } }
2058   \new NoteNames { s1 | g1 | }
2059   \new RhythmicStaff {
2060     \set RhythmicStaff.instrumentName = #"baseline "
2061     \textLengthOn
2062     \labelContext "ChordNames " s1 |
2063     \labelContext "NoteNames "  s1 |
2064     \labelContext "Lyrics"     s1 |
2065   }
2066   \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
2067 >>
2068
2069 %% The reference point for Dynamics is its vertical center
2070 <<
2071   \new RhythmicStaff {
2072     \set RhythmicStaff.instrumentName = #"vertical center "
2073     \labelContext "Dynamics" s1*3
2074   }
2075   \new Dynamics { s1\mp s\fp }
2076 >>
2077
2078 %% The reference point for FiguredBass is its highest point
2079 <<
2080   \new RhythmicStaff {
2081     \set RhythmicStaff.instrumentName = #"highest point "
2082     \labelContext "FiguredBass" s1
2083   }
2084   \new FiguredBass { \figuremode { <6 5>1 } }
2085 >>
2086
2087 %% The reference point for FretBoards is the top line
2088 \include "predefined-guitar-fretboards.ly"
2089 <<
2090   \new FretBoards { \chordmode { e1 } }
2091   \new RhythmicStaff {
2092     \set RhythmicStaff.instrumentName = #"top line "
2093     \labelContext "FretBoards " s1
2094   }
2095 >>
2096 @end lilypond
2097
2098 垂直方向のスペースのグラフィカル オブジェクト プロパティは
2099 (@code{staff-affinity} を除いて)、@c
2100 @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数} で説明した
2101 @code{\paper} スペース変数と同じ連想配列構造を使用します。
2102 連想配列を変更する方法は、@ref{Modifying alists} で説明します。@c
2103 グラフィカル オブジェクト プロパティの調節は、@c
2104 @code{\score} ブロックか @code{\layout} ブロックの内部で、@c
2105 @code{\override} を用いて行う必要があります。
2106
2107 以下の例は、連想配列を変更する 2 つの方法を示しています。@c
2108 最初の宣言は 1 つのキー値を個別に更新して、@c
2109 2 番目の宣言はプロパティ全体を再定義しています:
2110
2111 @example
2112 \new Staff \with @{
2113   \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2114 @} @{ @dots{} @}
2115
2116 \new Staff \with @{
2117   \override VerticalAxisGroup.default-staff-staff-spacing =
2118     #'((basic-distance . 10)
2119        (minimum-distance . 9)
2120        (padding . 1)
2121        (stretchability . 10))
2122 @} @{ @dots{} @}
2123 @end example
2124
2125 スペース設定をグローバルに変更するには、@c
2126 そのスペース設定を @code{\layout} ブロックの中に配置します:
2127
2128 @example
2129 \layout @{
2130   \context @{
2131     \Staff
2132     \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2133   @}
2134 @}
2135 @end example
2136
2137 垂直方向スペースのグラフィカル オブジェクト プロパティの標準設定は
2138 @rinternals{VerticalAxisGroup} と @rinternals{StaffGrouper} でリスト アップ@c
2139 しています。@c
2140 特定のタイプの譜ではない行のデフォルト設定は、@c
2141 @rinternals{Contexts} の中にある関連するコンテキストの説明でリスト アップ@c
2142 しています。
2143
2144
2145 @subsubheading @code{VerticalAxisGroup} グラフィカル オブジェクトのプロパティ
2146
2147 通常、@code{VerticalAxisGroup} プロパティは、@c
2148 @code{Staff} レベル (あるいはそれと同等のレベル) で、@c
2149 @code{\override} を用いて調節します。
2150
2151 @table @code
2152 @item staff-staff-spacing
2153
2154 カレントの譜とそのすぐ下の譜の間隔
2155 -- その間に 1 つ以上の譜ではない行 (@code{Lyrics} 等) が配置されている場合で@c
2156 あっても --
2157 を決定するために使用します。@c
2158 システムの最下段の譜には適用されません。
2159
2160 @code{VerticalAxisGroup} の @code{staff-staff-spacing} は、@c
2161 譜がグループの一部である場合は @code{StaffGrouper} の
2162 @code{staff-staff-spacing} プロパティを適用し、@c
2163 グループではない譜の場合はその譜の @code{default-staff-staff-spacing}
2164 を適用する Scheme 関数です。@c
2165 これにより、グループ化されている譜に異なる間隔を入れることが可能です。@c
2166 グループ化されていることとは無関係に同一の間隔を入れるには、@c
2167 上で示したプロパティ再定義を用いて、@c
2168 この関数を可変スペースの連想配列で置き換えます。
2169
2170 @item default-staff-staff-spacing
2171 グループ化されていない譜で使用される @code{staff-staff-spacing} を定義している@c
2172 可変スペースの連想配列です。@c
2173 @code{staff-staff-spacing} は @code{\override} を用いて@c
2174 上書きされることがあります。
2175
2176 @item staff-affinity
2177 カレントの譜ではない行にスペースを入れるために使用する譜の方向です。@c
2178 選択肢は @code{UP}, @code{DOWN}, それに @code{CENTER} です。@c
2179 @code{CENTER} の場合、衝突や他のスペース上の制約によって妨げられない限り、@c
2180 譜ではない行は上下にある近くの譜から等距離になるよう配置されます。@c
2181 隣接する譜ではない行の @code{staff-affinity} は、@c
2182 方向が下から上へと増加しないようにする必要があります。@c
2183 例えば、@code{DOWN} に設定された譜ではない行のすぐ後に
2184 @code{UP} に設定された譜ではない行を置くべきではありません。@c
2185 システムの最上段にある譜ではない行は @code{DOWN} であるべきで、@c
2186 システムの最下段にある譜ではない行は @code{UP} であるべきです。@c
2187 譜ではない行の @code{staff-affinity} を @code{#f} に設定すると、@c
2188 その行は譜として扱われます。@c
2189 譜に対して @code{UP}, @code{CENTER}, あるいは @code{DOWN} の
2190 @code{staff-affinity} を設定すると、@c
2191 その譜は譜ではない行として扱われます。@c
2192
2193 @item nonstaff-relatedstaff-spacing
2194 カレントの譜ではない行と @code{staff-affinity} の方向にある@c
2195 最も近い譜との間隔です
2196 -- 2 つの間に譜ではない行が無く、@c
2197 @code{staff-affinity} が @code{UP} と @code{DOWN} のどちらかである場合です。@c
2198 @code{staff-affinity} が @code{CENTER} である場合、@c
2199 @code{nonstaff-relatedstaff-spacing} は最も近くにある @emph{上下両サイド} の@c
2200 譜の間隔になります
2201 -- たとえ、カレントの譜ではない行と上下どちらかの譜の間に、@c
2202 他の譜ではない行があったとしてもです。@c
2203 このことは、譜ではない行の配置は、上下にある譜と譜ではない行の両方に依存する@c
2204 ということを意味します。@c
2205 このスペースの @code{stretchability} に小さな値を設定すると、@c
2206 そのとおりのスペースになりやすくなります。@c
2207 このスペースの @code{stretchability} に大きな値を設定すると、@c
2208 そのとおりのスペースになりにくくなります。@c
2209
2210 @item nonstaff-nonstaff-spacing
2211 カレントの譜ではない行と @code{staff-affinity} の方向にある@c
2212 次の譜ではない行の間隔です
2213 -- 2 つの間に譜が無く、@c
2214 @code{staff-affinity} が @code{UP} と @code{DOWN} のどちらかである場合です。@c
2215
2216 @item nonstaff-unrelatedstaff-spacing
2217 カレントの譜ではない行と @code{staff-affinity} とは反対方向にある譜の間隔です
2218 -- 2 つの間に他の譜ではない行が無く、@c
2219 @code{staff-affinity} が @code{UP} と @code{DOWN} のどちらかである場合です。@c
2220 これは、例えば、@c
2221 @code{Lyrics} 行と @code{Lyrics} が属していない譜との間のパディングを@c
2222 最小にする必要がある場合に使用される可能性があります。
2223 @end table
2224
2225
2226 @subsubheading @code{StaffGrouper} グラフィカル オブジェクトのプロパティ
2227
2228 通常、@code{StaffGrouper} プロパティは、@c
2229 @code{StaffGroup} レベル (あるいはそれと同等のレベル) で、@c
2230 @code{\override} を用いて調節します。
2231
2232 @table @code
2233 @item staff-staff-spacing
2234 カレントの譜グループ内部にある隣接する譜の間隔です。@c
2235 個々の譜の @code{VerticalAxisGroup} グラフィカル オブジェクトの
2236 @code{staff-staff-spacing} プロパティは、@c
2237 譜毎のスペース設定で上書きされる可能性があります。
2238
2239 @item staffgroup-staff-spacing
2240 カレントの譜グループの最後の譜と、同じシステム内にあるすぐ下の譜の間隔です
2241 -- 2 つの譜の間に 1 つ以上の譜ではない行 (@code{Lyrics} 等) が存在する場合で@c
2242 あってもです。@c
2243 システムの最下段の譜には適用されません。@c
2244 個々の譜の @code{VerticalAxisGroup} グラフィカル オブジェクトの
2245 @code{staff-staff-spacing} プロパティは、@c
2246 譜毎のスペース設定で上書きされる可能性があります。
2247 @end table
2248
2249 @seealso
2250 記譜法リファレンス:
2251 @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数},
2252 @ref{Modifying alists}
2253
2254 インストールされているファイル:
2255 @file{ly/engraver-init.ly},
2256 @file{scm/define-grobs.scm}
2257
2258 内部リファレンス:
2259 @rinternals{Contexts},
2260 @rinternals{VerticalAxisGroup},
2261 @rinternals{StaffGrouper}
2262
2263
2264 @node グループ化されていない譜のスペース
2265 @unnumberedsubsubsec グループ化されていない譜のスペース
2266 @translationof Spacing of ungrouped staves
2267
2268 @emph{譜} (@code{Staff}, @code{DrumStaff}, @code{TabStaff} 等) は、@c
2269 1 つ以上のボイス コンテキストを保持することができ、@c
2270 他の譜を保持することはできないコンテキストです。
2271
2272 以下のプロパティは、@emph{グループ化されていない} 譜のスペースに影響を与えます:
2273
2274 @itemize
2275 @item @code{VerticalAxisGroup} プロパティ:
2276 @itemize
2277 @item @code{default-staff-staff-spacing}
2278 @item @code{staff-staff-spacing}
2279 @end itemize
2280 @end itemize
2281
2282 これらのグラフィカル オブジェクト プロパティは、それぞれ上で説明しています。@c
2283 @ref{システム内部のスペース プロパティ} を参照してください。
2284
2285 譜グループの一部である譜には、他にもプロパティがあります。@c
2286 @ref{グループ化されている譜のスペース} を参照してください。
2287
2288 以下の例は、@code{default-staff-staff-spacing} プロパティがどのように@c
2289 グループ化されていない譜のスペースに影響を与えるかを示しています。@c
2290 @code{staff-staff-spacing} に同じ上書きを適用すると同じ効果を持ちますが、@c
2291 譜がグループ化されている場合にも適用されます。
2292
2293 @c KEEP LY
2294 @lilypond[verbatim,quote,staffsize=16]
2295 \layout {
2296   \context {
2297     \Staff
2298     \override VerticalAxisGroup.default-staff-staff-spacing =
2299       #'((basic-distance . 8)
2300          (minimum-distance . 7)
2301          (padding . 1))
2302   }
2303 }
2304
2305 <<
2306   % 非常に低い位置にある音符は 'basic-distance が提供するよりも
2307   % 大きなスペースを必要とするため、この譜と次の譜の間隔は 'padding
2308   % によって決定されます。
2309   \new Staff { b,2 r | }
2310
2311   % ここでは、'basic-distance が十分なスペースを提供していて、
2312   % ページ上にある他の要素のスペースを確保するためにスペースを
2313   % ('minimum-distance の値に向かって) 縮める必要はありません。
2314   % そのため、この譜と次の譜の間隔は 'basic-distance によって
2315   % 決定されます。
2316   \new Staff { \clef bass g2 r | }
2317
2318   % 'padding に負の値を設定することにより、譜を重ねることができます。
2319   % 'basic-distance が取り得る最小の値は 0 です。
2320   \new Staff \with {
2321     \override VerticalAxisGroup.default-staff-staff-spacing =
2322       #'((basic-distance . 3.5)
2323          (padding . -10))
2324   } { \clef bass g2 r | }
2325   \new Staff { \clef bass g2 r | }
2326 >>
2327 @end lilypond
2328
2329 @seealso
2330 インストールされているファイル:
2331 @file{scm/define-grobs.scm}
2332
2333 コード断片集:
2334 @rlsr{Spacing}
2335
2336 内部リファレンス:
2337 @rinternals{VerticalAxisGroup}
2338
2339
2340 @node グループ化されている譜のスペース
2341 @unnumberedsubsubsec グループ化されている譜のスペース
2342 @translationof Spacing of grouped staves
2343
2344 オーケストラ譜や他の大きな楽譜では、@c
2345 譜を譜ループ化することが一般的です。@c
2346 通常、グループ間のスペースは、@c
2347 同じグループの譜の間のスペースよりも大きくなります。
2348
2349 @emph{譜グループ} (@code{StaffGroup}, @code{ChoirStaff} 等) は、@c
2350 同時進行する 1 つ以上の譜を保持することができるコンテキストです。
2351
2352 以下のプロパティは、譜グループの中にある譜のスペースに影響を与えます:
2353
2354 @itemize
2355 @item @code{VerticalAxisGroup} プロパティ:
2356 @itemize
2357 @item @code{staff-staff-spacing}
2358 @end itemize
2359 @item @code{StaffGrouper} プロパティ:
2360 @itemize
2361 @item @code{staff-staff-spacing}
2362 @item @code{staffgroup-staff-spacing}
2363 @end itemize
2364 @end itemize
2365
2366 これらのグラフィカル オブジェクト プロパティは、上で個々に説明しています。@c
2367 @ref{システム内部のスペース プロパティ} を参照してください。
2368
2369 以下の例は、@code{StaffGrouper} グラフィカル オブジェクトのプロパティが@c
2370 どのようにグループ化された譜のスペースに影響を与えるかを示しています:
2371
2372 @lilypond[verbatim,quote,staffsize=16]
2373 \layout {
2374   \context {
2375     \Score
2376     \override StaffGrouper.staff-staff-spacing.padding = #0
2377     \override StaffGrouper.staff-staff-spacing.basic-distance = #1
2378   }
2379 }
2380
2381 <<
2382   \new PianoStaff \with {
2383     \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
2384   } <<
2385     \new Staff { c'1 }
2386     \new Staff { c'1 }
2387   >>
2388
2389   \new StaffGroup <<
2390     \new Staff { c'1 }
2391     \new Staff { c'1 }
2392   >>
2393 >>
2394 @end lilypond
2395
2396 @seealso
2397 インストールされているファイル:
2398 @file{scm/define-grobs.scm}
2399
2400 コード断片集:
2401 @rlsr{Spacing}
2402
2403 内部リファレンス:
2404 @rinternals{VerticalAxisGroup},
2405 @rinternals{StaffGrouper}
2406
2407
2408 @node 譜ではない行のスペース
2409 @unnumberedsubsubsec 譜ではない行のスペース
2410 @translationof Spacing of non-staff lines
2411
2412 @emph{譜ではない行} (@code{Lyrics}, @code{ChordNames} 等) は、@c
2413 それが保持するレイアウト オブジェクトが譜のように譜刻される
2414 (すなわち、システム内部の水平線上での譜刻) コンテキストです。@c
2415 具体的に言うと、@c
2416 譜ではない行は @code{VerticalAxisGroup} レイアウト オブジェクトを@c
2417 作成する譜ではないコンテキストです。
2418
2419 以下のプロパティが、譜ではない行のスペースに影響を与えいます:
2420
2421 @itemize
2422 @item @code{VerticalAxisGroup} プロパティ:
2423 @itemize
2424 @item @code{staff-affinity}
2425 @item @code{nonstaff-relatedstaff-spacing}
2426 @item @code{nonstaff-nonstaff-spacing}
2427 @item @code{nonstaff-unrelatedstaff-spacing}
2428 @end itemize
2429 @end itemize
2430
2431 これらのグラフィカル オブジェクト プロパティは、上で個々に説明しています。@c
2432 @ref{システム内部のスペース プロパティ} を参照してください。
2433
2434 以下の例は、@code{nonstaff-nonstaff-spacing} プロパティが@c
2435 どのように隣接する譜ではない行のスペースに影響を与えるかを示しています。@c
2436 ここでは、@code{stretchability} キーに非常に大きな値を設定することにより、@c
2437 通常よりも歌詞が広がりやすくしています:
2438
2439 @lilypond[verbatim,quote,staffsize=16]
2440 \layout {
2441   \context {
2442     \Lyrics
2443     \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
2444   }
2445 }
2446
2447 \new StaffGroup
2448 <<
2449   \new Staff \with {
2450     \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
2451   } { c'1 }
2452   \new Lyrics \with {
2453     \override VerticalAxisGroup.staff-affinity = #UP
2454   } \lyricmode { up }
2455   \new Lyrics \with {
2456     \override VerticalAxisGroup.staff-affinity = #CENTER
2457   } \lyricmode { center }
2458   \new Lyrics \with {
2459     \override VerticalAxisGroup.staff-affinity = #DOWN
2460   } \lyricmode { down }
2461   \new Staff { c'1 }
2462 >>
2463 @end lilypond
2464
2465
2466 @seealso
2467 インストールされているファイル:
2468 @file{ly/engraver-init.ly},
2469 @file{scm/define-grobs.scm}
2470
2471 コード断片集:
2472 @rlsr{Spacing}
2473
2474 @c @lsr{spacing,page-spacing.ly},
2475 @c @lsr{spacing,alignment-vertical-spacing.ly}
2476
2477 内部リファレンス:
2478 @rinternals{Contexts},
2479 @rinternals{VerticalAxisGroup}
2480
2481
2482 @node 譜とシステムを明示的に配置する
2483 @subsection 譜とシステムを明示的に配置する
2484 @translationof Explicit staff and system positioning
2485
2486 上で説明した可変な垂直方向のスペースの仕組みを理解する方法の 1 つに、@c
2487 譜とシステムの間の垂直方向のパティングの大きさを制御する設定を@c
2488 コレクションすることがあります。
2489
2490 @code{NonMusicalPaperColumn #'line-break-system-details} を用いて、@c
2491 垂直方向のスペースに別の方法でアプローチすることができます。@c
2492 可変な垂直方向のスペースの仕組みが垂直方向のパディングを指定するのに対して、@c
2493 @code{NonMusicalPaperColumn #'line-break-system-details} は@c
2494 ページ上の垂直方向の位置を指定することができます。
2495
2496 @code{NonMusicalPaperColumn #'line-break-system-details} は
2497 3 つ設定からなる連想配列を受け取ります:
2498
2499 @itemize
2500 @item @code{X-offset}
2501 @item @code{Y-offset}
2502 @item @code{alignment-distances}
2503 @end itemize
2504
2505 以下の  @code{NonMusicalPaperColumn} に対する上書きを含む、@c
2506 グラフィカル オブジェクトの上書きは、@c
2507 入力ファイルの中の 3 つの場所に配置することができます:
2508
2509 @itemize
2510 @item 音符入力の途中に直接配置する
2511 @item @code{\context} ブロックの中に配置する
2512 @item @code{\with} ブロックの中に配置する
2513 @end itemize
2514
2515 @code{NonMusicalPaperColumn} を上書きする場合、@c
2516 通常は @code{\context} ブロックや @code{\with} ブロックの中で@c
2517 @code{\override} コマンドを使用します。@c
2518 一方、音符入力の途中で @code{NonMusicalPaperColumn} を上書きする場合、@c
2519 特殊なコマンド @code{\overrideProperty} を使用します。@c
2520 ここで、@c
2521 特殊なコマンド @code{\overrideProperty} で
2522 @code{NonMusicalPaperColumn} を上書きする例をいくつか挙げます:
2523
2524 @example
2525 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
2526
2527 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2528
2529 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2530                                  (Y-offset . 40))
2531
2532 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
2533
2534 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2535                                  (Y-offset . 40)
2536                                  (alignment-distances . (15)))
2537 @end example
2538
2539 これらの異なる設定がそれぞれどのように機能するのかを理解するために、@c
2540 まったく上書きを含まない例を見ることから始めます。
2541
2542 @c \book { } is required in these examples to ensure the spacing
2543 @c overrides can be seen between systems. -np
2544
2545 @lilypond[verbatim,quote,staffsize=16]
2546 \header { tagline = ##f }
2547 \paper { left-margin = 0\mm }
2548 \book {
2549   \score {
2550     <<
2551       \new Staff <<
2552         \new Voice {
2553           s1*5 \break
2554           s1*5 \break
2555           s1*5 \break
2556         }
2557         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2558       >>
2559       \new Staff {
2560         \repeat unfold 15 { d'4 d' d' d' }
2561       }
2562     >>
2563   }
2564 }
2565 @end lilypond
2566
2567 この楽譜は改行/改ページ情報を専用のボイスに孤立させています。@c
2568 この改行/改ページ用のボイスを作成するテクニックは、@c
2569 例がより複雑になっていくときに、@c
2570 レイアウトと音楽入力を分離することを助けてくれます。@c
2571 @ref{改行/改ページのために追加のボイスを使用する} を参照してください。
2572
2573 明示的な @code{\breaks} は一様に音楽を 1 行あたり 5 小節に分割しています。@c
2574 垂直方向のスペースは LilyPond のデフォルトです。@c
2575 @code{NonMusicalPaperColumn} グラフィカル オブジェクトの
2576 @code{line-break-system-details} 属性の中にある
2577 @code{Y-offset} を設定することで、@c
2578 各システムの垂直方向の開始位置を設定することができます:
2579
2580 @lilypond[verbatim,quote,staffsize=16]
2581 \header { tagline = ##f }
2582 \paper { left-margin = 0\mm }
2583 \book {
2584   \score {
2585     <<
2586       \new Staff <<
2587         \new Voice {
2588           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
2589           s1*5 \break
2590           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2591           s1*5 \break
2592           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
2593           s1*5 \break
2594         }
2595         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2596       >>
2597       \new Staff {
2598         \repeat unfold 15 { d'4 d' d' d' }
2599       }
2600     >>
2601   }
2602 }
2603 @end lilypond
2604
2605 @code{line-break-system-details} は@c
2606 潜在的に多くの値を持つ連想リストをとりますが、@c
2607 ここでは値を 1 つだけしかセットしていないということに注意してください。@c
2608 また、ここでは @code{Y-offset} プロパティは、@c
2609 各システムがページに描画される垂直方向の位置を@c
2610 決定しているということにも注意してください。
2611
2612 これまでに各システムの垂直方向の開始位置を明示的に設定しましたが、@c
2613 各システム内部の各譜の垂直方向の開始位置を手動で設定することも可能です。@c
2614 @code{line-break-system-details} のサブプロパティ @code{alignment-offsets} を@c
2615 用います。
2616
2617 @lilypond[verbatim,quote,staffsize=16]
2618 \header { tagline = ##f }
2619 \paper { left-margin = 0\mm }
2620 \book {
2621   \score {
2622     <<
2623       \new Staff <<
2624         \new Voice {
2625           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
2626                                            (alignment-distances . (15)))
2627           s1*5 \break
2628           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2629                                            (alignment-distances . (15)))
2630           s1*5 \break
2631           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2632                                            (alignment-distances . (15)))
2633           s1*5 \break
2634         }
2635         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2636       >>
2637       \new Staff {
2638         \repeat unfold 15 { d'4 d' d' d' }
2639       }
2640     >>
2641   }
2642 }
2643 @end lilypond
2644
2645 ここでは @code{NonMusicalPaperColumn} グラフィカル オブジェクトの@c
2646 @code{line-break-system-details} 属性に 2 つの値を代入しているということに@c
2647 注意してください。@c
2648 @code{line-break-system-details} 属性の連想配列はもっと多くのスペース パラメータ
2649 (例えば、@code{Y-offset} ペアに相当する @code{X-offset} ペア)
2650 を受け付けますが、@c
2651 システムと譜の垂直方向の開始地点を制御するのに必要な設定は、@c
2652 @code{Y-offset} ペアと @code{alignment-offsets} ペアだけです。
2653 最後に、@c
2654 @code{alignment-offsets} は譜の垂直方向の位置を指定するのであり、@c
2655 譜グループの位置を指定するわけではないということに注意してください。
2656
2657 @lilypond[verbatim,quote,staffsize=16]
2658 \header { tagline = ##f }
2659 \paper { left-margin = 0\mm }
2660 \book {
2661   \score {
2662     <<
2663       \new Staff <<
2664         \new Voice {
2665           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
2666                                            (alignment-distances . (30 10)))
2667           s1*5 \break
2668           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2669                                            (alignment-distances . (10 10)))
2670           s1*5 \break
2671           \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2672                                            (alignment-distances . (10 30)))
2673           s1*5 \break
2674         }
2675         \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2676       >>
2677       \new StaffGroup <<
2678         \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2679         \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2680       >>
2681     >>
2682   }
2683 }
2684 @end lilypond
2685
2686 考慮すべき点がいくつかあります:
2687
2688 @itemize
2689 @item @code{alignment-offsets} を使用する場合、@c
2690 歌詞と他の譜ではない行は譜としてカウントされません。
2691
2692 @item @code{X-offset}, @code{Y-offset} それに @code{alignment-offsets} に@c
2693 渡される数の単位は、@c
2694 譜線間隔の乗数と解釈されます。@c
2695 正の値は譜と歌詞を下または右に移動させ、@c
2696 負の値は譜と歌詞を上または左に移動させます。
2697
2698 @item ここで扱った @code{NonMusicalPaperColumn #'line-break-system-details}
2699 設定は譜とシステムを任意の場所に配置することを可能にするため、@c
2700 紙面領域やマージン領域を犯したり、@c
2701 他の譜やシステムの上に譜刻する可能性さえあります。@c
2702 これらの設定に適切な値を渡すことで、そのようなことは避けられます。
2703 @end itemize
2704
2705 @seealso
2706 コード断片集:
2707 @rlsr{Spacing}
2708
2709
2710 @node 垂直方向の衝突回避
2711 @subsection 垂直方向の衝突回避
2712 @translationof Vertical collision avoidance
2713
2714 @funindex outside-staff-priority
2715 @funindex outside-staff-padding
2716 @funindex outside-staff-horizontal-padding
2717
2718 直観的に、音楽記譜には譜に属するオブジェクトと、@c
2719 譜の外側に配置されるべきオブジェクトがあります。@c
2720 譜の外側に属するオブジェクトには、リハーサル記号、テキスト、@c
2721 それに強弱記号などがあります
2722 (これからは、それらを譜外部オブジェクトと呼びます)。@c
2723 LilyPond が譜外部オブジェクトの垂直方向の配置を決定するとき、@c
2724 譜外部オブジェクトをできる限り譜の近くに、@c
2725 しかしながら、他のオブジェクトと衝突しない程度の近さに配置します。
2726
2727 LilyPond は @code{outside-staff-priority} プロパティを用いて@c
2728 あるグラフィカル オブジェクトが譜外部オブジェクトかどうかを決定します:
2729 @code{outside-staff-priority} が数であれば、@c
2730 そのグラフィカル オブジェクトは譜外部オブジェクトです。@c
2731 さらに、@code{outside-staff-priority} は LilyPond に、@c
2732 そのグラフィカル オブジェクトを配置する順番を教えてくれます。
2733
2734 まず最初にに、LilyPond は譜外部オブジェクトには属さないオブジェクトを@c
2735 すべて配置します。@c
2736 次に、譜外部オブジェクトを @code{outside-staff-priority} に従って
2737 (昇順に) ソートします。@c
2738 LilyPond は譜外部オブジェクトを、既に配置済みのオブジェクトと衝突しないよう、@c
2739 一つずつ配置していきます。@c
2740 つまり、2 つの譜外部オブジェクトが同じスペースをめぐって競合する場合、@c
2741 より小さな @code{outside-staff-priority} を持つオブジェクトが@c
2742 譜の近くに配置されます。
2743
2744 @c KEEP LY
2745 @lilypond[quote,ragged-right,relative=2,verbatim]
2746 c4_"Text"\pp
2747 r2.
2748 \once \override TextScript.outside-staff-priority = #1
2749 c4_"Text"\pp % ここでは、テキストが譜の近くに配置されます
2750 r2.
2751 % outside-staff-priority に数ではない値を設定することにより、
2752 % 自動衝突回避を無効にします
2753 \once \override TextScript.outside-staff-priority = ##f
2754 \once \override DynamicLineSpanner.outside-staff-priority = ##f
2755 c4_"Text"\pp % ここでは、2 つのオブジェクトが衝突します
2756 @end lilypond
2757
2758 ある譜外部オブジェクトとその前に配置されたグラフィカル オブジェクトとの間に@c
2759 ある垂直方向のパディングは、@c
2760 @code{outside-staff-padding} で制御することができます。
2761
2762 @c KEEP LY
2763 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
2764 \once \override TextScript.outside-staff-padding = #0
2765 a'^"このテキストは音符のすぐ近くに配置されます。"
2766 \once \override TextScript.outside-staff-padding = #3
2767 c^"このテキストは前のテキストから離れた位置に配置されます"
2768 c^"この手キスとは前にテキストの近くに配置されます"
2769 @end lilypond
2770
2771
2772 デフォルトでは、譜外部オブジェクトの配置は、@c
2773 配置済みのグラフィカル オブジェクトとの水平方向の衝突回避だけを考慮します。@c
2774 このことは、@c
2775 オブジェクト同士が水平方向に非常に近く配置される状況を招く可能性があります。@c
2776 譜の垂直方向の間隔を設定した場合も、@c
2777 譜外部オブジェクトが挟み込まれる可能性があります。@c
2778 @code{outside-staff-horizontal-padding} を設定すると、@c
2779 オブジェクトは垂直方向にずれるため、@c
2780 そのような状況は起こらなくなります。
2781
2782 @c KEEP LY
2783 @lilypond[quote,ragged-right,relative=2,verbatim]
2784 % マークアップは後に続く音符に近寄りすぎています
2785 c4^"Text"
2786 c4
2787 c''2
2788 % outside-staff-horizontal-padding を設定することで修正します
2789 R1
2790 \once \override TextScript.outside-staff-horizontal-padding = #1
2791 c,,4^"Text"
2792 c4
2793 c''2
2794 @end lilypond
2795
2796 @seealso
2797 コード断片集:
2798 @rlsr{Spacing}
2799
2800
2801 @node 水平方向のスペース
2802 @section 水平方向のスペース
2803 @translationof Horizontal spacing
2804
2805 @cindex horizontal spacing (水平方向のスペース)
2806 @cindex spacing, horizontal (水平方向のスペース)
2807
2808 @menu
2809 * 水平方向のスペースの概要::
2810 * 新しいスペース領域::
2811 * 水平方向のスペースを変更する::
2812 * 行の長さ::
2813 * プロポーショナル ノーテーション::
2814 @end menu
2815
2816
2817 @node 水平方向のスペースの概要
2818 @subsection 水平方向のスペースの概要
2819 @translationof Horizontal spacing overview
2820
2821 スペース エンジンは異なる演奏時間を異なる長さの可変距離 (@q{スプリング}) に@c
2822 翻訳します。@c
2823 長い演奏時間はより多くのスペースをとり、@c
2824 短い演奏時間はより少ないスペースをとります。@c
2825 最短の演奏時間は固定量のスペース
2826 (これは @rinternals{SpacingSpanner} オブジェクトの中にある
2827 @code{shortest-duration-space} によって制御されます)
2828 をとります。@c
2829 演奏時間が長くなるほど、より多くのスペースをとります:
2830 演奏時間が倍になると、固定量のスペース
2831 (これは @code{spacing-increment} によって制御されます)
2832 がその音符に付け加えられます。
2833
2834 例えば、以下の楽曲には多くの 2 分音符、4 分音符、@c
2835 それに 8 分音符が含まれています。
2836 8 分音符の後には符頭幅 (NHW) 1 つ分が挿入されます。@c
2837 4 分音符の後には 2 NHW が挿入され、2 分音符の後には 3 NHW が挿入されます。
2838
2839 @lilypond[quote,verbatim,relative=1]
2840 c2 c4. c8 c4. c8 c4. c8 c8
2841 c8 c4 c4 c4
2842 @end lilypond
2843
2844 通常、@code{spacing-increment} は 1.2 譜スペースに設定されています。@c
2845 これは符頭の幅とだいたい同じです。@c
2846 さらに、@code{shortest-duration-space} は 2.0 に設定されています。@c
2847 つまり、最短の音符は 2.4 譜スペース (@code{spacing-increment} の 2 倍) の@c
2848 水平方向のスペースをとります。@c
2849 このスペースはシンボルの左端からカウントされます。@c
2850 そのため、最短の音符の後には一般に 1 NHW のスペースが挿入されます。
2851
2852 上記の手順に正確に従った場合、@c
2853 8 分音符や 16 分音符を含む楽譜に 32 分音符を 1 つ付け加えると、@c
2854 楽譜全体が大きく引き伸ばされます。@c
2855 最短の音符はもはや 16 分音符ではなく、32 分音符であり、@c
2856 それぞれの 16 分音符に 1 NHW が付け加えられます。@c
2857 このことを防ぐため、スペースをとるための最短の演奏時間を、@c
2858 その楽譜の中にある最短の音符ではなく、最も頻繁に出現する音符とします。
2859
2860
2861 最も共通する最短演奏時間は以下のように決定されます:
2862 各小節において、最短の演奏時間が決定されます。@c
2863 スペースの基本として、最も共通する最短演奏時間が選択されます。@c
2864 条件として、この最短演奏時間は常に 8 分音符以上の長さになります。@c
2865 @code{lilypond} を @option{--verbose} オプションを付けて実行すると、@c
2866 最短演奏時間が表示されます。
2867
2868 この演奏時間はカスタマイズすることもできます。@c
2869 @rinternals{SpacingSpanner} の中にある @code{common-shortest-duration} を@c
2870 設定した場合、@c
2871 スペースのための基本演奏時間が設定されれます。@c
2872 この基本演奏時間の最大値 (通常、8 分音符) は、@c
2873 @code{base-shortest-duration} によって設定されます。
2874
2875 @funindex common-shortest-duration
2876 @funindex base-shortest-duration
2877 @funindex stem-spacing-correction
2878 @funindex spacing
2879
2880 共通の最短音符よりも短い音符の後には、@c
2881 その音符の演奏時間と共通の最短音符の演奏時間の比を反映した@c
2882 スペースが付けられます。@c
2883 そのため、@c
2884 上記の例に 16 分音符を数個付け加えた場合、@c
2885 16 分音符の後には NHW の半分の幅のスペースが付けられます:
2886
2887 @lilypond[quote,verbatim,relative=2]
2888 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
2889 @end lilypond
2890
2891
2892 @emph{Essay on automated music engraving} において、@c
2893 符幹の向きはスペースに影響を与えるということを説明しました
2894 (@ressay{Optical spacing} を参照してください)。@c
2895 これは、@rinternals{NoteSpacing} オブジェクトの中にある
2896 @code{stem-spacing-correction} プロパティによって制御されます。@c
2897 このオブジェクトは @rinternals{Voice} コンテキストごとに生成されます。@c
2898 @code{StaffSpacing} オブジェクト
2899 (@rinternals{Staff} コンテキストの中で生成されます)
2900 は、符幹/小節線のスペースを制御するために、同様のプロパティを保持します。@c
2901 以下の例は、それらプロパティによる修正の様子を示しています。
2902 前半はデフォルト設定による修正であり、@c
2903 後半は修正を誇張しています:
2904
2905 @lilypond[quote,ragged-right]
2906 \fixed c' {
2907   c4 e'4 e4 b4 |
2908   b4 e'4 b4 e'4 |
2909   \override Staff.NoteSpacing.stem-spacing-correction = #1.5
2910   \override Staff.StaffSpacing.stem-spacing-correction = #1.5
2911   c4 e'4 e4 b4 |
2912   b4 e'4 b4 e'4 |
2913 }
2914 @end lilypond
2915
2916 プロポーショナル ノーテーション (proportional notation) がサポートされます。@c
2917 @ref{プロポーショナル ノーテーション} を参照してください。
2918
2919 @seealso
2920 Essay on automated music engraving:
2921 @ressay{Optical spacing}
2922
2923 コード断片集:
2924 @rlsr{Spacing}
2925
2926 内部リファレンス:
2927 @rinternals{SpacingSpanner},
2928 @rinternals{NoteSpacing},
2929 @rinternals{StaffSpacing},
2930 @rinternals{NonMusicalPaperColumn}
2931
2932 @knownissues
2933 スペースを手動で上書きするための、手軽な仕組みはありません。@c
2934 余分なスペースを楽譜に挿入するために、以下の手段があります
2935 -- 必要に応じて、パディングの値を調整しています。
2936
2937 @example
2938  \override Score.NonMusicalPaperColumn.padding = #10
2939 @end example
2940
2941 スペースを減らすための手段はありません。
2942
2943
2944 @node 新しいスペース領域
2945 @subsection 新しいスペース領域
2946 @translationof New spacing section
2947
2948 @code{newSpacingSection} を用いることで、@c
2949 異なるスペース パラメータを持つ新しいセクションを開始することができます。@c
2950 これは、音符の長さに関して異なる概念を持つセクションがある場合に、有用です。@c
2951
2952 以下の例では、@c
2953 拍子記号が新たしいセクションを導入しています。@c
2954 その結果、16 分音符の間隔が広くなっています。
2955
2956 @lilypond[verbatim,quote]
2957 \relative c' {
2958   \time 2/4
2959   c4 c8 c
2960   c8 c c4 c16[ c c8] c4
2961   \newSpacingSection
2962   \time 4/16
2963   c16[ c c8]
2964 }
2965 @end lilypond
2966
2967 @code{\newSpacingSection} コマンドは新たに
2968 @code{SpacingSpanner} オブジェクトを作成します。@c
2969 そのため、その場所で新たに @code{\override} が使用される可能性があります。
2970
2971 @seealso
2972 コード断片集:
2973 @rlsr{Spacing}
2974
2975 内部リファレンス:
2976 @rinternals{SpacingSpanner}
2977
2978
2979 @node 水平方向のスペースを変更する
2980 @subsection 水平方向のスペースを変更する
2981 @translationof Changing horizontal spacing
2982
2983 水平方向のスペースを、@code{base-shortest-duration} で@c
2984 変更することができます。@c
2985 ここで、同じ音楽を比較します。@c
2986 1 つではこのプロパティを変更せず、もう 1 つでは変更します。@c
2987 @code{ly:make-moment} の値が大きくなると、@c
2988 楽譜は小さくなります。@c
2989 @code{ly:make-moment} は演奏時間を構成するため、@c
2990 @code{1 4} は @code{1 16} よりも長い演奏時間である@c
2991 ということに注意してください。
2992
2993 @lilypond[verbatim,line-width=12\cm]
2994 \score {
2995   \relative {
2996     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2997     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2998     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2999     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3000   }
3001 }
3002 @end lilypond
3003
3004 @lilypond[verbatim,line-width=12\cm]
3005 \score {
3006   \relative {
3007     g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3008     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3009     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3010     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3011   }
3012   \layout {
3013     \context {
3014       \Score
3015       \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
3016     }
3017   }
3018 }
3019 @end lilypond
3020
3021
3022 @snippets
3023
3024 デフォルトでは、連符のスペースは演奏時間とは関係の無い要素
3025 (臨時記号、音部記号の変化など)
3026 に依存します。@c
3027 そのような記号を無視して、同じ演奏時間に等しいスペースを割り当てるには、@c
3028 @code{Score.SpacingSpanner #'uniform-stretching} を使用します。@c
3029 このプロパティは、楽譜の先頭でのみ、変更することができます。
3030
3031 @lilypond[quote,ragged-right,verbatim]
3032 \score {
3033   <<
3034     \new Staff {
3035       \tuplet 5/4 {
3036         c8 c8 c8 c8 c8
3037       }
3038       c8 c8 c8 c8
3039     }
3040     \new Staff {
3041       c8 c8 c8 c8
3042       \tuplet 5/4 {
3043         c8 c8 c8 c8 c8
3044       }
3045     }
3046   >>
3047   \layout {
3048     \context {
3049       \Score
3050       \override SpacingSpanner.uniform-stretching = ##t
3051     }
3052   }
3053 }
3054 @end lilypond
3055
3056 @code{strict-note-spacing} がセットされている場合、@c
3057 音部記号、小節線、それに装飾小音符を考慮せずに、@c
3058 音符にスペースが割り当てられます。
3059
3060 @lilypond[quote,ragged-right,relative=2,verbatim]
3061 \override Score.SpacingSpanner.strict-note-spacing = ##t
3062 \new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c]  c32[ c32] }
3063 @end lilypond
3064
3065 @seealso
3066 コード断片集:
3067 @rlsr{Spacing}
3068
3069
3070 @node 行の長さ
3071 @subsection 行の長さ
3072 @translationof Line length
3073
3074 @cindex page breaks (改ページ)
3075 @cindex breaking pages (改ページ)
3076
3077 @funindex indent
3078 @funindex line-width
3079 @funindex ragged-right
3080 @funindex ragged-last
3081
3082 @c Although line-width can be set in \layout, it should be set in paper
3083 @c block, to get page layout right.
3084 @c Setting indent in \paper block makes not much sense, but it works.
3085
3086 @c Bit verbose and vague, use examples?
3087 スペースに影響を与える最も基本的な設定は、@c
3088 @code{indent} と @code{line-width} です。@c
3089 これらは @code{\layout} ブロックの中で設定されます。@c
3090 これらの設定は、楽譜の最初の行のインデントと、行の長さを制御します。
3091
3092 @code{\layout} ブロックの中で @code{ragged-right} が真にセットされている場合、@c
3093 システムは行全体を埋めるように水平方向に引き伸ばされず、@c
3094 本来の長さで終了します。@c
3095 これは、小さな楽譜の場合や、@c
3096 本来のスペースがどれくらいの密度なのかをチェックする場合に有用です。@c
3097 通常のデフォルト設定は偽ですが、@c
3098 1 つしかシステムを持たない楽譜の場合のデフォルト値は真です。
3099
3100 @cindex page layout (ページ レイアウト)
3101 @cindex vertical spacing (垂直方向のスペース)
3102
3103 @code{ragged-last} オプションは @code{ragged-right} に似ていますが、@c
3104 楽曲の最後の行だけに影響を与えます。@c
3105 最後の行には、何の制限も加えられません。@c
3106 この結果は、文章の段落をフォーマットする場合と同じです。@c
3107 文章の段落において、@c
3108 最後の行は単純にそのままの長さにフォーマットされます。
3109
3110 @c Note that for text there are several options for the last line.
3111 @c While Knuth TeX uses natural length, lead typesetters use the same
3112 @c stretch as the previous line.  eTeX uses \lastlinefit to
3113 @c interpolate between both these solutions.
3114
3115 @example
3116 \layout @{
3117   indent = #0
3118   line-width = #150
3119   ragged-last = ##t
3120 @}
3121 @end example
3122
3123 @seealso
3124 コード断片集:
3125 @rlsr{Spacing}
3126
3127
3128 @node プロポーショナル ノーテーション
3129 @subsection プロポーショナル ノーテーション
3130 @translationof Proportional notation
3131
3132 LilyPond はプロポーショナル ノーテーションをサポートします。@c
3133 この記譜法では、各音符は演奏時間に相当する水平方向のスペースをとります。@c
3134 このタイプの水平スペースは、方眼紙上の水平方向スペースと同等です。@c
3135 20 世紀後半、21 世紀前半の楽譜の中には、@c
3136 複雑なリズムをわかりやすく示すため、@c
3137 あるいは、時間軸や他の図の配置を容易にするために、@c
3138 プロポーショナル ノーテーションを使っているものがあります。
3139
3140 LilyPond はプロポーショナル ノーテーション用に 5 つの設定をサポートします。@c
3141 それらの設定は一緒に使われることもありますし、単独で使われることもあります:
3142
3143 @itemize
3144 @item @code{proportionalNotationDuration}
3145 @item @code{uniform-stretching}
3146 @item @code{strict-note-spacing}
3147 @item @code{\remove "Separating_line_group_engraver"}
3148 @item @code{\override PaperColumn.used = ##t}
3149 @end itemize
3150
3151 以下の例では、@c
3152 これら 5 つのプロポーショナル ノーテーション用の設定を見ていき、@c
3153 それらがどのように相互に作用するかを調べます。
3154
3155 以下のような 1 小節の例から始めます。@c
3156 これは、@code{ragged-right} が ON であり、@c
3157 クラシック音楽でのスペースを使用します。
3158
3159 @lilypond[quote,verbatim,ragged-right]
3160 \score {
3161   <<
3162     \new RhythmicStaff {
3163       c'2
3164       c'16 c'16 c'16 c'16
3165       \tuplet 5/4 {
3166         c'16 c'16 c'16 c'16 c'16
3167       }
3168     }
3169   >>
3170 }
3171 @end lilypond
3172
3173 小節の始まりに配置された 2 分音符がその小節で占める水平方向のスペースは、@c
3174 半分よりもずっと少ないということに注意してください。@c
3175 そのため、@c
3176 小節の後半に配置された 16 分音符と、16 分音符からなる 5 連符
3177 (すなわち、20 分音符) がその小節で占める水平方向のスペースは、@c
3178 半分よりもずっと多くなっています。
3179
3180 クラシック音楽の譜刻では、このスペースのとり方が望ましいかもしれません。@c
3181 なぜなら、2 分音符から水平方向のスペースを借りてきて、@c
3182 小節全体としてスペースを維持することができるからです。
3183
3184 他方で、時間軸や他の図を楽譜の上または下に挿入しようとした場合、@c
3185 プロポーショナル ノーテーションが必要になります。@c
3186 @code{proportionalNotationDuration} 設定でプロポーショナル ノーテーションを@c
3187 有効にします。
3188
3189 @lilypond[quote,verbatim,ragged-right]
3190 \score {
3191   <<
3192     \new RhythmicStaff {
3193       c'2
3194       c'16 c'16 c'16 c'16
3195       \tuplet 5/4 {
3196         c'16 c'16 c'16 c'16 c'16
3197       }
3198     }
3199   >>
3200  \layout {
3201     \context {
3202       \Score
3203       proportionalNotationDuration = #(ly:make-moment 1/20)
3204     }
3205   }
3206 }
3207 @end lilypond
3208
3209 今度は、@c
3210 小節の前半に配置された 2 分音符と、後半に配置された短い音符の集まりが@c
3211 占める水平方向のスペースは等しくなりました。@c
3212 これで、この例の上または下に、時間軸や他の図を配置することが可能になりました。
3213
3214 @code{proportionalNotationDuration} 設定は、@c
3215 @code{Score} の中にあるコンテキスト設定です。@c
3216 入力ファイルの中でコンテキスト設定が出現するのは、@c
3217 3 つの場所のどれかだということを思い出してください
3218 -- @code{\with} ブロックの中、@code{\context} ブロックの中、あるいは、@c
3219 @code{\set} コマンドを前に置いた形で音楽エントリの中に直接配置します。@c
3220 他のすべてのコンテキスト設定と同様に、@c
3221 ユーザはこれら 3 つの場所のどれか 1 つを選択して、@c
3222 そこで @code{proportionalNotationDuration} をセットすることができます。
3223
3224 @code{proportionalNotationDuration} 設定は引数を 1 つとります。@c
3225 これはすべての音楽要素へのスペースに関係する参照演奏時間です。@c
3226 LilyPond Scheme 関数 @code{make-moment} は 2 つの引数をとります
3227 -- 全音符の分数を表す分子と分母です。@c
3228 それゆえ、@code{(ly:make-moment 1/20)} という呼び出しは、@c
3229 20 分音符の参照演奏時間となります。@c
3230 @code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)}, それに
3231 @code{(ly:make-moment 3/97)} という値はすべてとり得る値です。
3232
3233 では、どのように @code{proportionalNotationDuration} に渡す@c
3234 適切な参照演奏時間を決めるのでしょうか?@c
3235 通常、その楽曲の最速 (あるいは最小) の演奏時間に近い演奏時間から始めて、@c
3236 トライ&エラーで決めます。@c
3237 小さな参照演奏時間にすると疎な楽譜となり、@c
3238 大きな参照演奏時間にすると密な楽譜になります。
3239
3240 @lilypond[quote,verbatim,ragged-right]
3241 \score {
3242   <<
3243     \new RhythmicStaff {
3244       c'2
3245       c'16 c'16 c'16 c'16
3246       \tuplet 5/4 {
3247         c'16 c'16 c'16 c'16 c'16
3248       }
3249     }
3250   >>
3251   \layout {
3252     \context {
3253       \Score
3254       proportionalNotationDuration = #(ly:make-moment 1/8)
3255     }
3256   }
3257 }
3258
3259 \score {
3260   <<
3261     \new RhythmicStaff {
3262       c'2
3263       c'16 c'16 c'16 c'16
3264       \tuplet 5/4 {
3265         c'16 c'16 c'16 c'16 c'16
3266       }
3267     }
3268   >>
3269   \layout {
3270     \context {
3271       \Score
3272       proportionalNotationDuration = #(ly:make-moment 1/16)
3273     }
3274   }
3275 }
3276
3277 \score {
3278   <<
3279     \new RhythmicStaff {
3280       c'2
3281       c'16 c'16 c'16 c'16
3282       \tuplet 5/4 {
3283         c'16 c'16 c'16 c'16 c'16
3284       }
3285     }
3286   >>
3287   \layout {
3288     \context {
3289       \Score
3290       proportionalNotationDuration = #(ly:make-moment 1/32)
3291     }
3292   }
3293 }
3294 @end lilypond
3295
3296 8 分音符以上などのようなあまりにも大きな演奏時間にすると、@c
3297 楽譜が密になりすぎて、符頭の衝突が発生する可能性があるということに@c
3298 注意してください。@c
3299 さらに、一般にプロポーショナル ノーテーションはクラシック音楽のスペースよりも@c
3300 多くの水平方向スペースをとるということに注意してください。@c
3301 プロポーショナル ノーテーションは、多くの水平方向スペースを使うことで、@c
3302 明快なリズムを提供します。
3303
3304 次に、重複する連符に最適なスペースを割り当てる方法を検証します。
3305
3306 まず、クラシック音楽のスペースで、異なるタイプの連符を付け加えたときに、@c
3307 何が起こるかを見ていきます。
3308
3309 @lilypond[quote,verbatim,ragged-right]
3310 \score {
3311   <<
3312     \new RhythmicStaff {
3313       c'2
3314       c'16 c'16 c'16 c'16
3315       \tuplet 5/4 {
3316         c'16 c'16 c'16 c'16 c'16
3317       }
3318     }
3319     \new RhythmicStaff {
3320       \tuplet 9/8 {
3321         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3322       }
3323     }
3324   >>
3325 }
3326 @end lilypond
3327
3328 このスペースのとり方は良くありません。@c
3329 なぜなら、下の譜の音符の間隔が一様ではないからです。@c
3330 クラシック音楽の譜刻には複雑な連符はほとんど含まれないため、@c
3331 クラシック音楽の譜刻規則はこのような結果を生み出す可能性があります。@c
3332 @code{proportionalNotationDuration} を設定することにより、@c
3333 この状況はかなり修正されます。
3334
3335 @lilypond[quote,verbatim,ragged-right]
3336 \score {
3337   <<
3338     \new RhythmicStaff {
3339       c'2
3340       c'16 c'16 c'16 c'16
3341       \tuplet 5/4 {
3342         c'16 c'16 c'16 c'16 c'16
3343       }
3344     }
3345     \new RhythmicStaff {
3346       \tuplet 9/8 {
3347         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3348       }
3349     }
3350   >>
3351   \layout {
3352     \context {
3353       \Score
3354       proportionalNotationDuration = #(ly:make-moment 1/20)
3355     }
3356   }
3357 }
3358 @end lilypond
3359
3360 しかしながら、注意深く見ると、@c
3361 9 連符の後半の音符の間隔が、@c
3362 前半の音符の間隔よりもわずかに広くなっています。@c
3363 間隔を一様にするため、@c
3364 @code{SpacingSpanner} のプロパティである
3365 @code{uniform-stretching} を ON にします。
3366
3367 @lilypond[quote,verbatim,ragged-right]
3368 \score {
3369   <<
3370     \new RhythmicStaff {
3371       c'2
3372       c'16 c'16 c'16 c'16
3373       \tuplet 5/4 {
3374         c'16 c'16 c'16 c'16 c'16
3375       }
3376     }
3377     \new RhythmicStaff {
3378       \tuplet 9/8 {
3379         c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3380       }
3381     }
3382   >>
3383   \layout {
3384     \context {
3385       \Score
3386       proportionalNotationDuration = #(ly:make-moment 1/20)
3387       \override SpacingSpanner.uniform-stretching = ##t
3388     }
3389   }
3390 }
3391 @end lilypond
3392
3393 今度は、適切にスペースが割り当てられました。@c
3394 リズムは視覚的に明快になり、必要があれば時間軸や図を挿入することができます。
3395
3396 LilyPond のプロポーショナル ノーテーション パッケージは、@c
3397 すべてのプロポーショナルな楽譜は @code{SpacingSpanner} の
3398 @code{'uniform-stretching} 属性が @code{##t} に設定されているものと@c
3399 見なします。@c
3400 @code{SpacingSpanner} の @code{'uniform-stretching} 属性が @code{##t}
3401 に設定されずに、@c
3402 @code{proportionalNotationDuration} が設定されると、@c
3403 例えば、スキップ (空白音符) の水平方向のスペースが適切に割り当てられません。
3404
3405 @code{SpacingSpanner} は @code{Score} コンテキストの中にある@c
3406 抽象的なグラフィカル オブジェクトです。@c
3407 @code{proportionalNotationDuration} の設定と一緒に、@c
3408 @code{SpacingSpanner} をオーバライドする場所は、@c
3409 入力ファイルの 3 つの場所のいずれかになります
3410 -- @code{Score \with} ブロックの中、@code{Score \context} ブロックの中、@c
3411 あるいは音符入力の場所に直接配置するかです。
3412
3413 デフォルトでは、@code{Score} ごとに @code{SpacingSpanner} が 1 つあります。@c
3414 つまり、デフォルトでは、@code{uniform-stretching} は楽譜全体で ON であるか、@c
3415 OFF であるかのどちらかであるということです。@c
3416 しかしながら、この振る舞いをオーバライドして、@c
3417 楽譜内の異なる場所で異なるスペース機能を設定することができます。@c
3418 これを実現するには、コマンド @code{\newSpacingSection} を用います。@c
3419 更なる情報は、@ref{新しいスペース領域} を参照してください。
3420
3421 次に、@code{Separating_line_group_engraver} の効果を検証し、@c
3422 なぜプロポーショナルな楽譜は頻繁に@c
3423 このエングラーバを削除するのかを見ていきます。@c
3424 以下の例は、各システムの最初の音符の直前に小さな @qq{前置きの} スペースが@c
3425 あることを示しています。@c
3426
3427 @lilypond[quote,verbatim,ragged-right]
3428 \paper {
3429   indent = #0
3430 }
3431
3432 \new Staff {
3433   c'1
3434   \break
3435   c'1
3436 }
3437 @end lilypond
3438
3439
3440 この前置きのスペースの量は、前にあるのが拍子記号、調号、あるいは音部記号の@c
3441 いずれであっても、同じです。@c
3442 @code{Separating_line_group_engraver} はこのスペースに責任を負います。@c
3443 @code{Separating_line_group_engraver} を削除すると、@c
3444 このスペースはゼロになります。
3445
3446 @lilypond[quote,verbatim,ragged-right]
3447 \paper {
3448   indent = #0
3449 }
3450
3451 \new Staff \with {
3452   \remove "Separating_line_group_engraver"
3453 } {
3454   c'1
3455   \break
3456   c'1
3457 }
3458 @end lilypond
3459
3460 拍子記号、調号、音部記号、それに臨時記号のような非音楽要素は、@c
3461 プロポーショナル ノーテーションでは問題になります。@c
3462 これらはすべて演奏時間を持ちません。@c
3463 しかしながら、これらはすべて水平方向のスペースを消費します。@c
3464 この問題に対して、プロポーショナルな楽譜はいくつかの異なるアプローチをとります。
3465
3466 調号のスペースの問題は、調号を持たないことで回避できるかもしれません。@c
3467 これは有効な選択肢です。@c
3468 なぜなら、たいていのプロポーショナルな楽譜は現代音楽だからです。@c
3469 拍子記号についても同じことが言えるかもしれません。@c
3470 時間軸や他の図を持つ楽譜であれば特にそうです。@c
3471 しかしながら、そのような楽譜は例外的なものであり、@c
3472 たいていのプロポーショナルな楽譜は少なくともいくつかの拍子記号を持ちます。@c
3473 さらに、音部記号と臨時記号はより必須のものです。
3474
3475 それでは、プロポーショナルなコンテキストにおける非音楽要素のスペースに対して@c
3476 どのような解決法が存在するのでしょうか?@c
3477 とり得る選択肢の 1 つに、@code{SpacingSpanner} の @code{strict-note-spacing}
3478 プロパティがあります。@c
3479 以下の 2 つの楽譜を比べてください:
3480
3481 @lilypond[quote,verbatim,ragged-right]
3482 \new Staff {
3483   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3484   c''8
3485   c''8
3486   c''8
3487   \clef alto
3488   d'8
3489   d'2
3490 }
3491
3492 \new Staff {
3493   \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3494   \override Score.SpacingSpanner.strict-note-spacing = ##t
3495   c''8
3496   c''8
3497   c''8
3498   \clef alto
3499   d'8
3500   d'2
3501 }
3502 @end lilypond
3503
3504 どちらの楽譜もプロポーショナルです。@c
3505 しかしながら、最初の楽譜は音部変更があるため広がりすぎています。@c
3506 2 番目の楽譜は、@code{strict-note-spacing} を ON にしているため、@c
3507 プロポーショナルな間隔を維持しています。@c
3508 @code{strict-note-spacing} を ON にすると、@c
3509 拍子記号、調号、音部記号、それに臨時記号の幅は、@c
3510 スペース アルゴリズムの中で何の役割も果たさなくなります。
3511
3512 この設定に加えて、他にもプロポーショナルな楽譜で頻出する設定があります。@c
3513 以下のような設定です:
3514
3515 @itemize
3516 @item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
3517 @item @code{tupletFullLength = ##t}
3518 @item @code{\override Beam.breakable = ##t}
3519 @item @code{\override Glissando.breakable = ##t}
3520 @item @code{\override TextSpanner.breakable = ##t}
3521 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
3522 @end itemize
3523
3524 これらの設定は、装飾小音符のスペースを厳密にし、@c
3525 連譜の囲みをリズム的な開始点、終了点まで拡張し、@c
3526 (連桁のような) 広がりを持つ要素が、@c
3527 システムやページが改まるときに中断されることを許可します。@c
3528 これらの設定について、本書の関連パートを参照してください。
3529
3530 @seealso
3531 記譜法リファレンス:
3532 @ref{新しいスペース領域}
3533
3534 コード断片集:
3535 @rlsr{Spacing}
3536
3537
3538 @node 音楽を少ないページに収める
3539 @section 音楽を少ないページに収める
3540 @translationof Fitting music onto fewer pages
3541
3542 ときどき、譜の 1 つ、2 つが 2 番目 (あるいは、3 番目、4 番目@dots{})
3543 のページに配置されてしまうことがあります。@c
3544 これは腹立たしいことです
3545 -- 特に、前のページに十分なスペースがあるように見える場合は。
3546
3547 レイアウトの問題を解決しようとしている時、@c
3548 @code{annotate-spacing} は何にも代え難いツールです。@c
3549 このコマンドはさまざまなレイアウト スペース変数の値を表示します。@c
3550 詳細は以下のセクション @ref{スペースを表示する} を参照してください。
3551
3552 @menu
3553 * スペースを表示する::
3554 * スペースを変更する::
3555 @end menu
3556
3557
3558 @node スペースを表示する
3559 @subsection スペースを表示する
3560 @translationof Displaying spacing
3561
3562 @funindex annotate-spacing
3563 @cindex spacing, display of layout (レイアウト スペースの表示)
3564
3565 ページ フォーマットのために変更される可能性がある、@c
3566 垂直方向のレイアウト変数の値を表示させるには、@c
3567 @code{\paper} ブロックの中で @code{annotate-spacing} をセットします:
3568
3569 @c need to have \book{} otherwise we get the separate systems. -hwn
3570 @lilypond[verbatim,quote]
3571 #(set-default-paper-size "a6" 'landscape)
3572 \book {
3573   \score { { c4 } }
3574   \paper { annotate-spacing = ##t }
3575 }
3576 @end lilypond
3577
3578
3579 @noindent
3580 すべてのレイアウト値は、@c
3581 @code{\paper} ブロックや @code{\layout} ブロックの中で@c
3582 指定された単位とは無関係に、譜スペースで表示されます。@c
3583 上の例では、@code{paper-height} の値は 59.75 @code{譜スペース} であり、@c
3584 @code{staff-size} は 20 ポイント (デフォルト値) です。@c
3585 以下のことに注意してください:
3586
3587 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
3588
3589 @item 1 ポイント
3590 @tab = (25.4/72.27) mm
3591
3592 @item 1 譜スペース
3593 @tab = (@code{staff-size})/4 ポイント
3594 @item
3595 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3596
3597 @end multitable
3598
3599 @noindent
3600 この場合、1 譜スペースは約 1.757mm です。@c
3601 それゆえ、59.75 譜スペースである @code{paper-height} は 105mm であり、@c
3602 横置きの @code{A6} 紙の高さと同じです。@c
3603 ペア (@var{a},@var{b}) は間隔を表します。@c
3604 @var{a} は間隔の下端を、@var{b} は上端を表します。
3605
3606 @seealso
3607 記譜法リファレンス:
3608 @ref{譜サイズを設定する}
3609
3610 コード断片集:
3611 @rlsr{Spacing}
3612
3613
3614 @node スペースを変更する
3615 @subsection スペースを変更する
3616 @translationof Changing spacing
3617
3618 @code{annotate-spacing} の出力は、@c
3619 垂直方向のレイアウト変数の値を詳細に取得します。@c
3620 マージンや他のレイアウト変数を変更することについての詳細は、@c
3621 @ref{ページ レイアウト} を参照してください。
3622
3623 マージン以外にも、スペースを節約するための選択肢がいくつかあります:
3624
3625 @itemize
3626 @item
3627
3628 (1 ページにできるだけ多くのシステムを収めるために)
3629 スペースがある限り、システムを可能な限り近寄せる。@c
3630 それにより、ページの下部に空きスペースが無くなります。
3631
3632 @example
3633 \paper @{
3634   system-system-spacing = #'((basic-distance . 0.1) (padding . 0))
3635   ragged-last-bottom = ##f
3636   ragged-bottom = ##f
3637 @}
3638 @end example
3639
3640 @item
3641 システム数を設定する。@c
3642 これは 2 つの意味でスペースを節約します。@c
3643 システム数を設定することで、たとえそれがデフォルト値であっても、@c
3644 各ページにより多くのシステムを収めることができる場合があります。@c
3645 なぜなら、見積もりのステップが迂回され、より正確な適合が得られるからです。@c
3646 さらに、システム数を減らすことで、より多くのページを節約できる場合があります。@c
3647 例えば、デフォルトのレイアウトが 11 システムである場合、@c
3648 以下の指定により、レイアウトは強制的に 10 システムに収められます。
3649
3650 @example
3651 \paper @{
3652   system-count = #10
3653 @}
3654 @end example
3655
3656 @item
3657 強制的にページ数を設定する。@c
3658 例えば、以下の設定は強制的に 2 ページにレイアウトさせます。
3659
3660 @example
3661 \paper @{
3662   page-count = #2
3663 @}
3664 @end example
3665
3666 @item
3667 オブジェクトがシステムの垂直方向のサイズを増加させるのを避ける
3668 (あるいは減らす)。@c
3669 例えば、volta リピート (または、差し替えの繰り返し) は@c
3670 余分なスペースを必要とします。@c
3671 これらの繰り返しが 2 つのシステムに広がっている場合、@c
3672 1 システムが volta リピートを持ち、もう 1 システムが volta リピートを持たない@c
3673 場合よりも多くのスペースをとります。@c
3674 別の例では、@c
3675 システムから突き出ている強弱記号を譜に近づけることで、@c
3676 スペースを節約することができます:
3677
3678 @lilypond[verbatim,quote,relative=1]
3679 e4 c g\f c
3680 e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
3681 @end lilypond
3682
3683 @item
3684 @code{SpacingSpanner} 経由で水平方向のスペースを変更する。@c
3685 詳細は、@ref{水平方向のスペースを変更する} を参照してください。@c
3686 以下の例は、デフォルトをスペースを示しています:
3687
3688 @lilypond[verbatim,quote]
3689 \score {
3690   \relative {
3691     g'4 e e2 |
3692     f4 d d2 |
3693     c4 d e f |
3694     g4 g g2 |
3695     g4 e e2 |
3696   }
3697 }
3698 @end lilypond
3699
3700 @noindent
3701 次の例では、@code{common-shortest-duration} の値を
3702 @code{1/4} から @code{1/2} に変更しています。@c
3703 この例では、4 分音符が最も共通で、最短の演奏時間です。@c
3704 そのため、@code{common-shortest-duration} を長くすることで
3705 @q{詰め込む} 効果を得られます:
3706
3707 @lilypond[verbatim,quote]
3708 \score {
3709   \relative {
3710     g'4 e e2 |
3711     f4 d d2 |
3712     c4 d e f |
3713     g4 g g2 |
3714     g4 e e2 |
3715   }
3716   \layout {
3717     \context {
3718       \Score
3719       \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2)
3720     }
3721   }
3722 }
3723 @end lilypond
3724
3725 @noindent
3726 @code{common-shortest-duration} プロパティを動的に変更することはできません。@c
3727 そのため、このプロパティは常に @code{\context} ブロックの中に配置して、@c
3728 楽譜全体に適用されるようにする必要があります。
3729
3730 @end itemize
3731
3732 @seealso
3733 記譜法リファレンス:
3734 @ref{ページ レイアウト},
3735 @ref{水平方向のスペースを変更する}
3736
3737 コード断片集:
3738 @rlsr{Spacing}