1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
4 Translation of GIT committish: 2429e825c154f15cda52cf8a44f12e23d9f6a1e6
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: Masamichi Hosoda, Yoshiki Sawada
14 @c Translation status: post-GDP
17 @chapter @command{lilypond} を実行する
18 @translationof Running lilypond
20 この章では LilyPond を実行するための細かな規定について詳述します。
32 @translationof Normal usage
34 たいていのユーザは GUI から LilyPond を実行します。@c
35 まだ実行したことがないのであれば @rlearning{チュートリアル} を読んでください。
36 lilypond ファイルを書くのに代替のエディタを使用するのであれば、@c
37 そのエディタのドキュメントを読んでください。
41 @section コマンド ラインの使用方法
42 @translationof Command-line usage
44 この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。@c
45 これにはプログラムに追加オプションを渡す必要があるかもしれません。@c
46 さらに、いくつかの特別なプログラム (@code{midi2ly} など) は@c
49 ここで @q{コマンド ライン} とは、OS の中にあるコマンド ラインを意味します。@c
50 Windows ユーザは @q{DOS シェル} や @q{コマンド シェル} @q{コマンド プロンプト}
51 という言葉の方が馴染みがあるかもしれません。@c
52 MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が@c
54 MaxOS@tie{}X ユーザは追加のセットアップが必要かもしれません。@c
55 @rweb{MacOS X} を参照してください。
57 OS のコマンド ラインの使用方法についての説明は@c
58 このマニュアルが扱う範囲ではありません。@c
60 その内容を扱っている他のドキュメントをあたってください。
64 * LilyPond の基本的なコマンド ライン オプション::
65 * LilyPond の高度なコマンド ライン オプション::
67 * chroot jail 環境で LilyPond を実行する::
71 @unnumberedsubsec @command{lilypond} を呼び出す
72 @translationof Invoking lilypond
75 @command{lilypond} 実行可能形式ファイルは@c
76 コマンド ラインから以下のように呼び出されます。
79 lilypond [@var{option}]@dots{} @var{file}@dots{}
82 拡張子を持たないファイル名で呼び出された場合、@c
83 @file{.ly} が最初に試されます。@c
84 stdin から入力を読み込む場合には、@c
85 @var{file} に対してダッシュ (@code{-}) を使用します。
87 @file{filename.ly} が処理されると、@c
88 lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り出します。@c
89 いくつかのファイルを指定することもできます。@c
90 その場合、それらのファイルは個々に処理されます。@c
91 @footnote{GUILE のステータスは @code{.ly} 処理後にリセットされません。@c
92 そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう@c
95 @file{filename.ly} が複数の @code{\book} ブロックを含んでいる場合、@c
97 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
98 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
102 #(define output-suffix "violin")
104 #(define output-suffix "cello")
109 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
112 @unnumberedsubsubsec 標準シェルで LilyPond を使う
114 LilyPond はコマンドラインアプリケーションなので、@c
115 LilyPond を呼び出すために @q{シェル} の機能をうまく利用することができます。
124 は、カレントディレクトリのすべての LilyPond ファイルを処理できるでしょう。
126 コンソール出力をリダイレクトする(例えばファイルへ)のも@c
130 lilypond file.ly 1> stdout.txt
132 lilypond file.ly 2> stderr.txt
134 lilypond file.ly &> all.txt
138 それぞれ @q{普通の} 出力、@q{エラー} のみ、@q{すべて} 、
141 あなたの使用しているシェル、コマンドプロンプト (Windows)、@c
142 ターミナルやコンソール (MacOS X) がリダイレクトをサポートしているか、@c
143 あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。@c
145 以下は、カレントディレクトリ以下のすべての入力ファイルを再帰的に探し、@c
147 出力ファイルは元の入力ファイルのあるディレクトリではなく、@c
148 コマンドを実行したディレクトリに置かれます。
151 find . -name '*.ly' -exec lilypond '@{@}' \;
155 これは MacOS@tie{}X ユーザでも使えるでしょう。
160 forfiles /s /M *.ly /c "cmd /c lilypond @@file"
165 @code{スタート > アクセサリ > コマンドプロンプト}
166 とたどるか、Windows 8 であれば@c
167 検索ウィンドウで @q{コマンドプロンプト} と入力して、
168 @code{コマンド プロンプト} を起動し、@c
171 または、入力ファイルを含むすべてのサブフォルダを含む、@c
172 最上位のフォルダを明示的に指定できる @code{/p} オプションもあります;
175 forfiles /s /p C:\Documents\MyScores /M *.ly /c "cmd /c lilypond @@file"
178 最上位フォルダ名がスペース文字を含む場合は、@c
179 パス全体をダブルクオーテーションで囲む必要があります。;
182 forfiles /s /p "C:\Documents\My Scores" /M *.ly /c "cmd /c lilypond @@file"
186 @node LilyPond の基本的なコマンド ライン オプション
187 @unnumberedsubsec Lilypond の基本的なコマンド ライン オプション
188 @translationof Basic command line options for LilyPond
190 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
191 @cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション)
192 @cindex options, command line (コマンド ライン オプション)
193 @cindex switches (切り換え)
202 通常より大きい PDF ファイルを生成します。@c
203 (フォント最適化がほんの少しかまったく無くなるため。)@c
205 @w{@code{pdftex}}、@w{@code{xetex}} や @w{@code{luatex}}
207 さらに ghostscript 処理で重複するフォントデータを統合し、@c
208 @emph{著しく} 小さい PDF ファイルを得ることができます。
214 それから @code{ghostscript} を呼び出します。
217 gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
220 @code{pdfsizeopt.py} は、さらにサイズの最適化ができます。
223 pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
227 @item -d, --define-default=@var{var}=@var{val}
228 @ref{Advanced command line options for LilyPond} を参照してください。
230 @cindex Scheme, expression evaluation (Scheme 表記の評価)
231 @cindex expression evaluation, Scheme (Scheme 表記の評価)
233 @item -e, --evaluate=@var{expr}
234 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
235 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
237 Scheme 表記は @code{guile-user} モジュールの中で評価されます。@c
238 そのため、@var{expr} の中で定義を使いたいのならば、@c
242 lilypond -e '(define-public a 42)'
246 @code{.ly} ファイルの先頭に以下を含めます:
249 #(use-modules (guile-user))
252 @warning{Windows ユーザはシングル クォートではなく、@c
255 @cindex output, format (出力のフォーマット)
256 @cindex format, output (出力のフォーマット)
258 @item -f, --format=@var{format}
260 @code{format} の選択肢は @code{ps}, @code{pdf}, それに @code{png} です。
262 例: @code{lilypond -fpng @var{filename}.ly}
267 @item -H, --header=@var{FIELD}
268 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
270 @item -i, --init=@var{file}
271 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
273 @cindex file searching (ファイル サーチ)
274 @cindex search path (サーチ パス)
276 @item -I, --include=@var{directory}
277 @var{directory} を入力ファイルのサーチ パスに追加します。
279 複数の -I オプションを与えることができます。@c
280 検索は最初に指定されたディレクトリから開始され、@c
281 入力ファイルが見つからない場合は次に指定されたディレクトリを検索します。
283 @cindex chroot jail, running inside (chroot jail 内部で実行する)
285 @item -j, --jail=@var{user},@var{group},@var{jail},@var{dir}
286 @command{lilypond} を chroot jail 環境で実行します。@c
287 (訳者: chroot jail 環境とはセキュリティのために@c
288 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
290 @option{--jail} オプションは、@c
291 Web サーバ経由で LilyPond 譜刻を提供する時や
292 LilyPond が外部ソースから送られてきたコマンドを実行する時に、@c
293 @code{--dsafe} よりも自由度の高い代替手段を提供します。
294 (@ref{Advanced command line options for LilyPond} を参照してください。)
296 @code{--jail} オプションはコンパイル プロセスの開始直前に
297 @command{lilypond} のルート ディレクトリを @var{jail} に変更します。@c
298 それから、ユーザとグループを @var{user} と @var{group} に変更して、@c
299 カレント ディレクトリを @var{dir} に変更します。@c
300 これにより、jail (牢獄) から抜け出せないことを (少なくとも理論上は)
302 @code{--jail} を指定した @command{lilypond} の実行は root (ユーザ名)
304 通常、これは @command{sudo} を用いた安全な方法で行います。
306 jail のセットアップは比較的複雑な問題です。@c
307 LilyPond がソースをコンパイルするのに必要とされるものすべてを
308 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
309 一般的なセットアップには以下の項目が含まれます:
312 @item 専用のファイルシステムをセットアップする
313 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
314 マウントするための専用ファイルシステムを作成すべきです。@c
315 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
316 デバイスに直接書き込むことは不可能になります。@c
317 専用のパーティションを作成することを望まないのなら、@c
319 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
321 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
323 @item 専用のユーザをセットアップする
324 jail 内部で LilyPond を実行する際、@c
326 (仮に @code{lily}/@code{lily} とします)
328 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
332 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
333 それらのファイルをすべて jail にコピーしておきます。@c
334 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
336 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
339 問題が発生した場合、その原因を突き止める最も簡単な方法は
340 @command{strace} を使って LilyPond を実行することです。@c
341 これによりどのファイルが見当たらないのかがわかります。
344 @code{noexec} でマウントされた jail の中では、@c
345 外部プログラムを実行することは一切できません。@c
346 そのため、外部プログラムを必要としないバックエンドで
347 LilyPond を実行しなければなりません。@c
349 jail モードでの LilyPond の実行はスーパーユーザ権限で行われなければならず
350 (もちろん、その権限はすぐに外されます)、@c
351 たぶん @command{sudo} を使います。@c
352 LilyPond が使用可能な CPU 時間を数秒に制限する
353 (例えば、@command{ulimit -t} を使って) というのも良い方法です。@c
354 さらに、OS がサポートしているのなら、@c
355 割り当て可能なメモリ容量を制限するというのも良い方法です。@c
356 @ref{LilyPond in chroot jail} も参照してください。
359 @cindex loglevel (ログレベル)
360 @cindex output, verbosity (出力の饒舌さ)
362 @item -l, --loglevel=@var{LEVEL}
363 コンソール出力の饒舌さを @var{LEVEL} にセットします。@c
369 何も出力しません。エラー メッセージさえも出力しません。
372 エラー メッセージだけを出力します。警告や進捗メッセージは出力しません。
375 警告とエラー メッセージを出力し、進捗メッセージは出力しません。
378 基本的な進捗メッセージ (成功メッセージ)、警告、それにエラー メッセージを@c
382 すべての進捗メッセージ、警告とエラー メッセージを出力します。
385 進捗メッセージ、警告、エラーそれに追加の実行情報を出力します。
388 饒舌なデバッグ出力を含む、出力可能なメッセージをすべて出力します。
392 @cindex directory, redirect output (出力をディレクトリにリダイレクトする)
393 @cindex output, setting filename (出力のファイル名を設定する)
394 @cindex output, directory (出力ディレクトリ)
396 @item -o, --output=@var{FILE} or @var{FOLDER}
397 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
398 セットした名前のフォルダが存在する場合、そのフォルダに、@c
399 入力ファイルから取ったファイル名で出力されます。@c
401 (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
403 @cindex PS (Postscript), output (PS (PostScript) 出力)
404 @cindex Postscript (PS), output (PostScript (PS) 出力)
405 @cindex output, PS (Postscript) (PS (PostScript) 出力)
410 @cindex PNG (Portable Network Graphics), output (PNG 出力)
411 @cindex output, PNG (Portable Network Graphics) (PNG 出力)
414 各ページの図を PNG フォーマットで生成します。@c
415 これは内部で @code{--ps} を使用します。@c
416 画像の DPI 解像度は以下のようにセットします:
421 @cindex PDF (Portable Document Format), output (PDF 出力)
422 @cindex output, PDF (Portable Document Format) (PDF 出力)
426 これは内部で @code{--ps} を使用します。
433 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
436 GNU LilyPond の保証責任を表示します。@c
437 (GNU LilyPond には@strong{保証責任はありません}!)
442 @node LilyPond の高度なコマンド ライン オプション
443 @unnumberedsubsec LilyPond の高度なコマンド ライン オプション
444 @translationof Advanced command line options for LilyPond
448 @item -d@var{[option-name]}=@var{[value]},
449 --define-default=@var{[option-name]}=@var{[value]}
450 これは内部 Scheme 関数に @var{value} をセットします。@c
457 @var{value} が指定されない場合、デフォルト値が使われます。@c
458 例えば、@var{option-name} に接頭辞 @code{no-} を付けると、そのオプションは
461 @cindex point and click, command line (コマンド ラインでポイント&クリックを指定する)
475 @noindent 以下にサポートされるオプションをデフォルト値とともに示します:
477 @multitable @columnfractions .33 .16 .51
480 @tab @strong{説明/オプション}
482 @item @code{anti-alias-factor}
484 @tab (与えられた因数を用いて) 高解像度で描画して、その結果をスケール
485 ダウンすることにより、@code{PNG} 画像の輪郭がギザギザになることを防ぎます。
487 @item @code{aux-files}
489 @tab @code{eps} バックエンドを使うときに @code{.tex}, @code{.texi},
490 @code{.count} ファイルを作成します。
494 @tab デフォルト設定です。Postscript ファイル (デフォルト) は@c
495 @code{TTF}, @code{Type1}, それに @code{OTF} フォントを埋め込みます。@c
496 フォントのサブセットは作成されません。@c
497 @q{東洋} の文字セットを用いるとファイルが非常に大きくなる可能性が@c
502 @tab @command{lilypond-book} コマンドのデフォルトです。@c
503 これは、1 つのファイルにすべてのページとフォントを埋め込んだものと、@c
504 ページ毎に分離しフォントを埋め込まない eps ファイルの、両方を吐き出します。
508 @tab 楽譜を出力しません。@code{-dno-print-pages} と同じ効果を持ちます。
512 @tab 内部的な Scheme ベースの描画コマンドを吐き出します。
516 @tab ページ毎の SVG ファイルが全ページ分作られます。@c
517 LilyPond 自身の音楽グリフを除き、フォントは埋め込まれません。@c
518 そのため、テキストや歌詞の最適な描画を得るためには、@c
519 SVG ビュアーにフォントが必要となります。@c
520 SVG ビュアーが対応していないことがあるので、@c
521 @q{フォントエイリアス} や @q{フォントリスト} を使用しないことをお勧めします。@c
522 @emph{Web Open Font Format} (WOFF) ファイルを使うときには、@c
523 追加の @code{svg-woff} スイッチが必要となります。
527 @strong{SVG バッグエンド出力の注意:}
528 LilyPond のデフォルトフォント(@code{LilyPond Serif},
529 @code{LilyPond Sans Serif} と @code{LilyPond Monospace})は、@c
530 まさに @emph{ローカル} フォントエイリアスです。@c
531 そのため、@code{svg} バックエンドを使う場合は、@c
532 ソースファイルで明示的にデフォルトフォントを設定する必要があります;
538 (make-pango-font-tree "TeX Gyre Schola"
541 (/ staff-height pt 20)))
546 @ruser{ドキュメント全体のフォント} も参照してください。
548 @multitable @columnfractions .33 .16 .51
550 @item @code{check-internal-types}
552 @tab Check every property assignment for types.
554 @item @code{clip-systems}
556 @tab Extract music fragments out of a score. This requires that the
557 @code{clip-regions} function has been defined within the @code{\layout}
558 block. See @ruser{Extracting fragments of music}. No fragments are
559 extracted though if used with the @option{-dno-print-pages} option.
563 @tab Prefix for data files (read-only).
565 @item @code{debug-gc}
567 @tab Dump memory debugging statistics.
569 @item @code{debug-gc-assert-parsed-dead}
571 @tab For memory debugging: Ensure that all references to parsed objects
572 are dead. This is an internal option, and is switched on automatically
573 for @code{`-ddebug-gc'}.
575 @item @code{debug-lexer}
577 @tab Debug the flex lexer.
579 @item @code{debug-page-breaking-scoring}
581 @tab Dump scores for many different page breaking configurations.
583 @item @code{debug-parser}
585 @tab Debug the bison parser.
587 @item @code{debug-property-callbacks}
589 @tab Debug cyclic callback chains.
591 @item @code{debug-skylines}
595 @item @code{delete-intermediate-files}
597 @tab コンパイルの途中で作成される使用しない中間ファイル @code{.ps} を@c
600 @item @code{dump-cpu-profile}
602 @tab CPU 時間情報を吐き出します (システムに依存します)。
604 @item @code{dump-profile}
606 @tab 各ファイルのメモリと CPU 時間情報を吐き出します。
609 @item @code{dump-signatures}
611 @tab Dump output signatures of each system. Used for regression testing.
613 @item @code{eps-box-padding}
615 @tab 出力される EPS の左端に与えられた数の余白を追加します
618 @item @code{gs-load-fonts}
620 @tab Ghostscript 経由でフォントを読み込みます。
622 @item @code{gs-load-lily-fonts}
624 @tab LilyPond のフォントだけを Ghostscript 経由で読み込みます。
628 @tab 出力を表示せずに処理を行い、すべての出力をログ ファイルに@c
633 @strong{Windows ユーザへの注意:} @code{lilypond.exe} がデフォルトで@c
634 すべての進捗情報をコマンド ウィンドウに出力するのに対して、@c
635 @code{lilypond-windows.exe} は進捗情報を出力しません。@c
636 @option{-dgui} オプションを用いることで、出力をログ ファイルに@c
639 @multitable @columnfractions .33 .16 .51
644 @item @code{include-book-title-preview}
646 @tab プレビュー画像にブック タイトルを含めます。
648 @item @code{include-eps-fonts}
650 @tab システム毎の EPS ファイルにフォントを含めます。
652 @item @code{include-settings}
654 @tab グローバル設定のファイルをインクルードします。このファイルは楽譜の@c
657 @item @code{job-count}
659 @tab 与えられた数のジョブで、並行して処理します。
661 @item @code{log-file}
662 @tab @code{#f [file]}
663 @tab 2 番目の引数として文字列 @code{FOO} が与えられた場合、出力を@c
664 ログ ファイル @code{FOO} にリダイレクトします。
666 @item @code{max-markup-depth}
668 @tab マークアップ ツリーの階層の最大値です。それよりも深い階層を持つ@c
669 マーックアップがある場合、そのマークアップは終了していないと見なされて、@c
670 警告が表示され、null マークアップが返されます。
672 @item @code{midi-extension}
674 @tab MIDI 出力ファイルのデフォルトのファイル拡張子を与えられた文字列に@c
678 @item @code{music-strings-to-paths}
680 @tab Convert text strings to paths when glyphs belong to a music font.
682 @item @code{paper-size}
684 @tab デフォルトの紙面サイズを設定します。文字列をエスケープ記号付の 2 重@c
685 引用符 @code{\"} で囲む必要があることに注意してください。
687 @item @code{pixmap-format}
689 @tab 画像出力のための GhostScript の出力フォーマットを設定します。
691 @item @code{point-and-click}
693 @tab PDF と SVG 出力に @q{ポイント&クリック} リンクを付け加えます。@c
694 @ref{Point and click} を参照してください。
698 @tab 通常の出力に加えてプレビュー画像を作成します。
703 -- @code{pdf}, @code{png}, @code{ps}, @code{eps}, それに @code{svg} --
704 でサポートされますが、@code{scm} ではサポートされません。@c
705 このオプションはタイトルと楽譜の最初の段を保持するファイル
706 -- @code{myFile.preview.extension} という形式のファイル名を持ちます --
708 @code{\book} ブロックや @code{\bookpart} ブロックが使われている場合、@c
709 @code{\book}, @code{\bookpart}, それに @code{\score} のタイトルが出力@c
710 に譜刻され、@code{\paper} 変数 @code{print-all-headers} が @code{#t} に@c
711 セットされている場合は各 @code{\score} ブロックの最初の段も譜刻されます。
713 通常の出力を抑制するには、必要に応じて @option{-dprint-pages} オプション@c
714 または @option{-dno-print-pages} オプションを使ってください。
716 @multitable @columnfractions .33 .16 .51
717 @item @code{print-pages}
719 @tab すべてのページを生成します。これがデフォルトです。@option{-dpreview}
720 を使う場合は @option{-dno-print-pages} を組み合わせると有用です。
722 @item @code{profile-property-accesses}
724 @tab @code{get_property()} 関数呼び出しの統計を取ります。
726 @item @code{protected-scheme-parsing}
728 @tab パーサでインライン Scheme のエラーが発生しても処理を続けます。@c
729 @code{#f} に設定されている場合、エラー終了して、スタック トレースを表示@c
732 @item @code{read-file-list}
733 @tab @code{#f [file]}
734 @tab 処理する入力ファイルのリストを保持するファイルを指定します。
736 @item @code{relative-includes}
738 @tab @code{\include} コマンドを処理するとき、インクルードするファイルを@c
739 (ルート ファイルからではなく) カレント ファイルからの相対位置で検索します。
741 @item @code{resolution}
743 @tab 生成する @code{PNG} 画像の解像度を与えられた値に設定します。@c
748 @tab @code{.ly} 入力ファイルを信用しません。
752 Web サーバ経由で LilyPond 譜刻が利用可能な場合、@option{--safe}
753 オプションか @option{--jail} オプションのどちらかを
755 @option{--safe} オプションはインライン Scheme コードが無茶をする
756 -- 例えば、以下のような -- ことを防ぎます。
760 #(s ystem "rm -rf /") % 正しく書くのはあまりにも危険
762 c4^$(ly:gulp-file "/etc/passwd") % 破壊的ではないが悪意がある
767 @option{-dsafe} オプションはインライン Scheme 表記を特別なセーフ
769 これは GUILE @file{safe-r5rs} モジュールに由来しますが、@c
770 @file{scm/safe-lily.scm} でリスト アップされている LilyPond API 関数の@c
773 さらに、セーフ モードでは @code{\include} は許可されず、@TeX{} 文字列の@c
774 中でバックスラッシュを使うこともできません。@c
775 また、セーフ モードでは LilyPond 変数を Scheme にインポートすることも@c
778 @option{-dsafe} はリソースの過使用を検出 @emph{しません} ので、@c
779 このオプションを指定してもプログラムをハングさせられる可能性があります
780 -- 例えば、サイクリック (巡回) データ構造をバックエンドに埋め込むことに@c
782 そのため、LilyPond を一般公開する Web サーバで使用する場合、プロセスの@c
785 セーフ モードは多くの有用な LilyPond 楽譜断片がコンパイルされることを@c
788 @option{--jail} はさらに安全な代替手段ですが、セットアップにかかる手間も@c
789 増えます。@ref{Basic command line options for LilyPond} を参照してください。
791 @multitable @columnfractions .33 .16 .51
792 @item @code{separate-log-files}
794 @tab 入力ファイル @code{FILE1.ly}, @code{FILE2.ly}, 等に対するログ
795 データをファイル @code{FILE1.log}, @code{FILE2.log}@dots{} に出力します。
797 @item @code{show-available-fonts}
799 @tab 使用可能なフォント名をリスト アップします。
801 @item @code{strict-infinity-checking}
803 @tab 浮動小数点の例外 @code{Inf} と @code{NaN} に遭遇した時、@c
806 @item @code{strip-output-dir}
808 @tab 出力ファイル名を構築する時に入力ファイルのディレクトリを使用@c
812 @item @code{strokeadjust}
814 @tab Force PostScript stroke adjustment. This option is mostly
815 relevant when a PDF is generated from PostScript output (stroke
816 adjustment is usually enabled automatically for low-resolution bitmap
817 devices). Without this option, PDF previewers tend to produce widely
818 inconsistent stem widths at resolutions typical for screen display. The
819 option does not noticeably affect print quality and causes large file
820 size increases in PDF files.
822 @item @code{svg-woff}
824 @tab このオプションは @code{svg} バックエンドで Web Open Format (WOFF)
826 ページ毎の SVG ファイルが全ページ分作られます。@c
827 LilyPond 自身の音楽グリフを除き、フォントは埋め込まれません。@c
828 そのため、テキストや歌詞の最適な描画を得るためには、@c
829 SVG ビュアーにフォントが必要となります。@c
830 SVG ビュアーが対応していないことがあるので、@c
831 @q{フォントエイリアス} や @q{フォントリスト} を使用しないことをお勧めします。@c
833 @item @code{trace-memory-frequency}
835 @tab Scheme セルの 1 秒毎の使用数を記録します。結果を @code{FILE.stacks}
836 と @code{FILE.graph} に吐き出します。
838 @item @code{trace-scheme-coverage}
840 @tab Scheme ファイルの適用範囲を @code{FILE.cov} に記録します。
844 @tab 饒舌な出力。つまり、loglevel を DEBUG に設定します。
846 @item @code{warning-as-error}
848 @tab すべての警告と @q{プログラミング エラー} をエラーに変更します。
853 @unnumberedsubsec 環境変数
854 @translationof Environment variables
857 @cindex LILYPOND_DATADIR
859 @command{lilypond} は以下の環境変数を認識します:
861 @item LILYPOND_DATADIR
863 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
864 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
870 @item LILYPOND_LOGLEVEL
872 明示的にログレベルが指定されずに LilyPond が呼び出された場合
873 (すなわち @option{--loglevel} コマンド ライン オプションが@c
877 @item LILYPOND_GC_YIELD
878 メモリ管理を調節する変数 (単位はパーセント) です。@c
879 大きな値は LilyPond に多くのメモリ使用を許し、@c
880 小さな値だと CPU 使用時間が長くなります。@c
881 デフォルト値は @code{70} です。
882 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
883 これはメモリ管理の振る舞いを調整するパーセント値です。@c
884 高い値にするとプログラムはより多くのメモリを使用し、@c
885 低い値にするとより多くの CPU 時間を使用します。@c
886 デフォルト値は @code{70} です。
890 @node chroot jail 環境で LilyPond を実行する
891 @unnumberedsubsec chroot jail 環境で LilyPond を実行する
892 @translationof LilyPond in chroot jail
894 LilyPond を chroot jail 環境で実行させるようサーバをセットアップすることは@c
896 以下にステップをリスト アップします。@c
897 各ステップの中にある例は Ubuntu GNU/Linux 用であり、@c
898 @code{sudo} の使用が必要となるかもしれません。
902 @item 必要なパッケージをインストールします:
903 LilyPond, GhostScript, それに ImageMagick。
905 @item @code{lily} という名前のユーザを作成します:
912 このコマンドはユーザ @code{lily} のためにホーム フォルダ (@code{/home/lily})
915 @item ユーザ @code{lily} のホーム フォルダで、@c
916 独立したファイルシステムとして使用するファイルを作成します:
919 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
923 このコマンドは jail ファイルシステムとして使用する
926 @item ループ デバイスを作成し、ファイルシステムを作ってそれをマウントし、@c
927 それからユーザ @code{lily} が書き込めるフォルダを作成します:
931 losetup /dev/loop0 /home/lily/loopfile
932 mkfs -t ext3 /dev/loop0 200000
933 mount -t ext3 /dev/loop0 /mnt/lilyloop
934 mkdir /mnt/lilyloop/lilyhome
935 chown lily /mnt/lilyloop/lilyhome
938 @item サーバのコンフィグレーションで、JAIL は @code{/mnt/lilyloop} となり、@c
939 DIR は @code{/lilyhome} となります。
941 @item 以下に示すサンプル スクリプトのように必要なファイルをコピーして
942 jail の中に大きなディレクトリ ツリーを作成します。
944 @code{sed} を使うことで必要な実行形式ファイルをコピーすることができます:
947 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \
948 do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \
949 cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \
950 \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
955 @subheading 32-bit Ubuntu 8.04 用のスクリプト例
963 loopdevice=/dev/loop0
964 jaildir=/mnt/lilyloop
965 # the prefix (without the leading slash!)
967 # the directory where lilypond is installed on the system
968 lilydir=/$lilyprefix/lilypond/
970 userhome=$home/$username
971 loopfile=$userhome/loopfile
973 dd if=/dev/zero of=$loopfile bs=1k count=200000
975 losetup $loopdevice $loopfile
976 mkfs -t ext3 $loopdevice 200000
977 mount -t ext3 $loopdevice $jaildir
978 mkdir $jaildir/lilyhome
979 chown $username $jaildir/lilyhome
982 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
985 cp -r -L $lilydir $lilyprefix
986 cp -L /bin/sh /bin/rm bin
987 cp -L /usr/bin/convert /usr/bin/gs usr/bin
988 cp -L /usr/share/fonts/truetype usr/share/fonts
990 # Now the library copying magic
991 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
992 "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
993 \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
994 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
995 | sed '/.*=>.*/d'; done | sh -s
997 # The shared files for ghostscript...
998 cp -L -r /usr/share/ghostscript usr/share
999 # The shared files for ImageMagick
1000 cp -L -r /usr/lib/ImageMagick* usr/lib
1002 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
1003 ### you should be able to run:
1004 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
1005 ### LD_LIBRARY_PATH - this is crucial
1006 /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
1009 @c " keep quote signs balanced for context-sensitive editors
1014 @translationof Error messages
1016 @cindex error messages (エラー メッセージ)
1017 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
1023 @cindex warning (警告)
1025 あなたが何か普通でないことをリクエストしている場合は、@c
1026 そのメッセージを理解して、それを無視することができます。@c
1028 Warning は通常、入力ファイルに何か問題があることを示しています。
1032 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
1037 @cindex fatal error (致命的なエラー)
1038 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
1040 これが起こるのはたいてい、フォントのインストールに問題があるためです。
1043 @cindex trace, Scheme (Scheme トレース)
1044 @cindex call trace (トレースを呼び出す)
1045 @cindex Scheme error (Scheme エラー)
1046 Scheme コードの実行中に発生するこのエラーは
1047 Scheme インタプリタによって引き起こされます。@c
1049 (@option{-V} または @option{--verbose})
1051 問題となっている関数呼び出しの呼び出し追跡が表示されます。
1053 @item Programming error
1054 @cindex Programming error (プログラミング エラー)
1056 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
1058 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
1060 @item Aborted (core dumped)
1061 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
1063 そのようなエラーは決定的なものだと考えられます。@c
1064 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
1067 @cindex errors, message format (エラー メッセージの形式)
1068 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
1069 エラー メッセージは以下のような形式になります:
1072 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
1073 @var{offending input line}
1076 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
1080 test.ly:2:19: error: not a duration: 5
1085 これらの位置は LilyPond が警告やエラーが発生した位置を@c
1087 (ごく当たり前のことですが) 警告とエラーは@c
1088 何か予期しないことが起こったときに発生するものです。@c
1089 入力ファイルの示された行にエラーを見つけることができない場合は、@c
1090 示された位置の 1 行か 2 行上をチェックしてみてください。
1092 診断は多くの処理段階のあらゆる時点で発生し得ることに注意してください。@c
1093 例えば、入力が複数回処理される(つまり、MIDI とレイアウト出力)@c
1094 または同じ音楽変数がコンテキストで使われると、@c
1095 同じメッセージが何回か現れることがあります。
1097 エラーについての更なる情報が @ref{一般的なエラー} で提供されています。
1102 @translationof Common errors
1104 以下で説明するエラーがしばしば発生しますが、@c
1105 その原因は明白でなかったり、見つけにくかったりします。@c
1106 目を通しておくと、それらのエラーに対処しやすくなります。
1112 * エラー メッセージ Unbound variable %::
1113 * エラー メッセージ FT_Get_Glyph_Name::
1114 * 警告 -- Warning staff affinities should only decrease::
1115 * Error message unexpected new::
1116 * Warning this voice needs a voiceXx or shiftXx setting::
1120 @unnumberedsubsec 楽譜がページからはみ出る
1121 @translationof Music runs off the page
1123 楽譜がページの右マージンを越えてはみ出る、あるいは過度に密集するのは、@c
1124 ほぼ間違いなく音符の演奏時間に誤りがあり、@c
1125 小節の最後の音符が小節線を越えてしまうためです。@c
1126 ある小節の最後の音符が自動的に挿入される小節線の所で終わらなくても@c
1128 なぜなら、その音符は次の小節に持ち越されるためです。@c
1129 しかしながら、そのような持ち越しが発生する小節が長く続くと、@c
1130 楽譜は密集して表示されたり、ページからはみ出たりします。@c
1132 自動改行を挿入できるのは正しく終了する小節
1133 (その小節のすべての音符が小節の中で終了しています)
1136 @warning{誤った演奏時間は改行を抑制し、結果として楽譜が過度に密集したり、c@
1137 ページからはみ出たりする可能性が生じます。}
1139 小節チェックを使用していれば、誤った演奏時間を簡単に見つけることができます。@c
1140 @ruser{小節と小節番号のチェック} を参照してください。
1142 あなたがそのような音符が持ち越される小節を続けることを意図しているのであれば、@c
1143 改行させたい場所に不可視の小節線を挿入する必要があります。@c
1145 @ruser{小節線} を参照してください。
1149 @unnumberedsubsec 余計な譜が表示される
1150 @translationof An extra staff appears
1152 コンテキストが @code{\new} や @code{\context} で明示的に作成されていない場合、@c
1153 既存のコンテキストには適用できないコマンドに遭遇した時点で@c
1155 単純な楽譜では、コンテキストの自動作成は有用であり、@c
1156 LilyPond マニュアルのほとんどの例はこの手法を用いています。@c
1157 しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を@c
1159 例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを@c
1161 結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
1163 @lilypond[quote,verbatim,fragment]
1164 \override Staff.NoteHead.color = #red
1168 これは、(符頭色の) オーバライドが処理される時に
1169 @code{Staff} コンテキストが存在していないため、@c
1170 @code{Staff} コンテキストが暗黙的に作成され、@c
1171 そのコンテキストにオーバライドが適用されるからです。@c
1172 その後に @code{\new Staff} コマンドにより@c
1173 もう 1 つ別の @code{Staff} コンテキストが作成され、@c
1175 すべての符頭を赤にする正しいコードは以下のようになります:
1177 @lilypond[quote,verbatim]
1179 \override Staff.NoteHead.color = #red
1184 @node エラー メッセージ Unbound variable %
1185 @unnumberedsubsec エラー メッセージ Unbound variable %
1186 @translationof Error message Unbound variable %
1188 このエラー メッセージは、@emph{Scheme} 形式ではなく @emph{LilyPond} 形式の@c
1189 コメントを含む Scheme ルーチンが呼び出されるたびに、@c
1190 コンソール出力またはログ ファイルの最後に表示されます。
1192 LilyPond 形式のコメントはパーセント記号 (@code{%}) で始まり、@c
1193 Scheme ルーチンの中で使うことはできません。@c
1194 Scheme 形式のコメントはセミコロン (@code{;}) で始まります。
1196 @node エラー メッセージ FT_Get_Glyph_Name
1197 @unnumberedsubsec エラー メッセージ FT_Get_Glyph_Name
1198 @translationof Error message FT_Get_Glyph_Name
1200 入力ファイルが非 ASCII キャラクタを保持していて、@c
1201 UTF-8 エンコードで保存されていない場合、@c
1202 このエラー メッセージがコンソール出力やログ ファイルに表示されます。@c
1204 @c @ruser{テキスト エンコーディング}
1205 @ruser{Text encoding} を参照してください。
1208 @node 警告 -- Warning staff affinities should only decrease
1209 @unnumberedsubsec 警告 -- Warning staff affinities should only decrease
1210 @translationof Warning staff affinities should only decrease
1212 この警告は、譜刻された出力の中に譜が無い場合に表示されます。@c
1213 例えば、リード譜に @code{ChordName} コンテキストと @code{Lyrics} コンテキスト@c
1215 この警告は、入力の始めに以下を挿入することで@c
1216 譜として振舞うコンテキストを作ることで回避できます:
1219 \override VerticalAxisGroup.staff-affinity = ##f
1223 詳細は @ruser{システム内部の可変な垂直方向のスペース} の
1224 @qq{譜ではない行のスペース} を参照してください。
1227 @node Error message unexpected new
1228 @unnumberedsubsec Error message unexpected @code{@bs{}new}
1230 A @code{\score} block must contain a @emph{single} music expression.
1231 If instead it contains several @code{\new Staff},
1232 @code{\new StaffGroup} or similar contexts introduced with @code{\new}
1233 without them being enclosed in either curly brackets,
1234 @code{@{ @dots{} @}}, or double angle brackets, @code{<< @dots{} >>},
1239 % Invalid! Generates error: syntax error, unexpected \new
1240 \new Staff @{ @dots{} @}
1241 \new Staff @{ @dots{} @}
1246 the error message will be produced.
1248 To avoid the error, enclose all the @code{\new} statements in
1249 curly or double angle brackets.
1251 Using curly brackets will introduce the @code{\new} statements
1254 @lilypond[quote,verbatim]
1257 \new Staff { a' a' a' a' }
1258 \new Staff { g' g' g' g' }
1264 but more likely you should be using double angle brackets so the new
1265 staves are introduced in parallel, i.e. simultaneously:
1267 @lilypond[quote,verbatim]
1270 \new Staff { a' a' a' a' }
1271 \new Staff { g' g' g' g' }
1276 @node Warning this voice needs a voiceXx or shiftXx setting
1277 @unnumberedsubsec Warning this voice needs a @code{@bs{}voiceXx}
1278 or @code{@bs{}shiftXx} setting
1280 If notes from two different voices with stems in the same direction
1281 occur at the same musical moment, but the voices have no
1282 voice-specific shifts specified, the warning message
1283 @samp{warning: this voice needs a \voiceXx or \shiftXx setting} will appear
1284 when compiling the LilyPond file. This warning will appear even when
1285 the notes have no visible stems, e.g. whole notes, if the stems for
1286 shorter notes at the same pitch would be in the same direction.
1288 Remember that the stem direction depends on the position of the
1289 note on the staff unless the stem direction is specified, for example
1290 by using @code{\voiceOne}, etc. In this case the warning will appear
1291 only when the stems happen to be in the same direction, i.e. when the
1292 notes are in the same half of the staff.
1294 By placing the notes in voices with stem directions and shifts
1295 specified, for example by using @code{\voiceOne}, etc., these warnings
1298 Notes in higher numbered voices, @code{\voiceThree} etc., are
1299 automatically shifted to avoid clashing note columns. This causes a
1300 visible shift for notes with stems, but whole notes are not visibly
1301 shifted unless an actual clash of the note heads occurs, or when the
1302 voices cross over from their natural order (when @code{\voiceThree}
1303 is higher than @code{\voiceOne}, etc.)
1306 @rlearning{Explicitly instantiating voices},
1307 @rlearning{Real music example},
1308 @ruser{Single-staff polyphony},
1309 @ruser{Collision resolution}.