[ << 入出力全般 ] | [Top][Contents][Index] | [ スペースの問題 >> ] |
[ < タイトルのカスタム レイアウト ] | [ Up : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |
ヘッダとフッタのカスタム レイアウト
\header
ブロックの中に \markup
コマンドを配置することにより、シンプルなテキストをフォーマットすることができます。しかしながら、ヘッダとフッタの配置を精密に制御することはできません。テキスト フィールドの配置をカスタマイズするために、以下の \paper
変数のいずれか、あるいはいくつかを使用します:
-
oddHeaderMarkup
-
evenHeaderMarkup
-
oddFooterMarkup
-
evenFooterMarkup
\markup
コマンド \on-the-fly
を用いて、\paper
ブロック内部で定義されたヘッダ テキストとフッタ テキストに条件付でマークアップを追加することができます。以下の構文を用います:
variable = \markup { … \on-the-fly \procedure markup … }
procedure は、それを保持している \markdup
コマンドが評価される度に呼び出されます。procedure はある特定の条件をテストして、条件が真である場合にのみmarkup 引数を解釈します (つまり、表示します)。
様々な条件をテストするためのプロシージャがあらかじめ用意されています:
Procedure name Condition tested print-page-number-check-first このページ番号は表示されるか? create-page-number-stencil print-page-numbers は真か? print-all-headers print-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 か?
以下の例では、ページ番号を各ページの最下段中央に配置しています。まず、oddHeaderMarkup
と evenHeaderMarkup
に
null を定義することにより、デフォルト設定を削除します。次に、oddFooterMarkup
に中央に配置されたページ番号を再定義します。最後に、evenFooterMarkup
に oddFooterMarkup
を定義することにより、同じレイアウトにします:
\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 } } }
複数の \on-the-fly
条件を ‘and’ 演算子で組み合わせることができます。例えば、
\if \on-first-page
\if \on-last-page
{ \markup … \fromproperty #'header: … }
これは、出力が単一のページかどうかを判断します。
参照
記譜法リファレンス: タイトルの説明, ブック パートとスコアのタイトルのデフォルト レイアウト
インストールされているファイル: ../ly/titling-init.ly
[ << 入出力全般 ] | [Top][Contents][Index] | [ スペースの問題 >> ] |
[ < タイトルのカスタム レイアウト ] | [ Up : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |