]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/usage/running.itely
Merge branch 'master' into lilypond/translation
[lilypond.git] / Documentation / ja / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: 42ae342ba877dc8f26cabb5cc3937a6d3cdb4066
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.13.36"
12
13 @c Translators: Yoshiki Sawada
14 @c Translation status: post-GDP
15
16 @node lilypond を実行する
17 @chapter @command{lilypond} を実行する
18 @translationof Running lilypond
19
20 この章では LilyPond を実行するための細かな規定について詳述します。
21
22 @menu
23 * 通常の使用方法::
24 * コマンド ラインの使用方法::
25 * エラー メッセージ::
26 * 一般的なエラー::
27 @end menu
28
29
30 @node 通常の使用方法
31 @section 通常の使用方法
32 @translationof Normal usage
33
34 たいていのユーザは GUI から LilyPond を実行します。@c
35 まだ実行したことがないのであれば @rlearning{Tutorial} を読んでください。
36 lilypond ファイルを書くのに代替のエディタを使用するのであれば、@c
37 そのエディタのドキュメントを読んでください。
38
39
40 @node コマンド ラインの使用方法
41 @section コマンド ラインの使用方法
42 @translationof Command-line usage
43
44 この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。@c
45 これにはプログラムに追加オプションを渡す必要があるかもしれません。@c
46 さらに、いくつかの特別なプログラム (@code{midi2ly} など) は@c
47 コマンド ラインからしか利用できません。
48
49 ここで @q{コマンド ライン} とは、OS の中にあるコマンド ラインを意味します。@c
50 Windows ユーザは @q{DOS シェル} という言葉の方が馴染みがあるかもしれません。@c
51 MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が@c
52 馴染みがあるかもしれません。@c
53 MaxOS@tie{}X ユーザは追加のセットアップが必要かもしれません。@c
54 @rweb{MacOS X} を参照してください。
55
56 OS のコマンド ラインの使用方法についての説明は@c
57 このマニュアルが扱う範囲ではありません。@c
58 コマンド ラインに馴染みがない場合は、@c
59 その内容を扱っている他のドキュメントをあたってください。
60
61 @menu
62 * lilypond を呼び出す::
63 * lilypond のコマンド ライン オプション::
64 * 環境変数::
65 * LilyPond in chroot jail::
66 @end menu
67
68 @node lilypond を呼び出す
69 @unnumberedsubsec @command{lilypond} を呼び出す
70 @translationof Invoking lilypond
71
72
73 @command{lilypond} 実行可能形式ファイルは@c
74 コマンド ラインから以下のように呼び出されます。
75
76 @example
77 lilypond [@var{option}]@dots{} @var{file}@dots{}
78 @end example
79
80 拡張子を持たないファイル名で呼び出された場合、@c
81 @file{.ly} が最初に試されます。@c
82 sudin から入力を読み込む場合には、@c
83 @var{file} に対してダッシュ (@code{-}) を使用します。
84
85 @file{filename.ly} が処理されると、@c
86 lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り出します。@c
87 いくつかのファイルを指定することもできます。@c
88 その場合、それらのファイルは個々に処理されます。@c
89 @footnote{GUILE のステータスは @code{.ly} 処理後にリセットされません。@c
90 そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう注意してください。}
91
92 @file{filename.ly} が複数の @code{\score} を含んでいる場合、@c
93 2 つ目以降の score は 
94 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
95 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
96 以下の内容を含んでいる入力ファイルは
97
98 @example
99 #(define output-suffix "violin")
100 \book @{ @dots{} @}
101 #(define output-suffix "cello")
102 \book @{ @dots{} @}
103 @end example
104
105 @noindent
106 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
107
108
109 @unnumberedsubsubsec 標準シェル コマンド
110
111 シェル (例えばコマンド ウィンドウ) がリダイレクトをサポートしているのであれば、@c
112 以下のコマンドでコンソール出力をファイルにリダイレクトすると役に立つかもしれません。
113
114 @itemize
115
116 @item
117 @code{lilypond file.ly 1>stdout.log} 通常出力をリダイレクトします
118
119 @item
120 @code{lilypond file.ly 2>stderr.log} エラー メッセージをリダイレクトします。
121
122 @item
123 @code{lilypond file.ly &>all.log} すべての出力をリダイレクトします
124
125 @end itemize
126
127 あなたの使用しているシェルがこれらのオプションをサポートしているかどうか、@c
128 あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。@c
129 これらはシェル コマンドであり、lilypond とは無関係です。
130
131
132 @node lilypond のコマンド ライン オプション
133 @unnumberedsubsec @command{lilypond} のコマンド ライン オプション
134 @translationof Command line options for lilypond
135
136 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
137 @cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション)
138 @cindex options, command line (コマンド ライン オプション)
139 @cindex switches (切り換え)
140
141 以下のオプションがサポートされます:
142
143 @table @code
144
145 @item -e,--evaluate=@var{expr}
146 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
147 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
148
149 表記は @code{guile-user} モジュールの中で評価されます。@c
150 そのため、@var{expr} の中で定義を使いたいのならば、@c
151 @code{.ly} ファイルに以下をインクルードして:
152
153 @example
154 #(use-modules (guile-user))
155 @end example
156
157 @noindent
158 コマンド ラインで以下を使用します:
159
160 @example
161 lilypond -e '(define-public a 42)'
162 @end example
163
164
165
166 @item -f,--format=@var{format}
167 フォーマットを指定します。@c
168 @code{format} には @code{svg}, @code{ps}, @code{pdf}, @code{png} を選択します。
169
170 例: @code{lilypond -fpng @var{filename}.ly}
171
172
173
174 @item -d,--define-default=@var{var}=@var{val}
175 これは内部プログラム オプション @var{var} に 
176 Scheme 値 @var{val} をセットします。@c
177 @var{val} が提供されていない場合、@var{#t} が使用されます。@c
178 オプションを OFF にするには、@var{var} の接頭辞として @code{no-} を付けます。@c
179 つまり、
180
181 @cindex point and click, command line (コマンド ラインからポイント&クリックを制御する)
182
183 @example
184 -dno-point-and-click
185 @end example
186
187 @noindent
188
189 @example
190 -dpoint-and-click='#f'
191 @end example
192 と同じです。
193
194 ここで興味深いオプションをいくつか挙げます。
195
196 @table @samp
197 @item help
198 @code{lilypond -dhelp} を実行すると@c
199 使用可能な @code{-d} オプションがすべて表示されます。
200
201 @cindex paper-size, command line (コマンドラインで paper-size を指定する)
202
203 @item paper-size
204 このオプションはデフォルトの用紙サイズをセットします。
205 @example
206 -dpaper-size=\"letter\"
207 @end example
208
209 @noindent
210 文字列はエスケーブされたクォート ( @code{\"} ) で@c
211 囲まれていなければならないということに注意してください。
212 @c Match " in previous line to help context-sensitive editors
213
214 @item safe
215 @code{.ly} 入力を信用してはいけません。
216
217 Web サーバを通じて LilyPond フォーマットが利用可能な場合、@c
218 @code{--safe} オプションか @code{--jail} オプションの@c
219 どちらかを@b{渡さなければなりません}。@c
220 @code{--safe} オプションは@c
221 以下のようなインライン Scheme コードが大混乱をもたらすことを防ぎます:
222
223 @quotation
224 @verbatim
225 #(system "rm -rf /")
226 {
227   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
228 }
229 @end verbatim
230 @end quotation
231
232 訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、@c
233 export (ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。
234
235 @code{-dsafe} オプションはインライン Scheme 表記を@c
236 特別なセーフ モジュールの中で評価します。@c
237 このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生したものですが、@c
238 LilyPond API 関数をいくつか追加しています。@c
239 これらの関数は @file{scm/safe-lily.scm} でリスト アップされています。
240
241 さらに、セーフ モードは @code{\include} 指示を却下し、@c
242 @TeX{} 文字列の中にあるバックスラッシュを無効にします。
243
244 セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。
245
246 @code{-dsafe} はリソースの乱用を検出@emph{しません}。@c
247 例えば循環データ構造体をバックエンドに食わせることで、@c
248 プログラムをハングさせることは可能です。@c
249 そのため、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、@c
250 そのプロセスの CPU とメモリの両方の使用は制限されるべきです。
251
252 セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c
253 @code{--jail} はより安全な代替オプションですが、@c
254 セット アップにより多くの作業を必要とします。
255
256 @cindex output format, setting (出力フォーマットを設定する)
257 @item backend
258 バックエンドに対して使用する出力フォーマットを指定します。@c
259 @code{format} の選択肢には以下があります:
260 @table @code
261 @item ps
262 @cindex PostScript output (PostScript 出力)
263  PostScript
264
265  Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。@c
266 これらのフォントのサブセット化 
267 (訳者: フォント セットを使用するフォントに限定すること) は行われません。@c
268 東洋の文字セットを使用する場合、巨大なファイルになる可能性があります。
269
270 @item eps
271  縮約された PostScript (EPS)。@c
272 これは各ページ (システム) を@c
273 フォントを持たない個別の @file{EPS} ファイルとして吐き出し、@c
274 フォントを含めたすべてのページ (システム) を持つ 
275 @file{EPS} ファイルを 1 つ吐き出します。
276
277 このモードは @command{lilypond-book} でデフォルトで使用されます。
278
279 @item svg
280 @cindex SVG (Scalable Vector Graphics)
281  SVG (Scalable Vector Graphics)。@c
282 これは各ページを@c
283 フォントを埋め込まれた個別の @file{SVG} ファイルとして吐き出します。@c
284 埋め込みフォントをサポートする SVG ビューアか@c
285 埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが必要になります。@c
286 UNIX では、@c
287 @uref{http://www.inkscape.org,Inkscape} (バージョン 0.42 以降) を@c
288 使うことになるかもしれません。@c
289 使用前に、OTF フォントを LilyPond ディレクトリ 
290 (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から 
291 @file{~/.fonts/} にコピーしてください。
292 @item scm
293 @cindex Scheme dump (Scheme ダンプ)
294  生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。
295
296 @item null
297  譜刻された楽譜を出力しません。@c
298 @code{-dno-print-pages} と同じ効果を持ちます。
299 @end table
300
301 例: @code{lilypond -dbackend=svg @var{filename}.ly}
302
303 @item preview
304 タイトルとファイル システム情報を保持している出力ファイルを生成します。
305 @item print-pages
306
307 すべてのページを生成します。@c
308 デフォルトです。@code{-dno-print-pages} は 
309 @code{-dpreview} と組み合わせて使うと有用です。
310
311 @end table
312
313
314
315 @item -h,--help
316 使用方法の要約を表示します。
317
318 @item -H,--header=@var{FIELD}
319 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
320
321 @item --include, -I=@var{directory}
322 @var{directory} を入力ファイルのサーチ パスに追加します。
323 @cindex file searching (ファイル検索)
324 @cindex search path (サーチ パス)
325
326 @item -i,--init=@var{file}
327 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
328
329 @item -o,--output=@var{FILE}
330 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
331 適切な接尾辞が追加されます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
332
333 @item --ps
334 PostScript を生成します。
335
336 @item --png
337 各ページの図を PNG フォーマットで生成します。@c
338 これは内部で @code{--ps} を使用します。@c
339 画像の DPI 解像度は以下のようにセットします:
340 @example
341 -dresolution=110
342 @end example
343
344 @item --pdf
345 PDF を生成します。@c
346 これは内部で @code{--ps} を使用します。
347
348
349
350 @item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
351 @command{lilypond} を chroot jail 環境で実行します。@c
352 (訳者: chroot jail 環境とはセキュリティのために@c
353 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
354
355 @code{--jail} オプションは、@c
356 Web サーバを通じて LilyPond 譜刻を実行するときや 
357 LilyPond が外部から提供されたソースを実行するときに、@c
358 @code{--safe} よりも自由度の高い代替手段を提供します。
359
360 @code{--jail} オプションはコンパイル プロセスの開始直前に 
361 @command{lilypond} の ルートを @var{jail} に変更します。@c
362 それからユーザとグループを提供された環境にマッチするように変更し、@c
363 カレント ディレクトリは @var{dir} に変更されます。@c
364 このセットアップは jail (牢獄) から抜け出せないということを 
365 (少なくとも理論的には) 保証します。@c
366 @code{--jail} を指定した @command{lilypond} の実行は@c
367 root (ユーザ名) として行われる必要があります。@c
368 通常、これは @command{sudo} を用いた安全な方法で行われます。
369
370 jail のセットアップは少々デリケートな問題です。@c
371 LilyPond がソースをコンパイルするのに必要とされるものすべてを 
372 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
373 一般的なセットアップには以下の項目が含まれます:
374
375 @table @asis
376 @item 専用のファイルシステムをセットアップする
377 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
378 マウントするための専用ファイルシステムを作成すべきです。@c
379 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
380 デバイスに直接書き込むことは不可能になります。@c
381 専用のパーティションを作成することを望まないのなら、@c
382 適当なサイズのファイルを作成し、@c
383 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
384 専用ファイルシステムはさらに、@c
385 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
386
387 @item 専用のユーザをセットアップする
388 jail 内部で LilyPond を実行する際、@c
389 低い権限を持つ専用のユーザとグループ (仮に @code{lily}/@code{lily} とします) で@c
390 行うべきです。@c
391 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
392 それを @var{dir} に渡します。
393
394 @item jail の準備をする
395 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
396 それらのファイルをすべて jail にコピーしておきます。@c
397 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
398 同じパスにコピーします。@c
399 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
400 コピーすべきです。
401
402 問題が発生した場合、その原因を突き止める最も簡単な方法は 
403 @command{strace} を使って LilyPond を実行することです。@c
404 これによりどのファイルが見当たらないのかがわかります。
405
406 @item LilyPond を実行する
407 @code{noexec} でマウントされた jail の中では、@c
408 外部プログラムを実行することは一切できません。@c
409 そのため、外部プログラムを必要としないバックエンドで 
410 LilyPond を実行しなければなりません。@c
411 すでに述べたように、@c
412 jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず 
413 (もちろん、その権限はすぐに外されます)、@c
414 たぶん @command{sudo} を使います。@c
415 LilyPond が使用可能な CPU 時間を数秒に制限する 
416 (例えば、@command{ulimit -t} を使って) というのは良いアイディアです。@c
417 さらに、OS がサポートしているのなら、@c
418 割り当て可能なメモリ容量を制限するというのも良いアイディアです。
419 @end table
420
421
422 @item -v,--version
423 バージョン情報を表示します。
424
425 @item -V,--verbose
426 冗長表示モードにします: 
427 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
428
429 @item -w,--warranty
430 GNU LilyPond の保証責任を表示します。@c
431 (GNU LilyPond には@strong{保証責任はありません}!)
432 @end table
433
434 @node 環境変数
435 @unnumberedsubsec 環境変数
436 @translationof Environment variables
437
438 @cindex LANG
439 @cindex LILYPOND_DATADIR
440
441 @command{lilypond} は以下の環境変数を認識します:
442 @table @code
443 @item LILYPOND_DATADIR
444 これはデフォルトで参照する@c
445 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
446 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
447 サブディレクトリを保持しているべきです。
448
449 @item LANG
450 これは警告メッセージの言語を選択します。
451
452 @item LILYPOND_GC_YIELD
453 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
454 これはメモリ管理の振る舞いを調整するパーセント値です。@c
455 高い値にするとプログラムはより多くのメモリを使用し、@c
456 低い値にするとより多くの CPU 時間を使用します。@c
457 デフォルト値は @code{70} です。
458
459 @end table
460
461 @node LilyPond in chroot jail
462 @unnumberedsubsec LilyPond in chroot jail
463
464 @untranslated
465
466
467 @node エラー メッセージ
468 @section エラー メッセージ
469 @translationof Error messages
470
471 @cindex error messages (エラー メッセージ)
472 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
473 表示される可能性があります。
474
475 @table @emph
476
477 @item Warning
478 @cindex warning (警告)
479 何か疑わしいことがあります。@c
480 あなたが何か普通でないことをリクエストしている場合は、@c
481 そのメッセージを理解して、それを無視することができます。@c
482 しかしながら、@c
483 Warning は通常、入力ファイルに何か問題があることを示しています。
484
485 @item Error
486 何か明らかに問題があります。@c
487 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
488 次のステップは飛ばされます。
489
490 @item Fatal error
491 @cindex error (エラー)
492 @cindex fatal error (致命的なエラー)
493 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
494 これが起きることは稀です。@c
495 これが起こるのはたいてい、フォントのインストールに問題があるためです。
496
497 @item Scheme error
498 @cindex trace, Scheme (Scheme トレース)
499 @cindex call trace (トレースを呼び出す)
500 @cindex Scheme error (Scheme エラー)
501 Scheme コードの実行中に発生するこのエラーは 
502 Scheme インタプリタによって引き起こされます。@c
503 冗長オプション (@code{-V} または @code{--verbose}) 付きで実行している場合、@c
504 問題となっている関数呼び出しの呼び出し追跡が表示されます。
505
506 @item Programming error
507 @cindex Programming error (プログラミング エラー)
508 内部的な矛盾があります。@c
509 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
510 通常、それらは無視できます。@c
511 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
512
513 @item Aborted (core dumped)
514 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
515 示しています。@c
516 そのようなエラーは決定的なものだと考えられます。@c
517 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
518 @end table
519
520 @cindex errors, message format (エラー メッセージの形式)
521 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
522 エラー メッセージは以下のような形式になります:
523
524 @example
525 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
526 @var{offending input line}
527 @end example
528
529 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
530 例えば:
531
532 @example
533 test.ly:2:19: error: not a duration: 5
534   @{ c'4 e'
535            5 g' @}
536 @end example
537
538 これらの位置は LilyPond が警告やエラーが発生した位置を@c
539 最善を尽くして推測したものですが、@c
540 (ごく当たり前のことですが) 警告とエラーは@c
541 何か予期しないことが起こったときに発生するものです。@c
542 入力ファイルの示された行にエラーを見つけることができない場合は、@c
543 示された位置の 1 行か 2 行上をチェックしてみてください。
544
545 エラーについての更なる情報が @ref{一般的なエラー} で提供されています。
546
547
548 @node 一般的なエラー
549 @section 一般的なエラー
550 @translationof Common errors
551
552 以下で説明するエラーがしばしば発生しますが、@c
553 その原因は明白でなかったり、見つけにくかったりします。@c
554 目を通しておくと、それらのエラーに対処しやすくなります。
555
556
557 @menu
558 * 楽譜がページからはみ出る::
559 * 余計な譜が表示される::
560 * 見かけ上 ../ly/init.ly のエラーとなる::
561 * エラー メッセージ Unbound variable %::
562 * エラー メッセージ FT_Get_Glyph_Name::
563 * 警告 -- Warning staff affinities should only decrease::
564 @end menu
565
566 @node 楽譜がページからはみ出る
567 @unnumberedsubsec 楽譜がページからはみ出る
568 @translationof Music runs off the page
569
570 楽譜がページの右マージンを越えてはみ出る、あるいは過度に密集するのは、@c
571 ほぼ間違いなく音符の演奏時間に誤りがあり、@c
572 小節の最後の音符が小節線を越えてしまうためです。@c
573 ある小節の最後の音符が自動的に挿入される小節線の所で終わらなくても@c
574 無効ではありません。@c
575 なぜなら、その音符は次の小節に持ち越されるためです。@c
576 しかしながら、そのような持ち越しが発生する小節が長く続くと、@c
577 楽譜は密集して表示されたり、ページからはみ出たりします。@c
578 ページからはみ出るのは、@c
579 自動改行を挿入できるのは正しく終了する小節
580 (その小節のすべての音符が小節の中で終了しています)
581 の後ろだけだからです。@c
582
583 @warning{誤った演奏時間は改行を抑制し、結果として楽譜が過度に密集したり、c@
584 ページからはみ出たりする可能性が生じます。}
585
586 小節チェックを使用していれば、誤った演奏時間を簡単に見つけることができます。@c
587 @c @ruser{小節と小節番号のチェック}
588 @ruser{Bar and bar number checks} を参照してください。
589
590 あなたがそのような音符が持ち越される小節を続けることを意図しているのであれば、@c
591 改行させたい場所に不可視の小節線を挿入する必要があります。@c
592 詳細は
593 @c @ruser{小節線}
594 @ruser{Bar lines} を参照してください。
595
596
597 @node 余計な譜が表示される
598 @unnumberedsubsec 余計な譜が表示される
599 @translationof An extra staff appears
600
601 コンテキストが @code{\new} や @code{\context} で明示的に作成されていない場合、@c
602 既存のコンテキストには適用できないコマンドに遭遇した時点で@c
603 暗黙的に作成されます。@c
604 単純な楽譜では、コンテキストの自動作成は有用であり、@c
605 LilyPond マニュアルのほとんどの例はこの手法を用いています。@c
606 しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を@c
607 発生させてしまいます。@c
608 例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを@c
609 意図していますが、@c
610 結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
611
612 @lilypond[quote,verbatim,relative=2]
613 \override Staff.NoteHead #'color = #red
614 \new Staff { a }
615 @end lilypond
616
617 これは、(符頭色の) オーバライドが処理される時に
618 @code{Staff} コンテキストが存在していないため、@c
619 @code{Staff} コンテキストが暗黙的に作成され、@c
620 そのコンテキストにオーバライドが適用されるからです。@c
621 その後に @code{\new Staff} コマンドにより@c
622 もう 1 つ別の @code{Staff} コンテキストが作成され、@c
623 そこに音符が配置されます。@c
624 すべての符頭を赤にする正しいコードは以下のようになります:
625
626 @lilypond[quote,verbatim,relative=2]
627 \new Staff {
628   \override Staff.NoteHead #'color = #red
629   a
630 }
631 @end lilypond
632
633 次の例では、@code{\repeat} コマンドの中に @code{\relative} コマンドが@c
634 置かれているため、譜が 2 つ生じています。@c
635 @code{\repeat} コマンドが 2 つの @code{\relative} ブロックを生成し、@c
636 それぞれが暗黙的に @code{Staff} ブロックと @code{Voice} を作成するため、@c
637 2 番目の譜は右にずれています。
638
639 @lilypond[quote,verbatim]
640 \repeat unfold 2 {
641   \relative c' { c4 d e f }
642 }
643 @end lilypond
644
645 明示的に @code{Voice} をインスタンス化することで、この問題は修正されます:
646
647 @lilypond[quote,verbatim]
648 \new Voice {
649   \repeat unfold 2 {
650     \relative c' { c4 d e f }
651   }
652 }
653 @end lilypond
654
655
656 @node 見かけ上 ../ly/init.ly のエラーとなる
657 @unnumberedsubsec 見かけ上 @code{../ly/init.ly} のエラーとなる
658 @translationof Apparent error in @code{../ly/init.ly}
659
660 入力ファイルが正しく構成されていないと、@c
661 @file{../ly/init.ly} に構文エラーがあるという@c
662 様々な原因のはっきりしないエラー メッセージが表示されます。@c
663 例えば、括弧やクォート記号の数が一致していない場合に@c
664 このようなエラーが発生します。
665
666 最も一般的なエラーは @code{score} ブロックの終わりに括弧が見当たらない
667 (missing brace, (@code{@}})) というエラーです。@c
668 この場合の解決方法は明らかです:
669 @code{score} ブロックが正しく閉じられているかチェックしてください。@c
670 入力ファイルの正しい構造は @rlearning{LilyPond 入力ファイルの仕組み}
671 で記述されています。@c
672 括弧の一致を自動的にハイライトするエディタを使うと、@c
673 そのようなエラーを防ぐのに役立ちます。
674
675 次に一般的なエラーの原因は、歌詞ブロックの最後の音節と閉じ括弧 (@code{@}})
676 の間に空白が無いために発生します。@c
677 空白が無ければ、この閉じ括弧は音節の一部と見なされます。@c
678 常に @emph{すべての} 括弧の前後に空白を入れることをお勧めします。@c
679 歌詞を用いる場合にこのことが重要になります。@c
680 @ruser{Entering lyrics} を参照してください。
681
682
683 @node エラー メッセージ Unbound variable %
684 @unnumberedsubsec エラー メッセージ Unbound variable %
685 @translationof Error message Unbound variable %
686
687 @emph{Scheme} 形式のコメントではなく @emph{LilyPond} 形式のコメント@c
688 を持つ Scheme ルーチンが呼び出されると、@c
689 コンソール出力やログ ファイルの最後にエラー メッセージ
690 @qq{Unbound variable %} が @qq{GUILE signalled an error ...}
691 と共に表示されます。@c
692
693 LilyPond 形式のコメントはパーセント記号 (@code{%}) で始まり、@c
694 Scheme ルーチンの中で使うことはできません。@c
695 Scheme 形式のコメントはセミコロン (@code{;}) で始まります。
696
697
698 @node エラー メッセージ FT_Get_Glyph_Name
699 @unnumberedsubsec エラー メッセージ FT_Get_Glyph_Name
700 @translationof Error message FT_Get_Glyph_Name
701
702 入力ファイルが非 ASCII キャラクタを保持していて、@c
703 UTF-8 エンコードで保存されていない場合、@c
704 このエラー メッセージがコンソール出力やログ ファイルに表示されます。@c
705 詳細は、
706 @c @ruser{テキスト エンコーディング}
707 @ruser{Text encoding} を参照してください。
708
709
710 @node 警告 -- Warning staff affinities should only decrease
711 @unnumberedsubsec 警告 -- Warning staff affinities should only decrease
712 @translationof Warning staff affinities should only decrease
713
714 この警告は、譜刻された出力の中に譜が無い場合に表示されます。@c
715 例えば、リード譜に @code{ChordName} コンテキストと @code{Lyrics} コンテキスト@c
716 しか無い場合です。@c
717 この警告は、入力の始めに以下を挿入することで@c
718 譜として振舞うコンテキストを作ることで回避できます:
719
720 @example
721 \override VerticalAxisGroup #'staff-affinity = ##f
722 @end example
723
724 @noindent
725 詳細は @ruser{Flexible vertical spacing within systems} の中の
726 @qq{Spacing of non-staff lines} を参照してください。