@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
@ignore
- Translation of GIT committish: 0af52987f3694217fa81c29bd4fdc0443d2fac49
+ Translation of GIT committish: cc3b9e1430f4cc9c54da7252e504f3d274a7ea17
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.14.0"
+@c \version "2.17.6"
@c Translators: Yoshiki Sawada
Could we add a sentence:
"Use instead the pair fontSize = #@var{N}
- \override StaffSymbol #'staff-space = #(magstep
+ \override StaffSymbol.staff-space = #(magstep
@var{N})
inside the Staff context to change the size of the font and the
distance between
@node 紙面サイズを設定する
@unnumberedsubsubsec 紙面サイズを設定する
-@translationof Setting paper size
+@translationof Setting the paper size
紙面サイズを変更するために 2 つの関数が利用可能です:
@code{set-default-paper-size} と @code{set-paper-size} です。
@code{set-default-paper-size} は最上位スコープに配置する必要があり、@c
and @code{set-paper-size} は @code{\paper} ブロックの中に@c
配置する必要があります:
+@q{A4} が紙面サイズを明示的に設定しなかった場合のデフォルト値です。@c
+しかしながら、デフォルト値を変更するために使うことができる関数が 2 つあります。@c
+1 つは @code{set-default-paper-size} です:
@example
-#(set-default-paper-size "a4")
+#(set-default-paper-size "quarto")
@end example
+この関数は常に最上位スコープに配置する必要があります。@c
+もう 1 つは @code{set-paper-size} です:
+
@example
\paper @{
- #(set-paper-size "a4")
+ #(set-paper-size "tabloid")
@}
@end example
-@noindent
-最上位スコープにおいて、@c
-@code{set-default-paper-size} 関数はどこにあっても@c
-最初の @code{\paper} ブロックより先に安全に呼び出されます。@c
-@code{\paper} ブロック内において、@c
-最も安全に @code{set-paper-size} を呼び出せる場所はブロックの先頭、@c
-変数宣言の上です。@c
-この理由は、@ref{紙面サイズに応じた自動拡縮} で説明しています。
-
-@code{set-default-paper-size} はすべてのページのサイズをセットします。@c
-一方、@code{set-paper-size} は、@c
-その @code{\paper} ブロックが適用されたページのサイズのみをセットします。@c
-例えば、@code{\paper} ブロックがファイルの先頭にある場合、@c
-その紙面サイズはすべてのページに適用されます。@c
-@code{\paper} ブロックが @code{\book} の中にある場合、@c
-紙面サイズはその book にのみ適用されます。
-
-@code{a4}, @code{letter}, @code{legal}, それに @code{11x17}
-(タブロイド サイズとも呼ばれます)
-などの一般的な紙面サイズを利用することができます。@c
-さらに多くの紙面サイズがデフォルトでサポートされています。@c
-詳細は @file{scm/paper.scm} を参照して、@c
-@code{paper-alist} の定義を探してください。
-
-@c TODO add a new appendix for paper sizes (auto-generated) -pm
-
-@warning{デフォルトの紙面サイズは @code{a4} です。}
-
-初期ファイル @file{scm/paper.scm} の中にある
-@code{paper-alist} の定義を編集することにより、@c
-紙面サイズを追加することができます。@c
-しかしながら、追加した紙面サイズは、@c
-その後のインストールにより上書きされてしまいます。
-
-@cindex orientation (縦長の紙面)
-@cindex landscape (横長の紙面)
-
-@code{set-default-paper-size} への引数として@c
-シンボル @code{'landscape} を渡すと、@c
-ページは 90°回転し、それに応じてより長い行幅となります。
+この間数は常に @code{\paper} ブロックの中に配置する必要があります。
+
+@code{set-default-paper-size} 関数を最上位スコープで用いる場合、@c
+どの @code{\paper} ブロックよりも前に配置する必要があります。@c
+@code{set-default-paper-size} はすべてのページの紙面サイズを設定しますが、@c
+@code{set-paper-size} が設定する紙面サイズは @code{\paper} ブロックが適用@c
+されるページだけです。@c
+例えば、@code{\paper} ブロックがファイルの最上位に配置されている場合、すべての@c
+ページの紙面サイズに摘要されます。@c
+@code{\paper} ブロックが @code{\book} の中に配置されている場合、そのブックの@c
+ページだけに適用されます。
+
+@code{set-paper-size} 関数を用いる場合、同じ @code{\paper} ブロック内で@c
+用いられる他のすべての関数よりも @emph{前に} 配置する必要があります。@c
+@ref{Automatic scaling to paper size} を参照してください。
+
+紙面サイズは @file{scm/paper.scm} で定義されていて、カスタム サイズを追加する@c
+ことも可能ですが、追加後のソフトウェア アップデートにより上書きされます。@c
+利用可能な紙面サイズは @ref{Predefined paper sizes} でリスト アップされています。
+
+@c An appendix entry exists for paper sizes but is not auto-generated
+
+以下のコマンドを用いてカスタム紙面サイズを追加することができ、追加した紙面サイズは
+@code{set-default-paper-size} または @code{set-paper-size} で使用することが@c
+でいます。
+
+
+@example
+#(set! paper-alist (cons '("my size" . (cons (* 15 in) (* 3 in))) paper-list))
+
+\paper @{
+ #(set-paper-size "my size")
+@}
+@end example
+
+単位 @code{in} (インチ)、@code{cm} (センチメートル)、それに @code{mm}
+(ミリメートル) のすべてを使うことができます。
+
+@cindex paper size, orientation (紙面サイズの向き)
+@cindex page, orientation (紙面の向き)
+@cindex paper size, landscape (横向きの紙面サイズ)
+
+紙面サイズ関数にシンボル @code{'landscape} を渡すとページは 90°回転し、@c
+それに応じてより長い行幅となります。
@example
#(set-default-paper-size "a6" 'landscape)
@end example
+紙面が回転するだけで、楽譜は回転 @emph{しません}。
+
@seealso
記譜法リファレンス:
-@ref{紙面サイズに応じた自動拡縮}
+@ref{Automatic scaling to paper size},
+@ref{Predefined paper sizes}
インストールされているファイル:
@file{scm/paper.scm}
自動拡縮は起こらないということに注意してください。@c
しかしながら @code{paper-width} 変数の変更は他の値に影響を与えます
(これは拡縮とは別のことで、後で説明します)。
-@code{set-default-paper-size} é\96¢æ\95°ã\81¨ @code{set-paper-size} é\96¢æ\95°ã\81¯@c
-@ref{紙面サイズを設定する} で説明します。
+@code{set-default-paper-size} é\96¢æ\95°ã\81¨ @code{set-paper-size} é\96¢æ\95°ã\81«ã\81¤ã\81\84ã\81¦ã\81¯
+@ref{Setting the paper size} で説明します。
自動拡縮によって影響を受ける垂直方向の長さは
@code{top-margin} と @code{bottom-margin} です
@funindex ragged-last-bottom
偽に設定されている場合、最後のページでシステムはページ下端まで広がります。@c
-2 ページ以上ある楽曲では、この変数を真に設定すべきです。@c
+2 ページ以上ある楽曲では、この変数を偽に設定すべきです。@c
これは book パート
-- すなわち @code{\bookpart} ブロックによって作成された部分 --
の最後のページにも影響を与えます。
@rlsr{Spacing}
@knownissues
-
(@code{\header} ブロックによって作成された)
タイトルはシステムとして扱われます。@c
このため、@code{ragged-bottom} と @code{ragged-last-bottom} は@c
タイトルと score の最初のシステムとの間にスペースを追加します。
+明示的に定義された紙面サイズは、ユーザ定義の上または下のマージン設定を上書きします。
+
@node 可変な垂直方向の \paper スペース変数
@subsection 可変な垂直方向の @code{\paper} スペース変数
@end itemize
+複数ページの楽譜で、最後のページの楽譜がページ下端まで広がらない場合、最後の@c
+ページのスペースは前のページと同じです。
+
配列リストを変更する方法は、@ref{Modifying alists} で説明します。@c
以下の例は、連想配列を変更する 2 つの方法を提示しています。@c
最初の宣言はキー値を個別に変更していて、2 つ目は変数全体を再定義しています:
インストールされているファイル:
@file{ly/paper-defaults-init.ly}
+@knownissues
+明示的に定義された紙面サイズは、ユーザ定義の左または右のマージン設定を上書きします。
+
@node 両面モードのための \paper 変数
@unnumberedsubsubsec 両面モードのための @code{\paper} 変数
@table @code
-@item blank-after-score-page-force
-@funindex blank-after-score-page-force
+@item blank-after-score-page-penalty
+@funindex blank-after-score-page-penalty
-@c 未訳
-The penalty for having a blank page after the end of one score and
-before the next. By default, this is smaller than
-@code{blank-page-force}, so that we prefer blank pages after
-scores to blank pages within a score.
+楽譜の後ろ (と次の楽譜の前) に強制的に白紙を挿入します。@c
+デフォルトでは、この値は @code{blank-page-penalty} よりも小さいため、@c
+楽譜の途中ではなく後ろに白紙が挿入されます。
-@item blank-last-page-force
-@funindex blank-last-page-force
+@item blank-last-page-penalty
+@funindex blank-last-page-penalty
-@c 未訳
-The penalty for ending the score on an odd-numbered page.
+楽譜の最後が奇数ページの場合、楽譜の後ろに白紙を挿入します。
-@item blank-page-force
-@funindex blank-page-force
+@item blank-page-penalty
+@funindex blank-page-penalty
-@c 未訳
-The penalty for having a blank page in the middle of a
-score. This is not used by @code{ly:optimal-breaking} since it will
-never consider blank pages in the middle of a score.
+楽譜の途中に強制的に白紙を挿入します。@c
+この値は @code{ly:optimal-breaking} では用いられません。@c
+なぜなら、楽譜の途中の白紙を考慮しないからです。
@item page-breaking
@funindex page-breaking
-@c 未訳
-The page-breaking algorithm to use. Choices are
-@code{ly:minimal-breaking}, @code{ly:page-turn-breaking}, and
-@code{ly:optimal-breaking}.
+改ページのアルゴリズムを指定します。@c
+選択肢は @code{ly:minimal-breaking}, @code{ly:page-turn-breaking},
+それに @code{ly:optimal-breaking} です。
@item page-breaking-system-system-spacing
@funindex page-breaking-system-system-spacing
-@c 未訳
-Tricks the page breaker into thinking that
-@code{system-system-spacing} is set to something different than
-it really is. For example, if
-@code{page-breaking-system-system-spacing #'padding} is set to something
-substantially larger than @code{system-system-spacing #'padding}, then the
-page-breaker will put fewer systems on each page. Default: unset.
+改ページ アルゴリズムに @code{system-system-spacing} を実際の値とは異なる@c
+値だと思わせるトリックです。@c
+例えば、@code{page-breaking-system-system-spacing #'padding} を
+@code{system-system-spacing #'padding} よりも十分に大きくすると、@c
+改ページ アルゴリズムは各ページに数個のシステムしか配置しません。@c
+デフォルトではセットされていません。
@item page-count
@funindex page-count
@ref{改ページ},
@ref{最適改ページ},
@ref{最適ページめくり},
-@ref{最小改ページ}
+@ref{最小改ページ},
+@ref{1 行の改ページ}
インストールされているファイル:
@file{ly/paper-defaults-init.ly}
(垂直方向の) ページ スペースと (水平方向の) 行スペースの重要度の関係です。@c
大きな値だと、ページ スペースがより重要になります。@c
-デフォルトでは、@code{#10} です。
+デフォルトでは、@code{10} です。
@item print-all-headers
@funindex print-all-headers
@end table
-
@seealso
インストールされているファイル:
@file{ly/titling-init.ly}
コード断片集:
@rlsr{Spacing}
-
@knownissues
-
-
デフォルトのページ ヘッダは、@c
ページ番号と @code{\header} ブロックの @code{instrument} フィールドを@c
同一の行に配置します。
indent = 2\cm
\context @{
\StaffGroup
- \override StaffGrouper #'staff-staff-spacing #'basic-distance = #8
+ \override StaffGrouper.staff-staff-spacing.basic-distance = #8
@}
\context @{
\Voice
- \override TextScript #'padding = #1
- \override Glissando #'thickness = #3
+ \override TextScript.padding = #1
+ \override Glissando.thickness = #3
@}
@}
@end example
+最上位の表記として複数の @code{\layout} ブロックを配置することができます。@c
+これは、例えば、異なる設定が別個のファイルに保存されていて、任意の方法で@c
+インクルードする場合に有用です。@c
+内部的には、@code{\layout} ブロックが評価される時、カレントの
+@code{\layout} 構成のコピーが作成され、評価する @code{\layout} ブロックの@c
+内部で定義されている変更が適用され、その結果が新しいカレントの構成として@c
+保存されます。@c
+ユーザからは @code{\layout} ブロックが組み合わされたように見えますが、@c
+衝突が発生した場合 (複数のブロックで同じプロパティが変更された場合)、@c
+最後の定義が有効になります。
+
+例えば、下記のブロック:
+
+@example
+\layout @{
+ \context @{
+ \Voice
+ \override TextScript.color = #magenta
+ \override Glissando.thickness = #1.5
+ @}
+@}
+@end example
+
+これが一つ前の例の後に配置された場合、@code{TextScript} の @code{'padding}
+設定と @code{'color} 設定は組み合わせれますが、@code{Glissando} の
+@code{'thickness} 設定は前の設定と置き換わります (前の設定を上書きします)。
+
+@code{\layout} ブロックを後で再利用するために変数に代入することができます。@c
+しかしながら、この方法は @code{\layout} ブロックを直接記述した場合とは@c
+少しですが重大な違いがあります。
+
+変数を以下のように定義した場合:
+
+@example
+layoutVariable = \layout @{
+ \context @{
+ \Voice
+ \override NoteHead.font-size = #4
+ @}
+@}
+@end example
+
+カレントの @code{\layout} 構成に @code{NoteHead #'font-size} 設定を追加@c
+しますが、この組み合わせは新しいカレントの構成として保存され @emph{ません}。@c
+@q{カレントの構成} は変数が定義された時に評価されるのであり、変数が使われる@c
+時に評価されるのではありません。@c
+そのため、変数の効果は変数がソースに配置された位置によって異なります。
+
+変数を他の @code{\layout} ブロックの中で使うことができます。@c
+例えば、以下のように:
+
+@example
+\layout @{
+ \layoutVariable
+ \context @{
+ \Voice
+ \override NoteHead.color = #red
+ @}
+@}
+@end example
+
+上記のような変数を含む @code{\layout} ブロックは、カレントの構成をコピー@c
+せず、設定を追加するためのベースとなる構成として @code{\layoutVariable} の@c
+内容を用います。@c
+このことは、変数が定義されてから使われるまでの間に定義された変更は失われる@c
+ということを意味します。
+
+@code{layoutVariable} が使われる (あるいは @code{\include} される) 直前に@c
+定義されている場合、@code{layoutVariable} の内容はカレントの構成に変数内部@c
+で定義した設定を加えたものになります。@c
+そのため、上で示した @code{\layoutVariable} の使用例の場合、最終的な
+@code{\layout} ブロックの構成は以下のようになります:
+
+@example
+ TextScript #'padding = #1
+ TextScript #'color = #magenta
+ Glissando #'thickness = #1.5
+ NoteHead #' font-size = #4
+ NoteHead #' color = #red
+@end example
+
+これに @code{indent} と @code{StaffGrouper} の設定がプラスしたものです。
+
+しかしながら、変数が最初の @code{\layout} ブロックより前に定義されていた@c
+場合、カレントの構成は以下だけになってしまいます:
+
+@example
+ NoteHead #' font-size= #4 % (変数定義で記述されたものです)
+ NoteHead #' color = #red % (変数が使用された後に追加されたものです)
+@end example
+
+注意深く計画を立てれば、@code{\layout} 変数はソースのレイアウト設計を構築@c
+して、@code{\layout} 構成を既知の状態にリセットするための有用なツールに@c
+なります。
@seealso
記譜法リファレンス:
個々の譜に対してサイズを調整することができます。@c
個々の譜のサイズはグローバル サイズとの相対値です。
-
@seealso
記譜法リファレンス:
@ref{記譜フォント サイズを選択する}
コード断片集:
@rlsr{Spacing}
-
@knownissues
-
@code{layout-set-staff-size} は譜線の間隔を変更しません。
* 最適改ページ::
* 最適ページめくり::
* 最小改ページ::
+* 1 行の改ページ::
* 明示的な改行/改ページ::
* 改行/改ページのために追加のボイスを使用する::
@end menu
@lilypond[quote,ragged-right,verbatim]
\new Voice \with {
- \remove Forbid_line_break_engraver
+ \remove "Forbid_line_break_engraver"
} \relative c'' {
<<
{ c2. \times 2/3 { c4 c c } c2. | }
@end lilypond
同様に、通常は連桁が小節線を跨いでいる場合も、改行は禁止されます。@c
-この振る舞いは、@code{\override Beam #'breakable = ##t} により、@c
+この振る舞いは、@code{\override Beam.breakable = ##t} により、@c
変更することができます:
@lilypond[quote,ragged-right,relative=2,verbatim]
-\override Beam #'breakable = ##t
+\override Beam.breakable = ##t
c2. c8[ c | \break
c8 c] c2. |
@end lilypond
@code{ragged-right} や @code{ragged-last} と類似で、@c
垂直方向のスペースに対して同じ効果を持つ設定があります:
@code{ragged-bottom} と @code{ragged-last-bottom} です。@c
-これらの設定が @code{##t} にセットされている場合、@c
+これらの設定が @code{#t} にセットされている場合、@c
すべてのページあるいは最後のページのシステムは@c
ページの垂直方向全体には広がりません。@c
@ref{固定された垂直方向の \paper スペース変数} を参照してください。
@code{\noPageBreak}
@endpredefined
-
@seealso
記譜法リファレンス:
@ref{改行のための \paper 変数}
コンテキスト プロパティ @code{minimumPageTurnLength} を読み込んで、@c
どれくらい音符が無いセクションが続いたらページめくりを考慮するかを決定します。@c
@code{minimumPageTurnLength} のデフォルト値は
-@code{#(ly:make-moment 1 1)} です。@c
+@code{(ly:make-moment 1 1)} です。@c
ページめくりを不可にしたいのならば、@c
@code{minimumPageTurnLength} に非常に大きな値をセットします。
それに @code{\allowPageTurn} は、@c
最上位レベル、score や最上位のマークアップの間で使用される可能性もあります。
-
@predefined
@funindex \pageTurn
@code{\pageTurn},
@code{\allowPageTurn}
@endpredefined
-
@seealso
コード断片集:
@rlsr{Spacing}
-
@knownissues
-
score の中に配置する @code{Page_turn_engraver} は 1 つだけにするべきです。@c
複数の @code{Page_turn_engraver} がある場合、@c
互いに干渉し合います。
@}
@end example
-
@seealso
コード断片集:
@rlsr{Spacing}
+@node 1 行の改ページ
+@subsection 1 行の改ページ
+@translationof One-line page breaking
+
+@funindex ly:one-line-breaking
+
+@code{ly:one-line-breaking} 関数は特殊な目的のための改ページアルゴリズム@c
+で、楽譜をそれぞれ 1 ページに 1 行で配置します。@c
+この改ページ関数はタイトルやマージンを譜刻しません。楽譜だけを譜刻します。
+
+ページ幅は最も長い楽譜が 1 行に納まるように調節されます。@c
+@code{\paper} ブロックの中にある変数 @code{paper-width}, @code{line-width}
+それに @code{indent} は無視されますが、@code{left-margin} と
+@code{right-margin} は有効です。@c
+ページの高さは変更されません。
@node 明示的な改行/改ページ
@subsection 明示的な改行/改ページ
この振る舞いを上書きするための 2 つのコマンドがあります:
@example
-\override NonMusicalPaperColumn #'line-break-permission = ##f
-\override NonMusicalPaperColumn #'page-break-permission = ##f
+\override NonMusicalPaperColumn.line-break-permission = ##f
+\override NonMusicalPaperColumn.page-break-permission = ##f
@end example
@code{line-break-permission} が偽に上書きされた場合、@c
\layout {
\context {
\Score
- \override NonMusicalPaperColumn #'line-break-permission = ##f
- \override NonMusicalPaperColumn #'page-break-permission = ##f
+ \override NonMusicalPaperColumn.line-break-permission = ##f
+ \override NonMusicalPaperColumn.page-break-permission = ##f
}
}
}
@end lilypond
-
@seealso
コード断片集:
@rlsr{Spacing}
\score {
\new Staff <<
\new Voice {
- \overrideProperty "Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 0))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
s1 * 2 \break
- \overrideProperty "Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 35))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
s1 * 3 \break
- \overrideProperty "Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 70))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
s1 * 6 \break
- \overrideProperty "Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 105))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
s1 * 5 \break
}
\new Voice {
}
@end lilypond
-
@seealso
記譜法リファレンス:
@ref{垂直方向のスペース}
要素です。@c
@code{@var{item2}} は必ずしも @code{@var{item1}} の下にある要素ではないという@c
ことに注意してください。@c
-例えば、@code{staff-affinity} が @code{#UP} である場合、@c
+例えば、@code{staff-affinity} が @code{UP} である場合、@c
@code{nonstaff-relatedstaff-spacing} は譜ではない行から@c
上向きにスペースをとります。
#(define zero-space '((padding . -inf.0) (basic-distance . 0)))
alignToZero = \with {
- \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #zero-space
- \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = #zero-space
+ \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #zero-space
+ \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #zero-space
}
lowerCaseChords = \with {
chordNameLowercaseMinor = ##t
}
staffAffinityDown = \with {
- \override VerticalAxisGroup #'staff-affinity = #DOWN
+ \override VerticalAxisGroup.staff-affinity = #DOWN
}
labelContext =
#(define-music-function
(parser location context)
(string?)
- #{ s1*0^\markup { \typewriter $context } #})
+ #{ s1*0^\markup { \typewriter #context } #})
\layout {
\context { \Dynamics \alignToZero }
\lowerCaseChords }
\context { \FretBoards \alignToZero \staffAffinityDown }
\context { \Score
- \override BarLine #'stencil = ##f
- \override DynamicText #'self-alignment-X = #-1
- \override FretBoard #'X-offset = #1.75
- \override InstrumentName #'minimum-Y-extent = #'(-2 . 2)
- \override InstrumentName #'extra-offset = #'(0 . -0.5)
- \override TextScript #'minimum-Y-extent = #'(-2 . 3)
- \override TimeSignature #'stencil = ##f
+ \override BarLine.stencil = ##f
+ \override DynamicText.self-alignment-X = #-1
+ \override FretBoard.X-offset = #1.75
+ \override InstrumentName.minimum-Y-extent = #'(-2 . 2)
+ \override InstrumentName.extra-offset = #'(0 . -0.5)
+ \override TextScript.minimum-Y-extent = #'(-2 . 3)
+ \override TimeSignature.stencil = ##f
}
}
@example
\new Staff \with @{
- \override VerticalAxisGroup #'default-staff-staff-spacing
- #'basic-distance = #10
+ \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
@} @{ @dots{} @}
\new Staff \with @{
- \override VerticalAxisGroup #'default-staff-staff-spacing =
+ \override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
\layout @{
\context @{
\Staff
- \override VerticalAxisGroup #'default-staff-staff-spacing
- #'basic-distance = #10
+ \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
@}
@}
@end example
@ref{可変な垂直方向の \paper スペース変数},
@ref{Modifying alists}
+インストールされているファイル:
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}
+
内部リファレンス:
@rinternals{Contexts},
@rinternals{VerticalAxisGroup},
@rinternals{StaffGrouper}
-Installed Files:
-@file{ly/engraver-init.ly},
-@file{scm/define-grobs.scm}
-
@node グループ化されていない譜のスペース
@unnumberedsubsubsec グループ化されていない譜のスペース
\layout {
\context {
\Staff
- \override VerticalAxisGroup #'default-staff-staff-spacing =
+ \override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 8)
(minimum-distance . 7)
(padding . 1))
% 'padding に負の値を設定することにより、譜を重ねることができます。
% 'basic-distance が取り得る最小の値は 0 です。
\new Staff \with {
- \override VerticalAxisGroup #'default-staff-staff-spacing =
+ \override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 3.5)
(padding . -10))
} { \clef bass g2 r | }
\layout {
\context {
\Score
- \override StaffGrouper #'staff-staff-spacing #'padding = #0
- \override StaffGrouper #'staff-staff-spacing #'basic-distance = #1
+ \override StaffGrouper.staff-staff-spacing.padding = #0
+ \override StaffGrouper.staff-staff-spacing.basic-distance = #1
}
}
<<
\new PianoStaff \with {
- \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #20
+ \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20
} <<
\new Staff { c'1 }
\new Staff { c'1 }
\layout {
\context {
\Lyrics
- \override VerticalAxisGroup
- #'nonstaff-nonstaff-spacing #'stretchability = #1000
+ \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000
}
}
\new StaffGroup
<<
\new Staff \with {
- \override VerticalAxisGroup #'staff-staff-spacing = #'((basic-distance . 30))
+ \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30))
} { c'1 }
\new Lyrics \with {
- \override VerticalAxisGroup #'staff-affinity = #UP
+ \override VerticalAxisGroup.staff-affinity = #UP
} \lyricmode { up }
\new Lyrics \with {
- \override VerticalAxisGroup #'staff-affinity = #CENTER
+ \override VerticalAxisGroup.staff-affinity = #CENTER
} \lyricmode { center }
\new Lyrics \with {
- \override VerticalAxisGroup #'staff-affinity = #DOWN
+ \override VerticalAxisGroup.staff-affinity = #DOWN
} \lyricmode { down }
\new Staff { c'1 }
>>
@code{NonMusicalPaperColumn} を上書きする例をいくつか挙げます:
@example
-\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((X-offset . 20))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))
-\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((Y-offset . 40))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
-\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
(Y-offset . 40))
-\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((alignment-distances . (15)))
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))
-\overrideProperty NonMusicalPaperColumn
- #'line-break-system-details #'((X-offset . 20)
+\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
(Y-offset . 40)
(alignment-distances . (15)))
@end example
<<
\new Staff <<
\new Voice {
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 0))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
s1*5 \break
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 40))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
s1*5 \break
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 80))
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
s1*5 \break
}
\new Voice { \repeat unfold 15 { c'4 c' c' c' } }
<<
\new Staff <<
\new Voice {
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 20)
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
(alignment-distances . (15)))
s1*5 \break
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 60)
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
(alignment-distances . (15)))
s1*5 \break
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 100)
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
(alignment-distances . (15)))
s1*5 \break
}
<<
\new Staff <<
\new Voice {
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 0)
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
(alignment-distances . (30 10)))
s1*5 \break
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 60)
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
(alignment-distances . (10 10)))
s1*5 \break
- \overrideProperty #"Score.NonMusicalPaperColumn"
- #'line-break-system-details #'((Y-offset . 100)
+ \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
(alignment-distances . (10 30)))
s1*5 \break
}
これらの設定に適切な値を渡すことで、そのようなことは避けられます。
@end itemize
-
@seealso
コード断片集:
@rlsr{Spacing}
@lilypond[quote,ragged-right,relative=2,verbatim]
c4_"Text"\pp
r2.
-\once \override TextScript #'outside-staff-priority = #1
+\once \override TextScript.outside-staff-priority = #1
c4_"Text"\pp % ここでは、テキストが譜の近くに配置されます
r2.
% outside-staff-priority に数ではない値を設定することにより、
% 自動衝突回避を無効にします
-\once \override TextScript #'outside-staff-priority = ##f
-\once \override DynamicLineSpanner #'outside-staff-priority = ##f
+\once \override TextScript.outside-staff-priority = ##f
+\once \override DynamicLineSpanner.outside-staff-priority = ##f
c4_"Text"\pp % ここでは、2 つのオブジェクトが衝突します
@end lilypond
@code{outside-staff-padding} で制御することができます。
@c KEEP LY
-@lilypond[quote,ragged-right,relative=2,verbatim]
-\once \override TextScript #'outside-staff-padding = #0
+@lilypond[quote,ragged-right,relative=2,verbatim,staffsize=18]
+\once \override TextScript.outside-staff-padding = #0
a'^"このテキストは音符のすぐ近くに配置されます。"
-\once \override TextScript #'outside-staff-padding = #3
+\once \override TextScript.outside-staff-padding = #3
c^"このテキストは前のテキストから離れた位置に配置されます"
c^"この手キスとは前にテキストの近くに配置されます"
@end lilypond
c''2
% outside-staff-horizontal-padding を設定することで修正します
R1
-\once \override TextScript #'outside-staff-horizontal-padding = #1
+\once \override TextScript.outside-staff-horizontal-padding = #1
c,,4^"Text"
c4
c''2
@end lilypond
-
@seealso
コード断片集:
@rlsr{Spacing}
各小節において、最短の演奏時間が決定されます。@c
スペースの基本として、最も共通する最短演奏時間が選択されます。@c
条件として、この最短演奏時間は常に 8 分音符以上の長さになります。@c
-@code{lilypond} を @code{--verbose} オプションを付けて実行すると、@c
+@code{lilypond} を @option{--verbose} オプションを付けて実行すると、@c
最短演奏時間が表示されます。
この演奏時間はカスタマイズすることもできます。@c
{
c'4 e''4 e'4 b'4 |
b'4 e''4 b'4 e''4 |
- \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
- \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+ \override Staff.NoteSpacing.stem-spacing-correction = #1.5
+ \override Staff.StaffSpacing.stem-spacing-correction = #1.5
c'4 e''4 e'4 b'4 |
b'4 e''4 b'4 e''4 |
}
プロポーショナル ノーテーション (proportional notation) がサポートされます。@c
@ref{プロポーショナル ノーテーション} を参照してください。
-
@seealso
+Essay on automated music engraving:
+@ressay{Optical spacing}
+
コード断片集:
@rlsr{Spacing}
@rinternals{StaffSpacing},
@rinternals{NonMusicalPaperColumn}
-
@knownissues
-
スペースを手動で上書きするための、手軽な仕組みはありません。@c
余分なスペースを楽譜に挿入するために、以下の手段があります
-- 必要に応じて、パディングの値を調整しています。
+
@example
- \override Score.NonMusicalPaperColumn #'padding = #10
+ \override Score.NonMusicalPaperColumn.padding = #10
@end example
スペースを減らすための手段はありません。
@code{SpacingSpanner} オブジェクトを作成します。@c
そのため、その場所で新たに @code{\override} が使用される可能性があります。
-
@seealso
コード断片集:
@rlsr{Spacing}
\layout {
\context {
\Score
- \override SpacingSpanner
- #'base-shortest-duration = #(ly:make-moment 1 16)
+ \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16)
}
}
}
\layout {
\context {
\Score
- \override SpacingSpanner #'uniform-stretching = ##t
+ \override SpacingSpanner.uniform-stretching = ##t
}
}
}
音符にスペースが割り当てられます。
@lilypond[quote,ragged-right,relative=2,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner.strict-note-spacing = ##t
\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
@end lilypond
-
@seealso
コード断片集:
@rlsr{Spacing}
@}
@end example
-
@seealso
コード断片集:
@rlsr{Spacing}
@item @code{proportionalNotationDuration}
@item @code{uniform-stretching}
@item @code{strict-note-spacing}
-@item @code{\remove Separating_line_group_engraver}
-@item @code{\override PaperColumn #'used = ##t}
+@item @code{\remove "Separating_line_group_engraver"}
+@item @code{\override PaperColumn.used = ##t}
@end itemize
以下の例では、@c
これはすべての音楽要素へのスペースに関係する参照演奏時間です。@c
LilyPond Scheme 関数 @code{make-moment} は 2 つの引数をとります
-- 全音符の分数を表す分子と分母です。@c
-それゆえ、@code{#(ly:make-moment 1 20)} という呼び出しは、@c
+それゆえ、@code{(ly:make-moment 1 20)} という呼び出しは、@c
20 分音符の参照演奏時間となります。@c
-@code{#(ly:make-moment 1 16)}, @code{#(ly:make-moment 1 8)}, それに
-@code{#(ly:make-moment 3 97)} という値はすべてとり得る値です。
+@code{(ly:make-moment 1 16)}, @code{(ly:make-moment 1 8)}, それに
+@code{(ly:make-moment 3 97)} という値はすべてとり得る値です。
では、どのように @code{proportionalNotationDuration} に渡す@c
適切な参照演奏時間を決めるのでしょうか?@c
\context {
\Score
proportionalNotationDuration = #(ly:make-moment 1 20)
- \override SpacingSpanner #'uniform-stretching = ##t
+ \override SpacingSpanner.uniform-stretching = ##t
}
}
}
}
\new Staff \with {
- \remove Separating_line_group_engraver
+ \remove "Separating_line_group_engraver"
} {
c'1
\break
\new Staff {
\set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
- \override Score.SpacingSpanner #'strict-note-spacing = ##t
+ \override Score.SpacingSpanner.strict-note-spacing = ##t
c''8
c''8
c''8
以下のような設定です:
@itemize
-@item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
+@item @code{\override SpacingSpanner.strict-grace-spacing = ##t}
@item @code{tupletFullLength = ##t}
-@item @code{\override Beam #'breakable = ##t}
-@item @code{\override Glissando #'breakable = ##t}
-@item @code{\override TextSpanner #'breakable = ##t}
-@item @code{\remove Forbid_line_break_engraver in the Voice context}
+@item @code{\override Beam.breakable = ##t}
+@item @code{\override Glissando.breakable = ##t}
+@item @code{\override TextSpanner.breakable = ##t}
+@item @code{\remove "Forbid_line_break_engraver" in the Voice context}
@end itemize
これらの設定は、装飾小音符のスペースを厳密にし、@c
システムやページが改まるときに中断されることを許可します。@c
これらの設定について、本書の関連パートを参照してください。
-
@seealso
記譜法リファレンス:
@ref{新しいスペース領域}
@section 音楽を少ないページに収める
@translationof Fitting music onto fewer pages
-ときどき、譜の 1 つ、2 つが 2 番目 (あるいは、3 番目、4 番目 ...)
+ときどき、譜の 1 つ、2 つが 2 番目 (あるいは、3 番目、4 番目@dots{})
のページに配置されてしまうことがあります。@c
これは腹立たしいことです
-- 特に、前のページに十分なスペースがあるように見える場合は。
ペア (@var{a},@var{b}) は間隔を表します。@c
@var{a} は間隔の下端を、@var{b} は上端を表します。
-
@seealso
記譜法リファレンス:
@ref{譜サイズを設定する}
@rlsr{Spacing}
-@c ここから L3349
@node スペースを変更する
@subsection スペースを変更する
@translationof Changing spacing
@}
@end example
+@item
+強制的にページ数を設定する。@c
+例えば、以下の設定は強制的に 2 ページにレイアウトさせます。
+
+@example
+\paper @{
+ page-count = #2
+@}
+@end example
+
@item
オブジェクトがシステムの垂直方向のサイズを増加させるのを避ける
(あるいは減らす)。@c
@lilypond[verbatim,quote,relative=1]
e4 c g\f c
-e4 c g-\tweak #'X-offset #-2.7 -\tweak #'Y-offset #2.5 \f c
+e4 c g-\tweak X-offset #-2.7 -\tweak Y-offset #2.5 \f c
@end lilypond
@item
\layout {
\context {
\Score
- \override SpacingSpanner
- #'common-shortest-duration = #(ly:make-moment 1 2)
+ \override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1 2)
}
}
}
@end itemize
-
@seealso
記譜法リファレンス:
@ref{ページ レイアウト},