]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/usage/running.itely
New upstream version 2.19.80
[lilypond.git] / Documentation / ja / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: 5fb3f8cf17ce7b57d22584429d736f188e4827d7
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.19.21"
12
13 @c Translators: Tomohiro Tatejima, Masamichi Hosoda, 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{チュートリアル} を読んでください。
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 シェル} や @q{コマンド シェル} @q{コマンド プロンプト}
51 という言葉の方が馴染みがあるかもしれません。@c
52 MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が@c
53 馴染みがあるかもしれません。@c
54 MaxOS@tie{}X ユーザは追加のセットアップが必要かもしれません。@c
55 @rweb{MacOS X} を参照してください。
56
57 OS のコマンド ラインの使用方法についての説明は@c
58 このマニュアルが扱う範囲ではありません。@c
59 コマンド ラインに馴染みがない場合は、@c
60 その内容を扱っている他のドキュメントをあたってください。
61
62 @menu
63 * LilyPond を呼び出す::
64 * LilyPond の基本的なコマンド ライン オプション::
65 * LilyPond の高度なコマンド ライン オプション::
66 * 環境変数::
67 * chroot jail 環境で LilyPond を実行する::
68 @end menu
69
70 @node LilyPond を呼び出す
71 @unnumberedsubsec @command{lilypond} を呼び出す
72 @translationof Invoking lilypond
73
74
75 @command{lilypond} 実行可能形式ファイルは@c
76 コマンド ラインから以下のように呼び出されます。
77
78 @example
79 lilypond [@var{option}]@dots{} @var{file}@dots{}
80 @end example
81
82 拡張子を持たないファイル名で呼び出された場合、@c
83 @file{.ly} が最初に試されます。@c
84 stdin から入力を読み込む場合には、@c
85 @var{file} に対してダッシュ (@code{-}) を使用します。
86
87 @file{filename.ly} が処理されると、@c
88 lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り出します。@c
89 いくつかのファイルを指定することもできます。@c
90 その場合、それらのファイルは個々に処理されます。@c
91 @footnote{GUILE のステータスは @code{.ly} 処理後にリセットされません。@c
92 そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう@c
93 注意してください。}
94
95 @file{filename.ly} が複数の @code{\book} ブロックを含んでいる場合、@c
96 残りのの score は
97 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
98 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
99 以下の内容を含んでいる入力ファイルは
100
101 @example
102 #(define output-suffix "violin")
103 \score @{ @dots{} @}
104 #(define output-suffix "cello")
105 \score @{ @dots{} @}
106 @end example
107
108 @noindent
109 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
110
111
112 @unnumberedsubsubsec 標準シェルで LilyPond を使う
113
114 LilyPond はコマンドラインアプリケーションなので、@c
115 LilyPond を呼び出すために @q{シェル} の機能をうまく利用することができます。
116
117 例えば:
118
119 @example
120 lilypond *.ly
121 @end example
122
123 @noindent
124 は、カレントディレクトリのすべての LilyPond ファイルを処理できるでしょう。
125
126 コンソール出力をリダイレクトする(例えばファイルへ)のも@c
127 有用でしょう。
128
129 @example
130 lilypond file.ly 1> stdout.txt
131
132 lilypond file.ly 2> stderr.txt
133
134 lilypond file.ly &> all.txt
135 @end example
136
137 @noindent
138 それぞれ @q{普通の} 出力、@q{エラー} のみ、@q{すべて} 、
139 をファイルにリダイレクトします。@c
140
141 あなたの使用しているシェル、コマンドプロンプト (Windows)、@c
142 ターミナルやコンソール (MacOS X) がリダイレクトをサポートしているか、@c
143 あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。@c
144
145 以下は、カレントディレクトリ以下のすべての入力ファイルを再帰的に探し、@c
146 処理する例です。@c
147 出力ファイルは元の入力ファイルのあるディレクトリではなく、@c
148 コマンドを実行したディレクトリに置かれます。
149
150 @example
151 find . -name '*.ly' -exec lilypond '@{@}' \;
152 @end example
153
154 @noindent
155 これは MacOS@tie{}X ユーザでも使えるでしょう。
156
157 Windows ユーザは;
158
159 @example
160 forfiles /s /M *.ly /c "cmd /c lilypond @@file"
161 @end example
162
163 @noindent
164 スタートメニューから
165 @code{スタート > アクセサリ > コマンドプロンプト}
166 とたどるか、Windows 8 であれば@c
167 検索ウィンドウで @q{コマンドプロンプト} と入力して、
168 @code{コマンド プロンプト} を起動し、@c
169 これらのコマンドを入力します。
170
171 または、入力ファイルを含むすべてのサブフォルダを含む、@c
172 最上位のフォルダを明示的に指定できる @code{/p} オプションもあります;
173
174 @example
175 forfiles /s /p C:\Documents\MyScores /M *.ly /c "cmd /c lilypond @@file"
176 @end example
177
178 最上位フォルダ名がスペース文字を含む場合は、@c
179 パス全体をダブルクオーテーションで囲む必要があります。;
180
181 @example
182 forfiles /s /p "C:\Documents\My Scores" /M *.ly /c "cmd /c lilypond @@file"
183 @end example
184
185
186 @node LilyPond の基本的なコマンド ライン オプション
187 @unnumberedsubsec LilyPond の基本的なコマンド ライン オプション
188 @translationof Basic command line options for LilyPond
189
190 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
191 @cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション)
192 @cindex options, command line (コマンド ライン オプション)
193 @cindex switches (切り換え)
194
195 以下のオプションがサポートされます:
196
197 @table @code
198
199 @item -b, --bigpdfs
200 @cindex bigpdfs
201
202 通常より大きい PDF ファイルを生成します。@c
203 (フォント最適化がほんの少しかまったく無くなるため。)@c
204 しかし、2 つ以上の PDF ファイルを
205 @w{@code{pdftex}}、@w{@code{xetex}} や @w{@code{luatex}}
206 ドキュメントの中に組み込む場合、@c
207 さらに ghostscript 処理で重複するフォントデータを統合し、@c
208 @emph{著しく} 小さい PDF ファイルを得ることができます。
209
210 @example
211 lilypond -b myfile
212 @end example
213
214 それから @code{ghostscript} を呼び出します。
215
216 @example
217 gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
218 @end example
219
220 @code{pdfsizeopt.py} は、さらにサイズの最適化ができます。
221
222 @example
223 pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
224 @end example
225
226
227 @item -d, --define-default=@var{var}=@var{val}
228 @ref{LilyPond の高度なコマンド ライン オプション} を参照してください。
229
230 @cindex Scheme, expression evaluation (Scheme 表記の評価)
231 @cindex expression evaluation, Scheme (Scheme 表記の評価)
232
233 @item -e, --evaluate=@var{expr}
234 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
235 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
236
237 Scheme 表記は @code{guile-user} モジュールの中で評価されます。@c
238 そのため、@var{expr} の中で定義を使いたいのならば、@c
239 コマンド ラインで以下を使用して、
240
241 @example
242 lilypond -e '(define-public a 42)'
243 @end example
244
245 @noindent
246 @code{.ly} ファイルの先頭に以下を含めます:
247
248 @example
249 #(use-modules (guile-user))
250 @end example
251
252 @warning{Windows ユーザはシングル クォートではなく、@c
253 ダブル クォートを使う必要があります。}
254
255 @cindex output, format (出力のフォーマット)
256 @cindex format, output (出力のフォーマット)
257
258 @item -f, --format=@var{format}
259 フォーマットを指定します。@c
260 @code{format} の選択肢は @code{ps}, @code{pdf}, それに @code{png} です。
261
262 例: @code{lilypond -fpng @var{filename}.ly}
263
264 @noindent
265 @code{svg} フォーマットや @code{eps} フォーマットを出力するには
266 @code{-dbackend} オプションを用います。
267 @ref{LilyPond の高度なコマンド ライン オプション} を参照してください。
268
269 @item -h, --help
270 使用方法の要約を表示します。
271
272 @item -H, --header=@var{FIELD}
273 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
274
275 @item -i, --init=@var{file}
276 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
277
278 @cindex file searching (ファイル サーチ)
279 @cindex search path (サーチ パス)
280
281 @item -I, --include=@var{directory}
282 @var{directory} を入力ファイルのサーチ パスに追加します。
283
284 複数の -I オプションを与えることができます。@c
285 検索は最初に指定されたディレクトリから開始され、@c
286 入力ファイルが見つからない場合は次に指定されたディレクトリを検索します。
287
288 @cindex chroot jail, running inside (chroot jail 内部で実行する)
289
290 @item -j, --jail=@var{user},@var{group},@var{jail},@var{dir}
291 @command{lilypond} を chroot jail 環境で実行します。@c
292 (訳者: chroot jail 環境とはセキュリティのために@c
293 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
294
295 @option{--jail} オプションは、@c
296 Web サーバ経由で LilyPond 譜刻を提供する時や
297 LilyPond が外部ソースから送られてきたコマンドを実行する時に、@c
298 @code{--dsafe} よりも自由度の高い代替手段を提供します。
299 (@ref{LilyPond の高度なコマンド ライン オプション} を参照してください。)
300
301 @code{--jail} オプションはコンパイル プロセスの開始直前に
302 @command{lilypond} のルート ディレクトリを @var{jail} に変更します。@c
303 それから、ユーザとグループを @var{user} と @var{group} に変更して、@c
304 カレント ディレクトリを @var{dir} に変更します。@c
305 これにより、jail (牢獄) から抜け出せないことを (少なくとも理論上は)
306 保証します。@c
307 @code{--jail} を指定した @command{lilypond} の実行は root (ユーザ名)
308 として行う必要があります。@c
309 通常、これは @command{sudo} を用いた安全な方法で行います。
310
311 jail のセットアップは比較的複雑な問題です。@c
312 LilyPond がソースをコンパイルするのに必要とされるものすべてを
313 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
314 一般的なセットアップには以下の項目が含まれます:
315
316 @table @asis
317 @item 専用のファイルシステムをセットアップする
318 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
319 マウントするための専用ファイルシステムを作成すべきです。@c
320 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
321 デバイスに直接書き込むことは不可能になります。@c
322 専用のパーティションを作成することを望まないのなら、@c
323 適当なサイズのファイルを作成し、@c
324 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
325 専用ファイルシステムはさらに、@c
326 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
327
328 @item 専用のユーザをセットアップする
329 jail 内部で LilyPond を実行する際、@c
330 低い権限を持つ専用のユーザとグループ
331 (仮に @code{lily}/@code{lily} とします)
332 で行うべきです。@c
333 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
334 それを @var{dir} に渡します。
335
336 @item jail の準備をする
337 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
338 それらのファイルをすべて jail にコピーしておきます。@c
339 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
340 同じパスにコピーします。@c
341 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
342 コピーすべきです。
343
344 問題が発生した場合、その原因を突き止める最も簡単な方法は
345 @command{strace} を使って LilyPond を実行することです。@c
346 これによりどのファイルが見当たらないのかがわかります。
347
348 @item LilyPond を実行する
349 @code{noexec} でマウントされた jail の中では、@c
350 外部プログラムを実行することは一切できません。@c
351 そのため、外部プログラムを必要としないバックエンドで
352 LilyPond を実行しなければなりません。@c
353 すでに述べたように、@c
354 jail モードでの LilyPond の実行はスーパーユーザ権限で行われなければならず
355 (もちろん、その権限はすぐに外されます)、@c
356 たぶん @command{sudo} を使います。@c
357 LilyPond が使用可能な CPU 時間を数秒に制限する
358 (例えば、@command{ulimit -t} を使って) というのも良い方法です。@c
359 さらに、OS がサポートしているのなら、@c
360 割り当て可能なメモリ容量を制限するというのも良い方法です。@c
361 @ref{LilyPond in chroot jail} も参照してください。
362 @end table
363
364 @cindex loglevel (ログレベル)
365 @cindex output, verbosity (出力の饒舌さ)
366
367 @item -l, --loglevel=@var{LEVEL}
368 コンソール出力の饒舌さを @var{LEVEL} にセットします。@c
369 取り得る値は以下の通りです:
370
371 @table @code
372
373 @item NONE
374 何も出力しません。エラー メッセージさえも出力しません。
375
376 @item ERROR
377 エラー メッセージだけを出力します。警告や進捗メッセージは出力しません。
378
379 @item WARN
380 警告とエラー メッセージを出力し、進捗メッセージは出力しません。
381
382 @item BASIC_PROGRESS
383 基本的な進捗メッセージ (成功メッセージ)、警告、それにエラー メッセージを@c
384 出力します。
385
386 @item PROGRESS
387 すべての進捗メッセージ、警告とエラー メッセージを出力します。
388
389 @item INFO (デフォルト)
390 進捗メッセージ、警告、エラーそれに追加の実行情報を出力します。
391
392 @item DEBUG
393 饒舌なデバッグ出力を含む、出力可能なメッセージをすべて出力します。
394
395 @end table
396
397 @cindex directory, redirect output (出力をディレクトリにリダイレクトする)
398 @cindex output, setting filename (出力のファイル名を設定する)
399 @cindex output, directory (出力ディレクトリ)
400
401 @item -o, --output=@var{FILE} or @var{FOLDER}
402 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
403 セットした名前のフォルダが存在する場合、そのフォルダに、@c
404 入力ファイルから取ったファイル名で出力されます。@c
405 適切な接尾辞が追加されます
406 (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
407
408 @cindex PS (Postscript), output (PS (PostScript) 出力)
409 @cindex Postscript (PS), output (PostScript (PS) 出力)
410 @cindex output, PS (Postscript) (PS (PostScript) 出力)
411
412 @item --ps
413 PostScript を生成します。
414
415 @cindex PNG (Portable Network Graphics), output (PNG 出力)
416 @cindex output, PNG (Portable Network Graphics) (PNG 出力)
417
418 @item --png
419 各ページの図を PNG フォーマットで生成します。@c
420 これは内部で @code{--ps} を使用します。@c
421 画像の DPI 解像度は以下のようにセットします:
422 @example
423 -dresolution=110
424 @end example
425
426 @cindex PDF (Portable Document Format), output (PDF 出力)
427 @cindex output, PDF (Portable Document Format) (PDF 出力)
428
429 @item --pdf
430 PDF を生成します。@c
431 これは内部で @code{--ps} を使用します。
432
433 @item -v, --version
434 バージョン情報を表示します。
435
436 @item -V, --verbose
437 冗長表示モードにします:
438 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
439
440 @item -w, --warranty
441 GNU LilyPond の保証責任を表示します。@c
442 (GNU LilyPond には@strong{保証責任はありません}!)
443
444 @end table
445
446
447 @node LilyPond の高度なコマンド ライン オプション
448 @unnumberedsubsec LilyPond の高度なコマンド ライン オプション
449 @translationof Advanced command line options for LilyPond
450
451 @table @code
452
453 @item -d@var{[option-name]}=@var{[value]},
454 --define-default=@var{[option-name]}=@var{[value]}
455 これは内部 Scheme 関数に @var{value} をセットします。@c
456 例えば、
457
458 @example
459 -dbackend=svg
460 @end example
461
462 @var{value} が指定されない場合、デフォルト値が使われます。@c
463 例えば、@var{option-name} に接頭辞 @code{no-} を付けると、そのオプションは
464 @q{off} になります
465
466 @cindex point and click, command line (コマンド ラインでポイント&クリックを指定する)
467
468 @example
469 -dpoint-and-click=#f
470 @end example
471
472 @noindent
473
474 @example
475 -dno-point-and-click
476 @end example
477 と同じです。
478 @end table
479
480 @noindent 以下にサポートされるオプションをデフォルト値とともに示します:
481
482 @multitable @columnfractions .33 .16 .51
483 @item @strong{シンボル}
484 @tab @strong{値}
485 @tab @strong{説明/オプション}
486
487 @item @code{anti-alias-factor}
488 @tab @code{1}
489 @tab (与えられた因数を用いて) 高解像度で描画して、その結果をスケール
490 ダウンすることにより、@code{PNG} 画像の輪郭がギザギザになることを防ぎます。
491
492 @item @code{aux-files}
493 @tab @code{#t}
494 @tab @code{eps} バックエンドを使うときに @code{.tex}, @code{.texi},
495 @code{.count} ファイルを作成します。
496
497 @item @code{backend}
498 @tab @code{ps}
499 @tab デフォルト設定です。Postscript ファイル (デフォルト) は@c
500 @code{TTF}, @code{Type1}, それに @code{OTF} フォントを埋め込みます。@c
501 フォントのサブセットは作成されません。@c
502 @q{東洋} の文字セットを用いるとファイルが非常に大きくなる可能性が@c
503 あることに注意してください。
504
505 @item
506 @tab @code{eps}
507 @tab @command{lilypond-book} コマンドのデフォルトです。@c
508 これは、1 つのファイルにすべてのページとフォントを埋め込んだものと、@c
509 ページ毎に分離しフォントを埋め込まない eps ファイルの、両方を吐き出します。
510
511 @item
512 @tab @code{null}
513 @tab 楽譜を出力しません。@code{-dno-print-pages} と同じ効果を持ちます。
514
515 @item
516 @tab @code{scm}
517 @tab 内部的な Scheme ベースの描画コマンドを吐き出します。
518
519 @item
520 @tab @code{svg}
521 @tab ページ毎の SVG ファイルが全ページ分作られます。@c
522 音楽グリフはベクタ画像に変換されますが、文字フォントは SVG ファイルには@c
523 @emph{埋め込まれません}。
524 そのため、テキストや歌詞の最適な描画を得るためには、@c
525 SVG ビュアーに関連するテキストフォントが必要となります。@c
526 SVG ビュアーが対応していないことがあるので、@c
527 @q{フォントリスト} や @q{フォントエイリアス} を使用しないことをお勧めします。@c
528 @emph{Web Open Font Format} (WOFF) ファイルを使うときには、@c
529 追加の @code{svg-woff} スイッチが必要となります。
530 @end multitable
531
532 @noindent
533 @strong{SVG バッグエンド出力の注意:}
534 デフォルトでは、SVG 出力には一般的な @code{font-family} の値
535 @code{serif}, @code{sans-serif}, @code{monospace} が用いられます。@c
536 そのため、@code{svg} バックエンドを使う場合は、@c
537 ソースファイルで明示的に特定のデフォルトフォントを設定する必要があります;
538
539 @quotation
540 @verbatim
541 \paper  {
542   #(define fonts
543     (make-pango-font-tree "TeX Gyre Schola"
544                           "TeX Gyre Heros"
545                           "TeX Gyre Cursor"
546                           (/ staff-height pt 20)))
547 }
548 @end verbatim
549 @end quotation
550
551 @ruser{ドキュメント全体のフォント} も参照してください。
552
553 @multitable @columnfractions .33 .16 .51
554 @item @code{check-internal-types}
555 @tab @code{#f}
556 @tab 全てのプロパティ代入について型チェックを行います。
557
558 @item @code{clip-systems}
559 @tab @code{#f}
560 @tab 楽譜から断片を取り出します。これを使用するには、
561 @code{\layout} ブロックに @code{clip-regions} 関数が定義されている必要が@c
562 あります。@ruser{音楽の断片を抽出する}を参照してください。
563 @option{-dno-print-pages} と一緒に用いられた場合、断片は全く出力されません。
564
565 @item @code{datadir}
566 @tab
567 @tab データファイル パスの接頭辞です (読み取り専用)。
568
569 @item @code{debug-gc}
570 @tab @code{#f}
571 @tab メモリに関するデバッグ用の統計を吐き出します。
572
573 @item @code{debug-gc-assert-parsed-dead}
574 @tab @code{#f}
575 @tab メモリに関するデバッグ用: パースされたオブジェクトへの全ての参照が@c
576 無くなっていることを保証します。これは内部オプションであり、@c
577 @code{`-ddebug-gc'} によって自動的にオンになります。
578
579 @item @code{debug-lexer}
580 @tab @code{#f}
581 @tab Flex 文法解析ソフトウェアをデバッグします。
582
583 @item @code{debug-page-breaking-scoring}
584 @tab @code{#f}
585 @tab 多くの改ページ設定に関するスコアを吐き出します。
586
587 @item @code{debug-parser}
588 @tab @code{#f}
589 @tab Bison パーサをデバッグします。
590
591 @item @code{debug-property-callbacks}
592 @tab @code{#f}
593 @tab コールバック循環をデバッグします。
594
595 @item @code{debug-skylines}
596 @tab @code{#f}
597 @tab スカイライン (訳注: 行ごとのオブジェクトの最高位置と最低位置を線で@c
598 表示するもの) を表示します。
599
600 @item @code{delete-intermediate-files}
601 @tab @code{#t}
602 @tab コンパイルの途中で作成される使用しない中間ファイル @code{.ps} を@c
603 削除します。
604
605 @item @code{dump-cpu-profile}
606 @tab @code{#f}
607 @tab CPU 時間情報を吐き出します (システムに依存します)。
608
609 @item @code{dump-profile}
610 @tab @code{#f}
611 @tab 各ファイルのメモリと CPU 時間情報を吐き出します。
612
613 @item @code{dump-signatures}
614 @tab @code{#f}
615 @tab システムごとに出力情報を吐き出します。回帰テストに用いられます。
616
617 @item @code{embed-source-code}
618 @tab @code{#f}
619 @tab 出力される PDF ドキュメントに LilyPond ソースファイルを埋め込みます。
620
621 @item @code{eps-box-padding}
622 @tab @code{#f}
623 @tab 出力される EPS の左端に与えられた数の余白を追加します
624 (単位は mm です)。
625
626 @item @code{font-export-dir}
627 @tab @code{#f [dir]}
628 @tab PostScript ファイルとしてフォントをエクスポートするディレクトリを@c
629 指定します。
630
631 @item @code{gs-load-fonts}
632 @tab @code{#f}
633 @tab Ghostscript 経由でフォントを読み込みます。
634
635 @item @code{gs-load-lily-fonts}
636 @tab @code{#f}
637 @tab LilyPond のフォントだけを Ghostscript 経由で読み込みます。
638
639 @item @code{gs-never-embed-fonts}
640 @tab @code{#f}
641 @tab Ghostscript が TrueType フォントのみを埋め込むようになり、@c
642 他のフォーマットのフォントは埋め込まれません。
643
644 @item @code{gui}
645 @tab @code{#f}
646 @tab 出力を表示せずに処理を行い、すべての出力をログ ファイルに@c
647 リダイレクトします。
648 @end multitable
649
650 @noindent
651 @strong{Windows ユーザへの注意:} @code{lilypond.exe} がデフォルトで@c
652 すべての進捗情報をコマンド ウィンドウに出力するのに対して、@c
653 @code{lilypond-windows.exe} は進捗情報を出力しません。@c
654 @option{-dgui} オプションを用いることで、出力をログ ファイルに@c
655 リダイレクトさせることができます。
656
657 @multitable @columnfractions .33 .16 .51
658 @item @code{help}
659 @tab @code{#f}
660 @tab このヘルプを表示します。
661
662 @item @code{include-book-title-preview}
663 @tab @code{#t}
664 @tab プレビュー画像にブック タイトルを含めます。
665
666 @item @code{include-eps-fonts}
667 @tab @code{#t}
668 @tab システム毎の EPS ファイルにフォントを含めます。
669
670 @item @code{include-settings}
671 @tab @code{#f}
672 @tab グローバル設定のファイルをインクルードします。このファイルは楽譜の@c
673 処理が開始する前にインクルードされます。
674
675 @item @code{job-count}
676 @tab @code{#f}
677 @tab 与えられた数のジョブで、並行して処理します。
678
679 @item @code{log-file}
680 @tab @code{#f [file]}
681 @tab 2 番目の引数として文字列 @code{FOO} が与えられた場合、出力を@c
682 ログ ファイル @code{FOO} にリダイレクトします。
683
684 @item @code{max-markup-depth}
685 @tab @code{1024}
686 @tab マークアップ ツリーの階層の最大値です。それよりも深い階層を持つ@c
687 マーックアップがある場合、そのマークアップは終了していないと見なされて、@c
688 警告が表示され、null マークアップが返されます。
689
690 @item @code{midi-extension}
691 @tab @code{"midi"}
692 @tab MIDI 出力ファイルのデフォルトのファイル拡張子を与えられた文字列に@c
693 設定します。
694
695 @item @code{music-strings-to-paths}
696 @tab @code{#f}
697 @tab 記譜フォントを用いるテキストをパスに変換します。
698
699 @item @code{paper-size}
700 @tab @code{\"a4\"}
701 @tab デフォルトの紙面サイズを設定します。文字列をエスケープ記号付の 2 重@c
702 引用符 @code{\"} で囲む必要があることに注意してください。
703
704 @item @code{pixmap-format}
705 @tab @code{png16m}
706 @tab 画像出力のための GhostScript の出力フォーマットを設定します。
707
708 @item @code{point-and-click}
709 @tab @code{#t}
710 @tab PDF と SVG 出力に @q{ポイント&クリック} リンクを付け加えます。@c
711 @ref{Point and click} を参照してください。
712
713 @item @code{preview}
714 @tab @code{#f}
715 @tab 通常の出力に加えてプレビュー画像を作成します。
716 @end multitable
717
718 @noindent
719 このオプションはすべてのバックエンド
720 -- @code{pdf}, @code{png}, @code{ps}, @code{eps}, それに @code{svg} --
721 でサポートされますが、@code{scm} ではサポートされません。@c
722 このオプションはタイトルと楽譜の最初の段を保持するファイル
723 -- @code{myFile.preview.extension} という形式のファイル名を持ちます --
724 を出力します。@c
725 @code{\book} ブロックや @code{\bookpart} ブロックが使われている場合、@c
726 @code{\book}, @code{\bookpart}, それに @code{\score} のタイトルが出力@c
727 に譜刻され、@code{\paper} 変数 @code{print-all-headers} が @code{#t} に@c
728 セットされている場合は各 @code{\score} ブロックの最初の段も譜刻されます。
729
730 通常の出力を抑制するには、必要に応じて @option{-dprint-pages} オプション@c
731 または @option{-dno-print-pages} オプションを使ってください。
732
733 @multitable @columnfractions .33 .16 .51
734 @item @code{print-pages}
735 @tab @code{#t}
736 @tab すべてのページを生成します。これがデフォルトです。@option{-dpreview}
737 を使う場合は @option{-dno-print-pages} を組み合わせると有用です。
738
739 @item @code{profile-property-accesses}
740 @tab @code{#f}
741 @tab @code{get_property()} 関数呼び出しの統計を取ります。
742
743 @item @code{protected-scheme-parsing}
744 @tab @code{#t}
745 @tab パーサでインライン Scheme のエラーが発生しても処理を続けます。@c
746 @code{#f} に設定されている場合、エラー終了して、スタック トレースを表示@c
747 します。
748
749 @item @code{read-file-list}
750 @tab @code{#f [file]}
751 @tab 処理する入力ファイルのリストを保持するファイルを指定します。
752
753 @item @code{relative-includes}
754 @tab @code{#f}
755 @tab @code{\include} コマンドを処理するとき、インクルードするファイルを@c
756 (ルート ファイルからではなく) カレント ファイルからの相対位置で検索します。
757
758 @item @code{resolution}
759 @tab @code{101}
760 @tab 生成する @code{PNG} 画像の解像度を与えられた値に設定します。@c
761 単位は dpi です。
762
763 @item @code{safe}
764 @tab @code{#f}
765 @tab @code{.ly} 入力ファイルを信用しません。
766 @end multitable
767
768 @noindent
769 Web サーバ経由で LilyPond 譜刻が利用可能な場合、@option{--safe}
770 オプションか @option{--jail} オプションのどちらかを
771 @b{指定する必要があります}。@c
772 @option{--safe} オプションはインライン Scheme コードが無茶をする
773 -- 例えば、以下のような -- ことを防ぎます。
774
775 @quotation
776 @verbatim
777 #(s ystem "rm -rf /") % 正しく書くのはあまりにも危険
778 {
779   c4^$(ly:gulp-file "/etc/passwd") % 破壊的ではないが悪意がある
780 }
781 @end verbatim
782 @end quotation
783
784 @option{-dsafe} オプションはインライン Scheme 表記を特別なセーフ
785 モジュールの中で評価します。@c
786 これは GUILE @file{safe-r5rs} モジュールに由来しますが、@c
787 @file{scm/safe-lily.scm} でリスト アップされている LilyPond API 関数の@c
788 いくつかも追加されています。
789
790 さらに、セーフ モードでは @code{\include} は許可されず、@TeX{} 文字列の@c
791 中でバックスラッシュを使うこともできません。@c
792 また、セーフ モードでは LilyPond 変数を Scheme にインポートすることも@c
793 できません。
794
795 @option{-dsafe} はリソースの過使用を検出 @emph{しません} ので、@c
796 このオプションを指定してもプログラムをハングさせられる可能性があります
797 -- 例えば、サイクリック (巡回) データ構造をバックエンドに埋め込むことに@c
798 よってです。
799 そのため、LilyPond を一般公開する Web サーバで使用する場合、プロセスの@c
800 CPU とメモリ使用を制限すべきです。
801
802 セーフ モードは多くの有用な LilyPond 楽譜断片がコンパイルされることを@c
803 妨げます。
804
805 @option{--jail} はさらに安全な代替手段ですが、セットアップにかかる手間も@c
806 増えます。@ref{Basic command line options for LilyPond} を参照してください。
807
808 @multitable @columnfractions .33 .16 .51
809 @item @code{separate-log-files}
810 @tab @code{#f}
811 @tab 入力ファイル @code{FILE1.ly}, @code{FILE2.ly}, 等に対するログ
812 データをファイル @code{FILE1.log}, @code{FILE2.log}@dots{} に出力します。
813
814 @item @code{show-available-fonts}
815 @tab @code{#f}
816 @tab 使用可能なフォント名をリスト アップします。
817
818 @item @code{strict-infinity-checking}
819 @tab @code{#f}
820 @tab 浮動小数点の例外 @code{Inf} と @code{NaN} に遭遇した時、@c
821 強制終了します。
822
823 @item @code{strip-output-dir}
824 @tab @code{#t}
825 @tab 出力ファイル名を構築する時に入力ファイルのディレクトリを使用@c
826 しません。
827
828 @item @code{strokeadjust}
829 @tab @code{#f}
830 @tab PostScript に線幅補正 (stroke adjustment) を強制します。このオプションは@c
831 普通、PDF ファイルが PostScript 出力から生成されている場合に意味があります
832 (線幅補正は、低解像度のビットマップ デバイスに対して自動的に有効になります)。@c
833 このオプションを指定しない場合、PDF ビューアは典型的な解像度の@c
834 スクリーンにおいて、一貫性の無い符幹の幅を出力しようとします。@c
835 このオプションは印刷結果の品質には目立って影響せず、PDF のファイル サイズを@c
836 大きく増加させます。
837
838 @item @code{svg-woff}
839 @tab @code{#f}
840 @tab このオプションは @code{svg} バックエンドで Web Open Format (WOFF)
841 フォントを使うために必要となります。@c
842 ページ毎の SVG ファイルが全ページ分作られます。@c
843 LilyPond 自身の音楽グリフを除き、フォントは埋め込まれません。@c
844 そのため、テキストや歌詞の最適な描画を得るためには、@c
845 SVG ビュアーにフォントが必要となります。@c
846 SVG ビュアーが対応していないことがあるので、@c
847 @q{フォントエイリアス} や @q{フォントリスト} を使用しないことをお勧めします。@c
848
849 @item @code{trace-memory-frequency}
850 @tab @code{#f}
851 @tab Scheme セルの 1 秒毎の使用数を記録します。結果を @code{FILE.stacks}
852 と @code{FILE.graph} に吐き出します。
853
854 @item @code{trace-scheme-coverage}
855 @tab @code{#f}
856 @tab Scheme ファイルの適用範囲を @code{FILE.cov} に記録します。
857
858 @item @code{verbose}
859 @tab @code{#f}
860 @tab 饒舌な出力。つまり、loglevel を DEBUG に設定します。
861
862 @item @code{warning-as-error}
863 @tab @code{#f}
864 @tab すべての警告と @q{プログラミング エラー} をエラーに変更します。
865 @end multitable
866
867
868 @node 環境変数
869 @unnumberedsubsec 環境変数
870 @translationof Environment variables
871
872 @cindex LANG
873 @cindex LILYPOND_DATADIR
874
875 @command{lilypond} は以下の環境変数を認識します:
876 @table @code
877 @item LILYPOND_DATADIR
878 これはデフォルトで参照する@c
879 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
880 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
881 サブディレクトリを保持しているべきです。
882
883 @item LANG
884 これは警告メッセージの言語を選択します。
885
886 @item LILYPOND_LOGLEVEL
887 デフォルトのログレベル。@c
888 明示的にログレベルが指定されずに LilyPond が呼び出された場合
889 (すなわち @option{--loglevel} コマンド ライン オプションが@c
890 指定されなかった場合)、@c
891 この値が使用されます。
892
893 @item LILYPOND_GC_YIELD
894 メモリ管理を調節する変数 (単位はパーセント) です。@c
895 大きな値は LilyPond に多くのメモリ使用を許し、@c
896 小さな値だと CPU 使用時間が長くなります。@c
897 デフォルト値は @code{70} です。
898 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
899 これはメモリ管理の振る舞いを調整するパーセント値です。@c
900 高い値にするとプログラムはより多くのメモリを使用し、@c
901 低い値にするとより多くの CPU 時間を使用します。@c
902 デフォルト値は @code{70} です。
903
904 @end table
905
906 @node chroot jail 環境で LilyPond を実行する
907 @unnumberedsubsec chroot jail 環境で LilyPond を実行する
908 @translationof LilyPond in chroot jail
909
910 LilyPond を chroot jail 環境で実行させるようサーバをセットアップすることは@c
911 複雑な作業です。@c
912 以下にステップをリスト アップします。@c
913 各ステップの中にある例は Ubuntu GNU/Linux 用であり、@c
914 @code{sudo} の使用が必要となるかもしれません。
915
916 @itemize
917
918 @item 必要なパッケージをインストールします:
919 LilyPond, GhostScript, それに ImageMagick。
920
921 @item @code{lily} という名前のユーザを作成します:
922
923 @example
924 adduser lily
925 @end example
926
927 @noindent
928 このコマンドはユーザ @code{lily} のためにホーム フォルダ (@code{/home/lily})
929 と新しいグループも作成します。
930
931 @item ユーザ @code{lily} のホーム フォルダで、@c
932 独立したファイルシステムとして使用するファイルを作成します:
933
934 @example
935 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
936 @end example
937
938 @noindent
939 このコマンドは jail ファイルシステムとして使用する
940 200MB のファイルを作成します。
941
942 @item ループ デバイスを作成し、ファイルシステムを作ってそれをマウントし、@c
943 それからユーザ @code{lily} が書き込めるフォルダを作成します:
944
945 @example
946 mkdir /mnt/lilyloop
947 losetup /dev/loop0 /home/lily/loopfile
948 mkfs -t ext3 /dev/loop0 200000
949 mount -t ext3 /dev/loop0 /mnt/lilyloop
950 mkdir /mnt/lilyloop/lilyhome
951 chown lily /mnt/lilyloop/lilyhome
952 @end example
953
954 @item サーバのコンフィグレーションで、JAIL は @code{/mnt/lilyloop} となり、@c
955 DIR は @code{/lilyhome} となります。
956
957 @item 以下に示すサンプル スクリプトのように必要なファイルをコピーして
958 jail の中に大きなディレクトリ ツリーを作成します。
959
960 @code{sed} を使うことで必要な実行形式ファイルをコピーすることができます:
961
962 @example
963 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
964   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
965     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
966       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
967 @end example
968
969 @end itemize
970
971 @subheading 32-bit Ubuntu 8.04 用のスクリプト例
972
973 @example
974 #!/bin/sh
975 ## defaults set here
976
977 username=lily
978 home=/home
979 loopdevice=/dev/loop0
980 jaildir=/mnt/lilyloop
981 # the prefix (without the leading slash!)
982 lilyprefix=usr/local
983 # the directory where lilypond is installed on the system
984 lilydir=/$lilyprefix/lilypond/
985
986 userhome=$home/$username
987 loopfile=$userhome/loopfile
988 adduser $username
989 dd if=/dev/zero of=$loopfile bs=1k count=200000
990 mkdir $jaildir
991 losetup $loopdevice $loopfile
992 mkfs -t ext3 $loopdevice 200000
993 mount -t ext3 $loopdevice $jaildir
994 mkdir $jaildir/lilyhome
995 chown $username $jaildir/lilyhome
996 cd $jaildir
997
998 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
999 chmod a+w tmp
1000
1001 cp -r -L $lilydir $lilyprefix
1002 cp -L /bin/sh /bin/rm bin
1003 cp -L /usr/bin/convert /usr/bin/gs usr/bin
1004 cp -L /usr/share/fonts/truetype usr/share/fonts
1005
1006 # Now the library copying magic
1007 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
1008   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
1009     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
1010       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
1011         | sed '/.*=>.*/d'; done | sh -s
1012
1013 # The shared files for ghostscript...
1014       cp -L -r /usr/share/ghostscript usr/share
1015 # The shared files for ImageMagick
1016       cp -L -r /usr/lib/ImageMagick* usr/lib
1017
1018 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
1019 ### you should be able to run:
1020 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
1021 ### LD_LIBRARY_PATH - this is crucial
1022       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
1023 @end example
1024
1025 @c " keep quote signs balanced for context-sensitive editors
1026
1027
1028 @node エラー メッセージ
1029 @section エラー メッセージ
1030 @translationof Error messages
1031
1032 @cindex error messages (エラー メッセージ)
1033 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
1034 表示される可能性があります。
1035
1036 @table @emph
1037
1038 @item Warning
1039 @cindex warning (警告)
1040 何か疑わしいことがあります。@c
1041 あなたが何か普通でないことをリクエストしている場合は、@c
1042 そのメッセージを理解して、それを無視することができます。@c
1043 しかしながら、@c
1044 Warning は通常、入力ファイルに何か問題があることを示しています。
1045
1046 @item Error
1047 何か明らかに問題があります。@c
1048 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
1049 次のステップは飛ばされます。
1050
1051 @item Fatal error
1052 @cindex error (エラー)
1053 @cindex fatal error (致命的なエラー)
1054 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
1055 これが起きることは稀です。@c
1056 これが起こるのはたいてい、フォントのインストールに問題があるためです。
1057
1058 @item Scheme error
1059 @cindex trace, Scheme (Scheme トレース)
1060 @cindex call trace (トレースを呼び出す)
1061 @cindex Scheme error (Scheme エラー)
1062 Scheme コードの実行中に発生するこのエラーは
1063 Scheme インタプリタによって引き起こされます。@c
1064 冗長オプション
1065 (@option{-V} または @option{--verbose})
1066 付きで実行している場合、@c
1067 問題となっている関数呼び出しの呼び出し追跡が表示されます。
1068
1069 @item Programming error
1070 @cindex Programming error (プログラミング エラー)
1071 内部的な矛盾があります。@c
1072 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
1073 通常、それらは無視できます。@c
1074 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
1075
1076 @item Aborted (core dumped)
1077 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
1078 示しています。@c
1079 そのようなエラーは決定的なものだと考えられます。@c
1080 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
1081 @end table
1082
1083 @cindex errors, message format (エラー メッセージの形式)
1084 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
1085 エラー メッセージは以下のような形式になります:
1086
1087 @example
1088 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
1089 @var{offending input line}
1090 @end example
1091
1092 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
1093 例えば:
1094
1095 @example
1096 test.ly:2:19: error: not a duration: 5
1097   @{ c'4 e'
1098            5 g' @}
1099 @end example
1100
1101 これらの位置は LilyPond が警告やエラーが発生した位置を@c
1102 最善を尽くして推測したものですが、@c
1103 (ごく当たり前のことですが) 警告とエラーは@c
1104 何か予期しないことが起こったときに発生するものです。@c
1105 入力ファイルの示された行にエラーを見つけることができない場合は、@c
1106 示された位置の 1 行か 2 行上をチェックしてみてください。
1107
1108 診断は多くの処理段階のあらゆる時点で発生し得ることに注意してください。@c
1109 例えば、入力が複数回処理される(つまり、MIDI とレイアウト出力)@c
1110 または同じ音楽変数がコンテキストで使われると、@c
1111 同じメッセージが何回か現れることがあります。
1112
1113 エラーについての更なる情報が @ref{一般的なエラー} で提供されています。
1114
1115
1116 @node 一般的なエラー
1117 @section 一般的なエラー
1118 @translationof Common errors
1119
1120 以下で説明するエラーがしばしば発生しますが、@c
1121 その原因は明白でなかったり、見つけにくかったりします。@c
1122 目を通しておくと、それらのエラーに対処しやすくなります。
1123
1124
1125 @menu
1126 * 楽譜がページからはみ出る::
1127 * 余計な譜が表示される::
1128 * エラー メッセージ Unbound variable %::
1129 * エラー メッセージ FT_Get_Glyph_Name::
1130 * 警告 staff affinities should only decrease::
1131 * エラー メッセージ unexpected new::
1132 * 警告 this voice needs a voiceXx or shiftXx setting::
1133 @end menu
1134
1135 @node 楽譜がページからはみ出る
1136 @unnumberedsubsec 楽譜がページからはみ出る
1137 @translationof Music runs off the page
1138
1139 楽譜がページの右マージンを越えてはみ出る、あるいは過度に密集するのは、@c
1140 ほぼ間違いなく音符の演奏時間に誤りがあり、@c
1141 小節の最後の音符が小節線を越えてしまうためです。@c
1142 ある小節の最後の音符が自動的に挿入される小節線の所で終わらなくても@c
1143 無効ではありません。@c
1144 なぜなら、その音符は次の小節に持ち越されるためです。@c
1145 しかしながら、そのような持ち越しが発生する小節が長く続くと、@c
1146 楽譜は密集して表示されたり、ページからはみ出たりします。@c
1147 ページからはみ出るのは、@c
1148 自動改行を挿入できるのは正しく終了する小節
1149 (その小節のすべての音符が小節の中で終了しています)
1150 の後ろだけだからです。@c
1151
1152 @warning{誤った演奏時間は改行を抑制し、結果として楽譜が過度に密集したり、c@
1153 ページからはみ出たりする可能性が生じます。}
1154
1155 小節チェックを使用していれば、誤った演奏時間を簡単に見つけることができます。@c
1156 @ruser{小節と小節番号のチェック} を参照してください。
1157
1158 あなたがそのような音符が持ち越される小節を続けることを意図しているのであれば、@c
1159 改行させたい場所に不可視の小節線を挿入する必要があります。@c
1160 詳細は
1161 @ruser{小節線} を参照してください。
1162
1163
1164 @node 余計な譜が表示される
1165 @unnumberedsubsec 余計な譜が表示される
1166 @translationof An extra staff appears
1167
1168 コンテキストが @code{\new} や @code{\context} で明示的に作成されていない場合、@c
1169 既存のコンテキストには適用できないコマンドに遭遇した時点で@c
1170 暗黙的に作成されます。@c
1171 単純な楽譜では、コンテキストの自動作成は有用であり、@c
1172 LilyPond マニュアルのほとんどの例はこの手法を用いています。@c
1173 しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を@c
1174 発生させてしまいます。@c
1175 例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを@c
1176 意図していますが、@c
1177 結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
1178
1179 @lilypond[quote,verbatim,fragment]
1180 \override Staff.NoteHead.color = #red
1181 \new Staff { a' }
1182 @end lilypond
1183
1184 これは、(符頭色の) オーバライドが処理される時に
1185 @code{Staff} コンテキストが存在していないため、@c
1186 @code{Staff} コンテキストが暗黙的に作成され、@c
1187 そのコンテキストにオーバライドが適用されるからです。@c
1188 その後に @code{\new Staff} コマンドにより@c
1189 もう 1 つ別の @code{Staff} コンテキストが作成され、@c
1190 そこに音符が配置されます。@c
1191 すべての符頭を赤にする正しいコードは以下のようになります:
1192
1193 @lilypond[quote,verbatim]
1194 \new Staff {
1195   \override Staff.NoteHead.color = #red
1196   a'
1197 }
1198 @end lilypond
1199
1200 @node エラー メッセージ Unbound variable %
1201 @unnumberedsubsec エラー メッセージ Unbound variable %
1202 @translationof Error message Unbound variable %
1203
1204 このエラー メッセージは、@emph{Scheme} 形式ではなく @emph{LilyPond} 形式の@c
1205 コメントを含む Scheme ルーチンが呼び出されるたびに、@c
1206 コンソール出力またはログ ファイルの最後に表示されます。
1207
1208 LilyPond 形式のコメントはパーセント記号 (@code{%}) で始まり、@c
1209 Scheme ルーチンの中で使うことはできません。@c
1210 Scheme 形式のコメントはセミコロン (@code{;}) で始まります。
1211
1212 @node エラー メッセージ FT_Get_Glyph_Name
1213 @unnumberedsubsec エラー メッセージ FT_Get_Glyph_Name
1214 @translationof Error message FT_Get_Glyph_Name
1215
1216 入力ファイルが非 ASCII キャラクタを保持していて、@c
1217 UTF-8 エンコードで保存されていない場合、@c
1218 このエラー メッセージがコンソール出力やログ ファイルに表示されます。@c
1219 詳細は、
1220 @ruser{テキスト エンコーディング} を参照してください。
1221
1222
1223 @node 警告 staff affinities should only decrease
1224 @unnumberedsubsec 警告 staff affinities should only decrease
1225 @translationof Warning staff affinities should only decrease
1226
1227 この警告は、譜刻された出力の中に譜が無い場合に表示されます。@c
1228 例えば、リード譜に @code{ChordName} コンテキストと @code{Lyrics} コンテキスト@c
1229 しか無い場合です。@c
1230 この警告は、入力の始めに以下を挿入することで@c
1231 譜として振舞うコンテキストを作ることで回避できます:
1232
1233 @example
1234 \override VerticalAxisGroup.staff-affinity = ##f
1235 @end example
1236
1237 @noindent
1238 詳細は @ruser{システム内部の可変な垂直方向のスペース} の
1239 @qq{譜ではない行のスペース} を参照してください。
1240
1241
1242 @node エラー メッセージ unexpected new
1243 @unnumberedsubsec エラー メッセージ unexpected @code{@bs{}new}
1244 @translationof Error message unexpected new
1245
1246 @code{\score} ブロックは @emph{1 つの} 音楽表記を含む必要があります。
1247 @code{\new Staff} や @code{\new StaffGroup}、その他 @code{\new} で生成される@c
1248 同様のコンテキストが波括弧 @code{@{ @dots{} @}} や@c
1249 二重の山括弧 @code{<< @dots{} >>} で囲まれずに複数存在する場合に、@c
1250 エラー メッセージが出力されます。以下のようにです:
1251
1252 @example
1253 \score @{
1254   % Invalid! Generates error: syntax error, unexpected \new
1255   \new Staff @{ @dots{} @}
1256   \new Staff @{ @dots{} @}
1257 @}
1258 @end example
1259
1260 エラーを避けるためには、全ての @code{\new} 文を波括弧あるいは二重の山括弧で@c
1261 囲んでください。
1262
1263 波括弧は連続的に @code{\new} 文を導入します:
1264
1265 @lilypond[quote,verbatim]
1266 \score {
1267   {
1268     \new Staff { a' a' a' a' }
1269     \new Staff { g' g' g' g' }
1270   }
1271 }
1272 @end lilypond
1273
1274 @noindent
1275 しかし、二重の山括弧を用いるべき場面の方が多いでしょう。@c
1276 譜は並行に (つまり、同時に) 導入されます:
1277
1278 @lilypond[quote,verbatim]
1279 \score {
1280   <<
1281     \new Staff { a' a' a' a' }
1282     \new Staff { g' g' g' g' }
1283   >>
1284 }
1285 @end lilypond
1286
1287 @node 警告 this voice needs a voiceXx or shiftXx setting
1288 @unnumberedsubsec 警告 this voice needs a @code{@bs{}voiceXx} or @code{@bs{}shiftXx} setting
1289 @translationof Warning this voice needs a voiceXx or shiftXx setting
1290
1291 2 つの異なるボイスが同じ向きの符幹を持ち、それらが同じタイミングで出現する@c
1292 時、ボイスにシフトが指定されていない場合に
1293 @samp{warning: this voice needs a \voiceXx or \shiftXx setting}
1294 という警告メッセージが LilyPond ファイルをコンパイルする際に出力されます。@c
1295 この警告は符幹が見えない場合 (例えば、全音符) にも、@c
1296 同じピッチにある短い方の音符の符幹が同じ向きにある場合、出力されます。
1297
1298 符幹の向きは、@code{\voiceOne} などによって指定されない限り、@c
1299 譜の中での音符の位置に依存します。このとき、警告は@c
1300 符幹が同じ向きになってしまった場合 -- つまり、複数のボイスが譜の上半分または@c
1301 下半分に固まってしまった場合 -- にのみ出力されます。
1302
1303 @code{\voiceOne} などを用いることによって、符幹の向きとシフトを@c
1304 指定したボイスで音符を配置した場合、これらの警告を回避することができます。
1305
1306 より大きいボイス番号を持つ音符 (例えば @code{\voiceThree} など) は、@c
1307 音符列の衝突を避けるために自動的に移動します。符幹のある音符に対しては@c
1308 移動が目に見えますが、全音符は実際に符頭が衝突しない限り、あるいは@c
1309 ボイスが自然な順番に配置されていない場合 (例えば @code{\voiceThree} が
1310 @code{\voiceOne} よりも高い位置にある場合) ではない限り、@c
1311 移動しているように見えません。
1312
1313 @seealso
1314 @rlearning{ボイスを明示的にインスタンス化する},
1315 @rlearning{実際の音楽からの例},
1316 @ruser{単一譜の多声},
1317 @ruser{衝突の解決}