| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < ヘッダとフッタのデフォルト レイアウト ] | [ 上へ : タイトルとヘッダ ] | [ タイトルのカスタム テキスト フォーマット > ] |
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 {
\on-the-fly \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 {
\on-the-fly \print-page-number-check-first
\fromproperty #'page:page-number-string
}
}
evenFooterMarkup = \oddFooterMarkup
}
\score {
\new Staff { s1 \break s1 \break s1 }
}
}
複数の \on-the-fly 条件を ‘and’ 演算子で組み合わせることができます。例えば、
\on-the-fly \first-page \on-the-fly \last-page{ \markup … \fromproperty #'header: … }
これは、出力が単一のページかどうかを判断します。
参照
記譜法リファレンス: タイトルの説明, ブック パートとスコアのタイトルのデフォルト レイアウト
インストールされているファイル: ‘../ly/titling-init.ly’
| [ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
| [ < タイトルのカスタム レイアウト ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |