]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/application/running.itely
Merge commit 'origin/master'
[lilypond.git] / Documentation / ja / application / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.12.0"
11
12 @c Translators: Yoshiki Sawada
13 @c Translation status: post-GDP
14
15 @node lilypond を実行する
16 @chapter lilypond を実行する
17 @translationof Running lilypond
18
19 この章では LilyPond を実行するための細かな規定について詳述します。
20
21 @menu
22 * 通常の使用方法::
23 * コマンド ラインの使用方法::
24 * エラー メッセージ::
25 @end menu
26
27
28 @node 通常の使用方法
29 @section 通常の使用方法
30 @translationof Normal usage
31
32 たいていのユーザは GUI から LilyPond を実行します。@c
33 FIXME FIXME FIXME を@c
34 @c @rlearning{最初のステップ} を@c
35 まだ読んでいないのなら、それを読んでください。
36
37
38 @node コマンド ラインの使用方法
39 @section コマンド ラインの使用方法
40 @translationof Command-line usage
41
42 この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。@c
43 これにはプログラムに追加オプションを渡す必要があるかもしれません。@c
44 さらに、いくつかの特別なプログラム (@code{midi2ly} など) は@c
45 コマンド ラインからしか利用できません。
46
47 ここで @q{コマンド ライン} とは、OS の中にあるコマンド ラインを意味します。@c
48 Windows ユーザは @q{DOS シェル} という言葉の方が馴染みがあるかもしれません。@c
49 MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が@c
50 馴染みがあるかもしれません。@c
51 MaxOS@tie{}X ユーザは 
52 FIXME
53 @c @ref{MacOS X のためのセットアップ} 
54 も読んでおくべきです。
55
56 OS のコマンド ラインの使用方法についての説明は@c
57 このマニュアルが扱う範囲ではありません。@c
58 コマンド ラインに馴染みがない場合は、@c
59 その内容を扱っている他のドキュメントをあたってください。
60
61 @menu
62 * lilypond を呼び出す::
63 * lilypond のコマンド ライン オプション::
64 * 環境変数::
65 @end menu
66
67 @node lilypond を呼び出す
68 @subsection @command{lilypond} を呼び出す
69 @translationof Invoking lilypond
70
71 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
72 @cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション)
73 @cindex options, command line (コマンド ライン オプション)
74 @cindex switches (切り換え)
75
76 @command{lilypond} 実行可能形式ファイルは@c
77 コマンド ラインから以下のように呼び出されます。
78
79 @example
80 lilypond [@var{option}]@dots{} @var{file}@dots{}
81 @end example
82
83 拡張子を持たないファイル名で呼び出された場合、@c
84 @file{.ly} が最初に試されます。@c
85 sudin から入力を読み込む場合には、@c
86 @var{file} に対してダッシュ (@code{-}) を使用します。
87
88 @file{filename.ly} が処理されると、@c
89 lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り出します。@c
90 いくつかのファイルを指定することもできます。@c
91 その場合、それらのファイルは個々に処理されます。@c
92 @footnote{GUILE のステータスは @code{.ly} 処理後にリセットされません。@c
93 そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう注意してください。}
94
95 @file{filename.ly} が複数の @code{\score} を含んでいる場合、@c
96 2 つ目以降の score は 
97 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
98 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
99 以下の内容を含んでいる入力ファイルは
100
101 @example
102 #(define output-suffix "violin")
103 \book @{ @dots{} @}
104 #(define output-suffix "cello")
105 \book @{ @dots{} @}
106 @end example
107
108 @noindent
109 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
110
111
112 @node lilypond のコマンド ライン オプション
113 @subsection @command{lilypond} のコマンド ライン オプション
114 @translationof Command line options for lilypond
115
116 以下のオプションがサポートされます:
117
118 @table @code
119
120 @item -e,--evaluate=@var{expr}
121 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
122 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
123
124 表記は @code{guile-user} モジュールの中で評価されます。@c
125 そのため、@var{expr} の中で definition を使いたいのならば、@c
126 @code{.ly} ファイルに以下をインクルードして:
127
128 @example
129 #(use-modules (guile-user))
130 @end example
131
132 @noindent
133 コマンド ラインで以下を使用します:
134
135 @example
136 lilypond -e '(define-public a 42)'
137 @end example
138
139
140
141 @item -f,--format=@var{format}
142 フォーマットを指定します。@c
143 @code{format} には @code{svg}, @code{ps}, @code{pdf}, @code{png} を選択します。
144
145 例: @code{lilypond -fpng @var{filename}.ly}
146
147
148
149 @item -d,--define-default=@var{var}=@var{val}
150 これは内部プログラム オプション @var{var} に 
151 Scheme 値 @var{val} をセットします。@c
152 @var{val} が提供されていない場合、@var{#t} が使用されます。@c
153 オプションを OFF にするには、@var{var} の接頭辞として @code{no-} を付けます。@c
154 つまり、
155
156 @cindex point and click, command line (コマンド ラインからポイント&クリックを制御する)
157
158 @example
159 -dno-point-and-click
160 @end example
161
162 @noindent
163
164 @example
165 -dpoint-and-click='#f'
166 @end example
167 と同じです。
168
169 ここで興味深いオプションをいくつか挙げます。
170
171 @table @samp
172 @item help
173 @code{lilypond -dhelp} を実行すると@c
174 使用可能な @code{-d} オプションがすべて表示されます。
175
176 @item paper-size
177 このオプションはデフォルトの用紙サイズをセットします。
178 @example
179 -dpaper-size=\"letter\"
180 @end example
181
182 @noindent
183 文字列はエスケーブされたクォート ( @code{\"} ) で@c
184 囲まれていなければならないということに注意してください。
185 @c Match " in previous line to help context-sensitive editors
186
187 @item safe
188 @code{.ly} 入力を信用してはいけません。
189
190 Web サーバを通じて LilyPond フォーマットが利用可能な場合、@c
191 @code{--safe} オプションか @code{--jail} オプションの@c
192 どちらかを@b{渡さなければなりません}。@c
193 @code{--safe} オプションは@c
194 以下のようなインライン Scheme コードが大混乱をもたらすことを防ぎます:
195
196 @quotation
197 @verbatim
198 #(system "rm -rf /")
199 {
200   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
201 }
202 @end verbatim
203 @end quotation
204
205 訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、@c
206 export (ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。
207
208 @code{-dsafe} オプションはインライン Scheme 表記を@c
209 特別なセーフ モジュールの中で評価します。@c
210 このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生したものですが、@c
211 LilyPond API 関数をいくつか追加しています。@c
212 これらの関数は @file{scm/@/safe@/-lily@/.scm} でリスト アップされています。
213
214 さらに、セーフ モードは @code{\include} 指示を却下し、@c
215 @TeX{} 文字列の中にあるバックスラッシュを無効にします。
216
217 セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。
218
219 @code{-dsafe} はリソースの乱用を検出@emph{しません}。@c
220 例えば循環データ構造体をバックエンドに食わせることで、@c
221 プログラムをハングさせることは可能です。@c
222 そのため、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、@c
223 そのプロセスの CPU とメモリの両方の使用は制限されるべきです。
224
225 セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c
226 @code{--jail} はより安全な代替オプションですが、@c
227 セット アップにより多くの作業を必要とします。
228
229 @cindex output format, setting (出力フォーマットを設定する)
230 @item backend
231 バックエンドに対して使用する出力フォーマットを指定します。@c
232 @code{format} の選択肢には以下があります:
233 @table @code
234 @item ps
235 @cindex PostScript output (PostScript 出力)
236  PostScript
237
238  Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。@c
239 これらのフォントのサブセット化 
240 (訳者: フォント セットを使用するフォントに限定すること) は行われません。@c
241 東洋の文字セットを使用する場合、巨大なファイルになる可能性があります。
242
243 @item eps
244  縮約された PostScript (EPS)。@c
245 これは各ページ (システム) を@c
246 フォントを持たない個別の @file{EPS} ファイルとして吐き出し、@c
247 フォントを含めたすべてのページ (システム) を持つ 
248 @file{EPS} ファイルを 1 つ吐き出します。
249
250 このモードは @command{lilypond-book} でデフォルトで使用されます。
251
252 @item svg
253 @cindex SVG (Scalable Vector Graphics)
254  SVG (Scalable Vector Graphics)。@c
255 これは各ページを@c
256 フォントを埋め込まれた個別の @file{SVG} ファイルとして吐き出します。@c
257 埋め込みフォントをサポートする SVG ビューアか@c
258 埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが必要になります。@c
259 UNIX では、@c
260 @uref{http://www.inkscape.org,Inkscape} (バージョン 0.42 以降) を@c
261 使うことになるかもしれません。@c
262 使用前に、OTF フォントを LilyPond ディレクトリ 
263 (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から 
264 @file{~/.fonts/} にコピーしてください。
265 @item scm
266 @cindex Scheme dump (Scheme ダンプ)
267  生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。
268
269 @item null
270  譜刻された楽譜を出力しません。@c
271 @code{-dno-print-pages} と同じ効果を持ちます。
272 @end table
273
274 例: @code{lilypond -dbackend=svg @var{filename}.ly}
275
276 @item preview
277 タイトルとファイル システム情報を保持している出力ファイルを生成します。
278 @item print-pages
279
280 すべてのページを生成します。@c
281 デフォルトです。@code{-dno-print-pages} は 
282 @code{-dpreview} と組み合わせて使うと有用です。
283
284 @end table
285
286
287
288 @item -h,--help
289 使用方法の要約を表示します。
290
291 @item -H,--header=@var{FIELD}
292 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
293
294 @item --include, -I=@var{directory}
295 @var{directory} を入力ファイルのサーチ パスに追加します。
296 @cindex file searching (ファイル検索)
297 @cindex search path (サーチ パス)
298
299 @item -i,--init=@var{file}
300 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
301
302 @item -o,--output=@var{FILE}
303 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
304 適切な接尾辞が追加されます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
305
306 @item --ps
307 PostScript を生成します。
308
309 @item --png
310 各ページの図を PNG フォーマットで生成します。@c
311 これは内部で @code{--ps} を使用します。@c
312 画像の DPI 解像度は以下のようにセットします:
313 @example
314 -dresolution=110
315 @end example
316
317 @item --pdf
318 PDF を生成します。@c
319 これは内部で @code{--ps} を使用します。
320
321
322
323 @item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
324 @command{lilypond} を chroot jail 環境で実行します。@c
325 (訳者: chroot jail 環境とはセキュリティのために@c
326 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
327
328 @code{--jail} オプションは、@c
329 Web サーバを通じて LilyPond 譜刻を実行するときや 
330 LilyPond が外部から提供されたソースを実行するときに、@c
331 @code{--safe} よりも自由度の高い代替手段を提供します。
332
333 @code{--jail} オプションはコンパイル プロセスの開始直前に 
334 @command{lilypond} の ルートを @var{jail} に変更します。@c
335 それからユーザとグループを提供された環境にマッチするように変更し、@c
336 カレント ディレクトリは @var{dir} に変更されます。@c
337 このセットアップは jail (牢獄) から抜け出せないということを 
338 (少なくとも理論的には) 保証します。@c
339 @code{--jail} を指定した @command{lilypond} の実行は@c
340 root (ユーザ名) として行われる必要があります。@c
341 通常、これは @command{sudo} を用いた安全な方法で行われます。
342
343 jail のセットアップは少々デリケートな問題です。@c
344 LilyPond がソースをコンパイルするのに必要とされるものすべてを 
345 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
346 一般的なセットアップには以下の項目が含まれます:
347
348 @table @asis
349 @item 専用のファイルシステムをセットアップする
350 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
351 マウントするための専用ファイルシステムを作成すべきです。@c
352 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
353 デバイスに直接書き込むことは不可能になります。@c
354 専用のパーティションを作成することを望まないのなら、@c
355 適当なサイズのファイルを作成し、@c
356 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
357 専用ファイルシステムはさらに、@c
358 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
359
360 @item 専用のユーザをセットアップする
361 jail 内部で LilyPond を実行する際、@c
362 低い権限を持つ専用のユーザとグループ (仮に @code{lily}/@code{lily} とします) で@c
363 行うべきです。@c
364 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
365 それを @var{dir} に渡します。
366
367 @item jail の準備をする
368 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
369 それらのファイルをすべて jail にコピーしておきます。@c
370 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
371 同じパスにコピーします。@c
372 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
373 コピーすべきです。
374
375 問題が発生した場合、その原因を突き止める最も簡単な方法は 
376 @command{strace} を使って LilyPond を実行することです。@c
377 これによりどのファイルが見当たらないのかがわかります。
378
379 @item LilyPond を実行する
380 @code{noexec} でマウントされた jail の中では、@c
381 外部プログラムを実行することは一切できません。@c
382 そのため、外部プログラムを必要としないバックエンドで 
383 LilyPond を実行しなければなりません。@c
384 すでに述べたように、@c
385 jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず 
386 (もちろん、その権限はすぐに外されます)、@c
387 たぶん @command{sudo} を使います。@c
388 LilyPond が使用可能な CPU 時間を数秒に制限する 
389 (例えば、@command{ulimit -t} を使って) というのは良いアイディアです。@c
390 さらに、OS がサポートしているのなら、@c
391 割り当て可能なメモリ容量を制限するというのも良いアイディアです。
392 @end table
393
394
395 @item -v,--version
396 バージョン情報を表示します。
397
398 @item -V,--verbose
399 冗長表示モードにします: 
400 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
401
402 @item -w,--warranty
403 GNU LilyPond の保証責任を表示します。@c
404 (GNU LilyPond には@strong{保証責任はありません}!)
405 @end table
406
407 @node 環境変数
408 @subsection 環境変数
409 @translationof Environment variables
410
411 @cindex LANG
412 @cindex LILYPOND_DATADIR
413
414 @command{lilypond} は以下の環境変数を認識します:
415 @table @code
416 @item LILYPOND_DATADIR
417 これはデフォルトで参照する@c
418 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
419 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
420 サブディレクトリを保持しているべきです。
421
422 @item LANG
423 これはワーニング メッセージの言語を選択します。
424
425 @item LILYPOND_GC_YIELD
426 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
427 これはメモリ管理の振る舞いを調整するパーセント値です。@c
428 高い値にするとプログラムはより多くのメモリを使用し、@c
429 低い値にするとより多くの CPU 時間を使用します。@c
430 デフォルト値は @code{70} です。
431
432 @end table
433
434
435 @node エラー メッセージ
436 @section エラー メッセージ
437 @translationof Error messages
438
439 @cindex error messages (エラー メッセージ)
440 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
441 表示される可能性があります。
442
443 @table @emph
444
445 @item Warning
446 @cindex warning (ワーニング)
447 何か疑わしいことがあります。@c
448 あなたが何か普通でないことをリクエストしている場合は、@c
449 そのメッセージを理解して、それを無視することができます。@c
450 しかしながら、@c
451 Warning は通常、入力ファイルに何か問題があることを示しています。
452
453 @item Error
454 何か明らかに問題があります。@c
455 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
456 次のステップは飛ばされます。
457
458 @item Fatal error
459 @cindex error (エラー)
460 @cindex fatal error (致命的なエラー)
461 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
462 これが起きることは稀です。@c
463 これが起こるのはたいてい、フォントのインストールに問題があるためです。
464
465 @item Scheme error
466 @cindex trace, Scheme (Scheme トレース)
467 @cindex call trace (トレースを呼び出す)
468 @cindex Scheme error (Scheme エラー)
469 Scheme コードの実行中に発生するこのエラーは 
470 Scheme インタプリタによって引き起こされます。@c
471 冗長オプション (@code{-V} または @code{--verbose}) 付きで実行している場合、@c
472 問題となっている関数呼び出しの呼び出し追跡が表示されます。
473
474 @item Programming error
475 @cindex Programming error (プログラミング エラー)
476 内部的な矛盾があります。@c
477 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
478 通常、それらは無視できます。@c
479 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
480
481 @item Aborted (core dumped)
482 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
483 示しています。@c
484 そのようなエラーは決定的なものだと考えられます。@c
485 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
486 @end table
487
488 @cindex errors, message format (エラー メッセージの形式)
489 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
490 エラー メッセージは以下のような形式になります:
491
492 @example
493 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
494 @var{offending input line}
495 @end example
496
497 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
498 例えば:
499
500 @example
501 test.ly:2:19: error: not a duration: 5
502   @{ c'4 e'
503            5 g' @}
504 @end example
505
506 これらの位置は LilyPond が警告やエラーが発生した位置を@c
507 最善を尽くして推測したものですが、@c
508 (ごく当たり前のことですが) 警告とエラーは@c
509 何か予期しないことが起こったときに発生するものです。@c
510 入力ファイルの示された行にエラーを見つけることができない場合は、@c
511 示された位置の 1 行か 2 行上をチェックしてみてください。
512