1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
4 Translation of GIT committish: cc3b9e1430f4cc9c54da7252e504f3d274a7ea17
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..
14 @c Translators: Yoshiki Sawada
15 @c Translation status: post-GDP
21 Negative numbers are allowed:
22 > Are you sure? The following works well
24 > first-page-number = -2
26 > and prints page number -1 on the second page, for example.
29 In 5.2.1 the @refbugs (line 495 in spacing.itely on master) it
32 "@code{layout-set-staff-size} does not change the distance between
36 Could we add a sentence:
37 "Use instead the pair fontSize = #@var{N}
38 \override StaffSymbol.staff-space = #(magstep
40 inside the Staff context to change the size of the font and the
42 staff lines accordingly."
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?
54 http://code.google.com/p/lilypond/issues/detail?id=68
61 @translationof Spacing issues
63 紙面全体のレイアウトは 3 つの要素によって決定されます:
64 ページ レイアウト、改行、そしてスペースです。@c
65 これらはすべて互いに影響を与え合います。@c
66 スペース入れ方を選択することは音楽システムを@c
67 どれくらいの密度で譜刻するかを決定します。@c
68 これは改行をどこに挿入するかに影響を与え、@c
73 このプロセスには 4 つのステップがあります:
74 最初に、演奏時間に基づいて可変距離 (@q{スプリング}) が選択されます。@c
75 とり得る改行の組み合わせがすべて試され、@c
76 相対的に @q{悪い} 楽譜が算出されます。@c
77 それから、起こり得るシステムの高さが推定されます。
79 水平方向と垂直方向のスペースが混み合いすぎたり、@c
83 2 タイプのブロックがレイアウト設定を保持できます:
84 @code{\paper @{@dots{}@}} と @code{\layout @{@dots{}@}} です。@c
85 @code{\paper} ブロックは book のすべての score で共通の@c
87 -- ページの高さやページ番号を表示するか等です。@c
88 @ref{ページ レイアウト} を参照してください。@c
89 @code{\layout} ブロックは score のレイアウトを保持します
90 -- システム数や譜グループ間の間隔等です。@c
91 @ref{ページ レイアウト} を参照してください。@c
104 @translationof Page layout
106 このセクションでは @code{\paper} ブロックで使用するページ レイアウト
112 * 固定された垂直方向の paper スペース変数::
113 * 可変な垂直方向の paper スペース変数::
114 * 水平方向の paper スペース変数::
120 @subsection @code{\paper} ブロック
121 @translationof The \paper block
123 @code{\paper} ブロックは、@code{\book} ブロック内に配置することができますが、@c
124 @code{\score} ブロック内に配置することはできません。@c
125 @code{\paper} ブロックでの設定は book 全体に適用されます。@c
126 book が複数の score を含む場合も、すべての score に適用されます。@c
127 @code{\paper} ブロックで可能な設定には以下のものがあります:
132 @code{set-paper-size} Scheme 関数
135 ページ レイアウトをカスタマイズするのに用いられる @code{\paper} 変数
138 ヘッダ、フッタ、それにタイトルのレイアウトを@c
139 カスタマイズするのに用いられるマークアップ定義
143 @code{set-paper-size} 関数は次のセクション
146 ページ レイアウトを扱う @code{\paper} 変数は後のセクションで説明します。@c
147 ヘッダ、フッタ、それにタイトルを扱うマークアップ定義は
148 @ref{カスタム ヘッダ、フッタ、タイトル} で説明します。
150 たいていの @code{\paper} 変数は @code{\paper} ブロック内でのみ機能します。@c
151 @code{\layout} ブロック内でも機能するいくつかの @code{\paper} 変数を@c
152 @ref{\layout ブロック} でリスト アップしています。
154 ページの長さに関係する @code{\paper} 変数の単位は、@c
155 ユーザによって他の単位が指定されていなければ、@c
157 例えば、以下の宣言は @code{top-margin} を @code{10mm} に設定します:
165 @code{top-margin} を @code{0.5} インチに設定するには、@c
166 単位接尾辞 @code{\in} を使用します:
174 利用可能な単位接尾辞は @code{\mm}, @code{\cm}, @code{\in},
176 これらの単位はミリメーターから変換するための値であり、@c
177 @file{ly/paper-defaults-init.ly} で定義されています。@c
178 技術的には必要はありませんが、明快さのために、@c
179 ミリメーターを用いる場合であっても @code{\mm} をコードに記述します。
181 Scheme を用いて @code{\paper} の値を定義することも可能です。@c
182 上の例と等価な Scheme は以下のようになります:
186 #(define top-margin (* 0.5 in))
193 @ref{カスタム ヘッダ、フッタ、タイトル},
197 @file{ly/paper-defaults-init.ly}
201 @subsection 紙面サイズと自動拡縮
202 @translationof Paper size and automatic scaling
204 @cindex paper size (紙面サイズ)
205 @cindex page size (ページ サイズ)
216 @unnumberedsubsubsec 紙面サイズを設定する
217 @translationof Setting the paper size
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
224 @q{A4} が紙面サイズを明示的に設定しなかった場合のデフォルト値です。@c
225 しかしながら、デフォルト値を変更するために使うことができる関数が 2 つあります。@c
226 1 つは @code{set-default-paper-size} です:
229 #(set-default-paper-size "quarto")
232 この関数は常に最上位スコープに配置する必要があります。@c
233 もう 1 つは @code{set-paper-size} です:
237 #(set-paper-size "tabloid")
241 この間数は常に @code{\paper} ブロックの中に配置する必要があります。
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
248 例えば、@code{\paper} ブロックがファイルの最上位に配置されている場合、すべての@c
250 @code{\paper} ブロックが @code{\book} の中に配置されている場合、そのブックの@c
253 @code{set-paper-size} 関数を用いる場合、同じ @code{\paper} ブロック内で@c
254 用いられる他のすべての関数よりも @emph{前に} 配置する必要があります。@c
255 @ref{Automatic scaling to paper size} を参照してください。
257 紙面サイズは @file{scm/paper.scm} で定義されていて、カスタム サイズを追加する@c
258 ことも可能ですが、追加後のソフトウェア アップデートにより上書きされます。@c
259 利用可能な紙面サイズは @ref{Predefined paper sizes} でリスト アップされています。
261 @c An appendix entry exists for paper sizes but is not auto-generated
263 以下のコマンドを用いてカスタム紙面サイズを追加することができ、追加した紙面サイズは
264 @code{set-default-paper-size} または @code{set-paper-size} で使用することが@c
269 #(set! paper-alist (cons '("my size" . (cons (* 15 in) (* 3 in))) paper-list))
272 #(set-paper-size "my size")
276 単位 @code{in} (インチ)、@code{cm} (センチメートル)、それに @code{mm}
277 (ミリメートル) のすべてを使うことができます。
279 @cindex paper size, orientation (紙面サイズの向き)
280 @cindex page, orientation (紙面の向き)
281 @cindex paper size, landscape (横向きの紙面サイズ)
283 紙面サイズ関数にシンボル @code{'landscape} を渡すとページは 90°回転し、@c
287 #(set-default-paper-size "a6" 'landscape)
290 紙面が回転するだけで、楽譜は回転 @emph{しません}。
294 @ref{Automatic scaling to paper size},
295 @ref{Predefined paper sizes}
302 @unnumberedsubsubsec 紙面サイズに応じた自動拡縮
303 @translationof Automatic scaling to paper size
306 (@code{set-default-paper-size} または @code{set-paper-size})
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} で説明します。
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} スペース変数} を参照してください)。
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} です。
336 @ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数},
337 @ref{水平方向の paper スペース変数,,水平方向の @code{@bs{}paper} スペース変数}
340 @file{ly/paper-defaults-init.ly},
344 @node 固定された垂直方向の paper スペース変数
345 @subsection 固定された垂直方向の @code{\paper} スペース変数
346 @translationof Fixed vertical spacing \paper variables
348 @warning{いくつかの @code{@bs{}paper} 変数は紙面サイズに応じて@c
349 自動的に拡縮され、結果として予期せぬ振る舞いを引き起こすことがあります。@c
350 @ref{紙面サイズに応じた自動拡縮} を参照してください。}
353 @file{ly/paper-defaults-init.ly} で定義されています。
357 @funindex paper-height
359 ページの高さ -- デフォルトでは設定されていません。@c
360 これは垂直方向の長さの自動拡縮は影響を与えません。
365 ページの上端と印刷可能エリアの上端との間のマージン。@c
366 紙面サイズが変更されると、それに応じてこの長さのデフォルト値も拡縮されます。
369 @funindex bottom-margin
371 印刷可能エリアの下端とページの下端との間のマージン。@c
372 紙面サイズが変更されると、それに応じてこの長さのデフォルト値も拡縮されます。
375 @funindex ragged-bottom
377 真に設定されている場合、システムはページ下端まで広がりません。@c
379 ページに 2, 3 しかシステムを持たない楽曲 -- オーケストラ譜等 -- では、@c
382 @item ragged-last-bottom
383 @funindex ragged-last-bottom
385 偽に設定されている場合、最後のページでシステムはページ下端まで広がります。@c
386 2 ページ以上ある楽曲では、この変数を偽に設定すべきです。@c
388 -- すなわち @code{\bookpart} ブロックによって作成された部分 --
398 @file{ly/paper-defaults-init.ly}
404 (@code{\header} ブロックによって作成された)
406 このため、@code{ragged-bottom} と @code{ragged-last-bottom} は@c
407 タイトルと score の最初のシステムとの間にスペースを追加します。
409 明示的に定義された紙面サイズは、ユーザ定義の上または下のマージン設定を上書きします。
412 @node 可変な垂直方向の paper スペース変数
413 @subsection 可変な垂直方向の @code{\paper} スペース変数
414 @translationof Flexible vertical spacing \paper variables
417 (マージン、タイトル、システム、score 等の間)
418 の垂直方向の間隔は、状況に応じて伸びたり縮んだりするよう、@c
420 いくつかの @code{\paper} 変数
421 (以下でリスト アップします) は、長さを微調整することができます。
423 このセクションで説明する @code{\paper} 変数は、@c
424 個々のシステム内にある譜のスペースを制御しないということに注意してください。@c
426 普通は @code{\score} ブロックや @code{\score} ブロックの中に配置される設定を@c
428 グラフィカル オブジェクトのプロパティによって制御されます。@c
429 @ref{システム内部の可変な垂直方向のスペース} を参照してください。
432 * 可変な垂直方向スペース連想リストの構造::
433 * 可変な垂直方向の paper スペース変数のリスト::
437 @node 可変な垂直方向スペース連想リストの構造
438 @unnumberedsubsubsec 可変な垂直方向スペース連想リストの構造
439 @translationof Structure of flexible vertical spacing alists
441 可変な垂直方向の @code{\paper} スペース変数は、@c
442 それぞれが 4 つの @emph{キー} を保持する連想配列 (association list) です:
447 @code{basic-distance} -- 2 つの要素の @emph{参照ポイント} 間の@c
448 垂直方向の間隔。単位は譜スペースです。@c
449 衝突が生じない場合は、伸縮されません。@c
450 (タイトルまたは最上位の) マークアップの参照ポイントは最も上の箇所です。@c
452 譜線を持たない (@code{Lyrics} コンテキスト等) であっても、@c
453 最も近くにある @code{StaffSymbol} の垂直方向の中心です。@c
454 @code{basic-distance} の値が @code{padding} や @code{minimum-distance} よりも@c
456 なぜなら、間隔が @code{padding} や @code{minimum-distance} よりも@c
458 @code{minimum-distance} の値が @code{padding} よりも小さいと無意味になります。@c
459 なぜなら、間隔が @code{padding} よりも小さくなることはないからです。
461 @c TODO: explain skylines somewhere and xref to it from here.
464 @code{padding} -- 2 つの要素間の境界ボックス (または輪郭) の間に必要な、@c
465 垂直方向の最小の間隔。単位は譜スペースです。@c
468 @code{stretchability} -- 間隔の伸び率。@c
469 0 の場合、間隔は広がりません (衝突が生じない限りは)。@c
470 正の値の場合、ある間隔の @code{stretchability} 値は@c
471 他の間隔の @code{stretchability} との相対関係になります。@c
472 例えば、ある間隔の @code{stretchability} 値が@c
473 もう一つの間隔の @code{stretchability} の 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})
485 譜がページの下端まで広がらない設定の場合、間隔は以下の中の最大値となります:
491 @code{basic-distance},
494 @code{minimum-distance},
497 @code{padding} + 衝突を回避するのに必要な最小の距離
501 複数ページの楽譜で、最後のページの楽譜がページ下端まで広がらない場合、最後の@c
504 配列リストを変更する方法は、@ref{Modifying alists} で説明します。@c
505 以下の例は、連想配列を変更する 2 つの方法を提示しています。@c
506 最初の宣言はキー値を個別に変更していて、2 つ目は変数全体を再定義しています:
510 system-system-spacing.basic-distance = #8
511 score-system-spacing =
512 #'((basic-distance . 12)
513 (minimum-distance . 6)
515 (stretchability . 12))
520 @node 可変な垂直方向の paper スペース変数のリスト
521 @unnumberedsubsubsec 可変な垂直方向の @code{\paper} スペース変数のリスト
522 @translationof List of flexible vertical spacing \paper variables
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 すべての間隔の距離の単位は譜スペースです。
533 デフォルト設定は @file{ly/paper-defaults-init.ly} で定義しています。
535 @c TODO: Where do headers/footers fit in? -mp
538 @item markup-system-spacing
539 @funindex markup-system-spacing
541 (タイトルまたは最上位の) マークアップと、その後に続くシステムとの間隔。
543 @item score-markup-spacing
544 @funindex score-markup-spacing
546 score の最後のシステムと、その後に続く (タイトルまたは最上位の)
549 @item score-system-spacing
550 @funindex score-system-spacing
552 score の最後のシステムと、その後に score の最初のシステムとの間隔
553 -- score と score の間に (タイトルまたは最上位の) マークアップが無い場合。
555 @item system-system-spacing
556 @funindex system-system-spacing
558 同じ score の中にある 2 つのシステムの間隔。
560 @item markup-markup-spacing
561 @funindex markup-markup-spacing
563 2 つの (タイトルまたは最上位の) マークアップの間隔。
565 @item last-bottom-spacing
566 @funindex last-bottom-spacing
568 ページの最後のシステムまたは最上位のマークアップから、@c
569 印刷可能エリアの下端 (つまり、ボトム マージンの上端) までの距離。
571 @item top-system-spacing
572 @funindex top-system-spacing
574 印刷可能エリアの上端 (つまり、トップ マージンの下端) から、@c
576 -- 間に (タイトルまたは最上位の) マークアップが無い場合。
578 @item top-markup-spacing
579 @funindex top-markup-spacing
581 印刷可能エリアの上端 (つまり、トップ マージンの下端) から、@c
582 ページの最初の (タイトルまたは最上位の) までの距離
588 @ref{システム内部の可変な垂直方向のスペース}
591 @file{ly/paper-defaults-init.ly}
597 @node 水平方向の paper スペース変数
598 @subsection 水平方向の @code{\paper} スペース変数
599 @translationof Horizontal spacing \paper variables
601 @warning{いくつかの @code{@bs{}paper} の間隔は紙面サイズに応じて自動的に@c
602 拡縮され、それにより予期せぬ結果となることがあります。@c
603 @ref{紙面サイズに応じた自動拡縮} を参照してください。}
607 * 両面モードのための paper 変数::
608 * シフトとインデントのための paper 変数::
612 @node 幅とマージンの paper 変数
613 @unnumberedsubsubsec 幅とマージンの @code{\paper} 変数
614 @translationof \paper variables for widths and margins
616 ここでリスト アップされていない (拡縮する前の) デフォルト値は、@c
617 @file{ly/paper-defaults-init.ly} で定義されています。
622 @funindex paper-width
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} も参照してください。
635 インデントされず、ページ右端まで広がるシステムの譜線の水平方向の長さは、@c
636 @code{(paper-width@tie{}@minus{}@tie{}left-margin@tie{}@minus{}@tie{}right-margin)}
638 @code{left-margin} と @code{right-margin} に値が設定されていなければ、@c
641 @code{check-consistency} も参照してください。@c
642 この変数は @code{\layout} ブロック内で設定される可能性もあります。
645 @funindex left-margin
647 ページの左端とインデントされていないシステムの譜線開始点との間のマージンです。@c
648 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
649 @code{left-margin} に値が設定されず、@c
650 @code{line-width} と @code{right-margin} の両方に値が設定された場合、@c
652 @code{(paper-width@tie{}@minus{}@tie{}line-width@tie{}@minus{}@tie{}right-margin)}
654 @code{line-width} だけに値が設定された場合、@c
656 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}
658 結果としてシステムはページの中央に配置されます。@c
659 @code{check-consistency} も参照してください。@c
662 @funindex right-margin
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)}
671 @code{line-width} だけに値が設定された場合、@c
673 @code{((paper-width@tie{}@minus{}@tie{}line-width)@tie{}/@tie{}2)}
675 結果としてシステムはページの中央に配置されます。@c
676 @code{check-consistency} も参照してください。@c
678 @item check-consistency
679 @funindex check-consistency
681 真にセットされた場合、@code{left-margin}, @code{line-width},
682 それに @code{right-margin} の和が @code{paper-width} にならなければ警告を@c
684 @code{left-margin} と @code{right-margin} をデフォルト値に置き換え
685 (必要に応じて紙面サイズに合わせて拡宿し) ます。@c
686 偽にセットされた場合、不一致を無視して、@c
687 システムがページの左端からはみ出すことを許可します。
690 @funindex ragged-right
692 真にセットされた場合、システムは譜線の幅いっぱいまで広がらず、@c
694 デフォルトでは、1 つだけシステムを持つ score の場合は @code{#t}、@c
695 複数のシステムを持つ score の場合は @code{#f} です。@c
696 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
699 @funindex ragged-last
701 真にセットされた場合、score の最後のシステムは譜線の幅いっぱいまで広がらず、@c
703 デフォルトでは @code{#f} です。@c
704 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
713 @file{ly/paper-defaults-init.ly}
716 明示的に定義された紙面サイズは、ユーザ定義の左または右のマージン設定を上書きします。
719 @node 両面モードのための paper 変数
720 @unnumberedsubsubsec 両面モードのための @code{\paper} 変数
721 @translationof \paper variables for two-sided mode
724 @file{ly/paper-defaults-init.ly} で定義されています。
732 @cindex binding gutter
735 ページ番号が偶数か奇数かに応じて @code{inner-margin}, @code{outer-margin}
736 それに @code{binding-offset} を用いてマージンを決定します。@c
737 これは @code{left-margin} と @code{right-margin} を上書きします。
740 @funindex inner-margin
742 book の一部であるページすべてが見開きページの内側に持つマージンです。@c
743 (左ページの場合は右側のマージン、右ページの場合は左側のマージンです。)
744 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
745 @code{two-sided} が真にセットされてい場合にのみ、機能します。
748 @funindex outer-margin
750 book の一部であるページすべてが見開きページの外側に持つマージンです。@c
751 (左ページの場合は左側のマージン、右ページの場合は右側のマージンです。)
752 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
753 @code{two-sided} が真にセットされてい場合にのみ、機能します。
756 @funindex binding-offset
759 @code{inner-margin} を増加させる量です。@c
760 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
761 @code{two-sided} が真にセットされてい場合にのみ、機能します。
770 @file{ly/paper-defaults-init.ly}
773 @node シフトとインデントのための paper 変数
774 @unnumberedsubsubsec シフトとインデントのための @code{\paper} 変数
775 @translationof \paper variables for shifts and indents
777 このにリスト アップされていない (拡縮される前の) デフォルト値は
778 @file{ly/paper-defaults-init.ly} で定義されています。
782 @item horizontal-shift
783 @funindex horizontal-shift
785 @c This default value is buried in the middle of page.scm. -mp
787 (タイトルとシステム セパレータを含む) すべてのシステムを@c
789 デフォルトでは @code{0.0\mm} です。
794 score の最初のシステムに対するインデントのレベルです。@c
795 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
796 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
799 @funindex short-indent
801 最初のシステムを除くすべてのシステムに対するインデントのレベルです。@c
802 紙面サイズが変更された場合、それに応じてこの変数のデフォルト値も拡縮されます。@c
803 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
812 @file{ly/paper-defaults-init.ly}
819 @subsection 他の @code{\paper} 変数
820 @translationof Other \paper variables
824 * 改ページのための paper 変数::
825 * ページ番号のための paper 変数::
830 @node 改行のための paper 変数
831 @unnumberedsubsubsec 改行のための @code{\paper} 変数
832 @translationof \paper variables for line breaking
834 @c TODO: Mention that ly:optimal-breaking is on by default? -mp
838 @item max-systems-per-page
839 @funindex max-systems-per-page
841 1 ページに配置されるシステムの最大数です。@c
842 現在、これは @code{ly:optimal-breaking} アルゴリズムでのみサポートされます。@c
845 @item min-systems-per-page
846 @funindex min-systems-per-page
848 1 ページに配置されるシステムの最小数です。@c
849 この値が大きすぎると、システムがページからはみ出す可能性があります。@c
850 現在、これは @code{ly:optimal-breaking} アルゴリズムでのみサポートされます。@c
853 @item systems-per-page
854 @funindex systems-per-page
857 現在、これは @code{ly:optimal-breaking} アルゴリズムでのみサポートされます。@c
861 @funindex system-count
863 score で使用すべきシステム数です。@c
864 デフォルトでは、値は設定されていません。@c
865 この変数は @code{\layout} ブロック内でセットされる可能性もあります。
874 @node 改ページのための paper 変数
875 @unnumberedsubsubsec 改ページのための @code{\paper} 変数
876 @translationof \paper variables for page breaking
878 ここでリスト アップされていないデフォルト値は
879 @file{ly/paper-defaults-init.ly} で定義されています。
883 @item blank-after-score-page-penalty
884 @funindex blank-after-score-page-penalty
886 楽譜の後ろ (と次の楽譜の前) に強制的に白紙を挿入します。@c
887 デフォルトでは、この値は @code{blank-page-penalty} よりも小さいため、@c
888 楽譜の途中ではなく後ろに白紙が挿入されます。
890 @item blank-last-page-penalty
891 @funindex blank-last-page-penalty
893 楽譜の最後が奇数ページの場合、楽譜の後ろに白紙を挿入します。
895 @item blank-page-penalty
896 @funindex blank-page-penalty
898 楽譜の途中に強制的に白紙を挿入します。@c
899 この値は @code{ly:optimal-breaking} では用いられません。@c
900 なぜなら、楽譜の途中の白紙を考慮しないからです。
903 @funindex page-breaking
906 選択肢は @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
907 それに @code{ly:optimal-breaking} です。
909 @item page-breaking-system-system-spacing
910 @funindex page-breaking-system-system-spacing
912 改ページ アルゴリズムに @code{system-system-spacing} を実際の値とは異なる@c
914 例えば、@code{page-breaking-system-system-spacing #'padding} を
915 @code{system-system-spacing #'padding} よりも十分に大きくすると、@c
916 改ページ アルゴリズムは各ページに数個のシステムしか配置しません。@c
922 score で使用すべきページ数です。@c
936 @file{ly/paper-defaults-init.ly}
939 @node ページ番号のための paper 変数
940 @unnumberedsubsubsec ページ番号のための @code{\paper} 変数
941 @translationof \paper variables for page numbering
943 ここでリスト アップされていないデフォルト値は
944 @file{ly/paper-defaults-init.ly} で定義されています。
948 @cindex page numbers, auto-numbering (ページ番号を自動付番する)
949 @item auto-first-page-number
950 @funindex auto-first-page-number
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}.
959 @cindex page numbers, specify the first (最初のページ番号を指定する)
960 @item first-page-number
961 @funindex first-page-number
965 @item print-first-page-number
966 @funindex print-first-page-number
968 真にセットされた場合、最初のページにページ番号が譜刻されます。
970 @cindex page numbers, suppress (ページ番号を抑制する)
971 @item print-page-number
972 @funindex print-page-number
974 偽にセットされた場合、ページ番号は譜刻されません。
980 @file{ly/paper-defaults-init.ly}
983 奇数のページ番号は常に右側に配置されます。@c
984 楽譜をページ 1 から始めたいのであれば、@c
985 カバー ページの裏にブランク ページ配置して、@c
986 ページ 1 が右側にくるようにする必要があります。
990 @unnumberedsubsubsec その他の @code{\paper} 変数
991 @translationof Miscellaneous \paper variables
995 @item page-spacing-weight
996 @funindex page-spacing-weight
998 (垂直方向の) ページ スペースと (水平方向の) 行スペースの重要度の関係です。@c
999 大きな値だと、ページ スペースがより重要になります。@c
1000 デフォルトでは、@code{10} です。
1002 @item print-all-headers
1003 @funindex print-all-headers
1006 出力の各 @code{\score} のすべてのヘッダを譜刻します。@c
1007 通常、@code{piece} ヘッダ変数と @code{opus} ヘッダ変数だけが譜刻されます。@c
1008 デフォルトでは、@code{#f} です。
1010 @item system-separator-markup
1011 @funindex system-separator-markup
1013 しばしばオーケストラ譜で使用される、@c
1014 システム間に挿入されるマークアップ オブジェクトです。@c
1015 デフォルトでは、設定されていません。@c
1017 @file{ly/titling-init.ly} で定義されている @code{\slashSeparator} マークアップ@c
1020 @lilypond[quote,verbatim,noragged-right,line-width=30\mm]
1021 #(set-default-paper-size "a8")
1025 system-separator-markup = \slashSeparator
1031 \relative { c''1 \break c1 \break c1 }
1040 @file{ly/titling-init.ly}
1047 ページ番号と @code{\header} ブロックの @code{instrument} フィールドを@c
1053 @translationof Score layout
1055 このセクションでは、@code{\layout} ブロックで使用する@c
1056 楽譜レイアウト オプションについて説明します。
1065 @subsection @code{\layout} ブロック
1066 @translationof The \layout block
1070 @code{\paper} ブロックがドキュメント全体のページ フォーマットに関係する@c
1072 @code{\layout} ブロックは楽譜特有のレイアウトに関する設定を保持します。@c
1073 楽譜レイアウト オプションを全体に設定するには、@c
1074 設定を最上位の @code{\layout} ブロックに配置します。@c
1075 個々の楽譜に対してレイアウト オプションを設定するには、@c
1076 音楽表記の後の @code{\score} ブロック内の @code{\layout} ブロックの中に@c
1078 @code{\layout} ブロックに配置される設定には以下のものがあります:
1081 @item @code{layout-set-staff-size} Scheme 関数、
1082 @item @code{\context} ブロック内のコンテキスト変更、それに
1083 @item 楽譜レイアウトに影響を与える @code{\paper} 変数
1086 @code{layout-set-staff-size} 関数は次のセクション @ref{譜サイズを設定する}
1088 コンテキスト変更は @ref{Modifying context plug-ins} と
1089 @ref{Changing context default settings} で説明します。@c
1090 @code{\layout} ブロック内で使用される @code{\paper} には以下のものがあります:
1095 @code{line-width}, @code{ragged-right} それに @code{ragged-last}
1096 (@ref{幅とマージンの paper 変数,,幅とマージンの @code{@bs{}paper} 変数} を参照してください)
1099 @code{indent} と @code{short-indent}
1100 (@ref{シフトとインデントのための paper 変数,,シフトとインデントのための @code{@bs{}paper} 変数} を参照してください)
1104 (@ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数} を参照してください)
1108 ここで、@code{\layout} ブロックの例を挙げます:
1115 \override StaffGrouper.staff-staff-spacing.basic-distance = #8
1119 \override TextScript.padding = #1
1120 \override Glissando.thickness = #3
1125 最上位の表記として複数の @code{\layout} ブロックを配置することができます。@c
1126 これは、例えば、異なる設定が別個のファイルに保存されていて、任意の方法で@c
1128 内部的には、@code{\layout} ブロックが評価される時、カレントの
1129 @code{\layout} 構成のコピーが作成され、評価する @code{\layout} ブロックの@c
1130 内部で定義されている変更が適用され、その結果が新しいカレントの構成として@c
1132 ユーザからは @code{\layout} ブロックが組み合わされたように見えますが、@c
1133 衝突が発生した場合 (複数のブロックで同じプロパティが変更された場合)、@c
1142 \override TextScript.color = #magenta
1143 \override Glissando.thickness = #1.5
1148 これが一つ前の例の後に配置された場合、@code{TextScript} の @code{'padding}
1149 設定と @code{'color} 設定は組み合わせれますが、@code{Glissando} の
1150 @code{'thickness} 設定は前の設定と置き換わります (前の設定を上書きします)。
1152 @code{\layout} ブロックを後で再利用するために変数に代入することができます。@c
1153 しかしながら、この方法は @code{\layout} ブロックを直接記述した場合とは@c
1159 layoutVariable = \layout @{
1162 \override NoteHead.font-size = #4
1167 カレントの @code{\layout} 構成に @code{NoteHead #'font-size} 設定を追加@c
1168 しますが、この組み合わせは新しいカレントの構成として保存され @emph{ません}。@c
1169 @q{カレントの構成} は変数が定義された時に評価されるのであり、変数が使われる@c
1171 そのため、変数の効果は変数がソースに配置された位置によって異なります。
1173 変数を他の @code{\layout} ブロックの中で使うことができます。@c
1181 \override NoteHead.color = #red
1186 上記のような変数を含む @code{\layout} ブロックは、カレントの構成をコピー@c
1187 せず、設定を追加するためのベースとなる構成として @code{\layoutVariable} の@c
1189 このことは、変数が定義されてから使われるまでの間に定義された変更は失われる@c
1192 @code{layoutVariable} が使われる (あるいは @code{\include} される) 直前に@c
1193 定義されている場合、@code{layoutVariable} の内容はカレントの構成に変数内部@c
1194 で定義した設定を加えたものになります。@c
1195 そのため、上で示した @code{\layoutVariable} の使用例の場合、最終的な
1196 @code{\layout} ブロックの構成は以下のようになります:
1199 TextScript.padding = #1
1200 TextScript.color = #magenta
1201 Glissando.thickness = #1.5
1202 NoteHead.font-size = #4
1203 NoteHead.color = #red
1206 これに @code{indent} と @code{StaffGrouper} の設定がプラスしたものです。
1208 しかしながら、変数が最初の @code{\layout} ブロックより前に定義されていた@c
1209 場合、カレントの構成は以下だけになってしまいます:
1212 NoteHead.font-size= #4 % (変数定義で記述されたものです)
1213 NoteHead.color = #red % (変数が使用された後に追加されたものです)
1216 注意深く計画を立てれば、@code{\layout} 変数はソースのレイアウト設計を構築@c
1217 して、@code{\layout} 構成を既知の状態にリセットするための有用なツールに@c
1222 @ref{Changing context default settings}
1229 @subsection 譜サイズを設定する
1230 @translationof Setting the staff size
1232 @cindex font size, setting (フォント サイズを設定する)
1233 @cindex staff size, setting (譜サイズを設定する)
1234 @funindex layout file
1236 デフォルトの @strong{譜サイズ} は 20 ポイントに設定されています。@c
1237 これを変更するには 2 つの方法があります:
1239 譜サイズをファイルの中にあるすべての楽譜
1240 (正確には @code{book} ブロックの中にあるすべての楽譜)
1242 @code{set-global-staff-size} を使用します。
1245 #(set-global-staff-size 14)
1249 これはグローバルなデフォルトの譜サイズを高さが 14pt になるよう設定し、@c
1250 それに応じてすべてのフォントを拡縮します。
1252 それぞれの楽譜に個別に譜サイズを設定するには、@c
1258 #(layout-set-staff-size 15)
1263 Feta フォントは 8 つのサイズの音楽シンボルを提供します。
1264 各フォントは譜サイズに合わせて調整されます:
1266 相対的に太くなる譜線に対して釣り合いをとるために、@c
1268 推奨されるフォント サイズを以下の表にリストアップします:
1271 @multitable @columnfractions .15 .2 .22 .2
1322 これらのフォントは任意のサイズで利用可能です。@c
1323 コンテキスト プロパティ @code{fontSize} と@c
1324 レイアウト プロパティ @code{staff-space}
1325 (@rinternals{StaffSymbol} の中にあります)
1327 個々の譜に対してサイズを調整することができます。@c
1328 個々の譜のサイズはグローバル サイズとの相対値です。
1332 @ref{記譜フォント サイズを選択する}
1338 @code{layout-set-staff-size} は譜線の間隔を変更しません。
1343 @translationof Breaks
1353 * 改行/改ページのために追加のボイスを使用する::
1358 @translationof Line breaking
1360 @cindex line breaks (改行)
1361 @cindex breaking lines (改行する)
1364 改行は、行が混み合って見えたり散漫に見えたりしないように、@c
1365 連続する行の密度が同じくらいになるように選択されます。
1367 小節線が引かれる場所で手動で強制的に改行を入れるには、@c
1368 @code{\break} コマンドを使用します:
1370 @lilypond[quote,ragged-right,verbatim]
1377 デフォルトでは、小節の途中での @code{\break} は無視され、@c
1379 小節の途中で強制的に改行を入れるには、@c
1380 @w{@samp{\bar ""}} を用いて不可視の小節線を追加します:
1382 @lilypond[quote,ragged-right,verbatim]
1391 連符が開始する小節と終了する小節が異なる場合などのように、@c
1392 前の小節が音符の途中で終わっている場合、@c
1393 前の小節の終わりに @code{\break} を配置しても無視されます。@c
1394 そのような状況で、@code{\break} コマンドを機能させるには、@c
1395 @code{Voisce} コンテキストから @code{Forbid_line_break_engraver} を@c
1397 音符の途中で強制的に改行を入れるには、@c
1398 音楽と並列に改行コマンドを追加する必要があるということに注意してください:
1400 @lilypond[quote,ragged-right,verbatim]
1402 \remove "Forbid_line_break_engraver"
1405 { c''2. \tuplet 3/2 { c4 c c } c2. | }
1406 { s1 | \break s1 | }
1411 同様に、通常は連桁が小節線を跨いでいる場合も、改行は禁止されます。@c
1412 この振る舞いは、@code{\override Beam.breakable = ##t} により、@c
1415 @lilypond[quote,ragged-right,verbatim]
1417 \override Beam.breakable = ##t
1423 @code{\noBreak} コマンドは、コマンドが配置された小節線での改行を禁止します。
1425 行スペースに影響を与える最も基本的な設定は @code{indent} と
1426 @code{line-width} です。@c
1427 これらは @code{\layout} ブロック内で設定されます。@c
1428 これらは音楽の最初の行のインデントと行の長さを制御します。
1430 @code{\layout} ブロック内で @code{ragged-right} が真にセットされた場合、@c
1431 システムは、行全体に広がらずに、本来の長さで終了します。@c
1432 これは短い楽譜の断片を記譜する場合や、@c
1433 本来のスペースがどれくらい密になっているかチェックする場合に有用です。
1435 @c TODO Check and add para on default for ragged-right
1437 オプション @code{ragged-last} は @code{ragged-right} と似ていますが、@c
1450 @cindex regular line breaks (規則的な改行)
1451 @cindex four bar music (4 小節楽譜)
1455 スキップで区切られた @code{\break} を用いて、@c
1456 それを @code{\repeat} で繰り返します。@c
1458 以下の例は 28 小節 (4/4 拍子と仮定して) であり、@c
1460 (それ以外の場所で改行が入ることはありません):
1465 s1 \noBreak s1 \noBreak
1466 s1 \noBreak s1 \break
1468 @{ @var{実際の音楽@dots{}} @}
1473 改行設定を自動的に @file{.ly} ファイルに保存することができます。@c
1475 2 回目のフォーマット実行時に垂直方向のスペースがページにフィットするよう@c
1478 詳細は @rlsr{Spacing} を参照してください。
1490 @ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数}
1496 @rinternals{LineBreakEvent}
1501 @translationof Page breaking
1504 @code{\pageBreak} や @code{\noPageBreak} を挿入することによって@c
1506 これらのコマンドは @code{\break} と @code{\noBreak} に似ています。
1507 これらのコマンドは小節線のところに挿入すべきであり、@c
1510 @code{\pageBreak} は強制的に改行も行います。
1512 @code{\pageBreak} コマンドと @code{\noPageBreak} コマンドは@c
1514 score や最上位レベルのマークアップの間に挿入することができます。
1516 @code{ragged-right} や @code{ragged-last} と類似で、@c
1517 垂直方向のスペースに対して同じ効果を持つ設定があります:
1518 @code{ragged-bottom} と @code{ragged-last-bottom} です。@c
1519 これらの設定が @code{#t} にセットされている場合、@c
1520 すべてのページあるいは最後のページのシステムは@c
1521 ページの垂直方向全体には広がりません。@c
1522 @ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数} を参照してください。
1524 改ページは @code{page-breaking} 関数によって算出されます。@c
1525 LilyPond は改ページを算出するために 3 つのアルゴリズムを提供します:
1526 @code{ly:optimal-breaking}, @code{ly:page-turn-breaking}, それに
1527 @code{ly:minimal-breaking} です。@c
1528 デフォルトは @code{ly:optimal-breaking} ですが、@c
1529 @code{\paper} ブロックの中で変更することができます:
1533 page-breaking = #ly:page-turn-breaking
1539 1 つのブックが多くの楽譜とページを持つ場合、@c
1540 改ページを処理するのに多くの処理時間とメモリが必要になり、@c
1541 改ページの問題を解決することが困難になる可能性があります。@c
1543 @code{\bookpart} ブロックを用いてブックをいくつかのパートに分割します:
1544 改ページはパートごとに別々に処理されます。@c
1546 異なる改ページ関数を使用することもできます。
1551 subtitle = "Preface"
1554 %% ほとんどテキストしか保持していないパートでは
1555 %% ly:minimal-breaking が適しています
1556 page-breaking = #ly:minimal-breaking
1558 \markup @{ @dots{} @}
1562 %% このパートは音楽を保持しているので、デフォルトの
1563 %% ly:optimal-breaking を使用します
1565 subtitle = "First movement"
1567 \score @{ @dots{} @}
1574 @funindex \pageBreak
1576 @funindex \noPageBreak
1582 @ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数}
1590 @translationof Optimal page breaking
1592 @funindex ly:optimal-breaking
1594 @code{ly:optimal-breaking} 関数は、@c
1595 LilyPond が改ページを決定するためのデフォルトの手法です。
1597 ページの (水平方向と垂直方向の両方の) 混み合いや広がりすぎを@c
1598 最小にする改ページを見つけ出そうと試みます。@c
1599 @code{ly:page-turn-breaking} とは異なり、@c
1600 この関数はページめくりについて考慮しません。
1608 @subsection 最適ページめくり
1609 @translationof Optimal page turning
1611 @funindex ly:page-turn-breaking
1614 2 枚目のページ (横書きの本を開いたときの右側のページ) の終わりに@c
1615 休符を置くための改ページ構成が必要になります。@c
1617 演奏者は音符を見失うことなくページをめくることができます。@c
1618 @code{ly:page-turn-breaking} 関数は@c
1619 ページの混み合いや広がりすぎを最小にする改ページを見つけ出そうと試みますが、@c
1620 ページめくりを特定の場所だけに置くための制約を受けます。
1622 この改ページ関数を使うには、2 つのステップがあります。@c
1623 最初に、@ref{改ページ} で説明されているように、@c
1624 @code{\paper} ブロックの中でこの関数を有効にする必要があります。@c
1625 次に、この関数に改ページを許可したい場所を教える必要があります。
1627 2 番目のステップを達成するには、2 つの方法があります。@c
1629 入力ファイルの適当な場所に @code{\allowPageTurn} を挿入することによって、@c
1630 潜在的なページめくりを手動で指定します。
1632 この方法では手間がかかりすぎる場合は、@c
1633 @code{Page_turn_engraver} を
1634 @code{Staff} あるいは @code{Voice} コンテキストに追加します。@c
1635 @code{Page_turn_engraver} はコンテキストをスキャンして@c
1637 (休符を探すわけではなく、音符の無い部分を探すということに注意してください。@c
1638 単一譜の多声で、ボイスの 1 つが休符を持つ場合に、@c
1639 @code{Page_turn_engraver} に渡されないようにするためです。)
1640 @code{Page_turn_engraver} は音符を持たない十分に長いセクションを見つけると、@c
1641 @q{特殊な} 小節線 (2 重小節線など) がないかぎりは、@c
1642 そのセクションの最後の小節線のところに @code{\allowPageTurn} を挿入します。
1644 @funindex minimumPageTurnLength
1646 @code{Page_turn_engraver} は@c
1647 コンテキスト プロパティ @code{minimumPageTurnLength} を読み込んで、@c
1648 どれくらい音符が無いセクションが続いたらページめくりを考慮するかを決定します。@c
1649 @code{minimumPageTurnLength} のデフォルト値は
1650 @code{(ly:make-moment 1/1)} です。@c
1651 ページめくりを不可にしたいのならば、@c
1652 @code{minimumPageTurnLength} に非常に大きな値をセットします。
1655 \new Staff \with @{ \consists "Page_turn_engraver" @}
1658 R1 | % ここでページめくりが許可されます
1660 \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
1661 R1 | % ここではページめくりは許可されません
1663 R1*2 | % ここでページめくりが許可されます
1668 @funindex minimumRepeatLengthForPageTurn
1670 @code{Page_turn_engraver} は volta 繰り返しを検出します。@c
1671 繰り返しの開始と終わりにページめくりを行うのに十分な時間がある場合にのみ、@c
1672 その繰り返しの最中でのページめくりが許可されます。@c
1674 @code{Page_turn_engraver} はページめくりを不可にする可能性があります。@c
1675 コンテキスト プロパティ @code{minimumRepeatLengthForPageTurn} に値を@c
1677 その値よりも長い演奏時間を持つ繰り返しに対してのみ、@c
1678 @code{Page_turn_engraver} は繰り返しの最中でページめくりを許可します。
1680 ページめくりコマンド @code{\pageTurn}, @code{\noPageTurn}
1681 それに @code{\allowPageTurn} は、@c
1682 最上位レベル、score や最上位のマークアップの間で使用される可能性もあります。
1687 @funindex \noPageTurn
1689 @funindex \allowPageTurn
1690 @code{\allowPageTurn}
1698 score の中に配置する @code{Page_turn_engraver} は 1 つだけにするべきです。@c
1699 複数の @code{Page_turn_engraver} がある場合、@c
1705 @translationof Minimal page breaking
1707 @funindex ly:minimal-breaking
1709 The @code{ly:minimal-breaking} 関数は最小限の改ページを算出します:
1710 この関数は 1 ページに可能な限り多くのシステムを配置します。@c
1712 -- そのような場合、他の改ページ関数では時間がかかりすぎたり、@c
1713 メモリ使用量が多くなりすぎたりします --
1714 や、多くのテキストを持つ楽譜でこの関数を使用すると良いかもしれません。@c
1715 この関数を有効にするには以下のようにします:
1719 page-breaking = #ly:minimal-breaking
1728 @subsection 1 行の改ページ
1729 @translationof One-line page breaking
1731 @funindex ly:one-line-breaking
1733 @code{ly:one-line-breaking} 関数は特殊な目的のための改ページアルゴリズム@c
1734 で、楽譜をそれぞれ 1 ページに 1 行で配置します。@c
1735 この改ページ関数はタイトルやマージンを譜刻しません。楽譜だけを譜刻します。
1737 ページ幅は最も長い楽譜が 1 行に納まるように調節されます。@c
1738 @code{\paper} ブロックの中にある変数 @code{paper-width}, @code{line-width}
1739 それに @code{indent} は無視されますが、@code{left-margin} と
1740 @code{right-margin} は有効です。@c
1744 @subsection 明示的な改行/改ページ
1745 @translationof Explicit breaks
1747 LilyPond はしばしば明示的な @code{\break} や @code{\pageBreak} を@c
1749 この振る舞いを上書きするための 2 つのコマンドがあります:
1752 \override NonMusicalPaperColumn.line-break-permission = ##f
1753 \override NonMusicalPaperColumn.page-break-permission = ##f
1756 @code{line-break-permission} が偽に上書きされた場合、@c
1757 LilyPond は明示的な改行である @code{\break} コマンドのところで改行を行い、@c
1759 @code{page-break-permission} が偽に上書きされた場合、@c
1760 LilyPond は明示的な改ページである
1761 @code{\pageBreak} コマンドのところで改ページを行い、@c
1764 @lilypond[quote,verbatim]
1771 music = \relative { c''8 c c c }
1775 \repeat unfold 2 { \music } \break
1776 \repeat unfold 4 { \music } \break
1777 \repeat unfold 6 { \music } \break
1778 \repeat unfold 8 { \music } \pageBreak
1779 \repeat unfold 8 { \music } \break
1780 \repeat unfold 6 { \music } \break
1781 \repeat unfold 4 { \music } \break
1782 \repeat unfold 2 { \music }
1787 \override NonMusicalPaperColumn.line-break-permission = ##f
1788 \override NonMusicalPaperColumn.page-break-permission = ##f
1799 @node 改行/改ページのために追加のボイスを使用する
1800 @subsection 改行/改ページのために追加のボイスを使用する
1801 @translationof Using an extra voice for breaks
1803 通常、改行/改ページ情報は音符入力部分に直接入力します。
1806 music = \relative @{ c''4 c c c @}
1810 \repeat unfold 2 @{ \music @} \break
1811 \repeat unfold 3 @{ \music @}
1816 この方法では @code{\break} と @code{\pageBreak} コマンドを入力しやすいですが、@c
1818 音楽をどのようにページにレイアウトするかを指定する情報とが混ざってしまいます。@c
1819 改行/改ページ情報を保持するための追加のボイスを導入することによって、@c
1820 音楽入力と改行/改ページ情報を 2 つ場所に分けることができます。@c
1821 この追加のボイスはスキップ、@code{\break}、@code{\pageBreak}、それに、@c
1822 その他の改行/改ページ情報だけを保持します。
1824 @lilypond[quote,verbatim]
1825 music = \relative { c''4 c c c }
1836 \repeat unfold 2 { \music }
1837 \repeat unfold 3 { \music }
1838 \repeat unfold 6 { \music }
1839 \repeat unfold 5 { \music }
1846 This pattern becomes especially helpful when overriding
1847 @code{line-break-system-details} and the other useful but long properties of
1848 @code{NonMusicalPaperColumnGrob}, as explained in @ref{垂直方向のスペース}.
1851 以下の方法は、@ref{垂直方向のスペース} で説明されているように、@c
1852 @code{NonMusicalPaperColumnGrob} の @code{line-break-system-details} と@c
1853 他の有用だが長いプロパティを上書きするときに、非常に役に立ちます。
1855 @lilypond[quote,verbatim]
1856 music = \relative { c''4 c c c }
1861 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
1864 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
1867 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
1870 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
1874 \repeat unfold 2 { \music }
1875 \repeat unfold 3 { \music }
1876 \repeat unfold 6 { \music }
1877 \repeat unfold 5 { \music }
1893 @translationof Vertical spacing
1895 @cindex vertical spacing (垂直方向のスペース)
1896 @cindex spacing, vertical (垂直方向のスペース)
1898 垂直方向のスペースは 3 つの要素によって制御されます:
1899 利用可能なスペースの量 (つまり、紙面サイズとマージン)、@c
1900 システムの間隔、それにシステム内部での譜の間隔です。
1903 * システム内部の可変な垂直方向のスペース::
1909 @node システム内部の可変な垂直方向のスペース
1910 @subsection システム内部の可変な垂直方向のスペース
1911 @translationof Flexible vertical spacing within systems
1913 @cindex distance between staves (譜の間隔)
1914 @cindex staff distance (譜の間隔)
1915 @cindex space between staves (譜の間のスペース)
1916 @cindex space inside systems (システム内部のスペース)
1918 システム内部の可変な垂直方向のスペースを制御する 3 つの仕組みがあり、@c
1924 @emph{グループ化されていない譜},
1928 (@code{ChoirStaff} 等のような譜グループ内の譜)
1932 (@code{Lyrics}, @code{ChordNames} 等)
1936 @c TODO: Clarify this. This almost implies that non-staff lines
1937 @c have NO effect on the spacing between staves. -mp
1939 システムの高さは 2 つのステップで決定されます。@c
1940 最初に、すべての譜が利用可能なスペースの量に応じた間隔で配置されます。@c
1941 次に、譜ではない行が譜の間に配置されます。
1944 システム内部の譜と譜ではない行の垂直方向のスペースを制御する@c
1945 仕組みだけを説明しているということに注意してください。@c
1946 システム、score、マークアップ、それにマージン間の垂直方向のスペースは、@c
1947 @code{\paper} 変数によって制御されます
1948 -- @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数} で説明しています。
1951 * システム内部のスペース プロパティ::
1952 * グループ化されていない譜のスペース::
1953 * グループ化されている譜のスペース::
1958 @node システム内部のスペース プロパティ
1959 @unnumberedsubsubsec システム内部のスペース プロパティ
1960 @translationof Within-system spacing properties
1962 @funindex staff-affinity
1963 @funindex staffgroup-staff-spacing
1964 @funindex staff-staff-spacing
1965 @funindex nonstaff-unrelatedstaff-spacing
1966 @funindex nonstaff-relatedstaff-spacing
1967 @funindex nonstaff-nonstaff-spacing
1968 @funindex default-staff-staff-spacing
1969 @funindex minimum-Y-extent
1970 @funindex extra-offset
1971 @funindex self-alignment-X
1973 @funindex VerticalAxisGroup
1975 システム内部の垂直方向のスペースは、2 セットのグラフィカル オブジェクト
1977 1 つ目は @code{VerticalAxisGroup} グラフィカル オブジェクト
1978 -- これは、譜と譜ではない行によって作成されます --
1980 2 つ目は @code{StaffGrouper} グラフィカル オブジェクト
1981 -- これは、明示的に呼び出された場合に、譜グループによって作成されます --
1983 これらのプロパティは、このセクションの終わりで説明します。
1985 これらのプロパティの名前は (@code{staff-affinity} を除いて)、@c
1986 @code{@var{item1}-@var{item2}-spacing} という形式に従います
1987 -- ここで、@code{@var{item1}} と @code{@var{item2}} は、スペースを入れられる@c
1989 @code{@var{item2}} は必ずしも @code{@var{item1}} の下にある要素ではないという@c
1991 例えば、@code{staff-affinity} が @code{UP} である場合、@c
1992 @code{nonstaff-relatedstaff-spacing} は譜ではない行から@c
1995 スペースは、2 つの要素の @emph{参照ポイント} 間の距離です。@c
1996 譜の参照ポイントは、その譜の @code{StaffSymbol}
1997 (すなわち、@code{line-count} が奇数の場合は中央の譜線で、@c
1998 @code{line-count} が偶数の場合は中央のスペースです)
2000 譜ではない行の参照ポイントは、以下の表のようになります:
2002 @multitable {Non-staff line} {Reference point}
2003 @headitem 譜ではない行 @tab 参照ポイント
2004 @item @code{ChordNames} @tab ベースライン
2005 @item @code{NoteNames} @tab ベースライン
2006 @item @code{Lyrics} @tab ベースライン
2007 @item @code{Dynamics} @tab 垂直方向の中央
2008 @item @code{FiguredBass} @tab 最も上のポイント
2009 @item @code{FretBoards} @tab トップ ライン
2012 以下の画像では、水平方向の線が参照ポイントの位置を示しています:
2014 @lilypond[quote,noragged-right,line-width=110\mm]
2015 #(define zero-space '((padding . -inf.0) (basic-distance . 0)))
2017 alignToZero = \with {
2018 \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
2019 \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
2021 lowerCaseChords = \with {
2022 chordNameLowercaseMinor = ##t
2024 staffAffinityDown = \with {
2025 \override VerticalAxisGroup.staff-affinity = #DOWN
2028 #(define-music-function
2031 #{ s1*0^\markup { \typewriter #context } #})
2034 \context { \Dynamics \alignToZero }
2035 \context { \FiguredBass \alignToZero }
2036 \context { \Lyrics \alignToZero }
2037 \context { \NoteNames \alignToZero \staffAffinityDown }
2038 \context { \ChordNames \alignToZero
2041 \context { \FretBoards \alignToZero \staffAffinityDown }
2044 \override DynamicText.self-alignment-X = #-1
2045 \override FretBoard.X-offset = #1.75
2046 \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
2047 \override InstrumentName.extra-offset = #'(0 . -0.5)
2048 \override TextScript.minimum-Y-extent = #'(-2 . 3)
2053 %% These contexts have reference points at the baseline:
2054 %% ChordNames, NoteNames, and Lyrics
2056 \new ChordNames { \chords { g1:m } }
2057 \new NoteNames { s1 | g1 | }
2058 \new RhythmicStaff {
2059 \set RhythmicStaff.instrumentName = #"baseline "
2061 \labelContext "ChordNames " s1 |
2062 \labelContext "NoteNames " s1 |
2063 \labelContext "Lyrics" s1 |
2065 \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } }
2068 %% The reference point for Dynamics is its vertical center
2070 \new RhythmicStaff {
2071 \set RhythmicStaff.instrumentName = #"vertical center "
2072 \labelContext "Dynamics" s1*3
2074 \new Dynamics { s1\mp s\fp }
2077 %% The reference point for FiguredBass is its highest point
2079 \new RhythmicStaff {
2080 \set RhythmicStaff.instrumentName = #"highest point "
2081 \labelContext "FiguredBass" s1
2083 \new FiguredBass { \figuremode { <6 5>1 } }
2086 %% The reference point for FretBoards is the top line
2087 \include "predefined-guitar-fretboards.ly"
2089 \new FretBoards { \chordmode { e1 } }
2090 \new RhythmicStaff {
2091 \set RhythmicStaff.instrumentName = #"top line "
2092 \labelContext "FretBoards " s1
2097 垂直方向のスペースのグラフィカル オブジェクト プロパティは
2098 (@code{staff-affinity} を除いて)、@c
2099 @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数} で説明した
2100 @code{\paper} スペース変数と同じ連想配列構造を使用します。
2101 連想配列を変更する方法は、@ref{Modifying alists} で説明します。@c
2102 グラフィカル オブジェクト プロパティの調節は、@c
2103 @code{\score} ブロックか @code{\layout} ブロックの内部で、@c
2104 @code{\override} を用いて行う必要があります。
2106 以下の例は、連想配列を変更する 2 つの方法を示しています。@c
2107 最初の宣言は 1 つのキー値を個別に更新して、@c
2108 2 番目の宣言はプロパティ全体を再定義しています:
2112 \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2116 \override VerticalAxisGroup.default-staff-staff-spacing =
2117 #'((basic-distance . 10)
2118 (minimum-distance . 9)
2120 (stretchability . 10))
2124 スペース設定をグローバルに変更するには、@c
2125 そのスペース設定を @code{\layout} ブロックの中に配置します:
2131 \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
2136 垂直方向スペースのグラフィカル オブジェクト プロパティの標準設定は
2137 @rinternals{VerticalAxisGroup} と @rinternals{StaffGrouper} でリスト アップ@c
2139 特定のタイプの譜ではない行のデフォルト設定は、@c
2140 @rinternals{Contexts} の中にある関連するコンテキストの説明でリスト アップ@c
2144 @subsubheading @code{VerticalAxisGroup} グラフィカル オブジェクトのプロパティ
2146 通常、@code{VerticalAxisGroup} プロパティは、@c
2147 @code{Staff} レベル (あるいはそれと同等のレベル) で、@c
2148 @code{\override} を用いて調節します。
2151 @item staff-staff-spacing
2154 -- その間に 1 つ以上の譜ではない行 (@code{Lyrics} 等) が配置されている場合で@c
2157 システムの最下段の譜には適用されません。
2159 @code{VerticalAxisGroup} の @code{staff-staff-spacing} は、@c
2160 譜がグループの一部である場合は @code{StaffGrouper} の
2161 @code{staff-staff-spacing} プロパティを適用し、@c
2162 グループではない譜の場合はその譜の @code{default-staff-staff-spacing}
2163 を適用する Scheme 関数です。@c
2164 これにより、グループ化されている譜に異なる間隔を入れることが可能です。@c
2165 グループ化されていることとは無関係に同一の間隔を入れるには、@c
2166 上で示したプロパティ再定義を用いて、@c
2167 この関数を可変スペースの連想配列で置き換えます。
2169 @item default-staff-staff-spacing
2170 グループ化されていない譜で使用される @code{staff-staff-spacing} を定義している@c
2172 @code{staff-staff-spacing} は @code{\override} を用いて@c
2175 @item staff-affinity
2176 カレントの譜ではない行にスペースを入れるために使用する譜の方向です。@c
2177 選択肢は @code{UP}, @code{DOWN}, それに @code{CENTER} です。@c
2178 @code{CENTER} の場合、衝突や他のスペース上の制約によって妨げられない限り、@c
2179 譜ではない行は上下にある近くの譜から等距離になるよう配置されます。@c
2180 隣接する譜ではない行の @code{staff-affinity} は、@c
2181 方向が下から上へと増加しないようにする必要があります。@c
2182 例えば、@code{DOWN} に設定された譜ではない行のすぐ後に
2183 @code{UP} に設定された譜ではない行を置くべきではありません。@c
2184 システムの最上段にある譜ではない行は @code{DOWN} であるべきで、@c
2185 システムの最下段にある譜ではない行は @code{UP} であるべきです。@c
2186 譜ではない行の @code{staff-affinity} を @code{#f} に設定すると、@c
2188 譜に対して @code{UP}, @code{CENTER}, あるいは @code{DOWN} の
2189 @code{staff-affinity} を設定すると、@c
2190 その譜は譜ではない行として扱われます。@c
2192 @item nonstaff-relatedstaff-spacing
2193 カレントの譜ではない行と @code{staff-affinity} の方向にある@c
2195 -- 2 つの間に譜ではない行が無く、@c
2196 @code{staff-affinity} が @code{UP} と @code{DOWN} のどちらかである場合です。@c
2197 @code{staff-affinity} が @code{CENTER} である場合、@c
2198 @code{nonstaff-relatedstaff-spacing} は最も近くにある @emph{上下両サイド} の@c
2200 -- たとえ、カレントの譜ではない行と上下どちらかの譜の間に、@c
2201 他の譜ではない行があったとしてもです。@c
2202 このことは、譜ではない行の配置は、上下にある譜と譜ではない行の両方に依存する@c
2204 このスペースの @code{stretchability} に小さな値を設定すると、@c
2205 そのとおりのスペースになりやすくなります。@c
2206 このスペースの @code{stretchability} に大きな値を設定すると、@c
2207 そのとおりのスペースになりにくくなります。@c
2209 @item nonstaff-nonstaff-spacing
2210 カレントの譜ではない行と @code{staff-affinity} の方向にある@c
2213 @code{staff-affinity} が @code{UP} と @code{DOWN} のどちらかである場合です。@c
2215 @item nonstaff-unrelatedstaff-spacing
2216 カレントの譜ではない行と @code{staff-affinity} とは反対方向にある譜の間隔です
2217 -- 2 つの間に他の譜ではない行が無く、@c
2218 @code{staff-affinity} が @code{UP} と @code{DOWN} のどちらかである場合です。@c
2220 @code{Lyrics} 行と @code{Lyrics} が属していない譜との間のパディングを@c
2221 最小にする必要がある場合に使用される可能性があります。
2225 @subsubheading @code{StaffGrouper} グラフィカル オブジェクトのプロパティ
2227 通常、@code{StaffGrouper} プロパティは、@c
2228 @code{StaffGroup} レベル (あるいはそれと同等のレベル) で、@c
2229 @code{\override} を用いて調節します。
2232 @item staff-staff-spacing
2233 カレントの譜グループ内部にある隣接する譜の間隔です。@c
2234 個々の譜の @code{VerticalAxisGroup} グラフィカル オブジェクトの
2235 @code{staff-staff-spacing} プロパティは、@c
2236 譜毎のスペース設定で上書きされる可能性があります。
2238 @item staffgroup-staff-spacing
2239 カレントの譜グループの最後の譜と、同じシステム内にあるすぐ下の譜の間隔です
2240 -- 2 つの譜の間に 1 つ以上の譜ではない行 (@code{Lyrics} 等) が存在する場合で@c
2242 システムの最下段の譜には適用されません。@c
2243 個々の譜の @code{VerticalAxisGroup} グラフィカル オブジェクトの
2244 @code{staff-staff-spacing} プロパティは、@c
2245 譜毎のスペース設定で上書きされる可能性があります。
2250 @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数},
2251 @ref{Modifying alists}
2254 @file{ly/engraver-init.ly},
2255 @file{scm/define-grobs.scm}
2258 @rinternals{Contexts},
2259 @rinternals{VerticalAxisGroup},
2260 @rinternals{StaffGrouper}
2263 @node グループ化されていない譜のスペース
2264 @unnumberedsubsubsec グループ化されていない譜のスペース
2265 @translationof Spacing of ungrouped staves
2267 @emph{譜} (@code{Staff}, @code{DrumStaff}, @code{TabStaff} 等) は、@c
2268 1 つ以上のボイス コンテキストを保持することができ、@c
2269 他の譜を保持することはできないコンテキストです。
2271 以下のプロパティは、@emph{グループ化されていない} 譜のスペースに影響を与えます:
2274 @item @code{VerticalAxisGroup} プロパティ:
2276 @item @code{default-staff-staff-spacing}
2277 @item @code{staff-staff-spacing}
2281 これらのグラフィカル オブジェクト プロパティは、それぞれ上で説明しています。@c
2282 @ref{システム内部のスペース プロパティ} を参照してください。
2284 譜グループの一部である譜には、他にもプロパティがあります。@c
2285 @ref{グループ化されている譜のスペース} を参照してください。
2287 以下の例は、@code{default-staff-staff-spacing} プロパティがどのように@c
2288 グループ化されていない譜のスペースに影響を与えるかを示しています。@c
2289 @code{staff-staff-spacing} に同じ上書きを適用すると同じ効果を持ちますが、@c
2290 譜がグループ化されている場合にも適用されます。
2293 @lilypond[verbatim,quote,staffsize=16]
2297 \override VerticalAxisGroup.default-staff-staff-spacing =
2298 #'((basic-distance . 8)
2299 (minimum-distance . 7)
2305 % 非常に低い位置にある音符は 'basic-distance が提供するよりも
2306 % 大きなスペースを必要とするため、この譜と次の譜の間隔は 'padding
2308 \new Staff { b,2 r | }
2310 % ここでは、'basic-distance が十分なスペースを提供していて、
2311 % ページ上にある他の要素のスペースを確保するためにスペースを
2312 % ('minimum-distance の値に向かって) 縮める必要はありません。
2313 % そのため、この譜と次の譜の間隔は 'basic-distance によって
2315 \new Staff { \clef bass g2 r | }
2317 % 'padding に負の値を設定することにより、譜を重ねることができます。
2318 % 'basic-distance が取り得る最小の値は 0 です。
2320 \override VerticalAxisGroup.default-staff-staff-spacing =
2321 #'((basic-distance . 3.5)
2323 } { \clef bass g2 r | }
2324 \new Staff { \clef bass g2 r | }
2330 @file{scm/define-grobs.scm}
2336 @rinternals{VerticalAxisGroup}
2339 @node グループ化されている譜のスペース
2340 @unnumberedsubsubsec グループ化されている譜のスペース
2341 @translationof Spacing of grouped staves
2343 オーケストラ譜や他の大きな楽譜では、@c
2344 譜を譜ループ化することが一般的です。@c
2346 同じグループの譜の間のスペースよりも大きくなります。
2348 @emph{譜グループ} (@code{StaffGroup}, @code{ChoirStaff} 等) は、@c
2349 同時進行する 1 つ以上の譜を保持することができるコンテキストです。
2351 以下のプロパティは、譜グループの中にある譜のスペースに影響を与えます:
2354 @item @code{VerticalAxisGroup} プロパティ:
2356 @item @code{staff-staff-spacing}
2358 @item @code{StaffGrouper} プロパティ:
2360 @item @code{staff-staff-spacing}
2361 @item @code{staffgroup-staff-spacing}
2365 これらのグラフィカル オブジェクト プロパティは、上で個々に説明しています。@c
2366 @ref{システム内部のスペース プロパティ} を参照してください。
2368 以下の例は、@code{StaffGrouper} グラフィカル オブジェクトのプロパティが@c
2369 どのようにグループ化された譜のスペースに影響を与えるかを示しています:
2371 @lilypond[verbatim,quote,staffsize=16]
2375 \override StaffGrouper.staff-staff-spacing.padding = #0
2376 \override StaffGrouper.staff-staff-spacing.basic-distance = #1
2381 \new PianoStaff \with {
2382 \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
2397 @file{scm/define-grobs.scm}
2403 @rinternals{VerticalAxisGroup},
2404 @rinternals{StaffGrouper}
2408 @unnumberedsubsubsec 譜ではない行のスペース
2409 @translationof Spacing of non-staff lines
2411 @emph{譜ではない行} (@code{Lyrics}, @code{ChordNames} 等) は、@c
2412 それが保持するレイアウト オブジェクトが譜のように譜刻される
2413 (すなわち、システム内部の水平線上での譜刻) コンテキストです。@c
2415 譜ではない行は @code{VerticalAxisGroup} レイアウト オブジェクトを@c
2418 以下のプロパティが、譜ではない行のスペースに影響を与えいます:
2421 @item @code{VerticalAxisGroup} プロパティ:
2423 @item @code{staff-affinity}
2424 @item @code{nonstaff-relatedstaff-spacing}
2425 @item @code{nonstaff-nonstaff-spacing}
2426 @item @code{nonstaff-unrelatedstaff-spacing}
2430 これらのグラフィカル オブジェクト プロパティは、上で個々に説明しています。@c
2431 @ref{システム内部のスペース プロパティ} を参照してください。
2433 以下の例は、@code{nonstaff-nonstaff-spacing} プロパティが@c
2434 どのように隣接する譜ではない行のスペースに影響を与えるかを示しています。@c
2435 ここでは、@code{stretchability} キーに非常に大きな値を設定することにより、@c
2436 通常よりも歌詞が広がりやすくしています:
2438 @lilypond[verbatim,quote,staffsize=16]
2442 \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
2449 \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
2452 \override VerticalAxisGroup.staff-affinity = #UP
2455 \override VerticalAxisGroup.staff-affinity = #CENTER
2456 } \lyricmode { center }
2458 \override VerticalAxisGroup.staff-affinity = #DOWN
2459 } \lyricmode { down }
2467 @file{ly/engraver-init.ly},
2468 @file{scm/define-grobs.scm}
2473 @c @lsr{spacing,page-spacing.ly},
2474 @c @lsr{spacing,alignment-vertical-spacing.ly}
2477 @rinternals{Contexts},
2478 @rinternals{VerticalAxisGroup}
2481 @node 譜とシステムを明示的に配置する
2482 @subsection 譜とシステムを明示的に配置する
2483 @translationof Explicit staff and system positioning
2485 上で説明した可変な垂直方向のスペースの仕組みを理解する方法の 1 つに、@c
2486 譜とシステムの間の垂直方向のパティングの大きさを制御する設定を@c
2489 @code{NonMusicalPaperColumn #'line-break-system-details} を用いて、@c
2490 垂直方向のスペースに別の方法でアプローチすることができます。@c
2491 可変な垂直方向のスペースの仕組みが垂直方向のパディングを指定するのに対して、@c
2492 @code{NonMusicalPaperColumn #'line-break-system-details} は@c
2493 ページ上の垂直方向の位置を指定することができます。
2495 @code{NonMusicalPaperColumn #'line-break-system-details} は
2496 3 つ設定からなる連想配列を受け取ります:
2499 @item @code{X-offset}
2500 @item @code{Y-offset}
2501 @item @code{alignment-distances}
2504 以下の @code{NonMusicalPaperColumn} に対する上書きを含む、@c
2505 グラフィカル オブジェクトの上書きは、@c
2506 入力ファイルの中の 3 つの場所に配置することができます:
2509 @item 音符入力の途中に直接配置する
2510 @item @code{\context} ブロックの中に配置する
2511 @item @code{\with} ブロックの中に配置する
2514 @code{NonMusicalPaperColumn} を上書きする場合、@c
2515 通常は @code{\context} ブロックや @code{\with} ブロックの中で@c
2516 @code{\override} コマンドを使用します。@c
2517 一方、音符入力の途中で @code{NonMusicalPaperColumn} を上書きする場合、@c
2518 特殊なコマンド @code{\overrideProperty} を使用します。@c
2520 特殊なコマンド @code{\overrideProperty} で
2521 @code{NonMusicalPaperColumn} を上書きする例をいくつか挙げます:
2524 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
2526 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2528 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2531 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
2533 \overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
2535 (alignment-distances . (15)))
2538 これらの異なる設定がそれぞれどのように機能するのかを理解するために、@c
2539 まったく上書きを含まない例を見ることから始めます。
2541 @c \book { } is required in these examples to ensure the spacing
2542 @c overrides can be seen between systems. -np
2544 @lilypond[verbatim,quote,staffsize=16]
2545 \header { tagline = ##f }
2546 \paper { left-margin = 0\mm }
2556 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2559 \repeat unfold 15 { d'4 d' d' d' }
2566 この楽譜は改行/改ページ情報を専用のボイスに孤立させています。@c
2567 この改行/改ページ用のボイスを作成するテクニックは、@c
2569 レイアウトと音楽入力を分離することを助けてくれます。@c
2570 @ref{改行/改ページのために追加のボイスを使用する} を参照してください。
2572 明示的な @code{\breaks} は一様に音楽を 1 行あたり 5 小節に分割しています。@c
2573 垂直方向のスペースは LilyPond のデフォルトです。@c
2574 @code{NonMusicalPaperColumn} グラフィカル オブジェクトの
2575 @code{line-break-system-details} 属性の中にある
2576 @code{Y-offset} を設定することで、@c
2577 各システムの垂直方向の開始位置を設定することができます:
2579 @lilypond[verbatim,quote,staffsize=16]
2580 \header { tagline = ##f }
2581 \paper { left-margin = 0\mm }
2587 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
2589 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
2591 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
2594 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2597 \repeat unfold 15 { d'4 d' d' d' }
2604 @code{line-break-system-details} は@c
2605 潜在的に多くの値を持つ連想リストをとりますが、@c
2606 ここでは値を 1 つだけしかセットしていないということに注意してください。@c
2607 また、ここでは @code{Y-offset} プロパティは、@c
2608 各システムがページに描画される垂直方向の位置を@c
2609 決定しているということにも注意してください。
2611 これまでに各システムの垂直方向の開始位置を明示的に設定しましたが、@c
2612 各システム内部の各譜の垂直方向の開始位置を手動で設定することも可能です。@c
2613 @code{line-break-system-details} のサブプロパティ @code{alignment-offsets} を@c
2616 @lilypond[verbatim,quote,staffsize=16]
2617 \header { tagline = ##f }
2618 \paper { left-margin = 0\mm }
2624 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
2625 (alignment-distances . (15)))
2627 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2628 (alignment-distances . (15)))
2630 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2631 (alignment-distances . (15)))
2634 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2637 \repeat unfold 15 { d'4 d' d' d' }
2644 ここでは @code{NonMusicalPaperColumn} グラフィカル オブジェクトの@c
2645 @code{line-break-system-details} 属性に 2 つの値を代入しているということに@c
2647 @code{line-break-system-details} 属性の連想配列はもっと多くのスペース パラメータ
2648 (例えば、@code{Y-offset} ペアに相当する @code{X-offset} ペア)
2650 システムと譜の垂直方向の開始地点を制御するのに必要な設定は、@c
2651 @code{Y-offset} ペアと @code{alignment-offsets} ペアだけです。
2653 @code{alignment-offsets} は譜の垂直方向の位置を指定するのであり、@c
2654 譜グループの位置を指定するわけではないということに注意してください。
2656 @lilypond[verbatim,quote,staffsize=16]
2657 \header { tagline = ##f }
2658 \paper { left-margin = 0\mm }
2664 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
2665 (alignment-distances . (30 10)))
2667 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
2668 (alignment-distances . (10 10)))
2670 \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
2671 (alignment-distances . (10 30)))
2674 \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
2677 \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
2678 \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
2688 @item @code{alignment-offsets} を使用する場合、@c
2689 歌詞と他の譜ではない行は譜としてカウントされません。
2691 @item @code{X-offset}, @code{Y-offset} それに @code{alignment-offsets} に@c
2694 正の値は譜と歌詞を下または右に移動させ、@c
2695 負の値は譜と歌詞を上または左に移動させます。
2697 @item ここで扱った @code{NonMusicalPaperColumn #'line-break-system-details}
2698 設定は譜とシステムを任意の場所に配置することを可能にするため、@c
2700 他の譜やシステムの上に譜刻する可能性さえあります。@c
2701 これらの設定に適切な値を渡すことで、そのようなことは避けられます。
2710 @subsection 垂直方向の衝突回避
2711 @translationof Vertical collision avoidance
2713 @funindex outside-staff-priority
2714 @funindex outside-staff-padding
2715 @funindex outside-staff-horizontal-padding
2717 直観的に、音楽記譜には譜に属するオブジェクトと、@c
2718 譜の外側に配置されるべきオブジェクトがあります。@c
2719 譜の外側に属するオブジェクトには、リハーサル記号、テキスト、@c
2721 (これからは、それらを譜外部オブジェクトと呼びます)。@c
2722 LilyPond が譜外部オブジェクトの垂直方向の配置を決定するとき、@c
2723 譜外部オブジェクトをできる限り譜の近くに、@c
2724 しかしながら、他のオブジェクトと衝突しない程度の近さに配置します。
2726 LilyPond は @code{outside-staff-priority} プロパティを用いて@c
2727 あるグラフィカル オブジェクトが譜外部オブジェクトかどうかを決定します:
2728 @code{outside-staff-priority} が数であれば、@c
2729 そのグラフィカル オブジェクトは譜外部オブジェクトです。@c
2730 さらに、@code{outside-staff-priority} は LilyPond に、@c
2731 そのグラフィカル オブジェクトを配置する順番を教えてくれます。
2733 まず最初にに、LilyPond は譜外部オブジェクトには属さないオブジェクトを@c
2735 次に、譜外部オブジェクトを @code{outside-staff-priority} に従って
2737 LilyPond は譜外部オブジェクトを、既に配置済みのオブジェクトと衝突しないよう、@c
2739 つまり、2 つの譜外部オブジェクトが同じスペースをめぐって競合する場合、@c
2740 より小さな @code{outside-staff-priority} を持つオブジェクトが@c
2744 @lilypond[quote,ragged-right,relative=2,verbatim]
2747 \once \override TextScript.outside-staff-priority = #1
2748 c4_"Text"\pp % ここでは、テキストが譜の近くに配置されます
2750 % outside-staff-priority に数ではない値を設定することにより、
2752 \once \override TextScript.outside-staff-priority = ##f
2753 \once \override DynamicLineSpanner.outside-staff-priority = ##f
2754 c4_"Text"\pp % ここでは、2 つのオブジェクトが衝突します
2757 ある譜外部オブジェクトとその前に配置されたグラフィカル オブジェクトとの間に@c
2759 @code{outside-staff-padding} で制御することができます。
2762 @lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
2763 \once \override TextScript.outside-staff-padding = #0
2764 a'^"このテキストは音符のすぐ近くに配置されます。"
2765 \once \override TextScript.outside-staff-padding = #3
2766 c^"このテキストは前のテキストから離れた位置に配置されます"
2767 c^"この手キスとは前にテキストの近くに配置されます"
2771 デフォルトでは、譜外部オブジェクトの配置は、@c
2772 配置済みのグラフィカル オブジェクトとの水平方向の衝突回避だけを考慮します。@c
2774 オブジェクト同士が水平方向に非常に近く配置される状況を招く可能性があります。@c
2775 譜の垂直方向の間隔を設定した場合も、@c
2776 譜外部オブジェクトが挟み込まれる可能性があります。@c
2777 @code{outside-staff-horizontal-padding} を設定すると、@c
2778 オブジェクトは垂直方向にずれるため、@c
2782 @lilypond[quote,ragged-right,relative=2,verbatim]
2783 % マークアップは後に続く音符に近寄りすぎています
2787 % outside-staff-horizontal-padding を設定することで修正します
2789 \once \override TextScript.outside-staff-horizontal-padding = #1
2802 @translationof Horizontal spacing
2804 @cindex horizontal spacing (水平方向のスペース)
2805 @cindex spacing, horizontal (水平方向のスペース)
2812 * プロポーショナル ノーテーション::
2817 @subsection 水平方向のスペースの概要
2818 @translationof Horizontal spacing overview
2820 スペース エンジンは異なる演奏時間を異なる長さの可変距離 (@q{スプリング}) に@c
2822 長い演奏時間はより多くのスペースをとり、@c
2823 短い演奏時間はより少ないスペースをとります。@c
2825 (これは @rinternals{SpacingSpanner} オブジェクトの中にある
2826 @code{shortest-duration-space} によって制御されます)
2828 演奏時間が長くなるほど、より多くのスペースをとります:
2830 (これは @code{spacing-increment} によって制御されます)
2833 例えば、以下の楽曲には多くの 2 分音符、4 分音符、@c
2835 8 分音符の後には符頭幅 (NHW) 1 つ分が挿入されます。@c
2836 4 分音符の後には 2 NHW が挿入され、2 分音符の後には 3 NHW が挿入されます。
2838 @lilypond[quote,verbatim,relative=1]
2839 c2 c4. c8 c4. c8 c4. c8 c8
2843 通常、@code{spacing-increment} は 1.2 譜スペースに設定されています。@c
2845 さらに、@code{shortest-duration-space} は 2.0 に設定されています。@c
2846 つまり、最短の音符は 2.4 譜スペース (@code{spacing-increment} の 2 倍) の@c
2848 このスペースはシンボルの左端からカウントされます。@c
2849 そのため、最短の音符の後には一般に 1 NHW のスペースが挿入されます。
2852 8 分音符や 16 分音符を含む楽譜に 32 分音符を 1 つ付け加えると、@c
2854 最短の音符はもはや 16 分音符ではなく、32 分音符であり、@c
2855 それぞれの 16 分音符に 1 NHW が付け加えられます。@c
2856 このことを防ぐため、スペースをとるための最短の演奏時間を、@c
2857 その楽譜の中にある最短の音符ではなく、最も頻繁に出現する音符とします。
2860 最も共通する最短演奏時間は以下のように決定されます:
2861 各小節において、最短の演奏時間が決定されます。@c
2862 スペースの基本として、最も共通する最短演奏時間が選択されます。@c
2863 条件として、この最短演奏時間は常に 8 分音符以上の長さになります。@c
2864 @code{lilypond} を @option{--verbose} オプションを付けて実行すると、@c
2867 この演奏時間はカスタマイズすることもできます。@c
2868 @rinternals{SpacingSpanner} の中にある @code{common-shortest-duration} を@c
2870 スペースのための基本演奏時間が設定されれます。@c
2871 この基本演奏時間の最大値 (通常、8 分音符) は、@c
2872 @code{base-shortest-duration} によって設定されます。
2874 @funindex common-shortest-duration
2875 @funindex base-shortest-duration
2876 @funindex stem-spacing-correction
2879 共通の最短音符よりも短い音符の後には、@c
2880 その音符の演奏時間と共通の最短音符の演奏時間の比を反映した@c
2883 上記の例に 16 分音符を数個付け加えた場合、@c
2884 16 分音符の後には NHW の半分の幅のスペースが付けられます:
2886 @lilypond[quote,verbatim,relative=2]
2887 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
2891 @emph{Essay on automated music engraving} において、@c
2892 符幹の向きはスペースに影響を与えるということを説明しました
2893 (@ressay{Optical spacing} を参照してください)。@c
2894 これは、@rinternals{NoteSpacing} オブジェクトの中にある
2895 @code{stem-spacing-correction} プロパティによって制御されます。@c
2896 このオブジェクトは @rinternals{Voice} コンテキストごとに生成されます。@c
2897 @code{StaffSpacing} オブジェクト
2898 (@rinternals{Staff} コンテキストの中で生成されます)
2899 は、符幹/小節線のスペースを制御するために、同様のプロパティを保持します。@c
2900 以下の例は、それらプロパティによる修正の様子を示しています。
2901 前半はデフォルト設定による修正であり、@c
2904 @lilypond[quote,ragged-right]
2908 \override Staff.NoteSpacing.stem-spacing-correction = #1.5
2909 \override Staff.StaffSpacing.stem-spacing-correction = #1.5
2915 プロポーショナル ノーテーション (proportional notation) がサポートされます。@c
2916 @ref{プロポーショナル ノーテーション} を参照してください。
2919 Essay on automated music engraving:
2920 @ressay{Optical spacing}
2926 @rinternals{SpacingSpanner},
2927 @rinternals{NoteSpacing},
2928 @rinternals{StaffSpacing},
2929 @rinternals{NonMusicalPaperColumn}
2932 スペースを手動で上書きするための、手軽な仕組みはありません。@c
2933 余分なスペースを楽譜に挿入するために、以下の手段があります
2934 -- 必要に応じて、パディングの値を調整しています。
2937 \override Score.NonMusicalPaperColumn.padding = #10
2940 スペースを減らすための手段はありません。
2944 @subsection 新しいスペース領域
2945 @translationof New spacing area
2947 @code{newSpacingSection} を用いることで、@c
2948 異なるスペース パラメータを持つ新しいセクションを開始することができます。@c
2949 これは、音符の長さに関して異なる概念を持つセクションがある場合に、有用です。@c
2952 拍子記号が新たしいセクションを導入しています。@c
2953 その結果、16 分音符の間隔が広くなっています。
2955 @lilypond[verbatim,quote]
2959 c8 c c4 c16[ c c8] c4
2966 @code{\newSpacingSection} コマンドは新たに
2967 @code{SpacingSpanner} オブジェクトを作成します。@c
2968 そのため、その場所で新たに @code{\override} が使用される可能性があります。
2975 @rinternals{SpacingSpanner}
2978 @node 水平方向のスペースを変更する
2979 @subsection 水平方向のスペースを変更する
2980 @translationof Changing horizontal spacing
2982 水平方向のスペースを、@code{base-shortest-duration} で@c
2985 1 つではこのプロパティを変更せず、もう 1 つでは変更します。@c
2986 @code{ly:make-moment} の値が大きくなると、@c
2988 @code{ly:make-moment} は演奏時間を構成するため、@c
2989 @code{1 4} は @code{1 16} よりも長い演奏時間である@c
2992 @lilypond[verbatim,line-width=12\cm]
2995 g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
2996 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
2997 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
2998 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3003 @lilypond[verbatim,line-width=12\cm]
3006 g'4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
3007 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3008 d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
3009 g4 e e2 | f4 d d2 | c4 e g g | c,1 |
3014 \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16)
3023 デフォルトでは、連符のスペースは演奏時間とは関係の無い要素
3026 そのような記号を無視して、同じ演奏時間に等しいスペースを割り当てるには、@c
3027 @code{Score.SpacingSpanner #'uniform-stretching} を使用します。@c
3028 このプロパティは、楽譜の先頭でのみ、変更することができます。
3030 @lilypond[quote,ragged-right,verbatim]
3049 \override SpacingSpanner.uniform-stretching = ##t
3055 @code{strict-note-spacing} がセットされている場合、@c
3056 音部記号、小節線、それに装飾小音符を考慮せずに、@c
3059 @lilypond[quote,ragged-right,relative=2,verbatim]
3060 \override Score.SpacingSpanner.strict-note-spacing = ##t
3061 \new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c32] }
3071 @translationof Line length
3073 @cindex page breaks (改ページ)
3074 @cindex breaking pages (改ページ)
3077 @funindex line-width
3078 @funindex ragged-right
3079 @funindex ragged-last
3081 @c Although line-width can be set in \layout, it should be set in paper
3082 @c block, to get page layout right.
3083 @c Setting indent in \paper block makes not much sense, but it works.
3085 @c Bit verbose and vague, use examples?
3086 スペースに影響を与える最も基本的な設定は、@c
3087 @code{indent} と @code{line-width} です。@c
3088 これらは @code{\layout} ブロックの中で設定されます。@c
3089 これらの設定は、楽譜の最初の行のインデントと、行の長さを制御します。
3091 @code{\layout} ブロックの中で @code{ragged-right} が真にセットされている場合、@c
3092 システムは行全体を埋めるように水平方向に引き伸ばされず、@c
3095 本来のスペースがどれくらいの密度なのかをチェックする場合に有用です。@c
3097 1 つしかシステムを持たない楽譜の場合のデフォルト値は真です。
3099 @cindex page layout (ページ レイアウト)
3100 @cindex vertical spacing (垂直方向のスペース)
3102 @code{ragged-last} オプションは @code{ragged-right} に似ていますが、@c
3103 楽曲の最後の行だけに影響を与えます。@c
3104 最後の行には、何の制限も加えられません。@c
3105 この結果は、文章の段落をフォーマットする場合と同じです。@c
3107 最後の行は単純にそのままの長さにフォーマットされます。
3109 @c Note that for text there are several options for the last line.
3110 @c While Knuth TeX uses natural length, lead typesetters use the same
3111 @c stretch as the previous line. eTeX uses \lastlinefit to
3112 @c interpolate between both these solutions.
3127 @node プロポーショナル ノーテーション
3128 @subsection プロポーショナル ノーテーション
3129 @translationof Proportional notation
3131 Lilypond はプロポーショナル ノーテーションをサポートします。@c
3132 この記譜法では、各音符は演奏時間に相当する水平方向のスペースをとります。@c
3133 このタイプの水平スペースは、方眼紙上の水平方向スペースと同等です。@c
3134 20 世紀後半、21 世紀前半の楽譜の中には、@c
3135 複雑なリズムをわかりやすく示すため、@c
3136 あるいは、時間軸や他の図の配置を容易にするために、@c
3137 プロポーショナル ノーテーションを使っているものがあります。
3139 LilyPond はプロポーショナル ノーテーション用に 5 つの設定をサポートします。@c
3140 それらの設定は一緒に使われることもありますし、単独で使われることもあります:
3143 @item @code{proportionalNotationDuration}
3144 @item @code{uniform-stretching}
3145 @item @code{strict-note-spacing}
3146 @item @code{\remove "Separating_line_group_engraver"}
3147 @item @code{\override PaperColumn.used = ##t}
3151 これら 5 つのプロポーショナル ノーテーション用の設定を見ていき、@c
3152 それらがどのように相互に作用するかを調べます。
3154 以下のような 1 小節の例から始めます。@c
3155 これは、@code{ragged-right} が ON であり、@c
3156 クラシック音楽でのスペースを使用します。
3158 @lilypond[quote,verbatim,ragged-right]
3161 \new RhythmicStaff {
3165 c'16 c'16 c'16 c'16 c'16
3172 小節の始まりに配置された 2 分音符がその小節で占める水平方向のスペースは、@c
3173 半分よりもずっと少ないということに注意してください。@c
3175 小節の後半に配置された 16 分音符と、16 分音符からなる 5 連符
3176 (すなわち、20 分音符) がその小節で占める水平方向のスペースは、@c
3179 クラシック音楽の譜刻では、このスペースのとり方が望ましいかもしれません。@c
3180 なぜなら、2 分音符から水平方向のスペースを借りてきて、@c
3181 小節全体としてスペースを維持することができるからです。
3183 他方で、時間軸や他の図を楽譜の上または下に挿入しようとした場合、@c
3184 プロポーショナル ノーテーションが必要になります。@c
3185 @code{proportionalNotationDuration} 設定でプロポーショナル ノーテーションを@c
3188 @lilypond[quote,verbatim,ragged-right]
3191 \new RhythmicStaff {
3195 c'16 c'16 c'16 c'16 c'16
3202 proportionalNotationDuration = #(ly:make-moment 1/20)
3209 小節の前半に配置された 2 分音符と、後半に配置された短い音符の集まりが@c
3210 占める水平方向のスペースは等しくなりました。@c
3211 これで、この例の上または下に、時間軸や他の図を配置することが可能になりました。
3213 @code{proportionalNotationDuration} 設定は、@c
3214 @code{Score} の中にあるコンテキスト設定です。@c
3215 入力ファイルの中でコンテキスト設定が出現するのは、@c
3216 3 つの場所のどれかだということを思い出してください
3217 -- @code{\with} ブロックの中、@code{\context} ブロックの中、あるいは、@c
3218 @code{\set} コマンドを前に置いた形で音楽エントリの中に直接配置します。@c
3219 他のすべてのコンテキスト設定と同様に、@c
3220 ユーザはこれら 3 つの場所のどれか 1 つを選択して、@c
3221 そこで @code{proportionalNotationDuration} をセットすることができます。
3223 @code{proportionalNotationDuration} 設定は引数を 1 つとります。@c
3224 これはすべての音楽要素へのスペースに関係する参照演奏時間です。@c
3225 LilyPond Scheme 関数 @code{make-moment} は 2 つの引数をとります
3226 -- 全音符の分数を表す分子と分母です。@c
3227 それゆえ、@code{(ly:make-moment 1/20)} という呼び出しは、@c
3228 20 分音符の参照演奏時間となります。@c
3229 @code{(ly:make-moment 1/16)}, @code{(ly:make-moment 1/8)}, それに
3230 @code{(ly:make-moment 3/97)} という値はすべてとり得る値です。
3232 では、どのように @code{proportionalNotationDuration} に渡す@c
3233 適切な参照演奏時間を決めるのでしょうか?@c
3234 通常、その楽曲の最速 (あるいは最小) の演奏時間に近い演奏時間から始めて、@c
3236 小さな参照演奏時間にすると疎な楽譜となり、@c
3237 大きな参照演奏時間にすると密な楽譜になります。
3239 @lilypond[quote,verbatim,ragged-right]
3242 \new RhythmicStaff {
3246 c'16 c'16 c'16 c'16 c'16
3253 proportionalNotationDuration = #(ly:make-moment 1/8)
3260 \new RhythmicStaff {
3264 c'16 c'16 c'16 c'16 c'16
3271 proportionalNotationDuration = #(ly:make-moment 1/16)
3278 \new RhythmicStaff {
3282 c'16 c'16 c'16 c'16 c'16
3289 proportionalNotationDuration = #(ly:make-moment 1/32)
3295 8 分音符以上などのようなあまりにも大きな演奏時間にすると、@c
3296 楽譜が密になりすぎて、符頭の衝突が発生する可能性があるということに@c
3298 さらに、一般にプロポーショナル ノーテーションはクラシック音楽のスペースよりも@c
3299 多くの水平方向スペースをとるということに注意してください。@c
3300 プロポーショナル ノーテーションは、多くの水平方向スペースを使うことで、@c
3303 次に、重複する連符に最適なスペースを割り当てる方法を検証します。
3305 まず、クラシック音楽のスペースで、異なるタイプの連符を付け加えたときに、@c
3308 @lilypond[quote,verbatim,ragged-right]
3311 \new RhythmicStaff {
3315 c'16 c'16 c'16 c'16 c'16
3318 \new RhythmicStaff {
3320 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3327 このスペースのとり方は良くありません。@c
3328 なぜなら、下の譜の音符の間隔が一様ではないからです。@c
3329 クラシック音楽の譜刻には複雑な連符はほとんど含まれないため、@c
3330 クラシック音楽の譜刻規則はこのような結果を生み出す可能性があります。@c
3331 @code{proportionalNotationDuration} を設定することにより、@c
3334 @lilypond[quote,verbatim,ragged-right]
3337 \new RhythmicStaff {
3341 c'16 c'16 c'16 c'16 c'16
3344 \new RhythmicStaff {
3346 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3353 proportionalNotationDuration = #(ly:make-moment 1/20)
3361 前半の音符の間隔よりもわずかに広くなっています。@c
3363 @code{SpacingSpanner} のプロパティである
3364 @code{uniform-stretching} を ON にします。
3366 @lilypond[quote,verbatim,ragged-right]
3369 \new RhythmicStaff {
3373 c'16 c'16 c'16 c'16 c'16
3376 \new RhythmicStaff {
3378 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8 c'8
3385 proportionalNotationDuration = #(ly:make-moment 1/20)
3386 \override SpacingSpanner.uniform-stretching = ##t
3392 今度は、適切にスペースが割り当てられました。@c
3393 リズムは視覚的に明快になり、必要があれば時間軸や図を挿入することができます。
3395 LilyPond のプロポーショナル ノーテーション パッケージは、@c
3396 すべてのプロポーショナルな楽譜は @code{SpacingSpanner} の
3397 @code{'uniform-stretching} 属性が @code{##t} に設定されているものと@c
3399 @code{SpacingSpanner} の @code{'uniform-stretching} 属性が @code{##t}
3401 @code{proportionalNotationDuration} が設定されると、@c
3402 例えば、スキップ (空白音符) の水平方向のスペースが適切に割り当てられません。
3404 @code{SpacingSpanner} は @code{Score} コンテキストの中にある@c
3405 抽象的なグラフィカル オブジェクトです。@c
3406 @code{proportionalNotationDuration} の設定と一緒に、@c
3407 @code{SpacingSpanner} をオーバライドする場所は、@c
3408 入力ファイルの 3 つの場所のいずれかになります
3409 -- @code{Score \with} ブロックの中、@code{Score \context} ブロックの中、@c
3410 あるいは音符入力の場所に直接配置するかです。
3412 デフォルトでは、@code{Score} ごとに @code{SpacingSpanner} が 1 つあります。@c
3413 つまり、デフォルトでは、@code{uniform-stretching} は楽譜全体で ON であるか、@c
3414 OFF であるかのどちらかであるということです。@c
3415 しかしながら、この振る舞いをオーバライドして、@c
3416 楽譜内の異なる場所で異なるスペース機能を設定することができます。@c
3417 これを実現するには、コマンド @code{\newSpacingSection} を用います。@c
3418 更なる情報は、@ref{新しいスペース領域} を参照してください。
3420 次に、@code{Separating_line_group_engraver} の効果を検証し、@c
3422 このエングラーバを削除するのかを見ていきます。@c
3423 以下の例は、各システムの最初の音符の直前に小さな @qq{前置きの} スペースが@c
3426 @lilypond[quote,verbatim,ragged-right]
3439 この前置きのスペースの量は、前にあるのが拍子記号、調号、あるいは音部記号の@c
3441 @code{Separating_line_group_engraver} はこのスペースに責任を負います。@c
3442 @code{Separating_line_group_engraver} を削除すると、@c
3445 @lilypond[quote,verbatim,ragged-right]
3451 \remove "Separating_line_group_engraver"
3459 拍子記号、調号、音部記号、それに臨時記号のような非音楽要素は、@c
3460 プロポーショナル ノーテーションでは問題になります。@c
3461 これらはすべて演奏時間を持ちません。@c
3462 しかしながら、これらはすべて水平方向のスペースを消費します。@c
3463 この問題に対して、プロポーショナルな楽譜はいくつかの異なるアプローチをとります。
3465 調号のスペースの問題は、調号を持たないことで回避できるかもしれません。@c
3467 なぜなら、たいていのプロポーショナルな楽譜は現代音楽だからです。@c
3468 拍子記号についても同じことが言えるかもしれません。@c
3469 時間軸や他の図を持つ楽譜であれば特にそうです。@c
3470 しかしながら、そのような楽譜は例外的なものであり、@c
3471 たいていのプロポーショナルな楽譜は少なくともいくつかの拍子記号を持ちます。@c
3472 さらに、音部記号と臨時記号はより必須のものです。
3474 それでは、プロポーショナルなコンテキストにおける非音楽要素のスペースに対して@c
3475 どのような解決法が存在するのでしょうか?@c
3476 とり得る選択肢の 1 つに、@code{SpacingSpanner} の @code{strict-note-spacing}
3480 @lilypond[quote,verbatim,ragged-right]
3482 \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3492 \set Score.proportionalNotationDuration = #(ly:make-moment 1/16)
3493 \override Score.SpacingSpanner.strict-note-spacing = ##t
3503 どちらの楽譜もプロポーショナルです。@c
3504 しかしながら、最初の楽譜は音部変更があるため広がりすぎています。@c
3505 2 番目の楽譜は、@code{strict-note-spacing} を ON にしているため、@c
3506 プロポーショナルな間隔を維持しています。@c
3507 @code{strict-note-spacing} を ON にすると、@c
3508 拍子記号、調号、音部記号、それに臨時記号の幅は、@c
3509 スペース アルゴリズムの中で何の役割も果たさなくなります。
3511 この設定に加えて、他にもプロポーショナルな楽譜で頻出する設定があります。@c
3515 @item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
3516 @item @code{tupletFullLength = ##t}
3517 @item @code{\override Beam.breakable = ##t}
3518 @item @code{\override Glissando.breakable = ##t}
3519 @item @code{\override TextSpanner.breakable = ##t}
3520 @item @code{\remove "Forbid_line_break_engraver" in the Voice context}
3523 これらの設定は、装飾小音符のスペースを厳密にし、@c
3524 連譜の囲みをリズム的な開始点、終了点まで拡張し、@c
3525 (連桁のような) 広がりを持つ要素が、@c
3526 システムやページが改まるときに中断されることを許可します。@c
3527 これらの設定について、本書の関連パートを参照してください。
3538 @section 音楽を少ないページに収める
3539 @translationof Fitting music onto fewer pages
3541 ときどき、譜の 1 つ、2 つが 2 番目 (あるいは、3 番目、4 番目@dots{})
3542 のページに配置されてしまうことがあります。@c
3544 -- 特に、前のページに十分なスペースがあるように見える場合は。
3546 レイアウトの問題を解決しようとしている時、@c
3547 @code{annotate-spacing} は何にも代え難いツールです。@c
3548 このコマンドはさまざまなレイアウト スペース変数の値を表示します。@c
3549 詳細は以下のセクション @ref{スペースを表示する} を参照してください。
3558 @subsection スペースを表示する
3559 @translationof Displaying spacing
3561 @funindex annotate-spacing
3562 @cindex spacing, display of layout (レイアウト スペースの表示)
3564 ページ フォーマットのために変更される可能性がある、@c
3565 垂直方向のレイアウト変数の値を表示させるには、@c
3566 @code{\paper} ブロックの中で @code{annotate-spacing} をセットします:
3568 @c need to have \book{} otherwise we get the separate systems. -hwn
3569 @lilypond[verbatim,quote]
3570 #(set-default-paper-size "a6" 'landscape)
3573 \paper { annotate-spacing = ##t }
3580 @code{\paper} ブロックや @code{\layout} ブロックの中で@c
3581 指定された単位とは無関係に、譜スペースで表示されます。@c
3582 上の例では、@code{paper-height} の値は 59.75 @code{譜スペース} であり、@c
3583 @code{staff-size} は 20 ポイント (デフォルト値) です。@c
3586 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
3589 @tab = (25.4/72.27) mm
3592 @tab = (@code{staff-size})/4 ポイント
3594 @tab = (@code{staff-size})/4 * (25.4/72.27) mm
3599 この場合、1 譜スペースは約 1.757mm です。@c
3600 それゆえ、59.75 譜スペースである @code{paper-height} は 105mm であり、@c
3601 横置きの @code{A6} 紙の高さと同じです。@c
3602 ペア (@var{a},@var{b}) は間隔を表します。@c
3603 @var{a} は間隔の下端を、@var{b} は上端を表します。
3614 @subsection スペースを変更する
3615 @translationof Changing spacing
3617 @code{annotate-spacing} の出力は、@c
3618 垂直方向のレイアウト変数の値を詳細に取得します。@c
3619 マージンや他のレイアウト変数を変更することについての詳細は、@c
3620 @ref{ページ レイアウト} を参照してください。
3622 マージン以外にも、スペースを節約するための選択肢がいくつかあります:
3627 (1 ページにできるだけ多くのシステムを収めるために)
3628 スペースがある限り、システムを可能な限り近寄せる。@c
3629 それにより、ページの下部に空きスペースが無くなります。
3633 system-system-spacing = #'((basic-distance . 0.1) (padding . 0))
3634 ragged-last-bottom = ##f
3641 これは 2 つの意味でスペースを節約します。@c
3642 システム数を設定することで、たとえそれがデフォルト値であっても、@c
3643 各ページにより多くのシステムを収めることができる場合があります。@c
3644 なぜなら、見積もりのステップが迂回され、より正確な適合が得られるからです。@c
3645 さらに、システム数を減らすことで、より多くのページを節約できる場合があります。@c
3646 例えば、デフォルトのレイアウトが 11 システムである場合、@c
3647 以下の指定により、レイアウトは強制的に 10 システムに収められます。
3657 例えば、以下の設定は強制的に 2 ページにレイアウトさせます。
3666 オブジェクトがシステムの垂直方向のサイズを増加させるのを避ける
3668 例えば、volta リピート (または、差し替えの繰り返し) は@c
3670 これらの繰り返しが 2 つのシステムに広がっている場合、@c
3671 1 システムが volta リピートを持ち、もう 1 システムが volta リピートを持たない@c
3672 場合よりも多くのスペースをとります。@c
3674 システムから突き出ている強弱記号を譜に近づけることで、@c
3677 @lilypond[verbatim,quote,relative=1]
3679 e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
3683 @code{SpacingSpanner} 経由で水平方向のスペースを変更する。@c
3684 詳細は、@ref{水平方向のスペースを変更する} を参照してください。@c
3685 以下の例は、デフォルトをスペースを示しています:
3687 @lilypond[verbatim,quote]
3700 次の例では、@code{common-shortest-duration} の値を
3701 @code{1/4} から @code{1/2} に変更しています。@c
3702 この例では、4 分音符が最も共通で、最短の演奏時間です。@c
3703 そのため、@code{common-shortest-duration} を長くすることで
3706 @lilypond[verbatim,quote]
3718 \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/2)
3725 @code{common-shortest-duration} プロパティを動的に変更することはできません。@c
3726 そのため、このプロパティは常に @code{\context} ブロックの中に配置して、@c
3727 楽譜全体に適用されるようにする必要があります。
3734 @ref{水平方向のスペースを変更する}