1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
4 Translation of GIT committish: 9a65042d49324f2e3dff18c4b0858def81232eea
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..
13 @c Translators: Yoshiki Sawada
14 @c Translation status: post-GDP
17 @chapter lilypond を実行する
18 @translationof Running lilypond
20 この章では LilyPond を実行するための細かな規定について詳述します。
31 @translationof Normal usage
33 たいていのユーザは GUI から LilyPond を実行します。@c
35 @c @rlearning{最初のステップ} を@c
36 まだ読んでいないのなら、それを読んでください。
40 @section コマンド ラインの使用方法
41 @translationof Command-line usage
43 この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。@c
44 これにはプログラムに追加オプションを渡す必要があるかもしれません。@c
45 さらに、いくつかの特別なプログラム (@code{midi2ly} など) は@c
48 ここで @q{コマンド ライン} とは、OS の中にあるコマンド ラインを意味します。@c
49 Windows ユーザは @q{DOS シェル} という言葉の方が馴染みがあるかもしれません。@c
50 MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が@c
54 @c @ref{MacOS X のためのセットアップ}
57 OS のコマンド ラインの使用方法についての説明は@c
58 このマニュアルが扱う範囲ではありません。@c
60 その内容を扱っている他のドキュメントをあたってください。
64 * lilypond のコマンド ライン オプション::
69 @subsection @command{lilypond} を呼び出す
70 @translationof Invoking lilypond
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 (切り換え)
77 @command{lilypond} 実行可能形式ファイルは@c
78 コマンド ラインから以下のように呼び出されます。
81 lilypond [@var{option}]@dots{} @var{file}@dots{}
84 拡張子を持たないファイル名で呼び出された場合、@c
85 @file{.ly} が最初に試されます。@c
86 sudin から入力を読み込む場合には、@c
87 @var{file} に対してダッシュ (@code{-}) を使用します。
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 内部からいかなるシステム デフォルトも変更しないよう注意してください。}
96 @file{filename.ly} が複数の @code{\score} を含んでいる場合、@c
98 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
99 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
103 #(define output-suffix "violin")
105 #(define output-suffix "cello")
110 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
113 @node lilypond のコマンド ライン オプション
114 @subsection @command{lilypond} のコマンド ライン オプション
115 @translationof Command line options for lilypond
121 @item -e,--evaluate=@var{expr}
122 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
123 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
125 表記は @code{guile-user} モジュールの中で評価されます。@c
126 そのため、@var{expr} の中で definition を使いたいのならば、@c
127 @code{.ly} ファイルに以下をインクルードして:
130 #(use-modules (guile-user))
137 lilypond -e '(define-public a 42)'
142 @item -f,--format=@var{format}
144 @code{format} には @code{svg}, @code{ps}, @code{pdf}, @code{png} を選択します。
146 例: @code{lilypond -fpng @var{filename}.ly}
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
157 @cindex point and click, command line (コマンド ラインからポイント&クリックを制御する)
166 -dpoint-and-click='#f'
170 ここで興味深いオプションをいくつか挙げます。
174 @code{lilypond -dhelp} を実行すると@c
175 使用可能な @code{-d} オプションがすべて表示されます。
178 このオプションはデフォルトの用紙サイズをセットします。
180 -dpaper-size=\"letter\"
184 文字列はエスケーブされたクォート ( @code{\"} ) で@c
185 囲まれていなければならないということに注意してください。
186 @c Match " in previous line to help context-sensitive editors
189 @code{.ly} 入力を信用してはいけません。
191 Web サーバを通じて LilyPond フォーマットが利用可能な場合、@c
192 @code{--safe} オプションか @code{--jail} オプションの@c
193 どちらかを@b{渡さなければなりません}。@c
194 @code{--safe} オプションは@c
195 以下のようなインライン Scheme コードが大混乱をもたらすことを防ぎます:
201 c4^#(ly:export (ly:gulp-file "/etc/passwd"))
206 訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、@c
207 export (ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。
209 @code{-dsafe} オプションはインライン Scheme 表記を@c
210 特別なセーフ モジュールの中で評価します。@c
211 このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生したものですが、@c
212 LilyPond API 関数をいくつか追加しています。@c
213 これらの関数は @file{scm/@/safe@/-lily@/.scm} でリスト アップされています。
215 さらに、セーフ モードは @code{\include} 指示を却下し、@c
216 @TeX{} 文字列の中にあるバックスラッシュを無効にします。
218 セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。
220 @code{-dsafe} はリソースの乱用を検出@emph{しません}。@c
221 例えば循環データ構造体をバックエンドに食わせることで、@c
222 プログラムをハングさせることは可能です。@c
223 そのため、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、@c
224 そのプロセスの CPU とメモリの両方の使用は制限されるべきです。
226 セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c
227 @code{--jail} はより安全な代替オプションですが、@c
228 セット アップにより多くの作業を必要とします。
230 @cindex output format, setting (出力フォーマットを設定する)
232 バックエンドに対して使用する出力フォーマットを指定します。@c
233 @code{format} の選択肢には以下があります:
236 @cindex PostScript output (PostScript 出力)
239 Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。@c
241 (訳者: フォント セットを使用するフォントに限定すること) は行われません。@c
242 東洋の文字セットを使用する場合、巨大なファイルになる可能性があります。
245 縮約された PostScript (EPS)。@c
247 フォントを持たない個別の @file{EPS} ファイルとして吐き出し、@c
248 フォントを含めたすべてのページ (システム) を持つ
249 @file{EPS} ファイルを 1 つ吐き出します。
251 このモードは @command{lilypond-book} でデフォルトで使用されます。
254 @cindex SVG (Scalable Vector Graphics)
255 SVG (Scalable Vector Graphics)。@c
257 フォントを埋め込まれた個別の @file{SVG} ファイルとして吐き出します。@c
258 埋め込みフォントをサポートする SVG ビューアか@c
259 埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが必要になります。@c
261 @uref{http://www.inkscape.org,Inkscape} (バージョン 0.42 以降) を@c
263 使用前に、OTF フォントを LilyPond ディレクトリ
264 (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から
265 @file{~/.fonts/} にコピーしてください。
267 @cindex Scheme dump (Scheme ダンプ)
268 生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。
272 @code{-dno-print-pages} と同じ効果を持ちます。
275 例: @code{lilypond -dbackend=svg @var{filename}.ly}
278 タイトルとファイル システム情報を保持している出力ファイルを生成します。
282 デフォルトです。@code{-dno-print-pages} は
283 @code{-dpreview} と組み合わせて使うと有用です。
292 @item -H,--header=@var{FIELD}
293 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
295 @item --include, -I=@var{directory}
296 @var{directory} を入力ファイルのサーチ パスに追加します。
297 @cindex file searching (ファイル検索)
298 @cindex search path (サーチ パス)
300 @item -i,--init=@var{file}
301 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
303 @item -o,--output=@var{FILE}
304 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
305 適切な接尾辞が追加されます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
311 各ページの図を PNG フォーマットで生成します。@c
312 これは内部で @code{--ps} を使用します。@c
313 画像の DPI 解像度は以下のようにセットします:
320 これは内部で @code{--ps} を使用します。
324 @item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
325 @command{lilypond} を chroot jail 環境で実行します。@c
326 (訳者: chroot jail 環境とはセキュリティのために@c
327 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
329 @code{--jail} オプションは、@c
330 Web サーバを通じて LilyPond 譜刻を実行するときや
331 LilyPond が外部から提供されたソースを実行するときに、@c
332 @code{--safe} よりも自由度の高い代替手段を提供します。
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} を用いた安全な方法で行われます。
344 jail のセットアップは少々デリケートな問題です。@c
345 LilyPond がソースをコンパイルするのに必要とされるものすべてを
346 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
347 一般的なセットアップには以下の項目が含まれます:
350 @item 専用のファイルシステムをセットアップする
351 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
352 マウントするための専用ファイルシステムを作成すべきです。@c
353 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
354 デバイスに直接書き込むことは不可能になります。@c
355 専用のパーティションを作成することを望まないのなら、@c
357 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
359 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
361 @item 専用のユーザをセットアップする
362 jail 内部で LilyPond を実行する際、@c
363 低い権限を持つ専用のユーザとグループ (仮に @code{lily}/@code{lily} とします) で@c
365 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
369 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
370 それらのファイルをすべて jail にコピーしておきます。@c
371 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
373 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
376 問題が発生した場合、その原因を突き止める最も簡単な方法は
377 @command{strace} を使って LilyPond を実行することです。@c
378 これによりどのファイルが見当たらないのかがわかります。
381 @code{noexec} でマウントされた jail の中では、@c
382 外部プログラムを実行することは一切できません。@c
383 そのため、外部プログラムを必要としないバックエンドで
384 LilyPond を実行しなければなりません。@c
386 jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず
387 (もちろん、その権限はすぐに外されます)、@c
388 たぶん @command{sudo} を使います。@c
389 LilyPond が使用可能な CPU 時間を数秒に制限する
390 (例えば、@command{ulimit -t} を使って) というのは良いアイディアです。@c
391 さらに、OS がサポートしているのなら、@c
392 割り当て可能なメモリ容量を制限するというのも良いアイディアです。
401 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
404 GNU LilyPond の保証責任を表示します。@c
405 (GNU LilyPond には@strong{保証責任はありません}!)
410 @translationof Environment variables
413 @cindex LILYPOND_DATADIR
415 @command{lilypond} は以下の環境変数を認識します:
417 @item LILYPOND_DATADIR
419 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
420 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
424 これはワーニング メッセージの言語を選択します。
426 @item LILYPOND_GC_YIELD
427 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
428 これはメモリ管理の振る舞いを調整するパーセント値です。@c
429 高い値にするとプログラムはより多くのメモリを使用し、@c
430 低い値にするとより多くの CPU 時間を使用します。@c
431 デフォルト値は @code{70} です。
438 @translationof Error messages
440 @cindex error messages (エラー メッセージ)
441 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
447 @cindex warning (ワーニング)
449 あなたが何か普通でないことをリクエストしている場合は、@c
450 そのメッセージを理解して、それを無視することができます。@c
452 Warning は通常、入力ファイルに何か問題があることを示しています。
456 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
461 @cindex fatal error (致命的なエラー)
462 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
464 これが起こるのはたいてい、フォントのインストールに問題があるためです。
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 問題となっている関数呼び出しの呼び出し追跡が表示されます。
475 @item Programming error
476 @cindex Programming error (プログラミング エラー)
478 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
480 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
482 @item Aborted (core dumped)
483 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
485 そのようなエラーは決定的なものだと考えられます。@c
486 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
489 @cindex errors, message format (エラー メッセージの形式)
490 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
491 エラー メッセージは以下のような形式になります:
494 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
495 @var{offending input line}
498 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
502 test.ly:2:19: error: not a duration: 5
507 これらの位置は LilyPond が警告やエラーが発生した位置を@c
509 (ごく当たり前のことですが) 警告とエラーは@c
510 何か予期しないことが起こったときに発生するものです。@c
511 入力ファイルの示された行にエラーを見つけることができない場合は、@c
512 示された位置の 1 行か 2 行上をチェックしてみてください。