最適ページめくり

しばしば、2 枚目のページ (横書きの本を開いたときの右側のページ) の終わりに休符を置くための改ページ構成が必要になります。こうすることで、演奏者は音符を見失うことなくページをめくることができます。ly:page-turn-breaking 関数はページの混み合いや広がりすぎを最小にする改ページを見つけ出そうと試みますが、ページめくりを特定の場所だけに置くための制約を受けます。

この改ページ関数を使うには、2 つのステップがあります。最初に、改ページ で説明されているように、\paper ブロックの中でこの関数を有効にする必要があります。次に、この関数に改ページを許可したい場所を教える必要があります。

2 番目のステップを達成するには、2 つの方法があります。1 つ目の方法では、入力ファイルの適当な場所に \allowPageTurn を挿入することによって、ページめくりの許可を手動で指定します。

この方法では手間がかかりすぎる場合は、Page_turn_engraverStaff あるいは Voice コンテキストに追加します。Page_turn_engraver はコンテキストをスキャンして音符の無いセクションを探します (休符を探すわけではなく、音符の無い部分を探すということに注意してください。単一譜の多声で、ボイスの 1 つが休符を持つ場合に、Page_turn_engraver に渡されないようにするためです。) Page_turn_engraver は音符を持たない十分に長いセクションを見つけると、‘特殊な’ 小節線 (2 重小節線など) がないかぎりは、そのセクションの最後の小節線のところに \allowPageTurn を挿入します。‘特殊な’ 小節線がある場合には、\allowPageTurn がそのセクションの最後にあるそのような小節線のところに挿入されます。

Page_turn_engraver はコンテキスト プロパティ minimumPageTurnLength を読み込んで、どれくらい音符が無いセクションが続いたらページめくりを考慮するかを決定します。minimumPageTurnLength のデフォルト値は (ly:make-moment 1/1) です。ページめくりを不可にしたいのならば、minimumPageTurnLength に非常に大きな値をセットします。

\new Staff \with { \consists Page_turn_engraver }
{
  a4 b c d |
  R1 | % ここでページめくりが許可されます
  a4 b c d |
  \set Staff.minimumPageTurnLength = \musicLength 2*5
  R1 | % ここではページめくりは許可されません
  a4 b r2 |
  R1*2 | % ここでページめくりが許可されます
  a1
}

Page_turn_engraver は volta 繰り返しを検出します。繰り返しの開始と終わりにページめくりを行うのに十分な時間がある場合にのみ、その繰り返しの最中でのページめくりが許可されます。繰り返しが非常に短い場合、Page_turn_engraver はページめくりを不可にする可能性があります。コンテキスト プロパティ minimumRepeatLengthForPageTurn に値を設定した場合、その値よりも長い演奏時間を持つ繰り返しに対してのみ、Page_turn_engraver は繰り返しの最中でページめくりを許可します。

ページめくりコマンド \pageTurn, \noPageTurn それに \allowPageTurn は、最上位レベル、最上位のマークアップや score どうしの間で使用される可能性もあります。

定義済みコマンド

\pageTurn, \noPageTurn, \allowPageTurn

参照

記譜法リファレンス: 改行のための \paper 変数

コード断片集: Spacing

既知の問題と警告

score の中に配置する Page_turn_engraver は 1 つだけにするべきです。複数の Page_turn_engraver がある場合、互いに干渉し合います。

参照

記譜法リファレンス: 垂直方向のスペース

コード断片集: Spacing

LilyPond 記譜法リファレンス v2.25.22 (development-branch).