LilyPond 記譜法リファレンス: 1.8.2 テキストをフォーマットする

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

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

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

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

マークアップ構文は 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
>     }

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

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

表記をばらばらなものとして扱うには、単語のリストをダブル クォーテーションで囲むか、前にコマンドを置く必要があります。マークアップ表記の定義の仕方は、表記の配置のされ方 – 垂直に中央揃えして積み重ねられる、水平に並べられる – に影響を与えます。以下の例では、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" } }
>     }

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

>     allegro = \markup { \bold \large Allegro }

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

\markup コマンドの一覧 に `\markup` 特有のコマンドの徹底したリストがあります。これらのコマンドの内部動作と、新たに実装する方法は、 Markup functions で説明されています。

#### 参照

記譜法リファレンス: テキスト オブジェクトの概要, \markup コマンドの一覧

拡張: Markup functions

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

コード断片集: Text

#### 既知の問題と警告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#### 定義済みコマンド

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

#### 参照

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

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

コード断片集: Text

内部リファレンス: TextScript

#### 既知の問題と警告

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

#### テキスト揃え

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

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

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

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

>     \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 }
>     }

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

垂直方向に揃える方法はもう少し複雑です。上で述べたようにマークアップ オブジェクト全体を移動させることが可能ですが、マークアップ ブロックの中にある特定の要素を移動させることも可能です。 特定要素だけをを移動させるには、移動させる要素の前に アンカ ポイント – もう 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
>     }

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

>     \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
>     }

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

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

同様に、要素あるいは表記のリストの広がりが水平の行幅いっぱいを占めることがあります (要素が 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 }
>     }

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

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

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

>     \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)
>         }
>       }
>     }

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

#### 参照

学習マニュアル: オブジェクトを移動させる

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

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

コード断片集: Text

内部リファレンス: TextScript

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

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

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

>     \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
>       }
>     }

コマンドの中にはテキストの周りのパディングを増やすことを必要とするものもあります。パティングの増加は 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."
>     }

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

>     \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
>       }
>     }

高度なグラフィック機能として、外部画像ファイルを 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'

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

#### 参照

記譜法リファレンス: Align, 寸法, 編集者の注釈, Graphic

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

コード断片集: Text

内部リファレンス: TextScript

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

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

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

>     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'

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

>     \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
>       }
>     }

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

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

テキストではない図柄を譜刻するもう 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"
>       }
>     }

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

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

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

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

#### 参照

記譜法リファレンス: Music, Emmentaler フォント, フォントの説明

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

コード断片集: Text

内部リファレンス: TextScript

#### 既知の問題と警告

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

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

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

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

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

- マークアップ リスト コマンドの結果
- マークアップのリスト
- マークアップ リストのリスト

\markuplist コマンドの一覧 に、マークアップ リスト コマンドの徹底したリストがあります。

#### 参照

記譜法リファレンス: \markuplist コマンドの一覧

拡張: New markup list command definition

コード断片集: Text

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

内部リファレンス: TextScript

#### 定義済みコマンド

`\markuplist`

#### LilyPond — 記譜法リファレンス v2.22.2 (安定版).

- 2. 専門的な記譜法
- 3. 入出力全般
- 4. スペースの問題
- 5. デフォルトを変更する
- A. 付表
- B. カンニング ペーパー
- C. GNU Free Documentation License
- D. LilyPond コマンド インデックス
- E. LilyPond インデックス