[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

1.8 テキスト

@translationof Text

[image of music]

このセクションでは、楽譜に (さまざまなフォーマットの) テキストを含める方法について説明します。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

テキスト オブジェクトの概要

@translationof Text objects overview

テキスト オブジェクトは、ダブル クォーテーションの間の単純な文字列か、 @ref{Formatting text} に詳細を書いたさまざまな高度なテキスト フォーマットやグラフィカルな改善を受け入れることができる \markup ブロックとして入力されます。

このように markup ブロックは使われます:

主な使い方ではありませんが、その他の多くのテキスト ベースのオブジェクトを markup ブロックで入力できます。

実際、グラフィカル オブジェクト (または ‘grob’) の実質的な出現のカスタマイズのために \markup を使うことは、もしそのオブジェクトが text プロパティを持っている場合はそれを、もしくは stencil プロパティを上書きすることで可能となっています。これを可能にしているいくつかの仕組みは、 (essay)Flexible architecture section ‘Flexible architecture’ in Essay で説明されています。

以下の例は markup ブロックの遍在性を説明します。上に列挙されたオブジェクトの一部としてだけではなく、さまざまな方法を通してテキスト オブジェクトで音楽オブジェクトを置き換えることにも使われます。

 
\header { title = \markup "Header" }

dyn =
#(make-dynamic-script #{ \markup \text "DynamicText" #})

\markup \box "Top-level markup"

\score {
  <<
    \new ChordNames
    \with {
      majorSevenSymbol = \markup "majorSevenSymbol"
    }
    \chordmode { c1:maj7 }
    \new Staff {
      \tempo \markup "MetronomeMark"
      \mark \markup \smaller "RehearsalMark"
      \once \override TupletNumber.text =
        \markup "TupletNumber"
      \tuplet 3/2 {
        \once \override NoteHead.stencil =
          #ly:text-interface::print
        \once \override NoteHead.text =
          \markup \lower #0.5 "NoteHead"
        c''8^\markup \italic "TextScript"
        a'\finger \markup \text "Fingering"
        \once \override Rest.stencil =
          #(lambda (grob)
             (grob-interpret-markup grob #{
               \markup  "Rest"
               #}))
        r
      }
    }
    \new Lyrics \lyricmode {
      \markup \smallCaps "LyricText" 1
    }
    \new Dynamics { s1\dyn }
  >>
}

[image of music]

参照

記譜法リファレンス: @ref{Formatting text}, @ref{Text scripts}, @ref{Text spanners}, @ref{Text marks}, @ref{Separate text}, @ref{Fingering instructions}, @ref{Common notation for vocal music}, @ref{Displaying chords}, @ref{New dynamic marks}, @ref{Dynamics}, @ref{Balloon help}

Essay on automated music engraving: (essay)Flexible architecture section ‘Flexible architecture’ in Essay

コード断片集: (snippets)Text section ‘Text’ in Snippets


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

1.8.1 テキストを記述する

@translationof Writing text

このセクションでは、楽譜にテキストを付け加えるいくつかの方法を紹介します。

Note: アクセント付きのテキストや特殊なテキスト (他の言語の文字など) を記述するには、単純にその文字を直接 LilyPond ファイルに挿入します。ファイルは UTF-8 で保存しなければなりません。更なる情報は @ref{Text encoding} を参照してください。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

テキスト スクリプト

@translationof Text scripts

以下の例で示すように、シンプルな “引用符で囲まれたテキスト” 指示を楽譜に付け加えることができます。そのような指示は、@ref{Direction and placement} で説明する構文を用いて、手動で譜の上または下に配置することができます。

 
\relative { a'8^"pizz." g f e a4-"scherz." f }

[image of music]

この構文は実際には短縮記法です。テキストをフォーマットする で記述されているように、\markup ブロックを用いて明示的に、より複雑なテキスト フォーマットを音符に付け加えることができます。

 
\relative {
  a'8^\markup { \italic pizz. } g f e
  a4_\markup { \tiny scherz. \bold molto } f }

[image of music]

デフォルトでは、テキスト指示は音符の間隔に影響を与えません。しかしながら、テキスト指示の幅を考慮に入れることもできます: 以下の例では、最初のテキスト文字列は音符の間隔に影響を与えていませんが、2 番目のテキスト文字列は影響を与えています。

 
\relative {
  a'8^"pizz." g f e
  \textLengthOn
  a4_"scherzando" f
}

[image of music]

テキスト スクリプトだけでなく、アーティキュレーションを音符に付けることもできます。更なる情報は アーティキュレーションと装飾 を参照してください。

テキスト スクリプトとアーティキュレーションの順序についての更なる情報は (learning)オブジェクトの配置 section ‘オブジェクトの配置’ in Learning Manual を参照してください。

定義済みコマンド

\textLengthOn, \textLengthOff

参照

学習マニュアル: (learning)オブジェクトの配置 section ‘オブジェクトの配置’ in Learning Manual

記譜法リファレンス: テキストをフォーマットする, @ref{Direction and placement}, アーティキュレーションと装飾

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference

既知の問題と警告

テキスト スクリプトと歌詞がマージンに収まることを保証するためのチェックは計算量を増やします。処理速度を上げる必要がある場合は、以下を用います:

 
\override Score.PaperColumn.keep-inside-line = ##f

[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

テキスト スパナ

@translationof Text spanners

いくつかの演奏指示 – 例えば rallentando や accelerando – は、テキストとして記述され、点線で複数の音符の上に伸ばされます。そのようなオブジェクト – “スパナ” と呼ばれます – は、以下の構文を用いることで、ある音符から他の音符までの範囲に作成することができます:

 
\relative {
  \override TextSpanner.bound-details.left.text = "rit."
  b'1\startTextSpan
  e,\stopTextSpan
}

[image of music]

譜刻される文字列はオブジェクト プロパティを通じてセットされます。デフォルトでは文字列はイタリック体で譜刻されます。しかしながら、テキストをフォーマットする で記述されているように、\markup ブロックを用いることで他の書体にすることができます。

 
\relative {
  \override TextSpanner.bound-details.left.text =
    \markup { \upright "rit." }
  b'1\startTextSpan c
  e,\stopTextSpan
}

[image of music]

テキスト文字列と同様に、線のスタイルもオブジェクト プロパティとして定義することができます。線スタイルの構文は @ref{Line styles} で記述されています。

定義済みコマンド

\textSpannerUp, \textSpannerDown, \textSpannerNeutral

既知の問題と警告

LilyPond が処理できるテキスト スパナは 1 ボイスにつき、1 つだけです。

Selected Snippets

強弱記号のテキスト スパナ音楽関数

カスタム テキスト スパナを定義することができ、ヘアピンやテキスト クレッシェンドと同時に用いることができます。\< と \> はデフォルトでヘアピンを作り出し、\cresc などはデフォルトでテキスト スパナを作り出します。

 
% Some sample text dynamic spanners, to be used as postfix operators
crpoco =
#(make-music 'CrescendoEvent
             'span-direction START
             'span-type 'text
             'span-text "cresc. poco a poco")

\relative c' {
  c4\cresc d4 e4 f4 |
  g4 a4\! b4\crpoco c4 |
  c4 d4 e4 f4 |
  g4 a4\! b4\< c4 |
  g4\dim a4 b4\decresc c4\!
}

[image of music]

強弱記号のカスタム テキスト スパナ後置関数

これは、クレッシェンドのテキスト スパナをカスタマイズする後置関数です。スパナは小節の最初の音符から始めるべきです。-\mycresc の記法を使用しなければ、スパナの開始点が次の音符になってしまいます。

 
% Two functions for (de)crescendo spanners where you can explicitly give the
% spanner text.
mycresc =
#(define-music-function (mymarkup) (markup?)
   (make-music 'CrescendoEvent
               'span-direction START
               'span-type 'text
               'span-text mymarkup))
mydecresc =
#(define-music-function (mymarkup) (markup?)
   (make-music 'DecrescendoEvent
               'span-direction START
               'span-type 'text
               'span-text mymarkup))

\relative c' {
  c4-\mycresc "custom cresc" c4 c4 c4 |
  c4 c4 c4 c4 |
  c4-\mydecresc "custom decresc" c4 c4 c4 |
  c4 c4\! c4 c4
}

[image of music]

参照

記譜法リファレンス: @ref{Line styles}, 強弱記号, テキストをフォーマットする

コード断片集: (snippets)Text section ‘Text’ in Snippets, (snippets)Expressive marks section ‘Expressive marks’ in Snippets

内部リファレンス: (internals)TextSpanner section ‘TextSpanner’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

テキスト マーク

@translationof Text marks

リハーサル記号 で記述されている構文を用いて、さまざまなテキスト要素を楽譜に付け加えることができます:

 
\relative {
  \mark "Verse"
  c'2 g'
  \bar "||"
  \mark "Chorus"
  g2 c,
  \bar "|."
}

[image of music]

この構文を用いることで、任意のテキストを小節線上に配置することが可能です。テキストをフォーマットする で記述されているように、\markup ブロックを用いてより複雑なテキスト フォーマットを付け加えることもできます:

 
\relative {
  <c' e>1
  \mark \markup { \italic { colla parte } }
  <d f>2 <e g>
  <c f aes>1
}

[image of music]

さらに、マークアップ内部での音楽記譜法 で説明されているように、この構文で適切なシンボル名を指定することによって、特殊な記号 – コーダ、セーニョ、フェルマータなど – を譜刻することが可能です:

 
\relative {
  <bes' f>2 <aes d>
  \mark \markup { \musicglyph "scripts.ufermata" }
  <e g>1
}

[image of music]

このようなオブジェクトを配置できる位置は、楽譜の最上段の譜の上だけです。オブジェクトを小節の終わりで指定するか、途中で指定するか次第で、小節線の上に配置されたり、音符の間に配置されたりします。改行位置で指定した場合、そのリハーサル記号は次の行の先頭に譜刻されます。

 
\relative c'' {
  \mark "Allegro"
  c1 c
  \mark "assai" \break
  c  c
}

[image of music]

定義済みコマンド

\markLengthOn, \markLengthOff

Selected Snippets

リハーサル記号を行末に表示する

リハーサル記号は、次の行の行頭ではなく、現在の行の行末に表示することができます。この場合、記号を小節線に右揃えした方が良いでしょう。

 
\relative c'' {
  g2 c
  d,2 a'
  \once \override Score.RehearsalMark.break-visibility = #end-of-line-visible
  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT
  \mark "D.C. al Fine"
  \break
  g2 b,
  c1 \bar "||"
}

[image of music]

リハーサル記号を全ての譜の上に表示する

リハーサル記号は通常、一番上にある譜の上に表示されますが、全ての譜の上に表示することもできます。

 
\score {
  <<
    \new Staff { c''1 \mark "molto" c'' }
    \new Staff { c'1 \mark "molto" c' }
  >>
  \layout {
    \context {
      \Score
      \remove "Mark_engraver"
      \remove "Staff_collecting_engraver"
    }
    \context {
      \Staff
      \consists "Mark_engraver"
      \consists "Staff_collecting_engraver"
    }
  }
}

[image of music]

参照

記譜法リファレンス: リハーサル記号, テキストをフォーマットする, マークアップ内部での音楽記譜法, @ref{The Emmentaler font}.

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)MarkEvent section ‘MarkEvent’ in Internals Reference, (internals)Mark_engraver section ‘Mark_engraver’ in Internals Reference, (internals)RehearsalMark section ‘RehearsalMark’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

独立したテキスト

@translationof Separate text

\markup ブロックはそれ自体で、すべての \score ブロックの外側に、“最上位レベルの表記” として存在することができます。この構文は @ref{File structure} で記述されています。

 
\markup {
  Tomorrow, and tomorrow, and tomorrow...
}

[image of music]

これによりテキストを音楽から分離して譜刻することが可能になります。これは、@ref{Multiple scores in a book} で記述されているように、入力ファイルが複数の楽曲を保持している場合に特に有用です。

 
\score {
  c'1
}
\markup {
  Tomorrow, and tomorrow, and tomorrow...
}
\score {
  c'1
}

[image of music]

独立したテキスト ブロックは複数のページに広がることができます。これにより、テキスト ドキュメントやブック全体を LilyPond の中に譜刻することが可能になります。この機能と、この機能の構文は 複数ページにわたるマークアップ で記述されています。

定義済みコマンド

\markup, \markuplist

Selected Snippets

独立したテキストの 2 段組み

\markup コマンドを用いて、独立したテキストを複数段組みにすることができます:

 
\markup {
  \fill-line {
    \hspace #1
    \column {
      \line { O sacrum convivium }
      \line { in quo Christus sumitur, }
      \line { recolitur memoria passionis ejus, }
      \line { mens impletur gratia, }
      \line { futurae gloriae nobis pignus datur. }
      \line { Amen. }
    }
    \hspace #2
    \column \italic {
      \line { O sacred feast }
      \line { in which Christ is received, }
      \line { the memory of His Passion is renewed, }
      \line { the mind is filled with grace, }
      \line { and a pledge of future glory is given to us. }
      \line { Amen. }
    }
    \hspace #1
  }
}

[image of music]

参照

記譜法リファレンス: テキストをフォーマットする, @ref{File structure}, @ref{Multiple scores in a book}, 複数ページにわたるマークアップ

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

1.8.2 テキストをフォーマットする

@translationof Formatting text

このセクションでは、\markup モード特有の構文を用いた基本的かつ高度なテキスト フォーマットについて説明します。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

テキスト マークアップの導入部

@translationof Text markup introduction

\markup ブロックは “マークアップ モード” と呼ばれる拡張可能な構文でテキストを譜刻するために用いられます。このようなブロックは、@ref{Text objects overview} で説明されているように、どこにでも用いることができます。

マークアップ構文は LilyPond の通常の構文と同様です: \markup 表記は波括弧 { … } で囲まれます。単語 1 つが最小の表記と見なされ、その場合は波括弧で囲む必要はありません。

シンプルな “引用符で囲まれたテキスト” 指示とは異なり、\markup ブロックは、バックスラッシュ \ を用いて挿入されるネストされた表記やマークアップ コマンドを保持することができます。そのようなコマンドは直後の表記にのみ影響を与えます。

 
\relative {
  a'1-\markup intenso
  a2^\markup { poco \italic più forte  }
  c e1
  d2_\markup { \italic "string. assai" }
  e
  b1^\markup { \bold { molto \italic  agitato } }
  c
}

[image of music]

また、\markup ブロックは引用符で囲まれたテキスト文字列を保持することがあります。そのような文字列は最小のテキスト表記として扱われます。そのため、引用符で囲まれたマークアップ コマンドや特殊文字 (\ や # など) はテキストのフォーマットに影響を与えず、そのまま (逐語的に) 譜刻されます。ダブル クォーテーション自体は、それ自体の前にバックスラッシュを置くことによって譜刻されます。

 
\relative {
  a'1^"\italic markup..."
  a_\markup { \italic "... prints \"italic\" letters!" }
  a a
}

[image of music]

表記をばらばらなものとして扱うには、単語のリストをダブル クォーテーションで囲むか、前にコマンドを置く必要があります。マークアップ表記の定義の仕方は、表記の配置のされ方 – 垂直に中央揃えして積み重ねられる、水平に並べられる – に影響を与えます。以下の例では、2 番目の \markup 表記は 1 番目の表記と同じように扱われています:

 
\relative c'' {
  c1^\markup { \center-column { a bbb c } }
  c1^\markup { \center-column { a { bbb c } } }
  c1^\markup { \center-column { a \line { bbb c } } }
  c1^\markup { \center-column { a "bbb c" } }
}

[image of music]

マークアップを変数に格納することができます。そのような変数は直接音符にくっつけることができます:

 
allegro = \markup { \bold \large Allegro }

{
  d''8.^\allegro
  d'16 d'4 r2
}

[image of music]

@ref{Text markup commands} に \markup 特有のコマンドの徹底したリストがあります。これらのコマンドの内部動作と、新たに実装する方法は、 (extending)Markup functions section ‘Markup functions’ in Extending で説明されています。

参照

記譜法リファレンス: @ref{Text objects overview}, @ref{Text markup commands}

拡張: (extending)Markup functions section ‘Markup functions’ in Extending

インストールされているファイル: ‘scm/markup.scm’

コード断片集: (snippets)Text section ‘Text’ in Snippets

既知の問題と警告

マークアップ モードの構文エラー メッセージは混乱しやすいです。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

フォントとフォント サイズを選択する

@translationof Selecting font and font size

マークアップ モードでは、基本的なフォント切り替えがサポートされています:

 
\relative {
  d''1^\markup {
    \bold { Più mosso }
    \italic { non troppo \underline Vivo }
  }
  r2 r4 r8
  d,_\markup { \italic quasi \smallCaps Tromba }
  f1 d2 r
}

[image of music]

フォント サイズをグローバル譜サイズとの相対値で変更する方法はいくつかあります。

フォント サイズをあらかじめ定義されているサイズに設定することができます:

 
\relative b' {
  b1_\markup { \huge Sinfonia }
  b1^\markup { \teeny da }
  b1-\markup { \normalsize camera }
}

[image of music]

フォント サイズを前の値との相対関係で設定することができます:

 
\relative b' {
  b1_\markup { \larger Sinfonia }
  b1^\markup { \smaller da }
  b1-\markup { \magnify #0.6  camera }
}

[image of music]

フォント サイズをグローバル譜サイズによって設定されている値で拡大あるいは縮小させることができます:

 
\relative b' {
  b1_\markup { \fontsize #-2 Sinfonia }
  b1^\markup { \fontsize #1 da }
  b1-\markup { \fontsize #3 camera }
}

[image of music]

さらに、フォント サイズをグローバル譜サイズとは無関係に、固定ポイント サイズに設定することができます:

 
\relative b' {
  b1_\markup { \abs-fontsize #20 Sinfonia }
  b1^\markup { \abs-fontsize #8 da }
  b1-\markup { \abs-fontsize #14 camera }
}

[image of music]

テキストにスペースが含まれる場合、各スペースのサイズが他の文字のサイズに適したものになるので、引用符の内側にすべて置くのがベストです。

 
\markup \fontsize #6 \bold { Sinfonia da camera }
\markup \fontsize #6 \bold { "Sinfonia da camera" }

[image of music]

テキストを下付き文字あるいは上付き文字として譜刻することができます。デフォルトでは、それらは小さなサイズで譜刻されますが、通常サイズにすることもできます:

 
\markup {
  \column {
    \line { 1 \super st movement }
    \line { 1 \normal-size-super st movement
      \sub { (part two) }  }
  }
}

[image of music]

マークアップ モードは代わりのフォント ファミリを選択するための簡単な方法を提供します。他を指定しないかぎり、デフォルトの Serif フォント – ローマン体 – が自動的に選択されます。以下の例の最後の行では、最初の単語と 2 番目の単語はまったく同じです。

 
\markup {
  \column {
    \line { Act \number 1 }
    \line { \sans { Scene I. } }
    \line { \typewriter { Verona. An open place. } }
    \line { Enter \roman Valentine and Proteus. }
  }
}

[image of music]

新たな強弱記号 や 手動の繰り返し記号 で言及されているように、番号や強弱記号など特定の項目に用いられるフォント ファミリの中にはすべての文字を提供しないものもあります。

フォント切り替えやフォーマット コマンドの中には、単語の中で使用されると望まない空白を作り出すものがあります。これはテキスト要素をつなげることによって容易に解決できます:

 
\markup {
  \column {
    \line {
      \concat { 1 \super st }
      movement
    }
    \line {
      \concat { \dynamic p , }
      \italic { con dolce espressione }
    }
  }
}

[image of music]

フォント に フォント切り換えとフォントのカスタム コマンドの徹底したリストがあります。

フォント で説明されているように、カスタム フォント セットを定義することも可能です。

定義済みコマンド

\teeny, \tiny, \small, \normalsize, \large, \huge, \smaller, \larger

参照

記譜法リファレンス: フォント, 新たな強弱記号, 手動の繰り返し記号, フォント

インストールされているファイル: ‘scm/define-markup-commands.scm’

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference

既知の問題と警告

フォントのサイズ コマンド \teeny, \tiny, \small, \normalsize, \large それに \huge を用いると、\fontsize を用いた場合と比較して、つじつまの合わない行間になります。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

テキスト揃え

@translationof Text alignment

このサブセクションでは、マークアップ モードのテキストを配置する方法について説明します。 (learning)オブジェクトを移動させる section ‘オブジェクトを移動させる’ in Learning Manual で記述されている構文を用いて、マークアップ オブジェクト全体を移動させることも可能です。

マークアップ オブジェクトの揃え方はいくつかあります。デフォルトでは、テキスト指示はそのテキストの左端で揃えられます: 以下の例では、最初のマークアップと 2 番目のマークアップの揃えられ方はまったく同じです。

 
\relative {
  d''1-\markup { poco }
  f
  d-\markup { \left-align poco }
  f
  d-\markup { \center-align { poco } }
  f
  d-\markup { \right-align poco }
}

[image of music]

水平方向の揃え方は、数値を使って、微調整することができます:

 
\relative {
  a'1-\markup { \halign #-1 poco }
  e'
  a,-\markup { \halign #0 poco }
  e'
  a,-\markup { \halign #0.5 poco }
  e'
  a,-\markup { \halign #2 poco }
}

[image of music]

オブジェクトの中には揃えるための機能をそれ自身で持っているものがあり、それらは上記のコマンドでは影響を受けません。テキスト マーク の中の例で示されているように、そのようなマークアップ オブジェクト全体を移動させることが可能です。

垂直方向に揃える方法はもう少し複雑です。上で述べたようにマークアップ オブジェクト全体を移動させることが可能ですが、マークアップ ブロックの中にある特定の要素を移動させることも可能です。 特定要素だけをを移動させるには、移動させる要素の前に アンカ ポイント – もう 1 つのオブジェクト要素、あるいは不可視のオブジェクト要素 – を置く必要があります。以下の例では 2 つのケースを示しています。最後のマークアップはアンカ ポイントを持たず、それゆえ移動されません。

 
\relative {
  d'2^\markup {
    Acte I
    \raise #2 { Scène 1 }
  }
  a'
  g_\markup {
    \null
    \lower #4 \bold { Très modéré }
  }
  a
  d,^\markup {
    \raise #4 \italic { Une forêt. }
  }
  a'4 a g2 a
}

[image of music]

コマンドの中にはマークアップ モードの中にあるテキスト オブジェクトの水平方向と垂直方向の両方の揃え方に影響を与えることができるものもあります。そのようなコマンドで移動させるオブジェクトの前にはアンカ ポイントを置く必要があります:

 
\relative {
  d'2^\markup {
    Acte I
    \translate #'(-1 . 2) "Scène 1"
  }
  a'
  g_\markup {
    \null
    \general-align #Y #3.2 \bold "Très modéré"
  }
  a
  d,^\markup {
    \null
    \translate-scaled #'(-1 . 2) \teeny "Une forêt."
  }
  a'4 a g2 a
}

[image of music]

マークアップ オブジェクトに何行かのテキストが含まれる場合もあります。以下の例では、それぞれの要素あるいは表記はそれ自体の行に配置され、左揃えあるいは中央揃えされています:

 
\markup {
  \column {
    a
    "b c"
    \line { d e f }
  }
  \hspace #10
  \center-column {
    a
    "b c"
    \line { d e f }
  }
}

[image of music]

同様に、要素あるいは表記のリストの広がりが水平の行幅いっぱいを占めることがあります (要素が 1 つだけの場合、その要素はページの中央に揃えられます)。さらに、そのような表記は複数行にわたるテキストや他の任意の表記を含むことができます:

 
\markup {
  \fill-line {
    \line { William S. Gilbert }
    \center-column {
      \huge \smallCaps "The Mikado"
      or
      \smallCaps "The Town of Titipu"
    }
    \line { Sir Arthur Sullivan }
  }
}
\markup {
  \fill-line { 1885 }
}

[image of music]

要素は line-width プロパティを上書きすることにより、指定された幅を満たすように広げることができます。デフォルトではこれは行全体を示す #f にセットされています。

 
\markup {
  \column {
    \fill-line { left center right }
    \null
    \override #'(line-width . 30)
    \fill-line { left center right }
  }
}

[image of music]

さらに、長いテキスト指示を自動的に行幅に合わせて折り返すことができます。そのようなテキスト指示は、以下の例で示すように、左揃えされるか両端揃えされます。

 
\markup {
  \column {
    \line  \smallCaps { La vida breve }
    \line \bold { Acto I }
    \wordwrap \italic {
      (La escena representa el corral de una casa de
      gitanos en el Albaicín de Granada.  Al fondo una
      puerta por la que se ve el negro interior de
      una Fragua, iluminado por los rojos resplandores
      del fuego.)
    }
    \hspace #0

    \line \bold { Acto II }
    \override #'(line-width . 50)
    \justify \italic {
      (Calle de Granada.  Fachada de la casa de Carmela
      y su hermano Manuel con grandes ventanas abiertas
      a través de las que se ve el patio
      donde se celebra una alegre fiesta)
    }
  }
}

[image of music]

Align にテキスト揃えコマンドの徹底したリストがあります。

参照

学習マニュアル: (learning)オブジェクトを移動させる section ‘オブジェクトを移動させる’ in Learning Manual

記譜法リファレンス: Align, テキスト マーク

インストールされているファイル: ‘scm/define-markup-commands.scm’.

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

マークアップ内部でのグラフィック記譜法

@translationof Graphic notation inside markup

マークアップ コマンドを用いて、さまざまなグラフィック オブジェクトを楽譜に付け加えることができます。

以下の例で示すように、マークアップ コマンドの中にはテキスト要素をグラフィックスで飾り付けることができるものがあります。

 
\markup \fill-line {
  \center-column {
    \circle Jack
    \box "in the box"
    \null
    \line {
      Erik Satie
      \hspace #3
      \bracket "1866 - 1925"
    }
    \null
    \rounded-box \bold Prelude
  }
}

[image of music]

コマンドの中にはテキストの周りのパディングを増やすことを必要とするものもあります。パティングの増加は Align で徹底的に記述されているマークアップ コマンドを用いて達成できます。

 
\markup \fill-line {
  \center-column {
    \box "Charles Ives (1874 - 1954)"
    \null
    \box \pad-markup #2 "THE UNANSWERED QUESTION"
    \box \pad-x #8 "A Cosmic Landscape"
    \null
  }
}
\markup \column {
  \line {
    \hspace #10
    \box \pad-to-box #'(-5 . 20) #'(0 . 5)
      \bold "Largo to Presto"
  }
  \pad-around #3
      "String quartet keeps very even time,
Flute quartet keeps very uneven time."
}

[image of music]

テキストを持たないグラフィック要素やシンボルを譜刻することもできます。他のマークアップ表記と同様に、そのようなオブジェクトも組み合わせることができます。

 
\markup {
  \combine
    \draw-circle #4 #0.4 ##f
    \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
  \hspace #5

  \center-column {
    \triangle ##t
    \combine
      \draw-line #'(0 . 4)
      \arrow-head #Y #DOWN ##f
  }
}

[image of music]

高度なグラフィック機能として、外部画像ファイルを Encapsulated PostScript フォーマット (eps) に変換してインクルードする機能や、ネイティブの PostScript コードを用いてグラフィックを直接に入力ファイルへ埋め込む機能があります。このような機能を使う場合、以下で示すように、描画サイズを明示的に指定することを推奨します:

 
c'1^\markup {
  \combine
    \epsfile #X #10 "./context-example.eps"
    \with-dimensions #'(0 . 6) #'(0 . 10)
    \postscript "
      -2 3 translate
      2.7 2 scale
      newpath
      2 -1 moveto
      4 -2 4 1 1 arct
      4 2 3 3 1 arct
      0 4 0 3 1 arct
      0 0 1 -1 1 arct
      closepath
      stroke"
  }
c'

[image of music]

Graphic にグラフィック特有のコマンドの徹底したリストがあります。

参照

記譜法リファレンス: Align, @ref{Dimensions}, 編集者の注釈, Graphic

インストールされているファイル: ‘scm/define-markup-commands.scm’, ‘scm/stencil.scm’

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

マークアップ内部での音楽記譜法

@translationof Music notation inside markup

マークアップ オブジェクトの内部で、さまざまな音楽記譜要素を楽譜に付け加えることができます。

音符と臨時記号はマークアップ コマンドを用いて入力することができます:

 
a'2 a'^\markup {
  \note {4} #1
  =
  \note-by-number #1 #1 #1.5
}
b'1_\markup {
  \natural \semiflat \flat
  \sesquiflat \doubleflat
}
\glissando
a'1_\markup {
  \natural \semisharp \sharp
  \sesquisharp \doublesharp
}
\glissando b'

[image of music]

他の記譜オブジェクトもマークアップ モードの中で譜刻することができます:

 
\relative {
  g1 bes
  ees\finger \markup \tied-lyric "4~1"
  fis_\markup { \dynamic rf }
  bes^\markup {
    \beam #8 #0.1 #0.5
  }
  cis
  d-\markup {
    \markalphabet #8
    \markletter #8
  }
}

[image of music]

より一般的には、以下で示すように、使用可能な音楽シンボルはすべてマークアップ オブジェクトに含めることができます。@ref{The Emmentaler font} に、音楽シンボルと音楽シンボル名の徹底したリストがあります。

 
\relative {
  c''2
  c'^\markup { \musicglyph "eight" }
  c,4
  c,8._\markup { \musicglyph "clefs.G_change" }
  c16
  c2^\markup { \musicglyph "timesig.neomensural94" }
}

[image of music]

テキストではない図柄を譜刻するもう 1 つの方法が フォントの説明 で記述されています。この方法はさまざまなサイズの波括弧を譜刻する場合に有用です。

さらに、マークアップ モードは特定の楽器のためのダイアグラムをサポートします:

 
\relative {
  c''1^\markup {
    \fret-diagram-terse "x;x;o;2;3;2;"
  }
  c^\markup {
    \harp-pedal "^-v|--ov^"
  }
  c
  c^\markup {
    \combine
      \musicglyph "accordion.discant"
      \combine
	\raise #0.5 \musicglyph "accordion.dot"
	\raise #1.5 \musicglyph "accordion.dot"
  }
}

[image of music]

そのようなダイアグラムは Instrument Specific Markup でドキュメント化されています。

楽譜全体でさえもマークアップ オブジェクト内部にネストさせることができます:

 
\relative {
  c'4 d^\markup {
    \score {
      \relative { c'4 d e f }
    }
  }
  e f |
  c d e f
}

[image of music]

Music に、音楽記譜法関連のコマンドの徹底したリストがあります。

参照

記譜法リファレンス: Music, @ref{The Emmentaler font}, フォントの説明

インストールされているファイル: ‘scm/define-markup-commands.scm’, ‘scm/fret-diagrams.scm’, ‘scm/harp-pedals.scm’

コード断片集: (snippets)Text section ‘Text’ in Snippets

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference

既知の問題と警告

マークアップ オブジェクト内に出現する \score の縦方向のスペーシングは baseline-skip によって調整されます。\paper による設定は全て無視されます。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

複数ページにわたるマークアップ

@translationof Multi-page markup

標準のマークアップ オブジェクトは分割することができません。しかしながら、 ある特定の構文は複数ページにわたるテキストを入力することを可能にします:

 
\markuplist {
  \justified-lines {
    両端揃えされた非常に長いテキスト。
    ...
  }
  \wordwrap-lines {
    もう 1 つの非常に長いテキスト。
    ...
  }
  ...
}

[image of music]

この構文はマークアップのリストを受け付けます。受け付けるものは以下の通りです:

@ref{Text markup list commands} に、マークアップ リスト コマンドの徹底したリストがあります。

参照

記譜法リファレンス: @ref{Text markup list commands}

拡張: (extending)New markup list command definition section ‘New markup list command definition’ in Extending

コード断片集: (snippets)Text section ‘Text’ in Snippets

インストールされているファイル: ‘scm/define-markup-commands.scm’

内部リファレンス: (internals)TextScript section ‘TextScript’ in Internals Reference

定義済みコマンド

\markuplist


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

1.8.3 フォント

@translationof Fonts

このセクションでは、フォントを扱う方法と、楽譜の中でフォントを変更する方法について説明します。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

フォントの説明

@translationof Fonts explained

フォントはいくつかのライブラリを通じて扱われます。FontConfig はシステムで利用可能なフォントを検出するために使用されます。選択されたフォントは Pango を用いて描かれます。

音楽記譜フォントはいくつかのファミリに分類された特殊な図柄のセットと言うことができます。以下の構文により、LilyPond のさまざまな Feta グリフをマークアップ モードの中で直接使用することが可能になります:

 
a'1^\markup {
  \vcenter {
    \override #'(font-encoding . fetaBraces)
    \lookup "brace120"
    \override #'(font-encoding . fetaText)
    \column { 1 3 sf }
    \override #'(font-encoding . fetaMusic)
    \lookup "noteheads.s0petrucci"
  }
}

[image of music]

しかしながら、これらの図柄はすべて – fetaBraces で保持されているさまざまサイズの波括弧を除いて – は、マークアップ内部での音楽記譜法 で記述されている、もっと簡単な構文を用いて利用することができます。

fetaBraces に保持されている図柄を使う場合、波括弧のサイズは図柄名の一部となっている任意の数値によって指定されます。0 から 575 までの整数すべてを指定でき、0 は最小の波括弧を提供します。最適な値はトライ&エラーで決定する必要があります。これらの図柄はすべて左波括弧です。右波括弧は回転によって得ることができます – @ref{Rotating objects} を参照してください。

3 ファミリのテキスト フォントが利用可能になっています:

roman (serif) フォント、 sans フォント、typewriter フォントです。

svg バックエンドでは:

ファミリデフォルト フォント
romanserif
sanssans-serif
typewritermonospace

serif, sans-serif, and monospace は、SVG や CSS の仕様における generic-family です。

他のバックエンドでは:

ファミリデフォルト フォント (エイリアス)エイリアス定義のリスト
romanLilyPond SerifTeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif
sansLilyPond Sans SerifTeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif
typewriterLilyPond MonospaceTeX Gyre Cursor, Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, DejaVu Sans Mono, ..., monospace

LilyPond Serif, LilyPond Sans Serif, LilyPond Monospace は、LilyPond 専用の FontConfig 設定ファイル 00-lilypond-fonts.conf に定義されたフォント エイリアスです。ある文字がリストの最初にあるフォントに存在しない場合、その文字を持つリストの次のフォントが代わりに使用されます。エイリアス定義の詳細については、インストール ディレクトリ中の 00-lilypond-fonts.conf を参照してください。

それぞれのファミリには異なる形状とセットのフォントが保持されています。以下の例は、ファミリ、形状、セットそれにサイズを変更する様子を示しています。デフォルト サイズから変更する場合、font-size に提供する値が必要となります。

 
\override Score.RehearsalMark.font-family = #'typewriter
\mark \markup "Ouverture"
\override Voice.TextScript.font-shape = #'italic
\override Voice.TextScript.font-series = #'bold
d''2.^\markup "Allegro"
\override Voice.TextScript.font-size = #-3
c''4^smaller

[image of music]

同様の構文をマークアップ モードの中で使用することができます。しかしながら、マークアップ モードの中では、フォントとフォント サイズを選択する で説明されている、もっと簡単な構文を使用するほうが良いでしょう:

 
\markup {
  \column {
    \line {
      \override #'((font-shape . italic) (font-size . 4))
      Idomeneo,
    }
    \line {
      \override #'(font-family . typewriter)
      {
        \override #'(font-series . bold)
        re
        di
      }
      \override #'(font-family . sans)
      Creta
    }
  }
}

[image of music]

OpenType フォントを使用している場合、フォント機能を使用することができます。OpenType フォントの script と language は指定できません。注: 全ての OpenType フォントが機能をサポートしているとは限りません。使用するフォントに無い機能を使用しようとした場合、機能は単純に無視されます。

 
% 真のスモール キャピタル
\markup { Normal Style: Hello HELLO }
\markup { \caps { Small Caps: Hello } }
\markup { \override #'(font-features . ("smcp"))
          { True Small Caps: Hello } }

% 数字スタイル
\markup { Normal Number Style: 0123456789 }
\markup { \override #'(font-features . ("onum"))
          { Old Number Style: 0123456789 } }

% 代替スタイル
\markup { \override #'(font-features . ("salt 0"))
          { Stylistic Alternates 0: εφπρθ } }
\markup { \override #'(font-features . ("salt 1"))
          { Stylistic Alternates 1: εφπρθ } }

% 機能の組み合わせ
\markup { \override #'(font-features . ("onum" "smcp" "salt 1"))
          { Multiple features: Hello 0123456789 εφπρθ } }

[image of music]

OpenType 機能の完全な一覧は以下を参照してください: https://www.microsoft.com/typography/otspec/featurelist.htm

OpenType フォントの機能を識別するには以下を参照してください: http://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html

あらかじめ構成されているフォント間で切り替えを行う方が簡単ですが、他のフォントを使用することも可能です。他のフォントを使用する方法は以下のセクションで説明されています: 個々に登録するフォント と ドキュメント全体のフォント。

参照

記譜法リファレンス: @ref{The Emmentaler font}, マークアップ内部での音楽記譜法, @ref{Rotating objects}, フォントとフォント サイズを選択する, フォント


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

個々に登録するフォント

@translationof Single entry fonts

以下の構文を用いることで、オペレーティング システムにインストールされていて、FontConfig に認識されている任意のフォントを楽譜の中で使用することができます:

 
\override Staff.TimeSignature.font-name = "Bitstream Charter"
\override Staff.TimeSignature.font-size = #2
\time 3/4

a'1_\markup {
  \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
    { Vera Oblique Bold }
}

[image of music]

font-name はカンマ区切りの ‘フォント’ のリストと、スペース区切りの ‘スタイル’ のリストを記述できます。リスト中の ‘フォント’ がインストールされていて、要求されたグリフを含んでいれば、それが使われます。そうでないなら代わりにリストの 次 のフォントが使われます。

lilypond を以下のオプションを付けて実行するとオペレーティング システムで利用可能なすべてのフォントのリストを表示します:

 
lilypond -dshow-available-fonts

参照

記譜法リファレンス: フォントの説明, ドキュメント全体のフォント

コード断片集: (snippets)Text section ‘Text’ in Snippets


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

ドキュメント全体のフォント

@translationof Entire document fonts

以下の例で示す方法に従ってフォント ファミリを指定することにより、roman, sans それに typewriter フォント ファミリとして使用されるデフォルト フォントを変更することができます。この例ではグローバル譜サイズにセットされた値で自動的にフォントのサイズを伸縮しています。個々に登録するフォント のように、カンマ区切りの ‘フォント’ のリストを記述できます。しかし、フォント ‘スタイル’ は記述できません。フォントについての説明は、フォントの説明 を参照してください。

 
\paper  {
  #(define fonts
    (make-pango-font-tree "Times New Roman"
                          "Nimbus Sans,Nimbus Sans L"
                          "Luxi Mono"
                          (/ staff-height pt 20)))
}

\relative c'{
  c1-\markup {
    roman,
    \sans sans,
    \typewriter typewriter. }
}

[image of music]

注: make-pango-font-tree は記譜フォントをデフォルトの Emmentaler にリセットします。

次の構文を使用することで、他をデフォルトの値のままにしつつ、特定のフォントを変更することができます。次の例は、上の make-pango-font-tree の例と同じ結果になります。make-pango-font-tree と同様に、roman, sans, typewriter カテゴリに対してコンマ区切りの‘フォント’のリストを指定します。譜のサイズをデフォルトの 20 pt から変更する必要がない場合、#:factor (/ staff-height pt 20) は不要です。

 
\paper {
  #(define fonts
    (set-global-fonts
     #:roman "Times New Roman"
     #:sans "Nimbus Sans,Nimbus Sans L"
     #:typewriter "Luxi Mono"
     #:factor (/ staff-height pt 20) ; 譜サイズを変更しない場合は不要
    ))
}

