]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/usage/running.itely
40302b86e56e09d848da7b4b5799f04166484107
[lilypond.git] / Documentation / ja / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
2
3 @ignore
4     Translation of GIT committish: 42ae342ba877dc8f26cabb5cc3937a6d3cdb4066
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 @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 * 環境変数::
65 * LilyPond in chroot jail::
66 @end menu
67
68 @node lilypond を呼び出す
69 @unnumberedsubsec @command{lilypond} を呼び出す
70 @translationof Invoking lilypond
71
72
73 @command{lilypond} 実行可能形式ファイルは@c
74 コマンド ラインから以下のように呼び出されます。
75
76 @example
77 lilypond [@var{option}]@dots{} @var{file}@dots{}
78 @end example
79
80 拡張子を持たないファイル名で呼び出された場合、@c
81 @file{.ly} が最初に試されます。@c
82 sudin から入力を読み込む場合には、@c
83 @var{file} に対してダッシュ (@code{-}) を使用します。
84
85 @file{filename.ly} が処理されると、@c
86 lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り出します。@c
87 いくつかのファイルを指定することもできます。@c
88 その場合、それらのファイルは個々に処理されます。@c
89 @footnote{GUILE のステータスは @code{.ly} 処理後にリセットされません。@c
90 そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう注意してください。}
91
92 @file{filename.ly} が複数の @code{\score} を含んでいる場合、@c
93 2 つ目以降の score は
94 @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c
95 さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c
96 以下の内容を含んでいる入力ファイルは
97
98 @example
99 #(define output-suffix "violin")
100 \book @{ @dots{} @}
101 #(define output-suffix "cello")
102 \book @{ @dots{} @}
103 @end example
104
105 @noindent
106 @var{base}@file{-violin.pdf} と @var{base}@file{-cello-1.pdf} を出力します。
107
108
109 @unnumberedsubsubsec 標準シェル コマンド
110
111 シェル (例えばコマンド ウィンドウ) がリダイレクトをサポートしているのであれば、@c
112 以下のコマンドでコンソール出力をファイルにリダイレクトすると役に立つかもしれません。
113
114 @itemize
115
116 @item
117 @code{lilypond file.ly 1>stdout.log} 通常出力をリダイレクトします
118
119 @item
120 @code{lilypond file.ly 2>stderr.log} エラー メッセージをリダイレクトします。
121
122 @item
123 @code{lilypond file.ly &>all.log} すべての出力をリダイレクトします
124
125 @end itemize
126
127 あなたの使用しているシェルがこれらのオプションをサポートしているかどうか、@c
128 あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。@c
129 これらはシェル コマンドであり、lilypond とは無関係です。
130
131
132 @node lilypond のコマンド ライン オプション
133 @unnumberedsubsec @command{lilypond} のコマンド ライン オプション
134 @translationof Command line options for lilypond
135
136 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
137 @cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション)
138 @cindex options, command line (コマンド ライン オプション)
139 @cindex switches (切り換え)
140
141 以下のオプションがサポートされます:
142
143 @table @code
144
145 @item -e,--evaluate=@var{expr}
146 @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c
147 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。
148
149 表記は @code{guile-user} モジュールの中で評価されます。@c
150 そのため、@var{expr} の中で定義を使いたいのならば、@c
151 @code{.ly} ファイルに以下をインクルードして:
152
153 @example
154 #(use-modules (guile-user))
155 @end example
156
157 @noindent
158 コマンド ラインで以下を使用します:
159
160 @example
161 lilypond -e '(define-public a 42)'
162 @end example
163
164
165
166 @item -f,--format=@var{format}
167 フォーマットを指定します。@c
168 @code{format} には @code{svg}, @code{ps}, @code{pdf}, @code{png} を選択します。
169
170 例: @code{lilypond -fpng @var{filename}.ly}
171
172
173
174 @item -d,--define-default=@var{var}=@var{val}
175 これは内部プログラム オプション @var{var} に
176 Scheme 値 @var{val} をセットします。@c
177 @var{val} が提供されていない場合、@var{#t} が使用されます。@c
178 オプションを OFF にするには、@var{var} の接頭辞として @code{no-} を付けます。@c
179 つまり、
180
181 @cindex point and click, command line (コマンド ラインからポイント&クリックを制御する)
182
183 @example
184 -dno-point-and-click
185 @end example
186
187 @noindent
188
189 @example
190 -dpoint-and-click='#f'
191 @end example
192 と同じです。
193
194 ここで興味深いオプションをいくつか挙げます。
195
196 @table @samp
197 @item help
198 @code{lilypond -dhelp} を実行すると@c
199 使用可能な @code{-d} オプションがすべて表示されます。
200
201 @cindex paper-size, command line (コマンドラインで paper-size を指定する)
202
203 @item paper-size
204 このオプションはデフォルトの用紙サイズをセットします。
205 @example
206 -dpaper-size=\"letter\"
207 @end example
208
209 @noindent
210 文字列はエスケーブされたクォート ( @code{\"} ) で@c
211 囲まれていなければならないということに注意してください。
212 @c Match " in previous line to help context-sensitive editors
213
214 @item safe
215 @code{.ly} 入力を信用してはいけません。
216
217 Web サーバを通じて LilyPond フォーマットが利用可能な場合、@c
218 @code{--safe} オプションか @code{--jail} オプションの@c
219 どちらかを@b{渡さなければなりません}。@c
220 @code{--safe} オプションは@c
221 以下のようなインライン Scheme コードが大混乱をもたらすことを防ぎます:
222
223 @quotation
224 @verbatim
225 #(system "rm -rf /")
226 {
227   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
228 }
229 @end verbatim
230 @end quotation
231
232 訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、@c
233 export (ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。
234
235 @code{-dsafe} オプションはインライン Scheme 表記を@c
236 特別なセーフ モジュールの中で評価します。@c
237 このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生したものですが、@c
238 LilyPond API 関数をいくつか追加しています。@c
239 これらの関数は @file{scm/safe-lily.scm} でリスト アップされています。
240
241 さらに、セーフ モードは @code{\include} 指示を却下し、@c
242 @TeX{} 文字列の中にあるバックスラッシュを無効にします。
243
244 セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。
245
246 @code{-dsafe} はリソースの乱用を検出@emph{しません}。@c
247 例えば循環データ構造体をバックエンドに食わせることで、@c
248 プログラムをハングさせることは可能です。@c
249 そのため、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、@c
250 そのプロセスの CPU とメモリの両方の使用は制限されるべきです。
251
252 セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c
253 @code{--jail} はより安全な代替オプションですが、@c
254 セット アップにより多くの作業を必要とします。
255
256 @cindex output format, setting (出力フォーマットを設定する)
257 @item backend
258 バックエンドに対して使用する出力フォーマットを指定します。@c
259 @code{format} の選択肢には以下があります:
260 @table @code
261 @item ps
262 @cindex PostScript output (PostScript 出力)
263  PostScript
264
265  Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。@c
266 これらのフォントのサブセット化
267 (訳者: フォント セットを使用するフォントに限定すること) は行われません。@c
268 東洋の文字セットを使用する場合、巨大なファイルになる可能性があります。
269
270 @item eps
271  縮約された PostScript (EPS)。@c
272 これは各ページ (システム) を@c
273 フォントを持たない個別の @file{EPS} ファイルとして吐き出し、@c
274 フォントを含めたすべてのページ (システム) を持つ
275 @file{EPS} ファイルを 1 つ吐き出します。
276
277 このモードは @command{lilypond-book} でデフォルトで使用されます。
278
279 @item svg
280 @cindex SVG (Scalable Vector Graphics)
281  SVG (Scalable Vector Graphics)。@c
282 これは各ページを@c
283 フォントを埋め込まれた個別の @file{SVG} ファイルとして吐き出します。@c
284 埋め込みフォントをサポートする SVG ビューアか@c
285 埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが必要になります。@c
286 UNIX では、@c
287 @uref{http://www.inkscape.org,Inkscape} (バージョン 0.42 以降) を@c
288 使うことになるかもしれません。@c
289 使用前に、OTF フォントを LilyPond ディレクトリ
290 (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から
291 @file{~/.fonts/} にコピーしてください。
292 @item scm
293 @cindex Scheme dump (Scheme ダンプ)
294  生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。
295
296 @item null
297  譜刻された楽譜を出力しません。@c
298 @code{-dno-print-pages} と同じ効果を持ちます。
299 @end table
300
301 例: @code{lilypond -dbackend=svg @var{filename}.ly}
302
303 @item preview
304 タイトルとファイル システム情報を保持している出力ファイルを生成します。
305 @item print-pages
306
307 すべてのページを生成します。@c
308 デフォルトです。@code{-dno-print-pages} は
309 @code{-dpreview} と組み合わせて使うと有用です。
310
311 @end table
312
313
314
315 @item -h,--help
316 使用方法の要約を表示します。
317
318 @item -H,--header=@var{FIELD}
319 ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。
320
321 @item --include, -I=@var{directory}
322 @var{directory} を入力ファイルのサーチ パスに追加します。
323 @cindex file searching (ファイル検索)
324 @cindex search path (サーチ パス)
325
326 @item -i,--init=@var{file}
327 init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。
328
329 @item -o,--output=@var{FILE}
330 デフォルトの出力ファイルとして @var{FILE} をセットします。@c
331 適切な接尾辞が追加されます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。
332
333 @item --ps
334 PostScript を生成します。
335
336 @item --png
337 各ページの図を PNG フォーマットで生成します。@c
338 これは内部で @code{--ps} を使用します。@c
339 画像の DPI 解像度は以下のようにセットします:
340 @example
341 -dresolution=110
342 @end example
343
344 @item --pdf
345 PDF を生成します。@c
346 これは内部で @code{--ps} を使用します。
347
348
349
350 @item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
351 @command{lilypond} を chroot jail 環境で実行します。@c
352 (訳者: chroot jail 環境とはセキュリティのために@c
353 カレント プロセスに対してルート ディレクトリの位置を変更すること。)
354
355 @code{--jail} オプションは、@c
356 Web サーバを通じて LilyPond 譜刻を実行するときや
357 LilyPond が外部から提供されたソースを実行するときに、@c
358 @code{--safe} よりも自由度の高い代替手段を提供します。
359
360 @code{--jail} オプションはコンパイル プロセスの開始直前に
361 @command{lilypond} の ルートを @var{jail} に変更します。@c
362 それからユーザとグループを提供された環境にマッチするように変更し、@c
363 カレント ディレクトリは @var{dir} に変更されます。@c
364 このセットアップは jail (牢獄) から抜け出せないということを
365 (少なくとも理論的には) 保証します。@c
366 @code{--jail} を指定した @command{lilypond} の実行は@c
367 root (ユーザ名) として行われる必要があります。@c
368 通常、これは @command{sudo} を用いた安全な方法で行われます。
369
370 jail のセットアップは少々デリケートな問題です。@c
371 LilyPond がソースをコンパイルするのに必要とされるものすべてを
372 @emph{jail の内部} で見つけられるということを保証しなければならないからです。@c
373 一般的なセットアップには以下の項目が含まれます:
374
375 @table @asis
376 @item 専用のファイルシステムをセットアップする
377 @code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c
378 マウントするための専用ファイルシステムを作成すべきです。@c
379 こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c
380 デバイスに直接書き込むことは不可能になります。@c
381 専用のパーティションを作成することを望まないのなら、@c
382 適当なサイズのファイルを作成し、@c
383 それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c
384 専用ファイルシステムはさらに、@c
385 LilyPond が許可されたディスク容量以上には書き込めないということを保証します。
386
387 @item 専用のユーザをセットアップする
388 jail 内部で LilyPond を実行する際、@c
389 低い権限を持つ専用のユーザとグループ (仮に @code{lily}/@code{lily} とします) で@c
390 行うべきです。@c
391 このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c
392 それを @var{dir} に渡します。
393
394 @item jail の準備をする
395 LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c
396 それらのファイルをすべて jail にコピーしておきます。@c
397 それらのファイルが本当のルート ファイル システムで存在しているパスと@c
398 同じパスにコピーします。@c
399 LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c
400 コピーすべきです。
401
402 問題が発生した場合、その原因を突き止める最も簡単な方法は
403 @command{strace} を使って LilyPond を実行することです。@c
404 これによりどのファイルが見当たらないのかがわかります。
405
406 @item LilyPond を実行する
407 @code{noexec} でマウントされた jail の中では、@c
408 外部プログラムを実行することは一切できません。@c
409 そのため、外部プログラムを必要としないバックエンドで
410 LilyPond を実行しなければなりません。@c
411 すでに述べたように、@c
412 jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず
413 (もちろん、その権限はすぐに外されます)、@c
414 たぶん @command{sudo} を使います。@c
415 LilyPond が使用可能な CPU 時間を数秒に制限する
416 (例えば、@command{ulimit -t} を使って) というのは良いアイディアです。@c
417 さらに、OS がサポートしているのなら、@c
418 割り当て可能なメモリ容量を制限するというのも良いアイディアです。
419 @end table
420
421
422 @item -v,--version
423 バージョン情報を表示します。
424
425 @item -V,--verbose
426 冗長表示モードにします:
427 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
428
429 @item -w,--warranty
430 GNU LilyPond の保証責任を表示します。@c
431 (GNU LilyPond には@strong{保証責任はありません}!)
432 @end table
433
434 @node 環境変数
435 @unnumberedsubsec 環境変数
436 @translationof Environment variables
437
438 @cindex LANG
439 @cindex LILYPOND_DATADIR
440
441 @command{lilypond} は以下の環境変数を認識します:
442 @table @code
443 @item LILYPOND_DATADIR
444 これはデフォルトで参照する@c
445 ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c
446 このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c
447 サブディレクトリを保持しているべきです。
448
449 @item LANG
450 これは警告メッセージの言語を選択します。
451
452 @item LILYPOND_GC_YIELD
453 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c
454 これはメモリ管理の振る舞いを調整するパーセント値です。@c
455 高い値にするとプログラムはより多くのメモリを使用し、@c
456 低い値にするとより多くの CPU 時間を使用します。@c
457 デフォルト値は @code{70} です。
458
459 @end table
460
461 @c 未訳
462 @node LilyPond in chroot jail
463 @unnumberedsubsec LilyPond in chroot jail
464
465 Setting up the server to run LilyPond in a chroot jail is a complicated
466 task.  The steps are listed below.  Examples in the steps are from
467 Ubuntu Linux, and may require the use of @code{sudo} as appropriate.
468
469 @itemize
470
471 @item Install the necessary packages: LilyPond, GhostScript, and ImageMagick.
472
473 @item Create a new user by the name of @code{lily}:
474
475 @example
476 adduser lily
477 @end example
478
479 @noindent
480 This will create a new group for the @code{lily} user as well, and a home folder,
481 @code{/home/lily}
482
483 @item In the home folder of the @code{lily} user create a file to use as a
484 separate filesystem:
485
486 @example
487 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
488 @end example
489
490 @noindent
491 This example creates a 200MB file for use as the jail filesystem.
492
493 @item Create a loop device, make a file system and mount it, then create
494 a folder that can be written by the @code{lily} user:
495
496 @example
497 mkdir /mnt/lilyloop
498 losetup /dev/loop0 /home/lily/loopfile
499 mkfs -t ext3 /dev/loop0 200000
500 mount -t ext3 /dev/loop0 /mnt/lilyloop
501 mkdir /mnt/lilyloop/lilyhome
502 chown lily /mnt/lilyloop/lilyhome
503 @end example
504
505 @item In the configuration of the servers, the JAIL will be @code{/mnt/lilyloop}
506 and the DIR will be @code{/lilyhome}.
507
508 @item Create a big directory tree in the jail by copying the necessary files, as
509 shown in the sample script below.
510
511 You can use @code{sed} to create the necessary copy commands for a given
512 executable:
513
514 @example
515 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
516   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
517     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
518       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
519 @end example
520
521 @end itemize
522
523 @subheading Example script for 32-bit Ubuntu 8.04
524
525 @example
526 #!/bin/sh
527 ## defaults set here
528
529 username=lily
530 home=/home
531 loopdevice=/dev/loop0
532 jaildir=/mnt/lilyloop
533 # the prefix (without the leading slash!)
534 lilyprefix=usr/local
535 # the directory where lilypond is installed on the system
536 lilydir=/$lilyprefix/lilypond/
537
538 userhome=$home/$username
539 loopfile=$userhome/loopfile
540 adduser $username
541 dd if=/dev/zero of=$loopfile bs=1k count=200000
542 mkdir $jaildir
543 losetup $loopdevice $loopfile
544 mkfs -t ext3 $loopdevice 200000
545 mount -t ext3 $loopdevice $jaildir
546 mkdir $jaildir/lilyhome
547 chown $username $jaildir/lilyhome
548 cd $jaildir
549
550 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
551 chmod a+w tmp
552
553 cp -r -L $lilydir $lilyprefix
554 cp -L /bin/sh /bin/rm bin
555 cp -L /usr/bin/convert /usr/bin/gs usr/bin
556 cp -L /usr/share/fonts/truetype usr/share/fonts
557
558 # Now the library copying magic
559 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
560   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
561     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
562       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
563         | sed '/.*=>.*/d'; done | sh -s
564
565 # The shared files for ghostscript...
566       cp -L -r /usr/share/ghostscript usr/share
567 # The shared files for ImageMagick
568       cp -L -r /usr/lib/ImageMagick* usr/lib
569
570 ### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
571 ### you should be able to run:
572 ### Note that /$lilyprefix/bin/lilypond is a script, which sets the
573 ### LD_LIBRARY_PATH - this is crucial
574       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
575 @end example
576
577 @c " keep quote signs balanced for context-sensitive editors
578
579
580 @node エラー メッセージ
581 @section エラー メッセージ
582 @translationof Error messages
583
584 @cindex error messages (エラー メッセージ)
585 ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c
586 表示される可能性があります。
587
588 @table @emph
589
590 @item Warning
591 @cindex warning (警告)
592 何か疑わしいことがあります。@c
593 あなたが何か普通でないことをリクエストしている場合は、@c
594 そのメッセージを理解して、それを無視することができます。@c
595 しかしながら、@c
596 Warning は通常、入力ファイルに何か問題があることを示しています。
597
598 @item Error
599 何か明らかに問題があります。@c
600 カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c
601 次のステップは飛ばされます。
602
603 @item Fatal error
604 @cindex error (エラー)
605 @cindex fatal error (致命的なエラー)
606 何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c
607 これが起きることは稀です。@c
608 これが起こるのはたいてい、フォントのインストールに問題があるためです。
609
610 @item Scheme error
611 @cindex trace, Scheme (Scheme トレース)
612 @cindex call trace (トレースを呼び出す)
613 @cindex Scheme error (Scheme エラー)
614 Scheme コードの実行中に発生するこのエラーは
615 Scheme インタプリタによって引き起こされます。@c
616 冗長オプション (@code{-V} または @code{--verbose}) 付きで実行している場合、@c
617 問題となっている関数呼び出しの呼び出し追跡が表示されます。
618
619 @item Programming error
620 @cindex Programming error (プログラミング エラー)
621 内部的な矛盾があります。@c
622 このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c
623 通常、それらは無視できます。@c
624 時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。
625
626 @item Aborted (core dumped)
627 これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c
628 示しています。@c
629 そのようなエラーは決定的なものだと考えられます。@c
630 あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。
631 @end table
632
633 @cindex errors, message format (エラー メッセージの形式)
634 警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c
635 エラー メッセージは以下のような形式になります:
636
637 @example
638 @var{filename}:@var{lineno}:@var{columnno}: @var{message}
639 @var{offending input line}
640 @end example
641
642 エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c
643 例えば:
644
645 @example
646 test.ly:2:19: error: not a duration: 5
647   @{ c'4 e'
648            5 g' @}
649 @end example
650
651 これらの位置は LilyPond が警告やエラーが発生した位置を@c
652 最善を尽くして推測したものですが、@c
653 (ごく当たり前のことですが) 警告とエラーは@c
654 何か予期しないことが起こったときに発生するものです。@c
655 入力ファイルの示された行にエラーを見つけることができない場合は、@c
656 示された位置の 1 行か 2 行上をチェックしてみてください。
657
658 エラーについての更なる情報が @ref{一般的なエラー} で提供されています。
659
660
661 @node 一般的なエラー
662 @section 一般的なエラー
663 @translationof Common errors
664
665 以下で説明するエラーがしばしば発生しますが、@c
666 その原因は明白でなかったり、見つけにくかったりします。@c
667 目を通しておくと、それらのエラーに対処しやすくなります。
668
669
670 @menu
671 * 楽譜がページからはみ出る::
672 * 余計な譜が表示される::
673 * 見かけ上 ../ly/init.ly のエラーとなる::
674 * エラー メッセージ Unbound variable %::
675 * エラー メッセージ FT_Get_Glyph_Name::
676 * 警告 -- Warning staff affinities should only decrease::
677 @end menu
678
679 @node 楽譜がページからはみ出る
680 @unnumberedsubsec 楽譜がページからはみ出る
681 @translationof Music runs off the page
682
683 楽譜がページの右マージンを越えてはみ出る、あるいは過度に密集するのは、@c
684 ほぼ間違いなく音符の演奏時間に誤りがあり、@c
685 小節の最後の音符が小節線を越えてしまうためです。@c
686 ある小節の最後の音符が自動的に挿入される小節線の所で終わらなくても@c
687 無効ではありません。@c
688 なぜなら、その音符は次の小節に持ち越されるためです。@c
689 しかしながら、そのような持ち越しが発生する小節が長く続くと、@c
690 楽譜は密集して表示されたり、ページからはみ出たりします。@c
691 ページからはみ出るのは、@c
692 自動改行を挿入できるのは正しく終了する小節
693 (その小節のすべての音符が小節の中で終了しています)
694 の後ろだけだからです。@c
695
696 @warning{誤った演奏時間は改行を抑制し、結果として楽譜が過度に密集したり、c@
697 ページからはみ出たりする可能性が生じます。}
698
699 小節チェックを使用していれば、誤った演奏時間を簡単に見つけることができます。@c
700 @ruser{小節と小節番号のチェック} を参照してください。
701
702 あなたがそのような音符が持ち越される小節を続けることを意図しているのであれば、@c
703 改行させたい場所に不可視の小節線を挿入する必要があります。@c
704 詳細は
705 @ruser{小節線} を参照してください。
706
707
708 @node 余計な譜が表示される
709 @unnumberedsubsec 余計な譜が表示される
710 @translationof An extra staff appears
711
712 コンテキストが @code{\new} や @code{\context} で明示的に作成されていない場合、@c
713 既存のコンテキストには適用できないコマンドに遭遇した時点で@c
714 暗黙的に作成されます。@c
715 単純な楽譜では、コンテキストの自動作成は有用であり、@c
716 LilyPond マニュアルのほとんどの例はこの手法を用いています。@c
717 しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を@c
718 発生させてしまいます。@c
719 例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを@c
720 意図していますが、@c
721 結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
722
723 @lilypond[quote,verbatim,relative=2]
724 \override Staff.NoteHead #'color = #red
725 \new Staff { a }
726 @end lilypond
727
728 これは、(符頭色の) オーバライドが処理される時に
729 @code{Staff} コンテキストが存在していないため、@c
730 @code{Staff} コンテキストが暗黙的に作成され、@c
731 そのコンテキストにオーバライドが適用されるからです。@c
732 その後に @code{\new Staff} コマンドにより@c
733 もう 1 つ別の @code{Staff} コンテキストが作成され、@c
734 そこに音符が配置されます。@c
735 すべての符頭を赤にする正しいコードは以下のようになります:
736
737 @lilypond[quote,verbatim,relative=2]
738 \new Staff {
739   \override Staff.NoteHead #'color = #red
740   a
741 }
742 @end lilypond
743
744 次の例では、@code{\repeat} コマンドの中に @code{\relative} コマンドが@c
745 置かれているため、譜が 2 つ生じています。@c
746 @code{\repeat} コマンドが 2 つの @code{\relative} ブロックを生成し、@c
747 それぞれが暗黙的に @code{Staff} ブロックと @code{Voice} を作成するため、@c
748 2 番目の譜は右にずれています。
749
750 @lilypond[quote,verbatim]
751 \repeat unfold 2 {
752   \relative c' { c4 d e f }
753 }
754 @end lilypond
755
756 明示的に @code{Voice} をインスタンス化することで、この問題は修正されます:
757
758 @lilypond[quote,verbatim]
759 \new Voice {
760   \repeat unfold 2 {
761     \relative c' { c4 d e f }
762   }
763 }
764 @end lilypond
765
766
767 @node 見かけ上 ../ly/init.ly のエラーとなる
768 @unnumberedsubsec 見かけ上 @code{../ly/init.ly} のエラーとなる
769 @translationof Apparent error in @code{../ly/init.ly}
770
771 入力ファイルが正しく構成されていないと、@c
772 @file{../ly/init.ly} に構文エラーがあるという@c
773 様々な原因のはっきりしないエラー メッセージが表示されます。@c
774 例えば、括弧やクォート記号の数が一致していない場合に@c
775 このようなエラーが発生します。
776
777 最も一般的なエラーは @code{score} ブロックの終わりに括弧が見当たらない
778 (missing brace, (@code{@}})) というエラーです。@c
779 この場合の解決方法は明らかです:
780 @code{score} ブロックが正しく閉じられているかチェックしてください。@c
781 入力ファイルの正しい構造は @rlearning{LilyPond 入力ファイルの仕組み}
782 で記述されています。@c
783 括弧の一致を自動的にハイライトするエディタを使うと、@c
784 そのようなエラーを防ぐのに役立ちます。
785
786 次に一般的なエラーの原因は、歌詞ブロックの最後の音節と閉じ括弧 (@code{@}})
787 の間に空白が無いために発生します。@c
788 空白が無ければ、この閉じ括弧は音節の一部と見なされます。@c
789 常に @emph{すべての} 括弧の前後に空白を入れることをお勧めします。@c
790 歌詞を用いる場合にこのことが重要になります。@c
791 @ruser{Entering lyrics} を参照してください。
792
793
794 @node エラー メッセージ Unbound variable %
795 @unnumberedsubsec エラー メッセージ Unbound variable %
796 @translationof Error message Unbound variable %
797
798 @emph{Scheme} 形式のコメントではなく @emph{LilyPond} 形式のコメント@c
799 を持つ Scheme ルーチンが呼び出されると、@c
800 コンソール出力やログ ファイルの最後にエラー メッセージ
801 @qq{Unbound variable %} が @qq{GUILE signalled an error ...}
802 と共に表示されます。@c
803
804 LilyPond 形式のコメントはパーセント記号 (@code{%}) で始まり、@c
805 Scheme ルーチンの中で使うことはできません。@c
806 Scheme 形式のコメントはセミコロン (@code{;}) で始まります。
807
808
809 @node エラー メッセージ FT_Get_Glyph_Name
810 @unnumberedsubsec エラー メッセージ FT_Get_Glyph_Name
811 @translationof Error message FT_Get_Glyph_Name
812
813 入力ファイルが非 ASCII キャラクタを保持していて、@c
814 UTF-8 エンコードで保存されていない場合、@c
815 このエラー メッセージがコンソール出力やログ ファイルに表示されます。@c
816 詳細は、
817 @c @ruser{テキスト エンコーディング}
818 @ruser{Text encoding} を参照してください。
819
820
821 @node 警告 -- Warning staff affinities should only decrease
822 @unnumberedsubsec 警告 -- Warning staff affinities should only decrease
823 @translationof Warning staff affinities should only decrease
824
825 この警告は、譜刻された出力の中に譜が無い場合に表示されます。@c
826 例えば、リード譜に @code{ChordName} コンテキストと @code{Lyrics} コンテキスト@c
827 しか無い場合です。@c
828 この警告は、入力の始めに以下を挿入することで@c
829 譜として振舞うコンテキストを作ることで回避できます:
830
831 @example
832 \override VerticalAxisGroup #'staff-affinity = ##f
833 @end example
834
835 @noindent
836 詳細は @ruser{Flexible vertical spacing within systems} の中の
837 @qq{Spacing of non-staff lines} を参照してください。