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