ヘッダとフッタのカスタム レイアウト

\header ブロックの中に \markup コマンドを配置することにより、シンプルなテキストをフォーマットすることができます。しかしながら、ヘッダとフッタの配置を精密に制御することはできません。テキスト フィールドの配置をカスタマイズするために、以下の \paper 変数のいずれか、あるいはいくつかを使用します:

\markup コマンド \on-the-fly を用いて、\paper ブロック内部で定義されたヘッダ テキストとフッタ テキストに条件付でマークアップを追加することができます。以下の構文を用います:

variable = \markup {
  …
  \on-the-fly  \procedure  markup
  …
}

procedure は、それを保持している \markdup コマンドが評価される度に呼び出されます。procedure はある特定の条件をテストして、条件が真である場合にのみmarkup 引数を解釈します (つまり、表示します)。

様々な条件をテストするためのプロシージャがあらかじめ用意されています:

Procedure nameCondition tested
print-page-number-check-firstこのページ番号は表示されるか?
create-page-number-stencilprint-page-numbers は真か?
print-all-headersprint-all-headers は真か?
first-pageブックの最初のページか?
not-first-pageブックの最初ではないページか?
(on-page nmbr)ページ番号 = nmbr か?
last-pageブックの最後のページか?
part-first-pageブック パートの最初のページか?
not-part-first-pageブック パートの最初ではないページか?
part-last-pageブック パートの最後のページか?
not-single-pageブック パートのページ数 > 1 か?

以下の例では、ページ番号を各ページの最下段中央に配置しています。まず、oddHeaderMarkupevenHeaderMarkupnull を定義することにより、デフォルト設定を削除します。次に、oddFooterMarkup に中央に配置されたページ番号を再定義します。最後に、evenFooterMarkupoddFooterMarkup を定義することにより、同じレイアウトにします:

\book {
  \paper {
    print-page-number = ##t
    print-first-page-number = ##t
    oddHeaderMarkup = \markup \null
    evenHeaderMarkup = \markup \null
    oddFooterMarkup = \markup {
      \fill-line {
        \if \should-print-page-number
        \fromproperty #'page:page-number-string
      }
    }
    evenFooterMarkup = \oddFooterMarkup
  }
  \score {
    \new Staff { s1 \break s1 \break s1 }
  }
}

[image of music]

複数の \on-the-fly 条件を ‘and’ 演算子で組み合わせることができます。例えば、

  \if \on-first-page
  \if \on-last-page
  { \markup … \fromproperty #'header: … }

これは、出力が単一のページかどうかを判断します。

参照

記譜法リファレンス: タイトルの説明, ブック パートとスコアのタイトルのデフォルト レイアウト

インストールされているファイル: ../ly/titling-init.ly


LilyPond 記譜法リファレンス v2.25.15 (開発版).