]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/usage/running.itely
Doc-ja: update UA and NR
[lilypond.git] / Documentation / ja / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: f66e6785e42f181199f6cf357434f60baba1e149
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.15.18"
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{チュートリアル} を読んでください。
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 * chroot jail 環境で LilyPond を実行する::
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 stdin から入力を読み込む場合には、@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 内部からいかなるシステム デフォルトも変更しないよう@c
91 注意してください。}
92
93 @file{filename.ly} が複数の @code{\score} を含んでいる場合、@c
94 2 つ目以降の score は
95 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
96 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
97 以下の内容を含んでいる入力ファイルは
98
99 @example
100 #(define output-suffix "violin")
101 \book @{ @dots{} @}
102 #(define output-suffix "cello")
103 \book @{ @dots{} @}
104 @end example
105
106 @noindent
107 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
108
109
110 @unnumberedsubsubsec 標準シェル コマンド
111
112 シェル (例えばコマンド ウィンドウ) がリダイレクトをサポートしているのであれば、@c
113 以下のコマンドでコンソール出力をファイルにリダイレクトすると役に立つかもしれません。
114
115 @itemize
116
117 @item
118 @code{lilypond file.ly 1>stdout.log} 通常出力をリダイレクトします
119
120 @item
121 @code{lilypond file.ly 2>stderr.log} エラー メッセージをリダイレクトします。
122
123 @item
124 @code{lilypond file.ly &>all.log} すべての出力をリダイレクトします
125
126 @end itemize
127
128 あなたの使用しているシェルがこれらのオプションをサポートしているかどうか、@c
129 あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。@c
130 これらはシェル コマンドであり、lilypond とは無関係です。
131
132
133 @node lilypond のコマンド ライン オプション
134 @unnumberedsubsec @command{lilypond} のコマンド ライン オプション
135 @translationof Command line options for lilypond
136
137 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
138 @cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション)
139 @cindex options, command line (コマンド ライン オプション)
140 @cindex switches (切り換え)
141
142 以下のオプションがサポートされます:
143
144 @table @code
145
146 @item -d,--define-default=@var{var}=@var{val}
147 これは内部プログラム オプション @var{var} に
148 Scheme 値 @var{val} をセットします。@c
149 @var{val} が提供されていない場合、@var{#t} が使用されます。@c
150 オプションを OFF にするには、@var{var} の接頭辞として @code{no-} を付けます。@c
151 つまり、
152
153 @cindex point and click, command line (コマンド ラインからポイント&クリックを制御する)
154
155 @example
156 -dno-point-and-click
157 @end example
158
159 @noindent
160
161 @example
162 -dpoint-and-click=#f
163 @end example
164 と同じです。
165
166 以下のオプションがサポートされます:
167
168 @cindex help, command line (コマンド ライン ヘルプ)
169
170 @table @code
171 @item help
172 @code{lilypond -dhelp} を実行すると@c
173 使用可能な @option{-d} オプションがすべて表示されます。
174
175 @cindex paper-size, command line (コマンド ラインで paper-size を指定する)
176
177 @item paper-size
178 このオプションはデフォルトの用紙サイズをセットします。
179 @example
180 -dpaper-size=\"letter\"
181 @end example
182
183 @noindent
184 文字列はエスケーブされたクォート ( @code{\"} ) で@c
185 囲まれていなければならないということに注意してください。
186 @c Match " in previous line to help context-sensitive editors
187
188 @item safe
189 @code{.ly} 入力を信用してはいけません。
190
191 Web サーバを通じて LilyPond フォーマットが利用可能な場合、@c
192 @option{--safe} オプションか @option{--jail} オプションの@c
193 どちらかを @b{渡さなければなりません}。@c
194 @option{--safe} オプションは@c
195 以下のようなインライン Scheme コードが大混乱をもたらすことを防ぎます:
196
197 @quotation
198 @verbatim
199 #(system "rm -rf /")
200 {
201   c4^$(ly:gulp-file "/etc/passwd")
202 }
203 @end verbatim
204 @end quotation
205
206 訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、@c
207 export (ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。
208
209 @option{-dsafe} オプションはインライン Scheme 表記を@c
210 特別なセーフ モジュールの中で評価します。@c
211 このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生したものですが、@c
212 LilyPond API 関数をいくつか追加しています。@c
213 これらの関数は @file{scm/safe-lily.scm} でリスト アップされています。
214
215 さらに、セーフ モードは @code{\include} 指示を却下し、@c
216 @TeX{} 文字列の中にあるバックスラッシュを無効にします。
217
218 セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。
219
220 @option{-dsafe} はリソースの乱用を検出 @emph{しません}。@c
221 例えば循環データ構造体をバックエンドに食わせることで、@c
222 プログラムをハングさせることは可能です。@c
223 そのため、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、@c
224 そのプロセスの CPU とメモリの両方の使用は制限されるべきです。
225
226 セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c
227 @option{--jail} はより安全な代替オプションですが、@c
228 セット アップにより多くの作業を必要とします。
229
230 @cindex output format, setting (出力フォーマットを設定する)
231
232 @item backend
233 バックエンドに対して使用する出力フォーマットを指定します。@c
234 @code{format} の選択肢には以下があります:
235
236 @table @code
237 @item ps
238
239 @cindex PostScript output (PostScript 出力)
240 PostScript
241
242 Postscript ファイルは TTF, Type1, それに OTF フォントを含んでいます。@c
243 これらのフォントのサブセット化
244 (訳者: フォント セットを使用するフォントに限定すること) は行われません。@c
245 東洋の文字セットを使用する場合、巨大なファイルになる可能性があります。
246
247 @item eps
248
249 @cindex Postscript, encapsulated (EPS)
250 @cindex EPS (Encapsulated PostScript) (EPS)
251
252 縮約された PostScript (EPS)。@c
253 これは各ページ (システム) を@c
254 フォントを持たない個別の @file{EPS} ファイルとして吐き出し、@c
255 フォントを含めたすべてのページ (システム) を持つ
256 @file{EPS} ファイルを 1 つ吐き出します。
257
258 このモードは @command{lilypond-book} でデフォルトで使用されます。
259
260 @item svg
261
262 @cindex SVG (Scalable Vector Graphics)
263
264 SVG (Scalable Vector Graphics)。@c
265 これは各ページを埋め込みフォントをフォントを持たない個別の
266 @file{SVG} ファイルとして吐き出します。@c
267 最適な描画を得るために、LilyPond インストールに含まれている
268 Century Schoolbook フォントをインストールすることをお勧めします。@c
269 UNIX では、単に LilyPond ディレクトリ
270 (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から
271 @file{~/.fonts/} にコピーするだけです。@c
272 SVG 出力は SVG エディタやユーザ エージョントと互換性があります。
273
274 @item scm
275
276 @cindex Scheme dump (Scheme ダンプ)
277 @cindex output, Scheme dump (Scheme ダンプ出力)
278
279 生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。
280
281 @item null
282 譜刻された楽譜を出力しません。@c
283 @option{-dno-print-pages} と同じ効果を持ちます。
284
285 @end table
286
287 例: @code{lilypond -dbackend=svg @var{filename}.ly}
288
289 @item preview
290
291 @cindex preview, command line (コマンド ライン プレビュー)
292
293 このオプションはすべてのバックエンド
294 -- @code{scm} を除く @code{pdf}, @code{png}, +@code{ps}, @code{eps},
295 それに @code{svg} --
296 でサポートされます。@c
297 生成される出力は @code{ファイル名.preview.拡張子} という形式のファイル名で、@c
298 タイトルと楽譜の最初の段を保持します。@c
299 @code{\book} ブロックまたは @code{\bookpart} ブロックが使われている場合、@c
300 出力には各 @code{\book} または @code{\bookpart} のタイトルが譜刻され、@c
301 @code{\paper} の変数 @code{print-all-headers} が @code{#t} に@c
302 セットされている場合は各 @code{\score} ブロックの最初の段も譜刻されます。
303
304 通常の出力を抑制するには、必要に応じて @option{-dprint-pages} または
305 @option{-dno-print-pages} オプションを使用してください。
306
307 @item gui
308 コマンド ラインに何も出力せず、@c
309 すべての出力をログ ファイルにリダイレクトします。
310 +
311 Windows ユーザへの注意: デフォルトで、@code{lilypond.exe} は@c
312 すべての進捗情報をコマンド ウィンドウに出力しますが、@c
313 @code{lilypond-windows.exe} は出力しません。@c
314 出力をログ ファイルにリダイレクトさせるには、@c
315 @option{-dgui} オプションをを使います。
316
317 @item print-pages
318
319 すべてのページを生成します。@c
320 デフォルトです。@option{-dno-print-pages} は
321 @option{-dpreview} と組み合わせて使うと有用です。
322
323 @end table
324
325 @cindex Scheme, expression evaluation (Scheme 表記の評価)
326 @cindex expression evaluation, Scheme (Scheme 表記の評価)
327
328 @item -e,--evaluate=@var{expr}
329 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
330 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
331
332 Scheme 表記は @code{guile-user} モジュールの中で評価されます。@c
333 そのため、@var{expr} の中で定義を使いたいのならば、@c
334 コマンド ラインで以下を使用して、
335
336 @example
337 lilypond -e '(define-public a 42)'
338 @end example
339
340 @noindent
341 @code{.ly} ファイルの先頭に以下を含めます:
342
343 @example
344 #(use-modules (guile-user))
345 @end example
346
347 @warning{Windows ユーザはシングル クォートではなく、@c
348 ダブル クォートを使う必要があります。}
349
350 @cindex output, format (出力のフォーマット)
351 @cindex format, output (出力のフォーマット)
352
353 @item -f,--format=@var{format}
354 フォーマットを指定します。@c
355 @code{format} の選択肢は @code{ps}, @code{pdf}, それに @code{png} です。
356
357 例: @code{lilypond -fpng @var{filename}.ly}
358
359 @item -h,--help
360 使用方法の要約を表示します。
361
362 @item -H,--header=@var{FIELD}
363 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
364
365 @item -i,--init=@var{file}
366 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
367
368 @cindex file searching (ファイル サーチ)
369 @cindex search path (サーチ パス)
370
371 @item --include, -I=@var{directory}
372 @var{directory} を入力ファイルのサーチ パスに追加します。
373
374 複数の -I オプションを与えることができます。@c
375 検索は最初に指定されたディレクトリから開始され、@c
376 入力ファイルが見つからない場合は次に指定されたディレクトリを検索します。
377
378 @cindex chroot jail, running inside (chroot jail 内部で実行する)
379
380 @item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
381 @command{lilypond} を chroot jail 環境で実行します。@c
382 (訳者: chroot jail 環境とはセキュリティのために@c
383 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
384
385 @option{--jail} オプションは、@c
386 Web サーバを通じての LilyPond 譜刻を提供する時や
387 LilyPond が外部から提供されたソースを実行する時に、@c
388 @code{--safe} よりも自由度の高い代替手段を提供します。
389
390 @code{--jail} オプションはコンパイル プロセスの開始直前に
391 @command{lilypond} の ルートを @var{jail} に変更します。@c
392 それからユーザとグループを提供された環境にマッチするように変更し、@c
393 カレント ディレクトリは @var{dir} に変更されます。@c
394 このセットアップは jail (牢獄) から抜け出せないということを
395 (少なくとも理論的には) 保証します。@c
396 @code{--jail} を指定した @command{lilypond} の実行は@c
397 root (ユーザ名) として行われる必要があります。@c
398 通常、これは @command{sudo} を用いた安全な方法で行われます。
399
400 jail のセットアップは少々デリケートな問題です。@c
401 LilyPond がソースをコンパイルするのに必要とされるものすべてを
402 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
403 一般的なセットアップには以下の項目が含まれます:
404
405 @table @asis
406 @item 専用のファイルシステムをセットアップする
407 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
408 マウントするための専用ファイルシステムを作成すべきです。@c
409 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
410 デバイスに直接書き込むことは不可能になります。@c
411 専用のパーティションを作成することを望まないのなら、@c
412 適当なサイズのファイルを作成し、@c
413 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
414 専用ファイルシステムはさらに、@c
415 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
416
417 @item 専用のユーザをセットアップする
418 jail 内部で LilyPond を実行する際、@c
419 低い権限を持つ専用のユーザとグループ
420 (仮に @code{lily}/@code{lily} とします)
421 で行うべきです。@c
422 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
423 それを @var{dir} に渡します。
424
425 @item jail の準備をする
426 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
427 それらのファイルをすべて jail にコピーしておきます。@c
428 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
429 同じパスにコピーします。@c
430 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
431 コピーすべきです。
432
433 問題が発生した場合、その原因を突き止める最も簡単な方法は
434 @command{strace} を使って LilyPond を実行することです。@c
435 これによりどのファイルが見当たらないのかがわかります。
436
437 @item LilyPond を実行する
438 @code{noexec} でマウントされた jail の中では、@c
439 外部プログラムを実行することは一切できません。@c
440 そのため、外部プログラムを必要としないバックエンドで
441 LilyPond を実行しなければなりません。@c
442 すでに述べたように、@c
443 jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず
444 (もちろん、その権限はすぐに外されます)、@c
445 たぶん @command{sudo} を使います。@c
446 LilyPond が使用可能な CPU 時間を数秒に制限する
447 (例えば、@command{ulimit -t} を使って) というのは良いアイディアです。@c
448 さらに、OS がサポートしているのなら、@c
449 割り当て可能なメモリ容量を制限するというのも良いアイディアです。
450 @end table
451
452 @cindex loglevel (ログレベル)
453 @cindex output, verbosity (出力の饒舌さ)
454
455 @item -l,--loglevel=@var{LEVEL}
456 コンソール出力の饒舌さを @var{LEVEL} にセットします。@c
457 取り得る値は以下の通りです:
458
459 @table @code
460
461 @item NONE
462 何も出力しません。エラー メッセージさえも出力しません。
463
464 @item ERROR
465 エラー メッセージだけを出力します。警告や進捗メッセージは出力しません。
466
467 @item WARN
468 警告とエラー メッセージを出力し、進捗メッセージは出力しません。
469
470 @item BASIC_PROGRESS
471 基本的な進捗メッセージ (成功メッセージ)、警告、それにエラー メッセージを@c
472 出力します。
473
474 @item PROGRESS
475 しべての進捗メッセージ、警告とエラー メッセージを出力します。
476
477 @item INFO (デフォルト)
478 進捗メッセージ、警告、エラーそれに追加の実行情報を出力します。
479
480 @item DEBUG
481 饒舌なデバッグ出力を含む、出力可能なメッセージをすべて出力します。
482
483 @end table
484
485 @cindex directory, redirect output (出力をディレクトリにリダイレクトする)
486 @cindex output, setting filename (出力のファイル名を設定する)
487 @cindex output, directory (出力ディレクトリ)
488
489 @item -o,--output=@var{FILE} or @var{FOLDER}
490 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
491 セットした名前のフォルダが存在する場合、そのフォルダに出力されます。@c
492 適切な接尾辞が追加されます
493 (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
494
495 @item --ps
496 PostScript を生成します。
497
498 @cindex PNG (Portable Network Graphics), output (PNG 出力)
499 @cindex output, PNG (Portable Network Graphics) (PNG 出力)
500
501 @item --png
502 各ページの図を PNG フォーマットで生成します。@c
503 これは内部で @code{--ps} を使用します。@c
504 画像の DPI 解像度は以下のようにセットします:
505 @example
506 -dresolution=110
507 @end example
508
509 @cindex PDF (Portable Document Format), output (PDF 出力)
510 @cindex output, PDF (Portable Document Format) (PDF 出力)
511
512 @item --pdf
513 PDF を生成します。@c
514 これは内部で @code{--ps} を使用します。
515
516 @item -v,--version
517 バージョン情報を表示します。
518
519 @item -V,--verbose
520 冗長表示モードにします:
521 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
522
523 @item -w,--warranty
524 GNU LilyPond の保証責任を表示します。@c
525 (GNU LilyPond には@strong{保証責任はありません}!)
526 @end table
527
528
529 @node 環境変数
530 @unnumberedsubsec 環境変数
531 @translationof Environment variables
532
533 @cindex LANG
534 @cindex LILYPOND_DATADIR
535
536 @command{lilypond} は以下の環境変数を認識します:
537 @table @code
538 @item LILYPOND_DATADIR
539 これはデフォルトで参照する@c
540 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
541 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
542 サブディレクトリを保持しているべきです。
543
544 @item LANG
545 これは警告メッセージの言語を選択します。
546
547 @item LILYPOND_LOGLEVEL
548 デフォルトのログレベル。@c
549 明示的にログレベルが指定されずに LilyPond が呼び出された場合
550 (すなわち @option{--loglevel} コマンド ライン オプションが@c
551 指定されなかった場合)、@c
552 この値が使用されます。
553
554 @item LILYPOND_GC_YIELD
555 メモリ管理を調節する変数 (単位はパーセント) です。@c
556 大きな値は LilyPond に多くのメモリ使用を許し、@c
557 小さな値だと CPU 使用時間が長くなります。@c
558 デフォルト値は @code{70} です。
559 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
560 これはメモリ管理の振る舞いを調整するパーセント値です。@c
561 高い値にするとプログラムはより多くのメモリを使用し、@c
562 低い値にするとより多くの CPU 時間を使用します。@c
563 デフォルト値は @code{70} です。
564
565 @end table
566
567 @node chroot jail 環境で LilyPond を実行する
568 @unnumberedsubsec chroot jail 環境で LilyPond を実行する
569 @translationof LilyPond in chroot jail
570
571 LilyPond を chroot jail 環境で実行させるようサーバをセットアップすることは@c
572 複雑な作業です。@c
573 以下にステップをリスト アップします。@c
574 各ステップの中にある例は Ubuntu Linux 用であり、@c
575 @code{sudo} の使用が必要となるかもしれません。
576
577 @itemize
578
579 @item 必要なパッケージをインストールします:
580 LilyPond, GhostScript, それに ImageMagick。
581
582 @item @code{lily} という名前のユーザを作成します:
583
584 @example
585 adduser lily
586 @end example
587
588 @noindent
589 このコマンドはユーザ @code{lily} のためにホーム フォルダ (@code{/home/lily})
590 と新しいグループも作成します。
591
592 @item ユーザ @code{lily} のホーム フォルダで、@c
593 独立したファイルシステムとして使用するファイルを作成します:
594
595 @example
596 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
597 @end example
598
599 @noindent
600 このコマンドは jail ファイルシステムとして使用する
601 200MB のファイルを作成します。
602
603 @item ループ デバイスを作成し、ファイルシステムを作ってそれをマウントし、@c
604 それからユーザ @code{lily} が書き込めるフォルダを作成します:
605
606 @example
607 mkdir /mnt/lilyloop
608 losetup /dev/loop0 /home/lily/loopfile
609 mkfs -t ext3 /dev/loop0 200000
610 mount -t ext3 /dev/loop0 /mnt/lilyloop
611 mkdir /mnt/lilyloop/lilyhome
612 chown lily /mnt/lilyloop/lilyhome
613 @end example
614
615 @item サーバのコンフィグレーションで、JAIL は @code{/mnt/lilyloop} となり、@c
616 DIR は @code{/lilyhome} となります。
617
618 @item 以下に示すサンプル スクリプトのように必要なファイルをコピーして
619 jail の中に大きなディレクトリ ツリーを作成します。
620
621 @code{sed} を使うことで必要な実行形式ファイルをコピーすることができます:
622
623 @example
624 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
625   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
626     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
627       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
628 @end example
629
630 @end itemize
631
632 @subheading 32-bit Ubuntu 8.04 用のスクリプト例
633
634 @example
635 #!/bin/sh
636 ## defaults set here
637
638 username=lily
639 home=/home
640 loopdevice=/dev/loop0
641 jaildir=/mnt/lilyloop
642 # the prefix (without the leading slash!)
643 lilyprefix=usr/local
644 # the directory where lilypond is installed on the system
645 lilydir=/$lilyprefix/lilypond/
646
647 userhome=$home/$username
648 loopfile=$userhome/loopfile
649 adduser $username
650 dd if=/dev/zero of=$loopfile bs=1k count=200000
651 mkdir $jaildir
652 losetup $loopdevice $loopfile
653 mkfs -t ext3 $loopdevice 200000
654 mount -t ext3 $loopdevice $jaildir
655 mkdir $jaildir/lilyhome
656 chown $username $jaildir/lilyhome
657 cd $jaildir
658
659 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
660 chmod a+w tmp
661
662 cp -r -L $lilydir $lilyprefix
663 cp -L /bin/sh /bin/rm bin
664 cp -L /usr/bin/convert /usr/bin/gs usr/bin
665 cp -L /usr/share/fonts/truetype usr/share/fonts
666
667 # Now the library copying magic
668 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
669   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
670     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
671       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
672         | sed '/.*=>.*/d'; done | sh -s
673
674 # The shared files for ghostscript...
675       cp -L -r /usr/share/ghostscript usr/share
676 # The shared files for ImageMagick
677       cp -L -r /usr/lib/ImageMagick* usr/lib
678
679 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
680 ### you should be able to run:
681 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
682 ### LD_LIBRARY_PATH - this is crucial
683       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
684 @end example
685
686 @c " keep quote signs balanced for context-sensitive editors
687
688
689 @node エラー メッセージ
690 @section エラー メッセージ
691 @translationof Error messages
692
693 @cindex error messages (エラー メッセージ)
694 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
695 表示される可能性があります。
696
697 @table @emph
698
699 @item Warning
700 @cindex warning (警告)
701 何か疑わしいことがあります。@c
702 あなたが何か普通でないことをリクエストしている場合は、@c
703 そのメッセージを理解して、それを無視することができます。@c
704 しかしながら、@c
705 Warning は通常、入力ファイルに何か問題があることを示しています。
706
707 @item Error
708 何か明らかに問題があります。@c
709 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
710 次のステップは飛ばされます。
711
712 @item Fatal error
713 @cindex error (エラー)
714 @cindex fatal error (致命的なエラー)
715 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
716 これが起きることは稀です。@c
717 これが起こるのはたいてい、フォントのインストールに問題があるためです。
718
719 @item Scheme error
720 @cindex trace, Scheme (Scheme トレース)
721 @cindex call trace (トレースを呼び出す)
722 @cindex Scheme error (Scheme エラー)
723 Scheme コードの実行中に発生するこのエラーは
724 Scheme インタプリタによって引き起こされます。@c
725 冗長オプション
726 (@option{-V} または @option{--verbose})
727 付きで実行している場合、@c
728 問題となっている関数呼び出しの呼び出し追跡が表示されます。
729
730 @item Programming error
731 @cindex Programming error (プログラミング エラー)
732 内部的な矛盾があります。@c
733 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
734 通常、それらは無視できます。@c
735 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
736
737 @item Aborted (core dumped)
738 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
739 示しています。@c
740 そのようなエラーは決定的なものだと考えられます。@c
741 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
742 @end table
743
744 @cindex errors, message format (エラー メッセージの形式)
745 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
746 エラー メッセージは以下のような形式になります:
747
748 @example
749 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
750 @var{offending input line}
751 @end example
752
753 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
754 例えば:
755
756 @example
757 test.ly:2:19: error: not a duration: 5
758   @{ c'4 e'
759            5 g' @}
760 @end example
761
762 これらの位置は LilyPond が警告やエラーが発生した位置を@c
763 最善を尽くして推測したものですが、@c
764 (ごく当たり前のことですが) 警告とエラーは@c
765 何か予期しないことが起こったときに発生するものです。@c
766 入力ファイルの示された行にエラーを見つけることができない場合は、@c
767 示された位置の 1 行か 2 行上をチェックしてみてください。
768
769 エラーについての更なる情報が @ref{一般的なエラー} で提供されています。
770
771
772 @node 一般的なエラー
773 @section 一般的なエラー
774 @translationof Common errors
775
776 以下で説明するエラーがしばしば発生しますが、@c
777 その原因は明白でなかったり、見つけにくかったりします。@c
778 目を通しておくと、それらのエラーに対処しやすくなります。
779
780
781 @menu
782 * 楽譜がページからはみ出る::
783 * 余計な譜が表示される::
784 * 見かけ上 ../ly/init.ly のエラーとなる::
785 * エラー メッセージ Unbound variable %::
786 * エラー メッセージ FT_Get_Glyph_Name::
787 * 警告 -- Warning staff affinities should only decrease::
788 @end menu
789
790 @node 楽譜がページからはみ出る
791 @unnumberedsubsec 楽譜がページからはみ出る
792 @translationof Music runs off the page
793
794 楽譜がページの右マージンを越えてはみ出る、あるいは過度に密集するのは、@c
795 ほぼ間違いなく音符の演奏時間に誤りがあり、@c
796 小節の最後の音符が小節線を越えてしまうためです。@c
797 ある小節の最後の音符が自動的に挿入される小節線の所で終わらなくても@c
798 無効ではありません。@c
799 なぜなら、その音符は次の小節に持ち越されるためです。@c
800 しかしながら、そのような持ち越しが発生する小節が長く続くと、@c
801 楽譜は密集して表示されたり、ページからはみ出たりします。@c
802 ページからはみ出るのは、@c
803 自動改行を挿入できるのは正しく終了する小節
804 (その小節のすべての音符が小節の中で終了しています)
805 の後ろだけだからです。@c
806
807 @warning{誤った演奏時間は改行を抑制し、結果として楽譜が過度に密集したり、c@
808 ページからはみ出たりする可能性が生じます。}
809
810 小節チェックを使用していれば、誤った演奏時間を簡単に見つけることができます。@c
811 @ruser{小節と小節番号のチェック} を参照してください。
812
813 あなたがそのような音符が持ち越される小節を続けることを意図しているのであれば、@c
814 改行させたい場所に不可視の小節線を挿入する必要があります。@c
815 詳細は
816 @ruser{小節線} を参照してください。
817
818
819 @node 余計な譜が表示される
820 @unnumberedsubsec 余計な譜が表示される
821 @translationof An extra staff appears
822
823 コンテキストが @code{\new} や @code{\context} で明示的に作成されていない場合、@c
824 既存のコンテキストには適用できないコマンドに遭遇した時点で@c
825 暗黙的に作成されます。@c
826 単純な楽譜では、コンテキストの自動作成は有用であり、@c
827 LilyPond マニュアルのほとんどの例はこの手法を用いています。@c
828 しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を@c
829 発生させてしまいます。@c
830 例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを@c
831 意図していますが、@c
832 結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
833
834 @lilypond[quote,verbatim,relative=2]
835 \override Staff.NoteHead #'color = #red
836 \new Staff { a }
837 @end lilypond
838
839 これは、(符頭色の) オーバライドが処理される時に
840 @code{Staff} コンテキストが存在していないため、@c
841 @code{Staff} コンテキストが暗黙的に作成され、@c
842 そのコンテキストにオーバライドが適用されるからです。@c
843 その後に @code{\new Staff} コマンドにより@c
844 もう 1 つ別の @code{Staff} コンテキストが作成され、@c
845 そこに音符が配置されます。@c
846 すべての符頭を赤にする正しいコードは以下のようになります:
847
848 @lilypond[quote,verbatim,relative=2]
849 \new Staff {
850   \override Staff.NoteHead #'color = #red
851   a
852 }
853 @end lilypond
854
855 次の例では、@code{\repeat} コマンドの中に @code{\relative} コマンドが@c
856 置かれているため、譜が 2 つ生じています。@c
857 @code{\repeat} コマンドが 2 つの @code{\relative} ブロックを生成し、@c
858 それぞれが暗黙的に @code{Staff} ブロックと @code{Voice} を作成するため、@c
859 2 番目の譜は右にずれています。
860
861 @lilypond[quote,verbatim]
862 \repeat unfold 2 {
863   \relative c' { c4 d e f }
864 }
865 @end lilypond
866
867 明示的に @code{Voice} をインスタンス化することで、この問題は修正されます:
868
869 @lilypond[quote,verbatim]
870 \new Voice {
871   \repeat unfold 2 {
872     \relative c' { c4 d e f }
873   }
874 }
875 @end lilypond
876
877
878 @node 見かけ上 ../ly/init.ly のエラーとなる
879 @unnumberedsubsec 見かけ上 @code{../ly/init.ly} のエラーとなる
880 @translationof Apparent error in @code{../ly/init.ly}
881
882 入力ファイルが正しく構成されていないと、@c
883 @file{../ly/init.ly} に構文エラーがあるという@c
884 様々な原因のはっきりしないエラー メッセージが表示されます。@c
885 例えば、括弧やクォート記号の数が一致していない場合に@c
886 このようなエラーが発生します。
887
888 最も一般的なエラーは @code{score} ブロックの終わりに括弧が見当たらない
889 (missing brace, (@code{@}})) というエラーです。@c
890 この場合の解決方法は明らかです:
891 @code{score} ブロックが正しく閉じられているかチェックしてください。@c
892 入力ファイルの正しい構造は @rlearning{LilyPond 入力ファイルの仕組み}
893 で記述されています。@c
894 括弧の一致を自動的にハイライトするエディタを使うと、@c
895 そのようなエラーを防ぐのに役立ちます。
896
897 次に一般的なエラーの原因は、歌詞ブロックの最後の音節と閉じ括弧 (@code{@}})
898 の間に空白が無いために発生します。@c
899 空白が無ければ、この閉じ括弧は音節の一部と見なされます。@c
900 常に @emph{すべての} 括弧の前後に空白を入れることをお勧めします。@c
901 歌詞を用いる場合にこのことが重要になります。@c
902 @ruser{Entering lyrics} を参照してください。
903
904
905 @node エラー メッセージ Unbound variable %
906 @unnumberedsubsec エラー メッセージ Unbound variable %
907 @translationof Error message Unbound variable %
908
909 このエラー メッセージは、@emph{Scheme} 形式ではなく @emph{LilyPond} 形式の@c
910 コメントを含む Scheme ルーチンが呼び出されるたびに、@c
911 コンソール出力またはログ ファイルの最後に表示されます。
912
913 LilyPond 形式のコメントはパーセント記号 (@code{%}) で始まり、@c
914 Scheme ルーチンの中で使うことはできません。@c
915 Scheme 形式のコメントはセミコロン (@code{;}) で始まります。
916
917 @node エラー メッセージ FT_Get_Glyph_Name
918 @unnumberedsubsec エラー メッセージ FT_Get_Glyph_Name
919 @translationof Error message FT_Get_Glyph_Name
920
921 入力ファイルが非 ASCII キャラクタを保持していて、@c
922 UTF-8 エンコードで保存されていない場合、@c
923 このエラー メッセージがコンソール出力やログ ファイルに表示されます。@c
924 詳細は、
925 @c @ruser{テキスト エンコーディング}
926 @ruser{Text encoding} を参照してください。
927
928
929 @node 警告 -- Warning staff affinities should only decrease
930 @unnumberedsubsec 警告 -- Warning staff affinities should only decrease
931 @translationof Warning staff affinities should only decrease
932
933 この警告は、譜刻された出力の中に譜が無い場合に表示されます。@c
934 例えば、リード譜に @code{ChordName} コンテキストと @code{Lyrics} コンテキスト@c
935 しか無い場合です。@c
936 この警告は、入力の始めに以下を挿入することで@c
937 譜として振舞うコンテキストを作ることで回避できます:
938
939 @example
940 \override VerticalAxisGroup #'staff-affinity = ##f
941 @end example
942
943 @noindent
944 詳細は @ruser{システム内部の可変な垂直方向のスペース} の
945 @qq{譜ではない行のスペース} を参照してください。