| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < ヘッダとフッタのデフォルト レイアウト ] | [ 上へ : タイトルとヘッダ ] | [ タイトルのカスタム テキスト フォーマット > ] |
3.2.2 カスタム タイトル、ヘッダ、フッタ
| タイトルのカスタム テキスト フォーマット | ||
| タイトルのカスタム レイアウト | ||
| ヘッダとフッタのカスタム レイアウト |
| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < カスタム タイトル、ヘッダ、フッタ ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ タイトルのカスタム レイアウト > ] |
タイトルのカスタム テキスト フォーマット
標準の \markup コマンドを使って \header ブロックの中にあるヘッダ、フッタ、それにタイトル テキストをカスタマイズすることができます。
\score { \header { piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" } opus = \markup { \italic "BWV 846" } } { s1 } }
参照
記譜法リファレンス: テキストをフォーマットする
| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < タイトルのカスタム テキスト フォーマット ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ ヘッダとフッタのカスタム レイアウト > ] |
タイトルのカスタム レイアウト
\header ブロックの中に \markup コマンドを配置することにより、シンプルなテキストをフォーマットすることができます。しかしながら、タイトルの配置を精密に制御することはできません。テキスト フィールドの配置をカスタマイズするには、以下の \paper
変数のどちらか、あるいは両方を変更します:
-
bookTitleMarkup -
scoreTitleMarkup
これらの \markup のデフォルト値を用いた場合のタイトルの配置は
ブック パートとスコアのタイトルのデフォルト レイアウト の中にある例で示しています。
‘ly/titling-init.ly’ で定義されている scoreTitleMarkup
のデフォルト設定は以下のとおりです:
scoreTitleMarkup = \markup { \column {
\if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
\fill-line {
\fromproperty #'header:piece
\fromproperty #'header:opus
}
}
}
これは、piece テキスト フィールドと opus テキスト フィールドを同一行の両端に配置します:
\score { \header { piece = "PRAELUDIUM I" opus = "BWV 846" } { s1 } }
以下の例では、scoreTitleMarkup を再定義することにより、piece テキスト フィールドを中央に配置して、フォントを大きく、太字にしています。
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:opus } } } \header { tagline = ##f } \score { \header { piece = "PRAELUDIUM I" opus = "BWV 846" } { s1 } } }
print-all-headers を \paper ブロックの中に配置することにより、メイン タイトル ブロックのテキスト フィールドを個々のスコア タイトル ブロックに表示させることができます。
paper ブロックに print-all-headers をセットすると、スコアの \header ブロックでは通常表示されないテキスト フィールドを、スコア タイトル領域に表示させることができます。この方法の欠点は、個々の \score ブロックで、ブック パート タイトル領域のみに表示させたいテキスト フィールドを手動で抑制する必要があることです。タイトルの説明 を参照してください。
この欠点を回避するには、個々の \score ブロックに表示させたいテキスト フィールドを scoreTitleMarkup 定義に追加します。以下の例では、composer テキスト フィールド
(通常、これは bookTitleMarkup に関連付けされています)
を scoreTitleMarkup に追加することにより、各スコアは異なる作曲者を表示しています:
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \fontsize #4 \bold \fromproperty #'header:piece \fromproperty #'header:composer } } } \header { tagline = ##f } \score { \header { piece = "MENUET" composer = "Christian Petzold" } { s1 } } \score { \header { piece = "RONDEAU" composer = "François Couperin" } { s1 } } }
あなた自身のカスタム テキスト フィールドを作成して、それをマークアップ定義で参照することもできます。
\book { \paper { indent = 0\mm scoreTitleMarkup = \markup { \fill-line { \null \override #`(direction . ,UP) \dir-column { \center-align \fontsize #-1 \bold \fromproperty #'header:mycustomtext %% User-defined field \center-align \fontsize #4 \bold \fromproperty #'header:piece } \fromproperty #'header:opus } } } \header { tagline = ##f } \score { \header { piece = "FUGA I" mycustomtext = "A 4 VOCI" %% User-defined field opus = "BWV 846" } { s1 } } }
参照
記譜法リファレンス: タイトルの説明
| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < タイトルのカスタム レイアウト ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |
ヘッダとフッタのカスタム レイアウト
\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’
| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < タイトルのカスタム レイアウト ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |
![[image of music]](../69/lily-725748da.png)
![[image of music]](../73/lily-87d19394.png)
![[image of music]](../7d/lily-a0df508b.png)
![[image of music]](../dd/lily-0b9eca67.png)
![[image of music]](../0f/lily-f41e04b3.png)
![[image of music]](../e0/lily-c2cd7108.png)