[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < ヘッダとフッタのデフォルト レイアウト ] | [ 上へ : タイトルとヘッダ ] | [ タイトルのカスタム テキスト フォーマット > ] |
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’
[ << 入出力全般 ] | [トップ][目次][インデックス] | [ スペースの問題 >> ] |
[ < タイトルのカスタム レイアウト ] | [ 上へ : カスタム タイトル、ヘッダ、フッタ ] | [ 出力ファイルのメタデータを作成する > ] |