記譜フォントを指定することもできます。次の例は、記譜フォントをデフォルトと同様に設定しているため、上の例と同じ結果になります。 詳しい情報は、@ref{Replacing the notation font} を参照してください。

 
\paper {
  #(define fonts
    (set-global-fonts
     #:music "emmentaler"            ; デフォルト
     #:brace "emmentaler"            ; デフォルト
     #:roman "Times New Roman"
     #:sans "Nimbus Sans,Nimbus Sans L"
     #:typewriter "Luxi Mono"
     #:factor (/ staff-height pt 20) ; 譜サイズを変更しない場合は不要
    ))
}

注: set-global-fonts を呼び出すたびに、記譜フォントとテキスト フォントの両方を完全にリセットします。あるカテゴリが未指定であった場合、そのカテゴリのデフォルト値が使用されます。また、set-global-fonts は、その後の全ての \book ブロックに影響します。\book ブロックが複数あり、ブック毎に異なるフォントを使用したい場合、set-global-fonts を以下のように複数回呼び出します:

 
\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

参照

記譜法リファレンス: フォントの説明, 個々に登録するフォント, フォントとフォント サイズを選択する, フォント, @ref{Replacing the notation font}


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]

This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.

他の言語: English, català, deutsch, español, français, italiano
About automatic language selection.