]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/ja/usage/suggestions.itely
Merge branch 'master' into lilypond/translation
[lilypond.git] / Documentation / ja / usage / suggestions.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
17 @node LilyPond 入力ファイルの記述に対する提案
18 @chapter LilyPond 入力ファイルの記述に対する提案
19 @translationof Suggestions for writing files
20
21 今やあなたはもっと大きな LilyPond 入力ファイル -- チュートリアルにあるような@c
22 小さな例ではなく、楽曲全体 -- を書き始める準備が整っています。@c
23 しかしながら、どのように書き進めていくべきなのでしょうか?
24
25 LilyPond があなたの入力ファイルを理解でき、望みの出力を作り出している限り、@c
26 あなたの入力ファイルがどのようなものであるかは問題になりません。@c
27 しかしながら、LilyPond 入力ファイルを書いているときに考慮すべきことが@c
28 他にもいくつかあります。
29
30 @itemize
31 @item あなたがミスをしたとしたらどうでしょうか?@c
32 LilyPond ファイルの構造はエラーを見つけ出すことを@c
33 より容易に (あるいはより困難に) します。
34
35 @item あなたがあなたの入力ファイルを誰か他の人と共有したいとしたら@c
36 どうでしょうか?@c
37 実際には、あなたが数年前のあなた自身の入力ファイルを変更したいとしたら@c
38 どうでしょうか?@c
39 一読して理解可能な LilyPond 入力ファイルがある一方で、@c
40 あなたを 1 時間も悩ます入力ファイルもあるかもしれません。
41
42 @item あなたがあなたの LilyPond ファイルを最近のバージョンの LilyPond のために@c
43 アップグレードしたいとしたらどうでしょうか?@c
44 入力構文は LilyPond の改良に合わせてしばしば変更されます。@c
45 たいていの変更は @code{convert-ly} で自動的に変換できますが、@c
46 いくつかの変更は手動での援助を必要とするかもしれません。@c
47 LilyPond 入力ファイルはより容易に (あるいはより困難に) 
48 更新できるように構成することができます。
49
50 @end itemize
51
52 @menu
53 * 一般的な提案::
54 * 既存の音楽を譜刻する::
55 * 大きなプロジェクト::
56 * トラブルシュート::
57 * Make と Makefile::
58 @end menu
59
60
61 @node 一般的な提案
62 @section 一般的な提案
63 @translationof General suggestions
64
65 ここで、あなたが問題を回避したり修正する手助けになる@c
66 可能性がある提案をいくつか挙げます:
67
68 @itemize
69 @item @strong{すべてのファイルに @code{@bs{}version} 番号を含めます}。@c
70 テンプレートはすべて @code{@bs{}version} 情報を保持しているということに@c
71 注意してください。@c
72 常に @code{@bs{}version} を含めること -- ファイルの大小にかかわらず -- 
73 を強く推奨します。@c
74 個人的な経験から言って、数年前に使っていた LilyPond のバージョンを@c
75 思い出そうとすることは大変なことです。@c
76 @command{convert-ly} は使用した LilyPond のバージョンを宣言することを@c
77 必要とします。
78
79 @item @strong{チェックを含めます}: @ruser{Bar and bar number checks}, 
80 @ruser{Octave checks}。@c
81 時々チェックを入れておけば、ミスをしたときに素早くそれを@c
82 見つけ出すことができます。@c
83 @q{時々} とはどれくらいの頻度なのでしょうか?@c
84 それはその音楽の複雑さ次第です。@c
85 とても簡単な音楽であれば、たぶん 1 回か 2 回です。@c
86 とても複雑な音楽であれば、おそらく各小節にチェックを入れます。
87
88 @item @strong{テキスト 1 行につき 1 小節にします}。@c
89 音楽自体や望みの出力が複雑である場合、1 行に 1 小節だけを記述すると@c
90 良い場合が多いです。@c
91 画面スペースを節約するために 1 行に 8 小節も詰め込むことは、@c
92 入力ファイルを @q{デバッグ} しなければならない場合に、@c
93 そうするだけの価値はありません。
94
95 @item @strong{入力ファイルにコメントをつけます}。@c
96 コメントとして小節番号 (時々) や音楽テーマへの参照 
97 (@q{second theme in violins}, @q{fourth variation} 
98 (@q{ヴァイオリンの第 2 テーマ}, @q{第 4 ヴァイオリン}) 
99 など) を使用します。@c
100 初めて楽曲を書いているときはコメントをつける必要は無いかもしれません。@c
101 しかしながら、数年後に何か変更を加えたいと思った場合や、@c
102 ソースを友人に渡す場合、あなたがファイルにコメントをつけていなければ、@c
103 あなたの意図やファイルがどのように構成されているのかを特定することは@c
104 ずっと大変になります。
105
106 @item @strong{波括弧にインデントを入れる}。@c
107 多くの問題は @code{@{} と @code{@}} の数が食い違うことによって生じます。
108
109 @item セクションや変数の開始時に@strong{明示的に演奏時間を付け加える}。@c
110 フレーズの開始時に @code{c4 d e} (@code{c d e} ではなく) と記述しておけば、@c
111 後になって音楽を再編成する場合に問題の発生を免れる可能性があります。
112
113 @item 音楽定義から@strong{調整を分離します}。@c
114 @rlearning{変数と関数を用いて入力の手間を省く} と 
115 @rlearning{スタイル シート} を参照してください。
116
117 @end itemize
118
119
120 @node 既存の音楽を譜刻する
121 @section 既存の音楽を譜刻する
122 @translationof Typesetting existing music
123
124 既存の楽譜からの音楽を入力している 
125 (つまり、既存の楽譜の楽曲を譜刻している) のなら、
126
127 @itemize
128
129 @item 1 回につき 1 つのシステム 
130 (訳者: システムとは譜の集まりのこと。例えば、ピアノ譜での 1 システムとは、@c
131 右手譜 1 小節とそれに対応する左手譜 1 小節) 
132 を入力し (しかし、それでもテキスト 1 行につき 1 小節だけにします)、@c
133 それを終えたときに各システムをチェックします。@c
134 処理をスピード アップさせるために @code{showLastLength} プロパティや 
135 @code{showFirstLength} プロパティを使うことになるかもしれません -- 
136 @ruser{Skipping corrected music} を参照してください。
137
138 @item @code{mBreak = @{ @bs{}break @}} を定義して、写している楽譜が@c
139 改行するたびに @code{@bs{}mBreak} を入力ファイルに挿入します。@c
140 これにより、LilyPond の音楽とオリジナルの音楽を比較することが@c
141 ずっと容易になります。@c
142 入力した楽譜の校正が終わったときに、それらの改行すべてを削除するために 
143 @code{mBreak = @{ @}} を定義することになるかもしれません。@c
144 これにより、LilyPond は LilyPond が最適と思う場所に@c
145 改行を入れることができるようになります。
146
147 @item 移調楽器のパートは変数に入力します。@c
148 移調楽器の音符は以下で囲むことを推奨します:
149
150 @example
151 \transpose c natural-pitch @{...@}
152 @end example
153
154 @noindent
155 (@code{natural-pitch} はその楽器のオープン ピッチです) 
156 これにより、変数の中の音楽は C で効率的に記述することができます。@c
157 変数を使用していれば、必要なときに移調しなおすこともできます 
158 (例えば、楽譜をコンサート ピッチで譜刻したり、@c
159 トロンボーン パートをト音記号からヘ音記号に変換したり、など)。@c
160 音楽をすべて変数の中に首尾一貫したピッチで記述しておけば、@c
161 移調のミスは起こりにくくなります。
162
163 また、移調が C との間で行われるだけ
164 -- つまり、他に使用する調が楽器のナチュラル ピッチだけ:
165 B-フラット トランペットなら bes、@c
166 A-フラット クラリネットなら aes --
167 であるとしても、音楽を変数に格納しておくべきです。@c
168
169 @end itemize
170
171
172 @node 大きなプロジェクト
173 @section 大きなプロジェクト
174 @translationof Large projects
175
176 大きなプロジェクトに取り組んでいるとき、@c
177 LilyPond 入力ファイルの構造をすっきりさせておくことが不可欠です。
178
179 @itemize
180
181 @item @strong{各ボイスに対して変数を使用して}、@c
182 定義の中の構造を最小限にします。@c
183 @code{@bs{}score} セクションの構造が最も変更される可能性が高い箇所です。@c
184 一方、@code{violin} 定義は LilyPond のバージョンが新しくなっても@c
185 変更される可能性はまずありません。
186
187 @example
188 violin = \relative c'' @{
189 g4 c'8. e16
190 @}
191 ...
192 \score @{
193   \new GrandStaff @{
194     \new Staff @{
195       \violin
196     @}
197   @}
198 @}
199 @end example
200
201 @item @strong{調整を音楽定義から分離します}。@c
202 このことは前にも触れましたが、大きなプロジェクトでは絶対に不可欠なことです。@c
203 @code{fthenp} の定義を変更する必要が生じた場合、変更は 1 回で済み、@c
204 @code{violin} の内部にはまったく手を触れる必要がありません。
205
206 @example
207 fthenp = _\markup@{
208   \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
209 violin = \relative c'' @{
210 g4\fthenp c'8. e16
211 @}
212 @end example
213
214 @end itemize
215
216
217 @node トラブルシュート
218 @section トラブルシュート
219 @translationof Troubleshooting
220
221 遅かれ早かれ、あなたは LilyPond がコンパイルできないファイルを@c
222 書くことになります。@c
223 LilyPond が返すメッセージはエラーを見つけ出す@c
224 手助けになるかもしれませんが、多くの場合、@c
225 問題の原因を探し出すために調査を行う必要があります。
226
227 この目的のための最も強力なツールは 1 行コメント (@code{%} で記述します) と@c
228 ブロック コメント (@code{%@{ ... %@}} で記述します) です。@c
229 問題がどこにあるかわからない場合、@c
230 入力ファイルの大きな一部分をコメント アウトすることから始めます。@c
231 あるセクションをコメント アウトして、そのファイルを再びコンパイルしてみます。@c
232 コンパイルが通ったのなら、問題は今コメント アウトした部分の中にあります。@c
233 コンパイルが通らなかった場合は、コンパイルが通るようになるまで@c
234 コメント アウトしたままにしておきます。
235
236 極端な場合、最終的に以下のようになるかもしれません:
237
238 @example
239 \score @{
240   <<
241     % \melody
242     % \harmony
243     % \bass
244   >>
245   \layout@{@}
246 @}
247 @end example
248
249 @noindent
250 (言い換えると、何の音楽も持たないファイルです)
251
252 こうなったとしても、あきらめないでください。@c
253 少しだけコメントを外して -- 例えば、バス パートを --
254 コンパイルが通るかどうか試してみます。@c
255 コンパイルが通らなかった場合は、バスの音楽をすべてコメント アウトします
256 (しかし、@code{@bs{}score} の中の @code{@bs{}bass} はコメントを@c
257 外したままにしておきます)。
258
259 @example
260 bass = \relative c' @{
261 %@{
262   c4 c c c
263   d d d d
264 %@}
265 @}
266 @end example
267
268 そして、問題を起こしている行を見つけ出すまで、@c
269 @code{bass} パートから少しずつコメントを外していきます。
270
271 もう 1 つの非常に有用なデバッグ テクニックは
272 @rweb{Tiny examples} を構築することです。
273
274
275 @node Make と Makefile
276 @section Make と Makefile
277 @translationof Make and Makefiles
278
279 LilyPond を実行できるほとんどすべてのプラットフォームが
280 @code{make} というソフトウェアをサポートします。@c
281 このソフトウェアは @code{Makefile} という名前の特殊なファイルを読み込みます。@c
282 ファイル @code{Makefile} は、@c
283 ファイルの依存関係と、@c
284 あるファイルから別のファイルを作り出すために@c
285 オペレーティング システムに渡す必要があるコマンドを定義します。@c
286 例えば、@code{Makefile} は LilyPond を実行して
287 @code{ballad.ly} から @code{ballad.pdf} と @code{ballad.midi} を@c
288 作り出す方法を記述します。
289
290 自身の便利さのためかソース ファイルにアクセスしてくれる他の人のために、@c
291 自身のプロジェクト用に @code{Makefile} を作成することが良い場合があります。@c
292 これが当てはまるのは、@c
293 多くのインクルード ファイルと複数の出力オプション
294 (例えば、フル スコア、パート スコア、指揮譜、ピアノ譜など) を持つ
295 非常に大きなプロジェクト、あるいは、@c
296 ビルドするために複雑なコマンドを必要とするプロジェクト
297 (@code{lilypond-book} プロジェクトなど)
298 です。@c
299 @code{Makefile} の複雑さと自由度は、必要性と作者のスキルに応じて、@c
300 さまざまです。@c
301 プログラム GNU Make は
302 GNU/Linux ディストリビューションと MacOS X にインストールされていて、@c
303 Windows でも利用可能です。
304
305 @code{make} の使い方についてのすべての詳細は
306 @strong{GNU Make マニュアル} を参照してください。@c
307 これから示すのは @code{make} でできることのほんの一例です。
308
309 @code{Makefile} の中に規則を定義するためのコマンドは、@c
310 プラットフォームによって異なります。@c
311 例えば、さまざまな種類がある Linux と MacOS は @code{bash} を使いますが、@c
312 Windows は @code{cmd} を使います。@c
313 MacOS X では、コマンド ライン インタプリタを使用するためにシステムを@c
314 コンフィグレーションする必要があるということに注意してください。@c
315 ここで、@code{Makefile} の例をいくつか
316 Linux/MacOS 用と Windows 用の両方のバージョンで示します。
317
318 最初の例は、4 楽章のオーケストラのためのもので、@c
319 以下のようなディレクトリ構造を持ちます:
320
321 @example
322 Symphony/
323 |-- MIDI/
324 |-- Makefile
325 |-- Notes/
326 |   |-- cello.ily
327 |   |-- figures.ily
328 |   |-- horn.ily
329 |   |-- oboe.ily
330 |   |-- trioString.ily
331 |   |-- viola.ily
332 |   |-- violinOne.ily
333 |   `-- violinTwo.ily
334 |-- PDF/
335 |-- Parts/
336 |   |-- symphony-cello.ly
337 |   |-- symphony-horn.ly
338 |   |-- symphony-oboes.ly
339 |   |-- symphony-viola.ly
340 |   |-- symphony-violinOne.ly
341 |   `-- symphony-violinTwo.ly
342 |-- Scores/
343 |   |-- symphony.ly
344 |   |-- symphonyI.ly
345 |   |-- symphonyII.ly
346 |   |-- symphonyIII.ly
347 |   `-- symphonyIV.ly
348 `-- symphonyDefs.ily
349 @end example
350
351 @code{Scores} ディレクトリと @code{Parts} ディレクトリの中にある
352 @code{.ly} ファイルは音符を
353 @code{Notes} ディレクトリの中にある @code{.ily} ファイルから取得します:
354
355 @example
356 %%% top of file "symphony-cello.ly"
357 \include ../definitions.ily
358 \include ../Notes/cello.ily
359 @end example
360
361 この @code{Makefile} はターゲットとして
362 @code{score} (フル スコアの楽曲全体)、@c
363 @code{movements} (フル スコアの個々の楽章)、@c
364 それに @code{parts} (演奏者のための個々のパート) を持ちます。@c
365 さらに、web や email で配布するのに適したソース ファイルの tarball
366 (訳者: 複数のファイルをコマンド @code{tar} で 1 つのファイルにまとめたもの)
367 を作成するターゲット @code{archive} もあります。@c
368 ここでは GNU/Linux や MacOS X 用の @code{Makefile} を示します。@c
369 これをプロジェクトのトップ ディレクトリに
370 @code{Makefile} という名前で保存する必要があります:
371
372 @warning{ターゲットやパターン ルールが定義されたとき、@c
373 そのあとの行はスペースではなく Tab で始まる必要があります。}
374
375 @example
376 # 出力ファイル名
377 piece = symphony
378 # いくつプロセッサがあるかを決定します
379 CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
380 # lilypond を実行するコマンド
381 LILY_CMD = lilypond -ddelete-intermediate-files \
382                     -dno-point-and-click -djob-count=$(CPU_CORES)
383
384 # この Makefile で使用される拡張子
385 .SUFFIXES: .ly .ily .pdf .midi
386
387 # 入力ファイルと出力ファイルのサーチは VPATH 変数でリストアップされている
388 # ディレクトリの中で行われます。それらのディレクトリはすべて (GNU make 変数
389 # `CURDIR' によって与えられる) カレント ディレクトリのサブディレクトリです。
390 VPATH = \
391   $(CURDIR)/Scores \
392   $(CURDIR)/PDF \
393   $(CURDIR)/Parts \
394   $(CURDIR)/Notes
395
396 # LY 入力ファイルから PDF ファイルと MIDI ファイルを作成するための
397 # パターン ルール。.pdf 出力ファイルは `PDF' サブディレクトリの中に
398 # 配置され、.midi ファイルは `MIDI' サブディレクトリの中に配置されます。
399 %.pdf %.midi: %.ly
400         $(LILY_CMD) $<; \           # this line begins with a tab
401         if test -f "$*.pdf"; then \
402             mv "$*.pdf" PDF/; \
403         fi; \
404         if test -f "$*.midi"; then \
405             mv "$*.midi" MIDI/; \
406         fi
407
408 notes = \
409   cello.ily \
410   horn.ily \
411   oboe.ily \
412   viola.ily \
413   violinOne.ily \
414   violinTwo.ily
415
416 # 楽章の依存関係
417 $(piece)I.pdf: $(piece)I.ly $(notes)
418 $(piece)II.pdf: $(piece)II.ly $(notes)
419 $(piece)III.pdf: $(piece)III.ly $(notes)
420 $(piece)IV.pdf: $(piece)IV.ly $(notes)
421
422 # 総譜の依存関係
423 $(piece).pdf: $(piece).ly $(notes)
424
425 # パート譜の依存関係
426 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
427 $(piece)-horn.pdf: $(piece)-horn.ly horn.ily
428 $(piece)-oboes.pdf: $(piece)-oboes.ly oboe.ily
429 $(piece)-viola.pdf: $(piece)-viola.ly viola.ily
430 $(piece)-violinOne.pdf: $(piece)-violinOne.ly violinOne.ily
431 $(piece)-violinTwo.pdf: $(piece)-violinTwo.ly violinTwo.ily
432
433 # 4 つすべての楽章のフル スコアを 1 つのファイルとして生成するには
434 # `make score' とタイプします。
435 .PHONY: score
436 score: $(piece).pdf
437
438 # すべてのパートを生成するには `make parts' とタイプします。
439 # 楽器 `foo' のためのパートを生成するには `make foo.pdf' とタイプします。
440 # 例: `make symphony-cello.pdf'
441 .PHONY: parts
442 parts: $(piece)-cello.pdf \
443        $(piece)-violinOne.pdf \
444        $(piece)-violinTwo.pdf \
445        $(piece)-viola.pdf \
446        $(piece)-oboes.pdf \
447        $(piece)-horn.pdf
448
449 # 4 つの楽章を別個のファイルとして生成するには `make movements' とタイプします。
450 .PHONY: movements
451 movements: $(piece)I.pdf \
452            $(piece)II.pdf \
453            $(piece)III.pdf \
454            $(piece)IV.pdf
455
456 all: score parts movements
457
458 archive:
459         tar -cvvf stamitz.tar \       # this line begins with a tab
460         --exclude=*pdf --exclude=*~ \
461         --exclude=*midi --exclude=*.tar \
462         ../Stamitz/*
463 @end example
464
465
466 Windows プラットフォームには特別な面倒さがあります。@c
467 Windows 用の GNU Make をダウンロードしてインストールした後、@c
468 システム環境変数に正しいパスを設定して、@c
469 DOS シェルが Make プログラムを見つけられるようにする必要があります。@c
470 これを行うには、@c
471 "マイ コンピュータ" を右クリックして、@code{プロパティ} を選択し、@c
472 それから @code{詳細設定} を選択します。@c
473 それから @code{環境変数} をクリックして、@c
474 @code{システム環境変数} パネルの中にある @code{Path} をハイライトしてから
475 @code{編集} をクリックして、@c
476 GNU Make の実行ファイルへのパスを追加します。@c
477 そのパスは以下のようになります
478 (訳者: GNU Make のインストールのされ方によって異なります):
479
480 @example
481 C:\Program Files\GnuWin32\bin
482 @end example
483
484 Linux/MacOS X とは異なるシェル コマンドを扱い、@c
485 いくつかのデフォルト システム ディレクトリの中に存在する@c
486 ファイル空間を扱うために、@c
487 @code{Makefile} 自体を変更する必要があります。@c
488 Windows は @code{tar} コマンドを持たないため、@c
489 @code{archive} ターゲットは除去されます。@c
490 また、Windows が持つ MIDI ファイルのデフォルト拡張子は異なります。
491
492 @example
493 ## WINDOWS VERSION
494 ##
495 piece = symphony
496 LILY_CMD = lilypond -ddelete-intermediate-files \
497                     -dno-point-and-click \
498                     -djob-count=$(NUMBER_OF_PROCESSORS)
499
500 #get the 8.3 name of CURDIR (workaround for spaces in PATH)
501 workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
502           do @@echo %%~sb)
503
504 .SUFFIXES: .ly .ily .pdf .mid
505
506 VPATH = \
507   $(workdir)/Scores \
508   $(workdir)/PDF \
509   $(workdir)/Parts \
510   $(workdir)/Notes
511
512 %.pdf %.mid: %.ly
513         $(LILY_CMD) $<      # this line begins with a tab
514         if exist "$*.pdf"  move /Y "$*.pdf"  PDF/ # begin with tab
515         if exist "$*.mid" move /Y "$*.mid" MIDI/  # begin with tab
516
517 notes = \
518   cello.ily \
519   figures.ily \
520   horn.ily \
521   oboe.ily \
522   trioString.ily \
523   viola.ily \
524   violinOne.ily \
525   violinTwo.ily
526
527 $(piece)I.pdf: $(piece)I.ly $(notes)
528 $(piece)II.pdf: $(piece)II.ly $(notes)
529 $(piece)III.pdf: $(piece)III.ly $(notes)
530 $(piece)IV.pdf: $(piece)IV.ly $(notes)
531
532 $(piece).pdf: $(piece).ly $(notes)
533
534 $(piece)-cello.pdf: $(piece)-cello.ly cello.ily
535 $(piece)-horn.pdf: $(piece)-horn.ly horn.ily
536 $(piece)-oboes.pdf: $(piece)-oboes.ly oboe.ily
537 $(piece)-viola.pdf: $(piece)-viola.ly viola.ily
538 $(piece)-violinOne.pdf: $(piece)-violinOne.ly violinOne.ily
539 $(piece)-violinTwo.pdf: $(piece)-violinTwo.ly violinTwo.ily
540
541 .PHONY: score
542 score: $(piece).pdf
543
544 .PHONY: parts
545 parts: $(piece)-cello.pdf \
546        $(piece)-violinOne.pdf \
547        $(piece)-violinTwo.pdf \
548        $(piece)-viola.pdf \
549        $(piece)-oboes.pdf \
550        $(piece)-horn.pdf
551
552 .PHONY: movements
553 movements: $(piece)I.pdf \
554            $(piece)II.pdf \
555            $(piece)III.pdf \
556            $(piece)IV.pdf
557
558 all: score parts movements
559 @end example
560
561
562 次の @code{Makefile} は、@c
563 LaTeX で処理する @command{lilypond-book} ドキュメント用です。@c
564 このドキュメントは目次を持ちます。@c
565 目次を作成するには、@c
566 リンクを更新するために @command{latex} コマンドを 2 回実行する必要があります。@c
567 .pdf 出力ファイルは @code{out} ディレクトリに保存され、@c
568 HTML 出力ファイルは @code{htmlout} ディレクトリに保存されます。
569
570 @example
571 SHELL=/bin/sh
572 FILE=myproject
573 OUTDIR=out
574 WEBDIR=htmlout
575 VIEWER=acroread
576 BROWSER=firefox
577 LILYBOOK_PDF=lilypond-book --output=$(OUTDIR) --pdf $(FILE).lytex
578 LILYBOOK_HTML=lilypond-book --output=$(WEBDIR) $(FILE).lytex
579 PDF=cd $(OUTDIR) && pdflatex $(FILE)
580 HTML=cd $(WEBDIR) && latex2html $(FILE)
581 INDEX=cd $(OUTDIR) && makeindex $(FILE)
582 PREVIEW=$(VIEWER) $(OUTDIR)/$(FILE).pdf &
583
584 all: pdf web keep
585
586 pdf:
587         $(LILYBOOK_PDF)  # begin with tab
588         $(PDF)           # begin with tab
589         $(INDEX)         # begin with tab
590         $(PDF)           # begin with tab
591         $(PREVIEW)       # begin with tab
592
593 web:
594         $(LILYBOOK_HTML) # begin with tab
595         $(HTML)          # begin with tab
596         cp -R $(WEBDIR)/$(FILE)/ ./  # begin with tab
597         $(BROWSER) $(FILE)/$(FILE).html &  # begin with tab
598
599 keep: pdf
600         cp $(OUTDIR)/$(FILE).pdf $(FILE).pdf  # begin with tab
601
602 clean:
603         rm -rf $(OUTDIR) # begin with tab
604
605 web-clean:
606         rm -rf $(WEBDIR) # begin with tab
607
608 archive:
609         tar -cvvf myproject.tar \ # begin this line with tab
610         --exclude=out/* \
611         --exclude=htmlout/* \
612         --exclude=myproject/* \
613         --exclude=*midi \
614         --exclude=*pdf \
615         --exclude=*~ \
616         ../MyProject/*
617 @end example
618
619 TODO: make this thing work on Windows
620
621 この @code{Makefile} は Windows では機能しません。@c
622 Windows ユーザの代替手段として、@c
623 ビルド コマンドを保持する簡単なバッチ ファイルを作成する方法があります。@c
624 これは @code{Makefile} のように依存関係を保持できませんが、@c
625 少なくともビルド処理を単一のコマンドに縮小します。@c
626 以下のコードを
627 @command{build.bat} あるいは @command{build.cmd} として保存してください。@c
628 このバッチ ファイルは DOS プロンプトから実行することができ、@c
629 単にそのアイコンをダブル クリックすることでも実行することができます。
630
631 @example
632 lilypond-book --output=out --pdf myproject.lytex
633 cd out
634 pdflatex myproject
635 makeindex myproject
636 pdflatex myproject
637 cd ..
638 copy out\myproject.pdf MyProject.pdf
639 @end example
640
641
642 @seealso
643 アプリケーションの使用方法:
644 @rprogram{コマンド ラインの使用方法},
645 @rprogram{lilypond-book}