GNU LilyPond 学習マニュアル: 1.2.2 入力ファイルに取り組む

### 1.2.2 入力ファイルに取り組む

LilyPond 入力ファイルは多くの一般的なプログラミング言語のソース ファイルと同じようなものです。それらは大文字/小文字の区別があり、空白はたいてい無視されます。表記は波括弧 { } で囲まれ、`%` または `%{ .. %}` でコメントになります。

上の文章があなたにとって意味不明だとしても、心配ありません！我々がそれらの用語の意味を説明します:

- バージョン宣言: すべての LilyPond ファイルにはバージョン宣言を持たせるべきです。バージョン宣言は、そのファイルが LilyPond のどのバージョン用に書かれたのかを説明します。バージョン宣言は以下の例のように記述します:

  >     \version "2.22.2"

  規則上、バージョン宣言は LilyPond ファイルの先頭に配置します。

  バージョン宣言は少なくとも 2 つの理由で重要です。1 つ目の理由は、LilyPond 構文が変更された場合に、入力ファイルを自動アップデートすることを可能にします。2 つ目の理由は、そのファイルをコンパイルするのに必要な LilyPond のバージョンが判断できます。

  入力ファイルでバージョン宣言を省略した場合、ファイルのコンパイル中に LilyPond は警告を表示します。

- 大文字/小文字の区別: あなたが小文字 (つまり、`a, b, s, t)` で入力するか、大文字 (つまり、`A, B, S, T`) で入力するかの違いです: `{ c d e }` は有効な入力ですが、`{ C D E }` ではエラーになります。
- 空白は無視される: あなたがどれくらい多くのスペース (または新しい行) を追加しても問題にならないということです。`{ c d e }` は `{ c d e }` や以下と同じ意味になります:

  >     { c4                       d
  >                        e   }

  もちろん、このような書き方をすると読みにくいです。見やすい書き方は、コード ブロックにタブか 2 つのスペースでインデントを付けることです:

  >     {
  >       c4 d e
  >     }

  しかしながら、多くの構文要素を他の要素と区切るために必要とされます。言い換えると、常に空白を 付け加える ことは可能ですが、常に空白を 削除 できるわけではありません。空白が足りないためにエラーが発生することあり、すべての構文要素の前後に空白を入れることは有用なことです。

- 表記: LilyPond 入力の各部分は { 波括弧 } で囲まれている必要があります。これらの波括弧は LilyPond に入力が単一の音楽表記であることを教えます。これはちょうど数学での括弧 `()` のようなものです。あいまいさを避けるために、波括弧は行の先頭か終端にないかぎりスペースで囲まれているべきです。

  波括弧で囲まれた表記が後に続く LilyPond コマンド (‘`\relative c' { … }`’ など) もまた単一の音楽表記としてカウントされます。

- コメント: コメントは音楽入力を読む人間のための注釈です。これは構文解析中には無視されるため、譜刻される出力には影響を与えません。コメントには 2 つのタイプがあります。パーセント記号 `%` は行コメントになります。`%` の後の文字は無視されます。慣習上、行コメントはそのコメントが参照するコードの上に置かれます。

  >     a4 a a a
  >     % このコメントは B を持つ行を参照します
  >     b2 b

  ブロック コメントは音楽入力のある部分全体をコメントにします。`%{` と `%}` で囲まれた部分は無視されます。しかしながら、ブロック コメントを ‘ネスト’ させることはできません。このことはあるブロック コメントを他のブロック コメントの中に置くことはできないということを意味します。そうした場合、最初の `%}` は両方のブロック コメントを終わらせてしまいます。以下のコード断片はコメントの使用例を示しています:

  >     % 以下はキラキラ星です
  >       c4 c g' g a a g2

  >     %{
  >       この行と以下の音符は無視されます。
  >       なぜなら、これらはブロック コメントの中にあるからです

  >       f4 f e e d d c2
  >     %}

#### LilyPond — 学習マニュアル v2.22.2 (安定版).