5.1.2 一般的なエラー

以下で記述するエラーがしばしば起こりますが、その原因は明白でなかったり、簡単には見つからなかったりします。一旦それらのエラーを経験して理解すれば、それらの処理は簡単です。


音楽がページからはみ出す

右の余白にはみ出した音楽や、過度に密集した音楽の原因はほとんどすべて音符の演奏時間を不適切に入力して、小節の最後の音符が小節線を越えたためです。小節の最後の音符が自動的に挿入される小節線のところで終わっていなくても無効ではありません。なぜなら、その音符は単に次の小節に持ち越すと見なされるからです。しかしながら、そのような持ち越しの小節が長く続くと、音楽は密集したり、ページからはみ出す可能性があります。なぜなら、自動改行を挿入できるのは完全な小節 – つまり、すべての音符がその小節の終端までに終わっている小節 – の終端だけだからです。

Note: 不適切な演奏時間は自動改行を抑制し、その行の音楽は密集したり、ページからはみ出します。

小節チェックを使うと不適切な演奏時間を簡単に見つけ出すことができます – Bar and bar number checks を参照してください。

長く続く持ち越しの小節を持とうとするならば、改行したいところに不可視の小節線を挿入する必要があります。詳細は Bar lines を参照してください。


余計な譜が出現する

コンテキストが \new で明示的に作成されてはいない場合、すでに存在しているコンテキストには適用できないコマンドが発生すると沈黙のうちにコンテキストが作成されます。簡単な楽譜ではコンテキストの自動作成機能は有用であり、この LilyPond マニュアルの中の例の大半がこの機能を利用しています。しかしながら、時々このコンテキスト自動作成機能が予期せぬ譜や楽譜を発生させます。例えば、以下のコードはその後に続く譜の中にある符頭をすべて赤くすると予期したものかもしれませんが、実際のところ、その結果は 2 つの譜となり、下側の譜の中の符頭はデフォルトの黒のままです。

\override Staff.NoteHead #'color = #red
\new Staff { a }

[image of music]

こうなった原因は、オーバライドが処理されたときに Staff コンテキストは存在しなかったためです。そのため、Staff コンテキストが 1 つ暗黙的に作成され、オーバライドはそのコンテキストに適用されます。それから、\new Staff コマンドがもう 1 つ別の譜を作成し、音符はそこに配置されます。すべての符頭を赤くするための正しいコードは以下のようになります:

\new Staff {
  \override Staff.NoteHead #'color = #red
  a
}

[image of music]

次の例として、\relative コマンドが \repeat コマンドの中にある場合、2 つの譜が生成され、2 番目の譜は 1 番目の譜からずれます。なぜなら、\repeat コマンドは 2 つの \relative ブロックを生成し、それぞれのブロックは暗黙的に Staff ブロックと \Voice ブロックを作成するからです。

\repeat unfold 2 \relative { c d e f }

[image of music]

正しい結果を得るには、以下のように \repeat コマンドと j\relative コマンドの位置を入れ換えます:

\relative {
  \repeat unfold 2 { c d e f }
}

[image of music]


見かけ上 ../ly/init.ly に発生するエラー

入力ファイルの形式が正しくない場合、../ly/init.ly の中に構文エラーがあるという内容のさまざまな原因が不明瞭なエラー メッセージが表示される可能性があります。例えば、入力ファイルの中で括弧やクォートが対になっていない場合に、そのようなエラーが発生します。

最も一般的なエラーは score ブロックの最後に波括弧 (}) が無いというエラーです。その解決法は明白です: score ブロックが正しく終わっていることをチェックしてください。入力ファイルの正しい構造は LilyPond 入力ファイルの仕組み で記述しています。角括弧と波括弧の対を自動的にハイライトするエディタを使用するとそのようなエラーを防ぐのに役立ちます。

次に一般的なエラーの原因は歌詞ブロックの最後の音節と閉じ波括弧 (}) の間にスペースが無いという場合です。このスペースが無いと、閉じ波括弧は音節の一部になってしまいます。常に すべての 中括弧の前後にスペースを置くことをお勧めします。これは歌詞を使用するときに重要になります – Lyrics explained を参照してください。

このエラー メッセージは、クォート (") を閉じることを忘れた場合にも発生します。そのような場合、付随するエラー メッセージがエラーを起こした行の行番号を提示します。対になっていないクォートは通常 1 行あるいは 2 行上にあります。


エラー メッセージ Unbound variable %

Scheme コメントではなく LilyPond コメントを保持している Scheme ルーチン (このような Scheme は無効です) が呼び出されると、“GUILE signalled an error ...” とともにこのエラー メッセージがコンソール出力やログ ファイルの最後に出現します。

LilyPond コメントはパーセント記号 (%) で始まりますが、これを Scheme ルーチン内で使ってはいけません。Scheme コメントは セミコロン (;) で始まります。


エラー メッセージ FT_Get_Glyph_Name

入力ファイルが UTF-8 エンコーディングで保存されていない非 ASCII 文字を保持している場合、このエラー メッセージがコンソール出力やログ ファイルに出現します。詳細は Text encoding を参照してください。


他の言語: English, español, français, magyar

アプリケーション使用方法