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