From: John Mandereau Date: Thu, 20 Aug 2009 09:56:59 +0000 (+0200) Subject: Merge commit 'origin/master' X-Git-Tag: release/2.13.4-1~180 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=1efdabf3b2349ea7fa3183dca5bba5104c347c36;hp=026aee63bcd80eadb3ad08b3177b1e7cbd40d056;p=lilypond.git Merge commit 'origin/master' Conflicts: Documentation/ja/learning/introduction.itely --- diff --git a/Documentation/ja/application.tely b/Documentation/ja/application.tely index 0ddf6a4503..e111254bcf 100644 --- a/Documentation/ja/application.tely +++ b/Documentation/ja/application.tely @@ -5,15 +5,16 @@ When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @end ignore - -@documentencoding UTF-8 @setfilename lilypond-program.info @settitle GNU LilyPond -- アプリケーション使用方法 +@documentencoding UTF-8 +@documentlanguage ja @include macros.itexi @afourpaper + @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival @@ -30,44 +31,41 @@ @node トップ ページ @top GNU LilyPond --- アプリケーション使用方法 @translationof Top +@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. @end ifnottex @ifhtml @ifclear bigpage -このドキュメントは @uref{source/Documentation/application.pdf,PDF -形式} と @uref{source/Documentation/application-big-page.ja.html, -大きな 1 ページ形式} でも利用可能です。 +このドキュメントは +@uref{source/Documentation/application.pdf,PDF 形式} と +@uref{source/Documentation/application-big-page.ja.html,大きな 1 ページ形式} +でも利用可能です。 @end ifclear @ifset bigpage -このドキュメントは @uref{source/Documentation/application.pdf,PDF -形式} と @uref{source/Documentation/application/index.ja.html, -複数のページにインデックス化された形式} でも利用可能です。 +このドキュメントは +@uref{source/Documentation/application.pdf,PDF 形式} と +@uref{source/Documentation/application/index.ja.html, +複数のページにインデックス化された形式} +でも利用可能です。 @end ifset @end ifhtml -@c urg, makeinfo 4.9.91 French translation is funky -@iftex -@documentlanguage ja -@c frenchspacing on -@end iftex +@c This produces the unified index @syncodeindex fn cp -@c @syncodeindex ky cp -@c @syncodeindex pg cp -@c @syncodeindex tp cp -@c @syncodeindex vr cp +@syncodeindex vr cp + @finalout @titlepage @title GNU LilyPond -@c subtitle Le système de gravure musicale @subtitle 音楽譜刻システム -@c titlefont{Utilisation des programmes} -@c author L'équipe de développement de LilyPond +@titlefont{アプリケーション使用方法} @author LilyPond開発チーム -Copyright @copyright{} 1999--2008 著作者一同 + +Copyright @copyright{} 1999--2009 著作者一同 @emph{The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English @@ -134,26 +132,35 @@ Free Documentation License''. @ifnottex -これは GNU LilyPond バージョン @version{} のためのアプリケーション使用方法マ@c -ニュアルです。このドキュメントと他のドキュメントとの関係についての更なる情報@c -は、@rlearning{このドキュメントについて} を参照してください。 +これは GNU LilyPond バージョン @version{} のための@c +アプリケーション使用方法マニュアルです。@c +このドキュメントと他のドキュメントとの関係についての更なる情報は、@c +FIXME FIXME FIXME +@c @rlearning{このドキュメントについて} +を参照してください。 @cindex web site @cindex URL -@uref{http://@/www@/.lilypond@/.org/} で更なる情報を見つけることができます。こ@c -のウェブ サイトにはこのドキュメントと他のドキュメントのオンライン コピーがあり@c -ます。 +@uref{http://@/www@/.lilypond@/.org/} で更なる情報を見つけることができます。@c +このウェブ サイトにはこのドキュメントと他のドキュメントの@c +オンライン コピーがあります。 @include dedication.itely -@menu -* インストール:: インストール方法とコンパイル方法 -* セットアップ:: 他のプログラムの助けを借りて LilyPond を使@c +@c * インストール:: インストール方法とコンパイル方法 +@c * セットアップ:: 他のプログラムの助けを借りて LilyPond を使@c 用する -* LilyPond を実行する:: 操作方法 -* LilyPond-book:: テキストと音楽を統合する + +@c maybe add a "Tasks" or "Specific tasks" or something like +@c that, after Suggestions -gp +@menu +* lilypond を実行する:: 操作方法 +* convert-ly を使ってファイルを更新する:: 入力ファイルをアップデートする +* lilypond-book:: テキストと音楽を統合する * Converting from other formats:: lilypond ソース形式に変換する +* LilyPond プロジェクトに取り組む:: 動かないファイルに取り組む +* LilyPond 入力ファイルの記述に対する提案:: 実践してください 付録 @@ -165,11 +172,14 @@ Free Documentation License''. @contents -@include application/install.itely -@include application/setup.itely +@c @include application/install.itely +@c @include application/setup.itely @include application/running.itely +@include application/updating.itely @include application/lilypond-book.itely @include application/converters.itely +@include application/working.itely +@include application/suggestions.itely @include fdl.itexi diff --git a/Documentation/ja/application/install.itely b/Documentation/ja/application/install.itely index 665f31bc82..49bee6e9a1 100644 --- a/Documentation/ja/application/install.itely +++ b/Documentation/ja/application/install.itely @@ -16,13 +16,15 @@ @chapter インストール @translationof Install -LilyPond にはリリースが 2 セットあります: 安定したリリースと、不安定な開発版リ@c -リースです。 安定バージョンは偶数の @q{マイナー} バージョン番号を持ちます (つ@c -まり、2.8, 2.10, 2.12 など)。開発バージョンは奇数の @q{マイナー} バージョン番@c -号を持ちます (つまり、2.7, 2.9, 2.11 など)。 +LilyPond にはリリースが 2 セットあります: +安定したリリースと、不安定な開発版リリースです。@c +安定バージョンは偶数の @q{マイナー} バージョン番号を持ちます +(つまり、2.8, 2.10, 2.12 など)。@c +開発バージョンは奇数の @q{マイナー} バージョン番号を持ちます +(つまり、2.7, 2.9, 2.11 など)。 -LilyPond のビルドは非常に複雑なプロセスです。そのため、コンパイル済みのバイナ@c -リを使用することを@strong{強く}推奨します。 +LilyPond のビルドは非常に複雑なプロセスです。@c +そのため、コンパイル済みのバイナリを使用することを@strong{強く}推奨します。 @menu * コンパイル済みのバイナリ:: @@ -36,11 +38,11 @@ LilyPond のビルドは非常に複雑なプロセスです。そのため、 @unnumberedsubsec ダウンロードする -あなたの使用しているプラットフォーム向けのバイナリ パッケージについての最新情@c -報を得るには @uref{http://lilypond.org/web/install/} をチェックしてください。@c +あなたの使用しているプラットフォーム向けバイナリ パッケージについての@c +最新情報を得るには @uref{http://lilypond.org/web/install/} をチェックしてください。@c あなたの使用している OS がそのページでカバーされていない場合は、@c -@uref{http://download.linuxaudio.org/lilypond/binaries/} にある完全なバイナリ -リストを調べてみてください。 +@uref{http://download.linuxaudio.org/lilypond/binaries/} にある@c +完全なバイナリ リストを調べてみてください。 現在のところ、以下のバイナリがあります: @@ -58,17 +60,22 @@ mingw - Windows x86 @knownissues -あなたが MacOS 10.3 または 10.4 を使用していて、@command{convert-ly} や -@command{lilypond-book} のような Python スクリプトを使用したいのなら、@ref{Setup for MacOS X,,,lilypond-program,Application Usage} を参照してください。 +あなたが MacOS 10.3 または 10.4 を使用していて、@c +@command{convert-ly} や @command{lilypond-book} のような +Python スクリプトを使用したいのなら、@c +@c @ref{Setup for MacOS X,,,lilypond-program,Application Usage} +@ref{MacOS X のためのセットアップ} +を参照してください。 @node ソースからコンパイルする @section ソースからコンパイルする @translationof Compiling from source -ソース コードから直接 LilyPond をコンパイルすることもできます。これを行うには@c -英語を読めることが必須です。そのため、この節は翻訳されません。本当に LilyPond -をコンパイルしたいのなら、 +ソース コードから直接 LilyPond をコンパイルすることもできます。@c +これを行うには英語を読めることが必須です。@c +そのため、この節は翻訳されません。@c +本当に LilyPond をコンパイルしたいのなら、 @iftex @c DO NOT translate the following line at all. @ref{Compiling from source,,,lilypond-program,Application Usage}. diff --git a/Documentation/ja/application/lilypond-book.itely b/Documentation/ja/application/lilypond-book.itely index 4f03a3a927..e92db780d3 100644 --- a/Documentation/ja/application/lilypond-book.itely +++ b/Documentation/ja/application/lilypond-book.itely @@ -13,9 +13,9 @@ @c Translation status: post-GDP @c Note: keep this node named so that `info lilypond-book' brings you here. -@node LilyPond-book +@node lilypond-book @chapter @command{lilypond-book}: Integrating text and music -@translationof LilyPond-book @c external +@translationof lilypond-book @c external @untranslated @@ -32,7 +32,7 @@ the music are adjusted to match the layout of your document. This is a separate program from @command{lilypond} itself, and is run on the command line; for more information, see @ref{コマンド ラインの使用方法}. If you have MacOS 10.3 or 10.4 and you have trouble running -@code{lilypond-book}, see @ref{MacOS X のためのセットアップ}. +@code{lilypond-book}, see FIXME FIXME @c @ref{MacOS X のためのセットアップ}. This procedure may be applied to @LaTeX{}, HTML, Texinfo or DocBook documents. diff --git a/Documentation/ja/application/running.itely b/Documentation/ja/application/running.itely index c082a84618..465c3b601f 100644 --- a/Documentation/ja/application/running.itely +++ b/Documentation/ja/application/running.itely @@ -12,9 +12,9 @@ @c Translators: Yoshiki Sawada @c Translation status: post-GDP -@node LilyPond を実行する -@chapter LilyPond を実行する -@translationof Running LilyPond +@node lilypond を実行する +@chapter lilypond を実行する +@translationof Running lilypond この章では LilyPond を実行するための細かな規定について詳述します。 @@ -22,8 +22,6 @@ * 通常の使用方法:: * コマンド ラインの使用方法:: * エラー メッセージ:: -* convert-ly を使ってファイルを更新する:: -* バグを報告する:: @end menu @@ -31,7 +29,9 @@ @section 通常の使用方法 @translationof Normal usage -たいていのユーザは GUI から LilyPond を実行します。@rlearning{最初のステップ} を@c +たいていのユーザは GUI から LilyPond を実行します。@c +FIXME FIXME FIXME を@c +@c @rlearning{最初のステップ} を@c まだ読んでいないのなら、それを読んでください。 @@ -39,57 +39,64 @@ @section コマンド ラインの使用方法 @translationof Command-line usage -この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。こ@c -れにはプログラムに追加オプションを渡す必要があるかもしれません。さらに、いくつ@c -かの特別なプログラム (@code{midi2ly} など) はコマンド ラインからしか利用できま@c -せん。 +この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。@c +これにはプログラムに追加オプションを渡す必要があるかもしれません。@c +さらに、いくつかの特別なプログラム (@code{midi2ly} など) は@c +コマンド ラインからしか利用できません。 ここで @q{コマンド ライン} とは、OS の中にあるコマンド ラインを意味します。@c Windows ユーザは @q{DOS シェル} という言葉の方が馴染みがあるかもしれません。@c -MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が馴染み@c -があるかもしれません。MaxOS@tie{}X ユーザは @ref{MacOS X のためのセットアップ} も読んでお@c -くべきです。 - -OS のコマンド ラインの使用方法についての説明はこのマニュアルが扱う範囲ではあり@c -ません。コマンド ラインに馴染みがない場合は、その内容を扱っている他のドキュ@c -メントをあたってください。 +MaxOS@tie{}X ユーザは @q{ターミナル} や @q{コンソール} という言葉の方が@c +馴染みがあるかもしれません。@c +MaxOS@tie{}X ユーザは +FIXME +@c @ref{MacOS X のためのセットアップ} +も読んでおくべきです。 + +OS のコマンド ラインの使用方法についての説明は@c +このマニュアルが扱う範囲ではありません。@c +コマンド ラインに馴染みがない場合は、@c +その内容を扱っている他のドキュメントをあたってください。 @menu -* Invoking lilypond:: +* lilypond を呼び出す:: * lilypond のコマンド ライン オプション:: * 環境変数:: @end menu -@node Invoking lilypond +@node lilypond を呼び出す @subsection @command{lilypond} を呼び出す @translationof Invoking lilypond -@cindex Invoking @command{lilypond} -@cindex command line options for @command{lilypond} -@cindex options, command line -@cindex switches +@cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す) +@cindex command line options for @command{lilypond} (@command{lilypond} のためのコマンド ライン オプション) +@cindex options, command line (コマンド ライン オプション) +@cindex switches (切り換え) -@command{lilypond} 実行可能形式ファイルはコマンド ラインから以下のように呼び出@c -されます。 +@command{lilypond} 実行可能形式ファイルは@c +コマンド ラインから以下のように呼び出されます。 @example lilypond [@var{option}]@dots{} @var{file}@dots{} @end example -拡張子を持たないファイル名で呼び出された場合、@file{.ly} が最初に試されます。@c -sudin から入力を読み込む場合には、@var{file} に対してダッシュ (@code{−}) を使@c -用します。 +拡張子を持たないファイル名で呼び出された場合、@c +@file{.ly} が最初に試されます。@c +sudin から入力を読み込む場合には、@c +@var{file} に対してダッシュ (@code{-}) を使用します。 -@file{filename.ly} が処理されると、lilypond は出力として @file{filename.ps} と -@file{filename.pdf} を作り出します。いくつかのファイルを指定することもできま@c -す。その場合、それらのファイルは個々に処理されます。@footnote{GUILE のステータ@c -スは @code{.ly} 処理後にリセットされません。そのため、Scheme 内部からいかなる@c -システム デフォルトも変更しないよう注意してください。} +@file{filename.ly} が処理されると、@c +lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り出します。@c +いくつかのファイルを指定することもできます。@c +その場合、それらのファイルは個々に処理されます。@c +@footnote{GUILE のステータスは @code{.ly} 処理後にリセットされません。@c +そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう注意してください。} -@file{filename.ly} が複数の @code{\score} を含んでいる場合、2 つ目以降の score -は @file{filename-1.pdf} から始まる番号付きのファイルに出力されます。さらに、@c -@code{output-suffix} がベース名と番号の間に挿入されます。以下の内容を含んでい@c -る入力ファイルは +@file{filename.ly} が複数の @code{\score} を含んでいる場合、@c +2 つ目以降の score は +@file{filename-1.pdf} から始まる番号付きのファイルに出力されます。@c +さらに、@code{output-suffix} がベース名と番号の間に挿入されます。@c +以下の内容を含んでいる入力ファイルは @example #(define output-suffix "violin") @@ -111,11 +118,12 @@ sudin から入力を読み込む場合には、@var{file} に対してダッシ @table @code @item -e,--evaluate=@var{expr} -@file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。複数の -@code{-e} オプションが与えられた場合、それらは順番に評価されます。 +@file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c +複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。 -表記は @code{guile-user} モジュールの中で評価されます。そのため、@var{expr} の@c -中で definition を使いたいのならば、@code{.ly} ファイルに以下をインクルードして: +表記は @code{guile-user} モジュールの中で評価されます。@c +そのため、@var{expr} の中で definition を使いたいのならば、@c +@code{.ly} ファイルに以下をインクルードして: @example #(use-modules (guile-user)) @@ -131,19 +139,21 @@ lilypond -e '(define-public a 42)' @item -f,--format=@var{format} -フォーマットを指定します。@code{format} には @code{svg}, @code{ps}, @code{pdf}, -@code{png} を選択します。 +フォーマットを指定します。@c +@code{format} には @code{svg}, @code{ps}, @code{pdf}, @code{png} を選択します。 例: @code{lilypond -fpng @var{filename}.ly} @item -d,--define-default=@var{var}=@var{val} -これは内部プログラム オプション @var{var} に Scheme 値 @var{val} をセットしま@c -す。@var{val} が提供されていない場合、@var{#t} が使用されます。オプションを OFF -にするには、@var{var} の接頭辞として @code{no-} を付けます。つまり、 +これは内部プログラム オプション @var{var} に +Scheme 値 @var{val} をセットします。@c +@var{val} が提供されていない場合、@var{#t} が使用されます。@c +オプションを OFF にするには、@var{var} の接頭辞として @code{no-} を付けます。@c +つまり、 -@cindex point and click, command line +@cindex point and click, command line (コマンド ラインからポイント&クリックを制御する) @example -dno-point-and-click @@ -160,8 +170,8 @@ lilypond -e '(define-public a 42)' @table @samp @item help -@code{lilypond -dhelp} を実行すると使用可能な @code{-d} オプションがすべて表示@c -されます。 +@code{lilypond -dhelp} を実行すると@c +使用可能な @code{-d} オプションがすべて表示されます。 @item paper-size このオプションはデフォルトの用紙サイズをセットします。 @@ -170,17 +180,18 @@ lilypond -e '(define-public a 42)' @end example @noindent -文字列はエスケーブされたクォート ( @code{\"} ) で囲まれていなければならないと@c -いうことに注意してください。 +文字列はエスケーブされたクォート ( @code{\"} ) で@c +囲まれていなければならないということに注意してください。 @c Match " in previous line to help context-sensitive editors @item safe @code{.ly} 入力を信用してはいけません。 -Web サーバを通じて LilyPond フォーマットが利用可能な場合、@code{--safe} オプ@c -ションか @code{--jail} オプションのどちらかを@b{渡さなければなりません}。@c -@code{--safe} オプションは以下のようなインライン Scheme コードが大混乱をもたら@c -すことを防ぎます: +Web サーバを通じて LilyPond フォーマットが利用可能な場合、@c +@code{--safe} オプションか @code{--jail} オプションの@c +どちらかを@b{渡さなければなりません}。@c +@code{--safe} オプションは@c +以下のようなインライン Scheme コードが大混乱をもたらすことを防ぎます: @quotation @verbatim @@ -191,64 +202,73 @@ Web サーバを通じて LilyPond フォーマットが利用可能な場合、 @end verbatim @end quotation -訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、export -(ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。 +訳者: #(system "rm -rf /") はルート ディレクトリ以下を削除し、@c +export (ly:gulp-file "/etc/passwd") はパスワード ファイルをエクスポートします。 -@code{-dsafe} オプションはインライン Sceme 表記を特別なセーフ モジュールの中で@c -評価します。このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生@c -したものですが、LilyPond API 関数をいくつか追加しています。これらの関数は -@file{scm/@/safe@/-lily@/.scm} でリスト アップされています。 +@code{-dsafe} オプションはインライン Scheme 表記を@c +特別なセーフ モジュールの中で評価します。@c +このセーフ モジュールは GUILE @file{safe-r5rs} モジュールから派生したものですが、@c +LilyPond API 関数をいくつか追加しています。@c +これらの関数は @file{scm/@/safe@/-lily@/.scm} でリスト アップされています。 -さらに、セーフ モードは @code{\include} 指示を却下し、@TeX{} 文字列の中にある@c -バックスラッシュを無効にします。 +さらに、セーフ モードは @code{\include} 指示を却下し、@c +@TeX{} 文字列の中にあるバックスラッシュを無効にします。 セーフ モードでは、LilyPond 変数を Scheme にインポートすることはできません。 -@code{-dsafe} はリソースの乱用を検出@emph{しません}。例えば循環データ構造体を@c -バックエンドに食わせることで、プログラムをハングさせることは可能です。そのた@c -め、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、そのプ@c -ロセスの CPU とメモリの両方の使用は制限されるべきです。 +@code{-dsafe} はリソースの乱用を検出@emph{しません}。@c +例えば循環データ構造体をバックエンドに食わせることで、@c +プログラムをハングさせることは可能です。@c +そのため、パブリックにアクセス可能な Web サーバ上で LilyPond を使用する場合、@c +そのプロセスの CPU とメモリの両方の使用は制限されるべきです。 セーフ モードは多くの有用な LilyPond 断片がコンパイルされることを妨げます。@c -@code{--jail} はより安全な代替オプションですが、セット アップにより多くの作業@c -を必要とします。 +@code{--jail} はより安全な代替オプションですが、@c +セット アップにより多くの作業を必要とします。 -@cindex output format, setting +@cindex output format, setting (出力フォーマットを設定する) @item backend -バックエンドに対して使用する出力フォーマットを指定します。@code{format} の選択@c -肢には以下があります: +バックエンドに対して使用する出力フォーマットを指定します。@c +@code{format} の選択肢には以下があります: @table @code @item ps -@cindex PostScript output +@cindex PostScript output (PostScript 出力) PostScript - Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。これらのフォン@c -トのサブセット化 (訳者: フォント セットを使用するフォントに限定すること) は行@c -われません。東洋の文字セットを使用する場合、巨大なファイルになる可能性がありま@c -す。 + Postscript ファイルは TTF, Type1, OTF フォントを含んでいます。@c +これらのフォントのサブセット化 +(訳者: フォント セットを使用するフォントに限定すること) は行われません。@c +東洋の文字セットを使用する場合、巨大なファイルになる可能性があります。 @item eps - 縮約された PostScript (EPS)。これは各ページ (システム) をフォントを持たない@c -個別の @file{EPS} ファイルとして吐き出し、フォントを含めたすべてのページ (シス@c -テム) を持つ @file{EPS} ファイルを 1 つ吐き出します。 + 縮約された PostScript (EPS)。@c +これは各ページ (システム) を@c +フォントを持たない個別の @file{EPS} ファイルとして吐き出し、@c +フォントを含めたすべてのページ (システム) を持つ +@file{EPS} ファイルを 1 つ吐き出します。 このモードは @command{lilypond-book} でデフォルトで使用されます。 @item svg @cindex SVG (Scalable Vector Graphics) - SVG (Scalable Vector Graphics)。これは各ページをフォントを埋め込まれた個別の -@file{SVG} ファイルとして吐き出します。埋め込みフォントをサポートする SVG -ビューアか埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが@c -必要になります。UNIX では、@uref{http://www.inkscape.org,Inkscape} (バージョン -0.42 以降) を使うことになるかもしれません。使用前に、OTF フォントを LilyPond -ディレクトリ (一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から + SVG (Scalable Vector Graphics)。@c +これは各ページを@c +フォントを埋め込まれた個別の @file{SVG} ファイルとして吐き出します。@c +埋め込みフォントをサポートする SVG ビューアか@c +埋め込みフォントを OTF フォントに置き換える機能を持つ SVG ビューアが必要になります。@c +UNIX では、@c +@uref{http://www.inkscape.org,Inkscape} (バージョン 0.42 以降) を@c +使うことになるかもしれません。@c +使用前に、OTF フォントを LilyPond ディレクトリ +(一般には @file{/usr/share/lilypond/VERSION/fonts/otf/}) から @file{~/.fonts/} にコピーしてください。 @item scm -@cindex Scheme dump +@cindex Scheme dump (Scheme ダンプ) 生データ -- 内部 Scheme ベース描画コマンド -- を吐き出します。 @item null - 譜刻された楽譜を出力しません。@code{-dno-print-pages} と同じ効果を持ちます。 + 譜刻された楽譜を出力しません。@c +@code{-dno-print-pages} と同じ効果を持ちます。 @end table 例: @code{lilypond -dbackend=svg @var{filename}.ly} @@ -257,7 +277,8 @@ Web サーバを通じて LilyPond フォーマットが利用可能な場合、 タイトルとファイル システム情報を保持している出力ファイルを生成します。 @item print-pages -すべてのページを生成します。デフォルトです。@code{-dno-print-pages} は +すべてのページを生成します。@c +デフォルトです。@code{-dno-print-pages} は @code{-dpreview} と組み合わせて使うと有用です。 @end table @@ -272,86 +293,102 @@ Web サーバを通じて LilyPond フォーマットが利用可能な場合、 @item --include, -I=@var{directory} @var{directory} を入力ファイルのサーチ パスに追加します。 -@cindex file searching -@cindex search path +@cindex file searching (ファイル検索) +@cindex search path (サーチ パス) @item -i,--init=@var{file} init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。 @item -o,--output=@var{FILE} -デフォルトの出力ファイルとして @var{FILE} をセットします。適切な接尾辞が追加さ@c -れます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。 +デフォルトの出力ファイルとして @var{FILE} をセットします。@c +適切な接尾辞が追加されます (つまり、pdf ならば拡張子 @code{.pdf} が追加されます)。 @item --ps PostScript を生成します。 @item --png -各ページの図を PNG フォーマットで生成します。これは内部で @code{--ps} を使用し@c -ます。画像の DPI 解像度は以下のようにセットします: +各ページの図を PNG フォーマットで生成します。@c +これは内部で @code{--ps} を使用します。@c +画像の DPI 解像度は以下のようにセットします: @example -dresolution=110 @end example @item --pdf -PDF を生成します。これは内部で @code{--ps} を使用します。 +PDF を生成します。@c +これは内部で @code{--ps} を使用します。 @item -j,--jail=@var{user},@var{group},@var{jail},@var{dir} -@command{lilypond} を chroot jail 環境で実行します。 -@c (訳者: chroot jail 環境とはセキュリティのためにカレント プロセスに対して@c -ルート ディレクトリの位置を変更すること。) - -@code{--jail} オプションは、Web サーバを通じて LilyPond 譜刻を実行するときや -LilyPond が外部から提供されたソースを実行するときに、@code{--safe} よりも自由@c -度の高い代替手段を提供します。 - -@code{--jail} オプションはコンパイル プロセスの開始直前に @command{lilypond} の -ルートを @var{jail} に変更します。それからユーザとグループを提供された環境に@c -マッチするように変更し、カレント ディレクトリは @var{dir} に変更されます。この@c -セットアップは jail (牢獄) から抜け出せないということを (少なくとも理論的には) -保証します。@code{--jail} を指定した @command{lilypond} の実行はルート (ユーザ@c -名) として行われる必要があります。通常、これは @command{sudo} を用いた安全な方@c -法で行われます。 - -jail のセットアップは少々デリケートな問題です。LilyPond がソースをコンパイルす@c -るのに必要とされるものすべてを @emph{jail の内部} で見つけられるということを保@c -証しなければならないからです。一般的なセットアップには以下の項目が含まれます: +@command{lilypond} を chroot jail 環境で実行します。@c +(訳者: chroot jail 環境とはセキュリティのために@c +カレント プロセスに対してルート ディレクトリの位置を変更すること。) + +@code{--jail} オプションは、@c +Web サーバを通じて LilyPond 譜刻を実行するときや +LilyPond が外部から提供されたソースを実行するときに、@c +@code{--safe} よりも自由度の高い代替手段を提供します。 + +@code{--jail} オプションはコンパイル プロセスの開始直前に +@command{lilypond} の ルートを @var{jail} に変更します。@c +それからユーザとグループを提供された環境にマッチするように変更し、@c +カレント ディレクトリは @var{dir} に変更されます。@c +このセットアップは jail (牢獄) から抜け出せないということを +(少なくとも理論的には) 保証します。@c +@code{--jail} を指定した @command{lilypond} の実行は@c +root (ユーザ名) として行われる必要があります。@c +通常、これは @command{sudo} を用いた安全な方法で行われます。 + +jail のセットアップは少々デリケートな問題です。@c +LilyPond がソースをコンパイルするのに必要とされるものすべてを +@emph{jail の内部} で見つけられるということを保証しなければならないからです。@c +一般的なセットアップには以下の項目が含まれます: @table @asis @item 専用のファイルシステムをセットアップする -@code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションでマウントす@c -るための専用ファイルシステムを作成すべきです。こうすることで、LilyPond から実@c -行可能形式ファイルを実行したり、デバイスに直接書き込むことは不可能になります。@c -専用のパーティションを作成することを望まないのなら、適当なサイズのファイルを作@c -成し、それを使用してループ デバイス (ループバック デバイス) をマウントしてくだ@c -さい。専用ファイルシステムはさらに、 LilyPond が許可されたディスク容量以上には@c -書き込めないということを保証します。 +@code{noexec}, @code{nodev}, @code{nosuid} などのセーフ オプションで@c +マウントするための専用ファイルシステムを作成すべきです。@c +こうすることで、LilyPond から実行可能形式ファイルを実行したり、@c +デバイスに直接書き込むことは不可能になります。@c +専用のパーティションを作成することを望まないのなら、@c +適当なサイズのファイルを作成し、@c +それを使用してループ デバイス (ループバック デバイス) をマウントしてください。@c +専用ファイルシステムはさらに、@c +LilyPond が許可されたディスク容量以上には書き込めないということを保証します。 @item 専用のユーザをセットアップする -jail 内部で LilyPond を実行する際、低い権限を持つ専用のユーザとグループ (仮に -@code{lily}/@code{lily} とします) で行うべきです。このユーザが書き込み可能な@c -ディレクトリが 1 つだけ存在すべきであり、それを @var{dir} に渡します。 +jail 内部で LilyPond を実行する際、@c +低い権限を持つ専用のユーザとグループ (仮に @code{lily}/@code{lily} とします) で@c +行うべきです。@c +このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、@c +それを @var{dir} に渡します。 @item jail の準備をする -LilyPond は実行中にいくつかのファイルを読み込む必要があります。それらのファイ@c -ルをすべて jail にコピーしておきます。それらのファイルが本当のルート ファイル@c -システムで存在しているパスと同じパスにコピーします。LilyPond インストールの内@c -容すべて (例えば、@file{/usr/share/lilypond}) をコピーすべきです。 +LilyPond は実行中にいくつかのファイルを読み込む必要があります。@c +それらのファイルをすべて jail にコピーしておきます。@c +それらのファイルが本当のルート ファイル システムで存在しているパスと@c +同じパスにコピーします。@c +LilyPond インストールの内容すべて (例えば、@file{/usr/share/lilypond}) を@c +コピーすべきです。 -問題が発生した場合、その原因を突き止める最も簡単な方法は @command{strace} を@c -使って LilyPond を実行することです。これによりどのファイルが見当たらないのかが@c -わかります。 +問題が発生した場合、その原因を突き止める最も簡単な方法は +@command{strace} を使って LilyPond を実行することです。@c +これによりどのファイルが見当たらないのかがわかります。 @item LilyPond を実行する -@code{noexec} でマウントされた jail の中では、外部プログラムを実行することは一@c -切できません。そのため、外部プログラムを必要としないバックエンドで LilyPond を@c -実行しなければなりません。すでに述べたように、jail モードでの LilyPond の実行@c -はスーパーユーザ権限で行われなければなりません (もちろん、その権限はすぐに外さ@c -れます)、たぶん @command{sudo} を使います。LilyPond が使用可能な CPU 時間を数@c -秒に制限する (例えば、@command{ulimit -t} を使って) というのは良いアイディアで@c -す。さらに、OS がサポートしているのなら、割り当て可能なメモリ容量を制限すると@c -いうのも良いアイディアです。 +@code{noexec} でマウントされた jail の中では、@c +外部プログラムを実行することは一切できません。@c +そのため、外部プログラムを必要としないバックエンドで +LilyPond を実行しなければなりません。@c +すでに述べたように、@c +jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず +(もちろん、その権限はすぐに外されます)、@c +たぶん @command{sudo} を使います。@c +LilyPond が使用可能な CPU 時間を数秒に制限する +(例えば、@command{ulimit -t} を使って) というのは良いアイディアです。@c +さらに、OS がサポートしているのなら、@c +割り当て可能なメモリ容量を制限するというのも良いアイディアです。 @end table @@ -359,12 +396,12 @@ LilyPond は実行中にいくつかのファイルを読み込む必要があ バージョン情報を表示します。 @item -V,--verbose -冗長表示モードにします: 読み込むすべてのファイルのフル パスを表示して、時間情@c -報を表示します。 +冗長表示モードにします: +読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。 @item -w,--warranty -GNU LilyPond の保証責任を表示します。(GNU LilyPond には@strong{保証責任はあり@c -ません}!) +GNU LilyPond の保証責任を表示します。@c +(GNU LilyPond には@strong{保証責任はありません}!) @end table @node 環境変数 @@ -377,18 +414,20 @@ GNU LilyPond の保証責任を表示します。(GNU LilyPond には@strong{保 @command{lilypond} は以下の環境変数を認識します: @table @code @item LILYPOND_DATADIR -これはデフォルトで参照するロケール メッセージとデータ ファイルがあるディレクト@c -リを指定します。このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c +これはデフォルトで参照する@c +ロケール メッセージとデータ ファイルがあるディレクトリを指定します。@c +このディレクトリは @file{ly/}, @file{ps/}, @file{tex/} などの@c サブディレクトリを保持しているべきです。 @item LANG これはワーニング メッセージの言語を選択します。 @item LILYPOND_GC_YIELD -この変数を使ってメモリ使用量とパフォーマンスを調節することができます。これはメ@c -モリ管理の振る舞いを調整するパーセント値です。高い値にするとプログラムはより多@c -くのメモリを使用し、低い値にするとより多くの CPU 時間を使用します。デフォルト@c -値は @code{70} です。 +この変数を使ってメモリ使用量とパフォーマンスを調節することができます。@c +これはメモリ管理の振る舞いを調整するパーセント値です。@c +高い値にするとプログラムはより多くのメモリを使用し、@c +低い値にするとより多くの CPU 時間を使用します。@c +デフォルト値は @code{70} です。 @end table @@ -397,59 +436,66 @@ GNU LilyPond の保証責任を表示します。(GNU LilyPond には@strong{保 @section エラー メッセージ @translationof Error messages -@cindex error messages -ファイルのコンパイルの最中にはさまざまなエラー メッセージが表示される可能性が@c -あります。 +@cindex error messages (エラー メッセージ) +ファイルのコンパイルの最中にはさまざまなエラー メッセージが@c +表示される可能性があります。 @table @emph @item Warning -@cindex warning -何か疑わしいことがあります。あなたが何か普通でないことをリクエストしている場合@c -は、そのメッセージを理解して、それを無視することができます。しかしながら、@c +@cindex warning (ワーニング) +何か疑わしいことがあります。@c +あなたが何か普通でないことをリクエストしている場合は、@c +そのメッセージを理解して、それを無視することができます。@c +しかしながら、@c Warning は通常、入力ファイルに何か問題があることを示しています。 @item Error -何か明らかに問題があります。カレントの処理ステップ (構文解析、構文解釈、フォー@c -マット) は終了され、次のステップは飛ばされます。 +何か明らかに問題があります。@c +カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、@c +次のステップは飛ばされます。 @item Fatal error -@cindex error -@cindex fatal error -何か明らかに問題があり、LilyPond はコンパイルを続けられません。これが起きるこ@c -とは稀です。これが起こるのはたいてい、フォントのインストールに問題があるためで@c -す。 +@cindex error (エラー) +@cindex fatal error (致命的なエラー) +何か明らかに問題があり、LilyPond はコンパイルを続けられません。@c +これが起きることは稀です。@c +これが起こるのはたいてい、フォントのインストールに問題があるためです。 @item Scheme error -@cindex trace, Scheme -@cindex call trace -@cindex Scheme error -Scheme コードの実行中に発生するこのエラーは Sceme インタプリタによって引き起こ@c -されます。冗長オプション (@code{-V} または @code{--verbose}) 付きで実行してい@c -る場合、問題となっている関数呼び出しの呼び出し追跡が表示されます。 +@cindex trace, Scheme (Scheme トレース) +@cindex call trace (トレースを呼び出す) +@cindex Scheme error (Scheme エラー) +Scheme コードの実行中に発生するこのエラーは +Scheme インタプリタによって引き起こされます。@c +冗長オプション (@code{-V} または @code{--verbose}) 付きで実行している場合、@c +問題となっている関数呼び出しの呼び出し追跡が表示されます。 @item Programming error -@cindex Programming error -内部的な矛盾があります。このエラー メッセージはプログラマとデバッガを助けるこ@c -とを意図したものです。通常、それらは無視できます。時々、それらは非常に大きな@c -メッセージとなり、他の出力を見えにくくします。 +@cindex Programming error (プログラミング エラー) +内部的な矛盾があります。@c +このエラー メッセージはプログラマとデバッガを助けることを意図したものです。@c +通常、それらは無視できます。@c +時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。 @item Aborted (core dumped) -これは、プログラムをクラッシュさせる深刻なプログラミング エラーを示していま@c -す。そのようなエラーは決定的なものだと考えられます。あなたがそのようなエラーで@c -つまずいた場合、バグ レポートを送ってください。 +これは、プログラムをクラッシュさせる深刻なプログラミング エラーを@c +示しています。@c +そのようなエラーは決定的なものだと考えられます。@c +あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。 @end table -@cindex errors, message format -警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、エラー -メッセージは以下のような形式になります: +@cindex errors, message format (エラー メッセージの形式) +警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、@c +エラー メッセージは以下のような形式になります: @example @var{filename}:@var{lineno}:@var{columnno}: @var{message} @var{offending input line} @end example -エラーが見つかった場所を示すために問題のある行に改行が挿入されます。例えば: +エラーが見つかった場所を示すために問題のある行に改行が挿入されます。@c +例えば: @example test.ly:2:19: error: not a duration: 5 @@ -457,186 +503,10 @@ test.ly:2:19: error: not a duration: 5 5 g' @} @end example -これらの位置は LilyPond が警告やエラーが発生した位置を最善を尽くして推測したも@c -のですが、(ごく当たり前のことですが) 警告とエラーは何か予期しないことが起こっ@c -たときに発生するものです。入力ファイルの示された行にエラーを見つけることができ@c -ない場合は、示された位置の 1 行か 2 行上をチェックしてみてください。 - - -@node convert-ly を使ってファイルを更新する -@section @command{convert-ly} を使ってファイルを更新する -@translationof Updating files with convert-ly - -@cindex Updating a LilyPond file -@cindex convert-ly - -LilyPond の入力構文は、さまざまな方法で単純化または改善するために、定期的に変@c -更されます。その副作用として、LilyPond のインタプリタはしばしば古い入力ファイ@c -ルと互換性を持たなくなります。これを救済するために、プログラム -@command{convert-ly} を用いることで、たいていの LilyPond のバージョン間での構@c -文変更を処理することができます。 - -このプログラムは古いバージョン番号を検出するために入力ファイルの @code{version} -ステートメントを使用します。たいていの場合、あなたの入力ファイルをアップグレー@c -ドするには以下を実行することで十分です: - -@example -convert-ly -e myfile.ly -@end example - -@noindent -MacOS@tie{}X ユーザはこのコマンドをメニュー エントリ (@code{Compile > Update -syntax}) 下で実行することになるかもしれません。 - -myfile.ly に変更が加えられず、myfile.ly.NEW というファイルが作成された場合、@c -myfile.ly はすでに更新されています。 - -@menu -* convert-ly のコマンド ライン オプション:: -* convert-ly の問題点:: -@end menu - -@node convert-ly のコマンド ライン オプション -@subsection @command{convert-ly} のコマンド ライン オプション -@translationof Command line options for convert-ly - -@command{convert-ly} は常にそれが扱っている最新の構文変更に変換します。このこ@c -とは、通常、ファイルの中にある @code{version} 番号は @command{convert-ly} 自体@c -のバージョンよりも低いということを意味します。 - -texinfo ファイルの中にある LilyPond 断片をアップグレードするには以下を使用して@c -ください: - -@example -convert-ly --from=... --to=... --no-version *.itely -@end example - -2 つのバージョン間での LilyPond 構文の変更を調べるには、以下を使用してください: - -@example -convert-ly --from=... --to=... -s -@end example - -1 度に多くのファイルをアップグレードするには、@code{convert-ly} に標準 UNIX コ@c -マンドを組み合わせてください。以下の例はカレント ディレクトリの中にあるすべての -@code{.ly} ファイルをアップグレードします: - -@example -for f in *.ly; do convert-ly -e $f; done; -@end example - -一般に、このプログラムは以下のように呼び出されます: - -@example -convert-ly [@var{option}]@dots{} @var{file}@dots{} -@end example - - -以下のオプションを与えることができます: - -@table @code -@item -e,--edit -入力ファイルのインライン編集を行います。@code{--output} をオーバライドします。 - -@item -f,--from=@var{from-patchlevel} -変換元のバージョンをセットします。これがセットされていない場合、@c -@command{convert-ly} は入力ファイルの中にある @code{version} 文字列を基に推測@c -します。 - -@item -n,--no-version -通常、@command{convert-ly} は @code{\version} インジケータを出力に付け加えま@c -す。このオプションを指定すると、それを抑制します。 - -@item -s, --show-rules -すべての変換を表示して、終了します。 - -@item --to=@var{to-patchlevel} -変換先のバージョンをセットします。デフォルトは利用可能な最新バージョンです。 - -@item -h, --help -使用方法についてのヘルプを表示します。 -@end table - - -@node convert-ly の問題点 -@subsection @command{convert-ly} の問題点 -@translationof Problems with convert-ly - -言語の変更がすべて処理されるわけではありません。指定できる出力オプションは 1 -つだけです。自動的に Scheme と更新することと LilyPond の Scheme インタフェイス@c -を更新することはまったく異なります。Scheme コードの調整は手動で行う覚悟でいて@c -ください。 - -convert-ly が処理できないことがいくつかあります。ここに、LilyPond コミュニティ@c -がそのことについて訴えたリストを挙げます。 - -convert-ly は必要とされるすべての変更をスムーズに実装できるような構造になって@c -いないため、このようなバグ レポートがあります。 - -@verbatim -1.6->2.0: - Doesn't always convert figured bass correctly, specifically things like {< ->}. Mats' comment on working around this: - To be able to run convert-ly - on it, I first replaced all occurrences of '{<' to some dummy like '{#' - and similarly I replaced '>}' with '&}'. After the conversion, I could - then change back from '{ #' to '{ <' and from '& }' to '> }'. - Doesn't convert all text markup correctly. In the old markup syntax, - it was possible to group a number of markup commands together within -parentheses, e.g. - -#'((bold italic) "string") - This will incorrectly be converted into - -\markup{{\bold italic} "string"} - instead of the correct - -\markup{\bold \italic "string"} -2.0->2.2: - Doesn't handle \partcombine - Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple -stanzas. -2.0->2.4: - \magnify isn't changed to \fontsize. - - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2) - remove-tag isn't changed. - - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . . - first-page-number isn't changed. - - first-page-number no => print-first-page-number = ##f - Line breaks in header strings aren't converted. - - \\\\ as line break in \header strings => \markup \center-align < - "First Line" "Second Line" > - Crescendo and decrescendo terminators aren't converted. - - \rced => \! - - \rc => \! -2.2->2.4: - \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly -converted. -2.4.2->2.5.9 - \markup{ \center-align <{ ... }> } should be converted to: - \markup{ \center-align {\line { ... }} } - but now, \line is missing. -2.4->2.6 - Special LaTeX characters such as $~$ in text are not converted to UTF8. -2.8 - \score{} must now begin with a music expression. Anything else - (particularly \header{}) must come after the music. -@end verbatim - - -@node バグを報告する -@section バグを報告する -@translationof Reporting bugs - -@cindex bugs -@cindex reporting bugs - -クラッシュや間違った出力を発生させる入力があれば、それがバグです。我々の Google -バグ トラッカ上にカレント バグのリストがあります: - -@uref{http://code.google.com/p/lilypond/issues/list} - -ここにリスト アップされていないバグを発見した場合、以下の宛先にそのバグを報告@c -してください: - -@uref{http://lilypond.org/web/devel/participating/bugs} +これらの位置は LilyPond が警告やエラーが発生した位置を@c +最善を尽くして推測したものですが、@c +(ごく当たり前のことですが) 警告とエラーは@c +何か予期しないことが起こったときに発生するものです。@c +入力ファイルの示された行にエラーを見つけることができない場合は、@c +示された位置の 1 行か 2 行上をチェックしてみてください。 -レポートの中のバグの例は最小化して提出してください。我々には可能な限り小さくさ@c -れてはいないレポートを調査するだけのリソースがありません。 diff --git a/Documentation/ja/application/suggestions.itely b/Documentation/ja/application/suggestions.itely new file mode 100644 index 0000000000..a1d8b794e4 --- /dev/null +++ b/Documentation/ja/application/suggestions.itely @@ -0,0 +1,208 @@ +@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*- + +@ignore + Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421 + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@c \version "2.12.0" + +@c Translators: Yoshiki Sawada +@c Translation status: post-GDP + + +@node LilyPond 入力ファイルの記述に対する提案 +@chapter LilyPond 入力ファイルの記述に対する提案 +@translationof Suggestions for writing LilyPond input files + +今やあなたはもっと大きな LilyPond 入力ファイル -- チュートリアルにあるような@c +小さな例ではなく、楽曲全体 -- を書き始める準備が整っています。@c +しかしながら、どのように書き進めていくべきなのでしょうか? + +LilyPond があなたの入力ファイルを理解でき、望みの出力を作り出している限り、@c +あなたの入力ファイルがどのようなものであるかは問題になりません。@c +しかしながら、LilyPond 入力ファイルを書いているときに考慮すべきことが@c +他にもいくつかあります。 + +@itemize +@item あなたがミスをしたとしたらどうでしょうか?@c +LilyPond ファイルの構造はエラーを見つけ出すことを@c +より容易に (あるいはより困難に) します。 + +@item あなたがあなたの入力ファイルを誰か他の人と共有したいとしたら@c +どうでしょうか?@c +実際には、あなたが数年前のあなた自身の入力ファイルを変更したいとしたら@c +どうでしょうか?@c +一読して理解可能な LilyPond 入力ファイルがある一方で、@c +あなたを 1 時間も悩ます入力ファイルもあるかもしれません。 + +@item あなたがあなたの LilyPond ファイルを最近のバージョンの LilyPond のために@c +アップグレードしたいとしたらどうでしょうか?@c +入力構文は LilyPond の改良に合わせてしばしば変更されます。@c +たいていの変更は @code{convert-ly} で自動的に変換できますが、@c +いくつかの変更は手動での援助を必要とするかもしれません。@c +LilyPond 入力ファイルはより容易に (あるいはより困難に) +アップグレードできるように構成することができます。 +@end itemize + +@menu +* 一般的な提案:: +* 既存の音楽を譜刻する:: +* 大きなプロジェクト:: +@end menu + + +@node 一般的な提案 +@section 一般的な提案 +@translationof General suggestions + +ここで、あなたが問題を回避したり修正する手助けになる@c +可能性がある提案をいくつか挙げます: + +@itemize +@item @strong{すべてのファイルに @code{@bs{}version} 番号を含めます}。@c +テンプレートはすべて @code{@bs{}version} 情報を保持しているということに@c +注意してください。@c +常に @code{@bs{}version} を含めること -- ファイルの大小にかかわらず -- +を強く推奨します。@c +個人的な経験から言って、数年前に使っていた LilyPond のバージョンを@c +思い出そうとすることは大変なことです。@c +@command{convert-ly} は使用した LilyPond のバージョンを宣言することを@c +必要とします。 + +@item @strong{チェックを含めます}: @ruser{Bar and bar number checks}, +@ruser{Octave checks}。@c +時々チェックを入れておけば、ミスをしたときに素早くそれを@c +見つけ出すことができます。@c +@q{時々} とはどれくらいの頻度なのでしょうか?@c +それはその音楽の複雑さ次第です。@c +とても簡単な音楽であれば、たぶん 1 回か 2 回です。@c +とても複雑な音楽であれば、おそらく各小節にチェックを入れます。 + +@item @strong{テキスト 1 行につき 1 小節にします}。@c +音楽自体や望みの出力が複雑である場合、1 行に 1 小節だけを記述すると@c +良い場合が多いです。@c +画面スペースを節約するために 1 行に 8 小節も詰め込むことは、@c +入力ファイルを @q{デバッグ} しなければならない場合に、@c +そうするだけの価値はありません。 + +@item @strong{入力ファイルにコメントをつけます}。@c +コメントとして小節番号 (時々) や音楽テーマへの参照 +(@q{second theme in violins}, @q{fourth variation} +(@q{ヴァイオリンの第 2 テーマ}, @q{第 4 ヴァイオリン}) +など) を使用します。@c +初めて楽曲を書いているときはコメントをつける必要は無いかもしれません。@c +しかしながら、数年後に何か変更を加えたいと思った場合や、@c +ソースを友人に渡す場合、あなたがファイルにコメントをつけていなければ、@c +あなたの意図やファイルがどのように構成されているのかを特定することは@c +ずっと大変になります。 + +@item @strong{波括弧にインデントを入れる}。@c +多くの問題は @code{@{} と @code{@}} の数が食い違うことによって生じます。 + +@item セクションや変数の開始時に@strong{明示的に演奏時間を付け加える}。@c +フレーズの開始時に @code{c4 d e} (@code{c d e} ではなく) と記述しておけば、@c +後になって音楽を再編成する場合に問題の発生を免れる可能性があります。 + +@item 音楽定義から@strong{調整を分離します}。@c +@rlearning{変数と関数を用いて入力の手間を省く} と +@rlearning{スタイル シート} を参照してください。 + +@end itemize + + +@node 既存の音楽を譜刻する +@section 既存の音楽を譜刻する +@translationof Typesetting existing music + +既存の楽譜からの音楽を入力している +(つまり、既存の楽譜の楽曲を譜刻している) のなら、 + +@itemize + +@item 1 回につき 1 つのシステム +(訳者: システムとは譜の集まりのこと。例えば、ピアノ譜での 1 システムとは、@c +右手譜 1 小節とそれに対応する左手譜 1 小節) +を入力し (しかし、それでもテキスト 1 行につき 1 小節だけにします)、@c +それを終えたときに各システムをチェックします。@c +処理をスピード アップさせるために @code{showLastLength} プロパティや +@code{showFirstLength} プロパティを使うことになるかもしれません -- +@ruser{Skipping corrected music} を参照してください。 + +@item @code{mBreak = @{ @bs{}break @}} を定義して、写している楽譜が@c +改行するたびに @code{@bs{}mBreak} を入力ファイルに挿入します。@c +これにより、LilyPond の音楽とオリジナルの音楽を比較することが@c +ずっと容易になります。@c +入力した楽譜の校正が終わったときに、それらの改行すべてを削除するために +@code{mBreak = @{ @}} を定義することになるかもしれません。@c +これにより、LilyPond は LilyPond が最適と思う場所に@c +改行を入れることができるようになります。 + +@item 移調楽器のパートは変数に入力します。@c +移調楽器の音符は以下で囲むことを推奨します: + +@example +\transpose c natural-pitch @{...@} +@end example +(@code{natural-pitch} はその楽器のオープン ピッチです) +これにより、変数の中の音楽は C で効率的に記述することができます。@c +変数を使用していれば、必要なときに移調しなおすこともできます +(例えば、楽譜をコンサート ピッチで譜刻したり、@c +トロンボーン パートをト音記号からヘ音記号に変換したり、など)。@c +音楽をすべて変数の中に首尾一貫したピッチで記述しておけば、@c +移調のミスは起こりにくくなります。 + +また、移調が C との間で行われるだけ +-- つまり、他に使用する調が楽器のナチュラル ピッチだけ: +B-フラット トランペットなら bes、@c +A-フラット クラリネットなら aes -- +であるとしても、音楽を変数に格納しておくべきです。@c + +@end itemize + + +@node 大きなプロジェクト +@section 大きなプロジェクト +@translationof Large projects + +大きなプロジェクトに取り組んでいるとき、@c +LilyPond 入力ファイルの構造をすっきりさせておくことが不可欠です。 + +@itemize + +@item @strong{各ボイスに対して変数を使用して}、@c +定義の中の構造を最小限にします。@c +@code{@bs{}score} セクションの構造が最も変更される可能性が高い箇所です。@c +一方、@code{violin} 定義は LilyPond のバージョンが新しくなっても@c +変更される可能性はまずありません。 + +@example +violin = \relative c'' @{ +g4 c'8. e16 +@} +... +\score @{ + \new GrandStaff @{ + \new Staff @{ + \violin + @} + @} +@} +@end example + +@item @strong{調整を音楽定義から分離します}。@c +このことは前にも触れましたが、大きなプロジェクトでは絶対に不可欠なことです。@c +@code{fthenp} の定義を変更する必要が生じた場合、変更は 1 回で済み、@c +@code{violin} の内部にはまったく手を触れる必要がありません。 + +@example +fthenp = _\markup@{ + \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @} +violin = \relative c'' @{ +g4\fthenp c'8. e16 +@} +@end example + +@end itemize diff --git a/Documentation/ja/application/updating.itely b/Documentation/ja/application/updating.itely new file mode 100644 index 0000000000..ba2fcdfe5c --- /dev/null +++ b/Documentation/ja/application/updating.itely @@ -0,0 +1,235 @@ +@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*- + +@ignore + Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421 + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@c \version "2.12.0" + +@c Translators: Yoshiki Sawada +@c Translation status: post-GDP + + +@node convert-ly を使ってファイルを更新する +@chapter @command{convert-ly} を使ってファイルを更新する +@translationof Updating files with convert-ly + +@cindex Updating a LilyPond file (LilyPond ファイルを更新する) +@cindex convert-ly + +LilyPond の入力構文は、さまざまな方法で単純化または改善するために、@c +定期的に変更されます。@c +その副作用として、LilyPond のインタプリタは@c +しばしば古い入力ファイルと互換性を持たなくなります。@c +これを救済するために、プログラム @command{convert-ly} を用いることで、@c +たいていの LilyPond のバージョン間での構文変更を処理することができます。 + + +@menu +* convert-ly を呼び出す:: +* convert-ly のコマンド ライン オプション:: +* convert-ly の問題点:: +@end menu + +@node convert-ly を呼び出す +@section @command{convert-ly} を呼び出す +@translationof Invoking convert-ly + +@command{convert-ly} は古いバージョン番号を検出するために@c +入力ファイルの @code{version} ステートメントを使用します。@c +たいていの場合、あなたの入力ファイルをアップグレードするには、@c +そのファイルを保持しているディレクトリで以下を実行することで十分です: + +@example +convert-ly -e myfile.ly +@end example + +@noindent +これにより、@code{myfile.ly} はアップグレードされ、@c +オリジナル ファイルは @code{myfile.ly~} に保存されます。 + +ディレクトリの中にある入力ファイルをすべて変換するには、@c +以下のようにします: + +@example +convert-ly -e *.ly +@end example + +オリジナル ファイルをアップグレードされたファイルで置き換える代わりに、@c +アップグレードされたファイルに異なるファイル名を指定して、@c +オリジナル ファイルをそのまま残しておくには、@c +以下のようにします: + +@example +convert-ly myfile.ly > mynewfile.ly +@end example + +@command{convert-ly} は常にそれが扱っている最新の構文変更に変換します。@c +このことは、通常、ファイルの中にある @code{version} 番号は +@command{convert-ly} 自体のバージョンよりも低いということを意味します。 + +このプログラムは変換元のバージョン番号をリストアップします。 +バージョン番号がリストアップされない場合、@c +そのファイルは最新であるということになります。 + +MacOS@tie{}X ユーザはこのコマンドをメニュー エントリ +(@code{Compile > Update syntax}) 下で実行することになるかもしれません。 + +Windows ユーザはこれらのコマンドを @q{コマンド プロンプト} ウィンドウから@c +実行する必要があります。@c +コマンド プロンプトは通常、@code{スタート > アクセサリ > コマンド プロンプト} +で見つかります。 + + +@node convert-ly のコマンド ライン オプション +@section @command{convert-ly} のコマンド ライン オプション +@translationof Command line options for convert-ly + +一般に、このプログラムは以下のように呼び出されます: + +@example +convert-ly [@var{option}]@dots{} @var{filename}@dots{} +@end example + + +以下のオプションを与えることができます: + +@table @code +@item -e,--edit +Apply the conversions direct to the input file, modifying it +in-place. + +@item -f,--from=@var{from-patchlevel} +変換元のバージョンをセットします。@c +これがセットされていない場合、@c +@command{convert-ly} は入力ファイルの中にある +@code{version} 文字列を基に推測します。@c +例: @code{--from=2.10.25} + +@item -n,--no-version +通常、@command{convert-ly} は @code{\version} インジケータを@c +出力に付け加えます。@c +このオプションを指定すると、それを抑制します。 + +@item -s, --show-rules +すべての変換を表示して、終了します。 + +@item --to=@var{to-patchlevel} +変換先のバージョンをセットします。@c +デフォルトは利用可能な最新バージョンです。@c +例: @code{--to=2.12.2} + +@item -h, --help +使用方法についてのヘルプを表示します。 +@end table + +texinfo ファイルの中にある LilyPond 断片をアップグレードするには@c +以下を使用してください: + +@example +convert-ly --from=... --to=... --no-version *.itely +@end example + +2 つのバージョン間での LilyPond 構文の変更を調べるには、@c +以下を使用してください: + +@example +convert-ly --from=... --to=... -s +@end example + + +@node convert-ly の問題点 +@section @code{convert-ly} の問題点 +@translationof Problems with convert-ly + +Windows の @q{コマンド プロンプト} ウィンドウから@c +スペースを含むファイル名やパスを持つファイルに対して@c +convert-ly を実行する場合、@c +入力ファイル名全体を 3 つ (!) のダブル クォートで囲む必要があります: + +@example +convert-ly """D:/My Scores/Ode.ly""" > "D:/My Scores/new Ode.ly" +@end example + +@command{convert-ly -e *.ly} コマンドが@c +展開時に長くなりすぎて失敗する場合、@c +@command{convert-ly} コマンドをループさせてやります。@c +以下の例は UNIX 用であり、@c +カレント ディレクトリの中にあるすべての @code{.ly} ファイルを@c +アップグレードします: + +@example +for f in *.ly; do convert-ly -e $f; done; +@end example + +Windows の @q{コマンド プロンプト} ウィンドウでの@c +上の例に対応するコマンドは以下の通りです: + +@example +for %x in (*.ly) do convert-ly -e """%x""" +@end example + +言語の変更がすべて処理されるわけではありません。@c +指定できる出力オプションは 1 つだけです。@c +自動的に Scheme と更新することと +LilyPond の Scheme インタフェイスを更新することはまったく異なります。@c +Scheme コードの調整は手動で行う覚悟でいてください。 + +convert-ly が処理できないことがいくつかあります。@c +ここに、LilyPond コミュニティがそのことについて訴えたリストを挙げます。 + +convert-ly は必要とされるすべての変更を@c +スムーズに実装できるような構造にはなっていないため、@c +このようなバグ レポートがあります。@c +以下は対応して欲しいという望みのリストであり、@c +参照のためにここに置かれています。 + +@verbatim +1.6->2.0: + Doesn't always convert figured bass correctly, specifically things like {< +>}. Mats' comment on working around this: + To be able to run convert-ly + on it, I first replaced all occurrences of '{<' to some dummy like '{#' + and similarly I replaced '>}' with '&}'. After the conversion, I could + then change back from '{ #' to '{ <' and from '& }' to '> }'. + Doesn't convert all text markup correctly. In the old markup syntax, + it was possible to group a number of markup commands together within +parentheses, e.g. + -#'((bold italic) "string") + This will incorrectly be converted into + -\markup{{\bold italic} "string"} + instead of the correct + -\markup{\bold \italic "string"} +2.0->2.2: + Doesn't handle \partcombine + Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple +stanzas. +2.0->2.4: + \magnify isn't changed to \fontsize. + - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2) + remove-tag isn't changed. + - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . . + first-page-number isn't changed. + - first-page-number no => print-first-page-number = ##f + Line breaks in header strings aren't converted. + - \\\\ as line break in \header strings => \markup \center-align < + "First Line" "Second Line" > + Crescendo and decrescendo terminators aren't converted. + - \rced => \! + - \rc => \! +2.2->2.4: + \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly +converted. +2.4.2->2.5.9 + \markup{ \center-align <{ ... }> } should be converted to: + \markup{ \center-align {\line { ... }} } + but now, \line is missing. +2.4->2.6 + Special LaTeX characters such as $~$ in text are not converted to UTF8. +2.8 + \score{} must now begin with a music expression. Anything else + (particularly \header{}) must come after the music. +@end verbatim diff --git a/Documentation/ja/application/working.itely b/Documentation/ja/application/working.itely new file mode 100644 index 0000000000..f1efd5057c --- /dev/null +++ b/Documentation/ja/application/working.itely @@ -0,0 +1,747 @@ +@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*- + +@ignore + Translation of GIT committish: 499a511d4166feaada31114e097f86b5e0c56421 + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@c \version "2.12.0" + + +@c Translators: Yoshiki Sawada +@c Translation status: post-GDP + + +@node LilyPond プロジェクトに取り組む +@chapter LilyPond プロジェクトに取り組む +@translationof Working on LilyPond projects + +このセクションでは一般的な問題のいくつかを@c +解決または回避する方法について説明します。@c +あなたにプログラミングの経験があるのなら、@c +ここで取り上げる TIPS の多くは当たり前のことに見えるかもしれませんが、@c +それでも本章を読むことをお勧めします。 + +@menu +* うまくいかないとき:: +* Make と Makefile:: +@end menu + + +@node うまくいかないとき +@section うまくいかないとき +@translationof When things don't work + +@menu +* 古い入力ファイルをアップデートする:: +* 一般的なエラー:: +* トラブルシューティング (すべてをバラバラにする):: +* 最小化例:: +@end menu + + +@node 古い入力ファイルをアップデートする +@subsection 古い入力ファイルをアップデートする +@translationof Updating old input files + +@cindex convert-ly +@cindex updating old input files (ふるい入力ファイルをアップデートする) + +LilyPond 入力構文はしばしば変更されます。@c +LilyPond 自体の改良に合わせて、構文 (入力言語) も変更されます。@c +これらの変更は@c +入力を読みやすく/書きやすくするために行われる場合もありますし、@c +LilyPond の新しい機能のために行われる場合もあります。 + +LilyPond は、このアップデートをより容易にするファイル +-- @code{convert-ly} -- と一緒に公開されます。@c +このプログラムの実行方法についての詳細は +@rprogram{convert-ly を使ってファイルを更新する} を参照してください。 + +残念なことに、@code{convert-ly} はすべての入力構文の変更を@c +処理できるわけではありません。@c +単純な探索-置換 +(@code{raggedright} が @code{ragged-right} になったなど) +は処理しますが、@c +複雑すぎる変更もあります。@c +@code{convert-ly} が処理できない構文の変更は +@rprogram{convert-ly を使ってファイルを更新する} にリストアップされています。 + +例えば、LilyPond 2.4 以前では、アクセントと非英語文字 +-- 例えば、@code{No@bs{}"el} +(これは @q{クリスマス} に対応するフランス語となります) -- は +LaTex を使って入力していました。@c +LilyPond 2.6 以降では、@c +特殊文字 @code{ë} を UTF-8 キャラクタとして@c +直接 LilyPond ファイルに入力するようになりました。@c +@code{convert-ly} はすべての LaTex 特殊文字を +UTF-8 キャラクタに変更することはできません。@c +その場合、あなたが手動で古い LilyPond 入力ファイルを@c +アップデートする必要があります。 + + +@node 一般的なエラー +@subsection 一般的なエラー +@translationof Common errors + +以下で記述するエラーがしばしば起こりますが、@c +その原因は明白でなかったり、@c +簡単には見つからなかったりします。@c +一旦それらのエラーを経験して理解すれば、@c +それらの処理は簡単です。 + + +@menu +* 音楽がページからはみ出す:: +* 余計な譜が出現する:: +* 見かけ上 ../ly/init.ly に発生するエラー:: +* エラー メッセージ Unbound variable %:: +* エラー メッセージ FT_Get_Glyph_Name:: +@end menu + +@node 音楽がページからはみ出す +@unnumberedsubsubsec 音楽がページからはみ出す +@translationof Music runs off the page + +右の余白にはみ出した音楽や、過度に密集した音楽の原因は@c +ほとんどすべて音符の演奏時間を不適切に入力して、@c +小節の最後の音符が小節線を越えたためです。@c +小節の最後の音符が自動的に挿入される小節線のところで終わっていなくても@c +無効ではありません。@c +なぜなら、その音符は単に次の小節に持ち越すと見なされるからです。@c +しかしながら、そのような持ち越しの小節が長く続くと、@c +音楽は密集したり、ページからはみ出す可能性があります。@c +なぜなら、自動改行を挿入できるのは完全な小節 +-- つまり、すべての音符がその小節の終端までに終わっている小節 -- +の終端だけだからです。 + +@warning{不適切な演奏時間は自動改行を抑制し、@c +その行の音楽は密集したり、ページからはみ出します。} + +小節チェックを使うと不適切な演奏時間を簡単に見つけ出すことができます +-- @ruser{Bar and bar number checks} を参照してください。 +@c -- @ruser{小節と小節番号チェック} を参照してください。 + +長く続く持ち越しの小節を持とうとするならば、@c +改行したいところに不可視の小節線を挿入する必要があります。@c +詳細は @ruser{Bar lines} を参照してください。 +@c 詳細は @ruser{小節線} を参照してください。 + + +@node 余計な譜が出現する +@unnumberedsubsubsec 余計な譜が出現する +@translationof An extra staff appears + +コンテキストが @code{\new} で明示的に作成されてはいない場合、@c +すでに存在しているコンテキストには適用できないコマンドが発生すると@c +沈黙のうちにコンテキストが作成されます。@c +簡単な楽譜ではコンテキストの自動作成機能は有用であり、@c +この LilyPond マニュアルの中の例の大半がこの機能を利用しています。@c +しかしながら、@c +時々このコンテキスト自動作成機能が予期せぬ譜や楽譜を発生させます。@c +例えば、以下のコードはその後に続く譜の中にある符頭をすべて赤くすると@c +予期したものかもしれませんが、@c +実際のところ、その結果は 2 つの譜となり、@c +下側の譜の中の符頭はデフォルトの黒のままです。 + +@lilypond[quote,verbatim,relative=2] +\override Staff.NoteHead #'color = #red +\new Staff { a } +@end lilypond + +こうなった原因は、@c +オーバライドが処理されたときに +@code{Staff} コンテキストは存在しなかったためです。@c +そのため、@code{Staff} コンテキストが 1 つ暗黙的に作成され、@c +オーバライドはそのコンテキストに適用されます。@c +それから、@code{\new Staff} コマンドがもう 1 つ別の譜を作成し、@c +音符はそこに配置されます。@c +すべての符頭を赤くするための正しいコードは以下のようになります: + +@lilypond[quote,verbatim,relative=2] +\new Staff { + \override Staff.NoteHead #'color = #red + a +} +@end lilypond + +次の例として、@c +@code{\relative} コマンドが @code{\repeat} コマンドの中にある場合、@c +2 つの譜が生成され、2 番目の譜は 1 番目の譜からずれます。@c +なぜなら、@c +@code{\repeat} コマンドは 2 つの @code{\relative} ブロックを生成し、@c +それぞれのブロックは暗黙的に @code{Staff} ブロックと @code{\Voice} ブロックを@c +作成するからです。 + +@lilypond[quote,verbatim] +\repeat unfold 2 \relative { c d e f } +@end lilypond + +正しい結果を得るには、@c +以下のように +@code{\repeat} コマンドと @code{j\relative} コマンドの位置を入れ換えます: + +@lilypond[quote,verbatim] +\relative { + \repeat unfold 2 { c d e f } +} +@end lilypond + + +@node 見かけ上 ../ly/init.ly に発生するエラー +@unnumberedsubsubsec 見かけ上 @code{../ly/init.ly} に発生するエラー +@translationof Apparent error in ../ly/init.ly + +入力ファイルの形式が正しくない場合、@c +@code{../ly/init.ly} の中に構文エラーがあるという内容の@c +さまざまな原因が不明瞭なエラー メッセージが表示される可能性があります。@c +例えば、入力ファイルの中で括弧やクォートが対になっていない場合に、@c +そのようなエラーが発生します。 + +最も一般的なエラーは @code{score} ブロックの最後に@c +波括弧 (@code{@}}) が無いというエラーです。@c +その解決法は明白です: +@code{score} ブロックが正しく終わっていることをチェックしてください。@c +入力ファイルの正しい構造は @rlearning{LilyPond 入力ファイルの仕組み} で@c +記述しています。@c +角括弧と波括弧の対を自動的にハイライトするエディタを使用すると@c +そのようなエラーを防ぐのに役立ちます。 + +次に一般的なエラーの原因は@c +歌詞ブロックの最後の音節と閉じ波括弧 (@code{@}}) の間にスペースが@c +無いという場合です。@c +このスペースが無いと、@c +閉じ波括弧は音節の一部になってしまいます。@c +常に @emph{すべての} 中括弧の前後にスペースを置くことをお勧めします。@c +これは歌詞を使用するときに重要になります +-- @ruser{Lyrics explained} を参照してください。 +@c -- @ruser{歌詞の説明} を参照してください。 + +このエラー メッセージは、@c +クォート (@code{"}) を閉じることを忘れた場合にも発生します。@c +そのような場合、@c +付随するエラー メッセージがエラーを起こした行の行番号を提示します。@c +対になっていないクォートは通常 1 行あるいは 2 行上にあります。 + + +@node エラー メッセージ Unbound variable % +@unnumberedsubsubsec エラー メッセージ Unbound variable % +@translationof Error message Unbound variable % + +@emph{Scheme} コメントではなく @emph{LilyPond} コメントを@c +保持している Scheme ルーチン +(このような Scheme は無効です) +が呼び出されると、@c +@qq{GUILE signalled an error ...} とともに@c +このエラー メッセージがコンソール出力やログ ファイルの最後に出現します。 + +LilyPond コメントはパーセント記号 (@code{%}) で始まりますが、@c +これを Scheme ルーチン内で使ってはいけません。@c +Scheme コメントは セミコロン (@code{;}) で始まります。 + + +@node エラー メッセージ FT_Get_Glyph_Name +@unnumberedsubsubsec エラー メッセージ FT_Get_Glyph_Name +@translationof Error message FT_Get_Glyph_Name + +入力ファイルが UTF-8 エンコーディングで保存されていない非 ASCII 文字を@c +保持している場合、@c +このエラー メッセージがコンソール出力やログ ファイルに出現します。@c +詳細は @ruser{Text encoding} を参照してください。 +@c 詳細は @ruser{テキスト エンコーディング} を参照してください。 + + +@node トラブルシューティング (すべてをバラバラにする) +@subsection トラブルシューティング (すべてをバラバラにする) +@translationof Troubleshooting (taking it all apart) + +遅かれ早かれ、あなたは LilyPond がコンパイルできないファイルを@c +書くことになります。@c +LilyPond が返すメッセージはエラーを見つけ出す@c +手助けになるかもしれませんが、多くの場合、@c +問題の原因を探し出すために調査を行う必要があります。 + +この目的のための最も強力なツールは 1 行コメント (@code{%} で記述します) と@c +ブロック コメント (@code{%@{ ... %@}} で記述します) です。@c +問題がどこにあるかわからない場合、@c +入力ファイルの大きな一部分をコメント アウトすることから始めます。@c +あるセクションをコメント アウトして、そのファイルを再びコンパイルしてみます。@c +コンパイルが通ったのなら、問題は今コメント アウトした部分の中にあります。@c +コンパイルが通らなかった場合は、コンパイルが通るようになるまで@c +コメント アウトしたままにしておきます。 + +極端な場合、最終的に以下のようになるかもしれません: + +@example +\score @{ + << + % \melody + % \harmony + % \bass + >> + \layout@{@} +@} +@end example + +@noindent +(言い換えると、何の音楽も持たないファイルです) + +こうなったとしても、あきらめないでください。@c +少しだけコメントを外して -- 例えば、バス パートを -- +コンパイルが通るかどうか試してみます。@c +コンパイルが通らなかった場合は、バスの音楽をすべてコメント アウトします +(しかし、@code{@bs{}score} の中の @code{@bs{}bass} はコメントを@c +外したままにしておきます)。 + +@example +bass = \relative c' @{ +%@{ + c4 c c c + d d d d +%@} +@} +@end example + +そして、問題を起こしている行を見つけ出すまで、@c +@code{bass} パートから少しずつコメントを外していきます。 + +もう 1 つの非常に有用なデバッグ テクニックは +@c FIXME FIXME FIXME を構築することです。 +@ref{最小化例} を構築することです。 + + +@node 最小化例 +@subsection 最小化例 +@translationof Minimal examples + +最小化例は可能な限り小さな例のことです。@c +最小化例は長い例よりも理解することがずっと容易です。@c +最小化例は以下の目的で使用されます: + +@itemize +@item バグ レポート +@item メーリング リストに援助要請を送る +@item @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet Repository} に例を追加する +@end itemize + +可能な限り小さな例を構築するための規則はとても単純です: +必要の無いものはすべて削除する。@c +ファイルの不要な部分を削除しようとしているとき、@c +実際に削除する代わりにコメント アウトを使用するというのは@c +とても良いアイディアです。@c +そうしておけば、ある行が実際には必要だということがわかった場合に、@c +その行をゼロから入力する代わりに、コメントを外すだけで済みます。 + +@qq{可能な限り小さく} という規則には 2 つの例外があります: + +@itemize +@item @code{\version} 番号を含める。 +@item 可能であれば、@c +例の先頭で @code{@bs{}paper@{ ragged-right=##t @}} を使う。 +@end itemize + +最小化例の要点は読みやすくするということです: + +@itemize +@item 複雑な音符、調子、拍子を使うことを避ける +-- それらの要素の振る舞いについて何かを示そうとしているのでない限り +@item @code{@bs{}override} コマンドを使わない +-- それがその例のポイントでない限り +@end itemize + + +@node Make と Makefile +@section Make と Makefile +@translationof Make and Makefiles + +@cindex makefiles +@cindex make + +LilyPond を実行できるほとんどすべてのプラットフォームが +@code{make} というソフトウェアをサポートします。@c +このソフトウェアは @code{Makefile} という名前の特殊なファイルを読み込みます。@c +ファイル @code{Makefile} は、@c +ファイルの依存関係と、@c +あるファイルから別のファイルを作り出すために@c +オペレーティング システムに渡す必要があるコマンドを定義します。@c +例えば、@code{Makefile} は LilyPond を実行して +@code{ballad.ly} から @code{ballad.pdf} と @code{ballad.midi} を@c +作り出す方法を記述します。 + +自身の便利さのためかソース ファイルにアクセスしてくれる他の人のために、@c +自身のプロジェクト用に @code{Makefile} を作成することが良い場合があります。@c +これが当てはまるのは、@c +多くのインクルード ファイルと複数の出力オプション +(例えば、フル スコア、パート スコア、指揮譜、ピアノ譜など) を持つ +非常に大きなプロジェクト、あるいは、@c +ビルドするために複雑なコマンドを必要とするプロジェクト +(@code{lilypond-book} プロジェクトなど) +です。@c +@code{Makefile} の複雑さと自由度は、必要性と作者のスキルに応じて、@c +さまざまです。@c +プログラム GNU Make は +GNU/Linux ディストリビューションと MacOS X にインストールされていて、@c +Windows でも利用可能です。 + +@code{make} の使い方についてのすべての詳細は +@strong{GNU Make マニュアル} を参照してください。@c +これから示すのは @code{make} でできることのほんの一例です。 + +@code{Makefile} の中に規則を定義するためのコマンドは、@c +プラットフォームによって異なります。@c +例えば、さまざまな種類がある Linux と MacOS は @code{bash} を使いますが、@c +Windows は @code{cmd} を使います。@c +MacOS X では、コマンド ライン インタプリタを使用するためにシステムを@c +コンフィグレーションする必要があるということに注意してください。@c +ここで、@code{Makefile} の例をいくつか +Linux/MacOS 用と Windows 用の両方のバージョンで示します。 + +最初の例は、4 楽章のオーケストラのためのもので、@c +以下のようなディレクトリ構造を持ちます: + +@example +Symphony/ +|-- MIDI/ +|-- Makefile +|-- Notes/ +| |-- cello.ily +| |-- figures.ily +| |-- horn.ily +| |-- oboe.ily +| |-- trioString.ily +| |-- viola.ily +| |-- violinOne.ily +| `-- violinTwo.ily +|-- PDF/ +|-- Parts/ +| |-- symphony-cello.ly +| |-- symphony-horn.ly +| |-- symphony-oboes.ly +| |-- symphony-viola.ly +| |-- symphony-violinOne.ly +| `-- symphony-violinTwo.ly +|-- Scores/ +| |-- symphony.ly +| |-- symphonyI.ly +| |-- symphonyII.ly +| |-- symphonyIII.ly +| `-- symphonyIV.ly +`-- symphonyDefs.ily +@end example + +@code{Scores} ディレクトリと @code{Parts} ディレクトリの中にある +@code{.ly} ファイルは音符を +@code{Notes} ディレクトリの中にある @code{.ily} ファイルから取得します: + +@example +%%% top of file "symphony-cello.ly" +\include ../definitions.ily +\include ../Notes/cello.ily +@end example + +この @code{Makefile} はターゲットとして +@code{score} (フル スコアの楽曲全体)、@c +@code{movements} (フル スコアの個々の楽章)、@c +それに @code{parts} (演奏者のための個々のパート) を持ちます。@c +さらに、web や email で配布するのに適したソース ファイルの tarball +(訳者: 複数のファイルをコマンド @code{tar} で 1 つのファイルにまとめたもの) +を作成するターゲット @code{archive} もあります。@c +ここでは GNU/Linux や MacOS X 用の @code{Makefile} を示します。@c +これをプロジェクトのトップ ディレクトリに +@code{Makefile} という名前で保存する必要があります: + +@warning{ターゲットやパターン ルールが定義されたとき、@c +そのあとの行はスペースではなく Tab で始まる必要があります。} + +@example +# the name stem of the output files +# 出力ファイル名の語幹: symphonyI.pdf, symphonyIII.ly など +piece = symphony +# determine how many processors are present +# いくつプロセッサがあるかを決定します +CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//` +# The command to run lilypond +# lilypond を実行するコマンド +LILY_CMD = lilypond -ddelete-intermediate-files \ + -dno-point-and-click -djob-count=$(CPU_CORES) + +# The suffixes used in this Makefile. +# この Makefile で使用される拡張子 +.SUFFIXES: .ly .ily .pdf .midi + +# Input and output files are searched in the directories listed in +# the VPATH variable. All of them are subdirectories of the current +# directory (given by the GNU make variable `CURDIR'). +# 入力ファイルと出力ファイルのサーチは VPATH 変数でリストアップされている +# ディレクトリの中で行われます。それらのディレクトリはすべて (GNU make 変数 +# `CURDIR' によって与えられる) カレント ディレクトリのサブディレクトリです。 +VPATH = \ + $(CURDIR)/Scores \ + $(CURDIR)/PDF \ + $(CURDIR)/Parts \ + $(CURDIR)/Notes + +# LY 入力ファイルから PDF ファイルと MIDI ファイルを作成するための +# パターン ルール。.pdf 出力ファイルは `PDF' サブディレクトリの中に +# 配置され、.midi ファイルは `MIDI' サブディレクトリの中に配置されます。 +%.pdf %.midi: %.ly + $(LILY_CMD) $<; \ # this line begins with a tab + if test -f "$*.pdf"; then \ + mv "$*.pdf" PDF/; \ + fi; \ + if test -f "$*.midi"; then \ + mv "$*.midi" MIDI/; \ + fi + +notes = \ + cello.ily \ + horn.ily \ + oboe.ily \ + viola.ily \ + violinOne.ily \ + violinTwo.ily + +# The dependencies of the movements. +# ターゲット movements の依存関係 +$(piece)I.pdf: $(piece)I.ly $(notes) +$(piece)II.pdf: $(piece)II.ly $(notes) +$(piece)III.pdf: $(piece)III.ly $(notes) +$(piece)IV.pdf: $(piece)IV.ly $(notes) + +# The dependencies of the full score. +# ターゲット score の依存関係 +$(piece).pdf: $(piece).ly $(notes) + +# The dependencies of the parts. +# ターゲット parts の依存関係 +$(piece)-cello.pdf: $(piece)-cello.ly cello.ily +$(piece)-horn.pdf: $(piece)-horn.ly horn.ily +$(piece)-oboes.pdf: $(piece)-oboes.ly oboe.ily +$(piece)-viola.pdf: $(piece)-viola.ly viola.ily +$(piece)-violinOne.pdf: $(piece)-violinOne.ly violinOne.ily +$(piece)-violinTwo.pdf: $(piece)-violinTwo.ly violinTwo.ily + +# Type `make score' to generate the full score of all four +# movements as one file. +# 4 つすべての楽章のフル スコアを 1 つのファイルとして生成するには +# `make score' とタイプします。 +.PHONY: score +score: $(piece).pdf + +# Type `make parts' to generate all parts. +# Type `make foo.pdf' to generate the part for instrument `foo'. +# Example: `make symphony-cello.pdf'. +# すべてのパートを生成するには `make parts' とタイプします。 +# 楽器 `foo' のためのパートを生成するには `make foo.pdf' とタイプします。 +# 例: `make symphony-cello.pdf' +.PHONY: parts +parts: $(piece)-cello.pdf \ + $(piece)-violinOne.pdf \ + $(piece)-violinTwo.pdf \ + $(piece)-viola.pdf \ + $(piece)-oboes.pdf \ + $(piece)-horn.pdf + +# Type `make movements' to generate files for the +# four movements separately. +# 4 つの楽章を別個のファイルとして生成するには `make movements' とタイプします。 +.PHONY: movements +movements: $(piece)I.pdf \ + $(piece)II.pdf \ + $(piece)III.pdf \ + $(piece)IV.pdf + +all: score parts movements + +archive: + tar -cvvf stamitz.tar \ # this line begins with a tab + --exclude=*pdf --exclude=*~ \ + --exclude=*midi --exclude=*.tar \ + ../Stamitz/* +@end example + + +Windows プラットフォームには特別な面倒さがあります。@c +Windows 用の GNU Make をダウンロードしてインストールした後、@c +システム環境変数に正しいパスを設定して、@c +DOS シェルが Make プログラムを見つけられるようにする必要があります。@c +これを行うには、@c +"マイ コンピュータ" を右クリックして、@code{プロパティ} を選択し、@c +それから @code{詳細設定} を選択します。@c +それから @code{環境変数} をクリックして、@c +@code{システム環境変数} パネルの中にある @code{Path} をハイライトしてから +@code{編集} をクリックして、@c +GNU Make の実行ファイルへのパスを追加します。@c +そのパスは以下のようになります +(訳者: GNU Make のインストールのされ方によって異なります): + +@example +C:\Program Files\GnuWin32\bin +@end example + +Linux/MacOS X とは異なるシェル コマンドを扱い、@c +いくつかのデフォルト システム ディレクトリの中に存在する@c +ファイル空間を扱うために、@c +@code{Makefile} 自体を変更する必要があります。@c +Windows は @code{tar} コマンドを持たないため、@c +@code{archive} ターゲットは除去されます。@c +また、Windows が持つ MIDI ファイルのデフォルト拡張子は異なります。 + +@example +## WINDOWS VERSION +## +piece = symphony +LILY_CMD = lilypond -ddelete-intermediate-files \ + -dno-point-and-click \ + -djob-count=$(NUMBER_OF_PROCESSORS) + +#get the 8.3 name of CURDIR (workaround for spaces in PATH) +workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \ + do @@echo %%~sb) + +.SUFFIXES: .ly .ily .pdf .mid + +VPATH = \ + $(workdir)/Scores \ + $(workdir)/PDF \ + $(workdir)/Parts \ + $(workdir)/Notes + +%.pdf %.mid: %.ly + $(LILY_CMD) $< # this line begins with a tab + if exist "$*.pdf" move /Y "$*.pdf" PDF/ # begin with tab + if exist "$*.mid" move /Y "$*.mid" MIDI/ # begin with tab + +notes = \ + cello.ily \ + figures.ily \ + horn.ily \ + oboe.ily \ + trioString.ily \ + viola.ily \ + violinOne.ily \ + violinTwo.ily + +$(piece)I.pdf: $(piece)I.ly $(notes) +$(piece)II.pdf: $(piece)II.ly $(notes) +$(piece)III.pdf: $(piece)III.ly $(notes) +$(piece)IV.pdf: $(piece)IV.ly $(notes) + +$(piece).pdf: $(piece).ly $(notes) + +$(piece)-cello.pdf: $(piece)-cello.ly cello.ily +$(piece)-horn.pdf: $(piece)-horn.ly horn.ily +$(piece)-oboes.pdf: $(piece)-oboes.ly oboe.ily +$(piece)-viola.pdf: $(piece)-viola.ly viola.ily +$(piece)-violinOne.pdf: $(piece)-violinOne.ly violinOne.ily +$(piece)-violinTwo.pdf: $(piece)-violinTwo.ly violinTwo.ily + +.PHONY: score +score: $(piece).pdf + +.PHONY: parts +parts: $(piece)-cello.pdf \ + $(piece)-violinOne.pdf \ + $(piece)-violinTwo.pdf \ + $(piece)-viola.pdf \ + $(piece)-oboes.pdf \ + $(piece)-horn.pdf + +.PHONY: movements +movements: $(piece)I.pdf \ + $(piece)II.pdf \ + $(piece)III.pdf \ + $(piece)IV.pdf + +all: score parts movements +@end example + + +次の @code{Makefile} は、@c +LaTeX で処理する @command{lilypond-book} ドキュメント用です。@c +このドキュメントは目次を持ちます。@c +目次を作成するには、@c +リンクを更新するために @command{latex} コマンドを 2 回実行する必要があります。@c +.pdf 出力ファイルは @code{out} ディレクトリに保存され、@c +HTML 出力ファイルは @code{htmlout} ディレクトリに保存されます。 + +@example +SHELL=/bin/sh +FILE=myproject +OUTDIR=out +WEBDIR=htmlout +VIEWER=acroread +BROWSER=firefox +LILYBOOK_PDF=lilypond-book --output=$(OUTDIR) --pdf $(FILE).lytex +LILYBOOK_HTML=lilypond-book --output=$(WEBDIR) $(FILE).lytex +PDF=cd $(OUTDIR) && pdflatex $(FILE) +HTML=cd $(WEBDIR) && latex2html $(FILE) +INDEX=cd $(OUTDIR) && makeindex $(FILE) +PREVIEW=$(VIEWER) $(OUTDIR)/$(FILE).pdf & + +all: pdf web keep + +pdf: + $(LILYBOOK_PDF) # begin with tab + $(PDF) # begin with tab + $(INDEX) # begin with tab + $(PDF) # begin with tab + $(PREVIEW) # begin with tab + +web: + $(LILYBOOK_HTML) # begin with tab + $(HTML) # begin with tab + cp -R $(WEBDIR)/$(FILE)/ ./ # begin with tab + $(BROWSER) $(FILE)/$(FILE).html & # begin with tab + +keep: pdf + cp $(OUTDIR)/$(FILE).pdf $(FILE).pdf # begin with tab + +clean: + rm -rf $(OUTDIR) # begin with tab + +web-clean: + rm -rf $(WEBDIR) # begin with tab + +archive: + tar -cvvf myproject.tar \ # begin this line with tab + --exclude=out/* \ + --exclude=htmlout/* \ + --exclude=myproject/* \ + --exclude=*midi \ + --exclude=*pdf \ + --exclude=*~ \ + ../MyProject/* +@end example + +TODO: make this thing work on Windows + +この @code{Makefile} は Windows では機能しません。@c +Windows ユーザの代替手段として、@c +ビルド コマンドを保持する簡単なバッチ ファイルを作成する方法があります。@c +これは @code{Makefile} のように依存関係を保持できませんが、@c +少なくともビルド処理を単一のコマンドに縮小します。@c +以下のコードを +@command{build.bat} あるいは @command{build.cmd} として保存してください。@c +このバッチ ファイルは DOS プロンプトから実行することができ、@c +単にそのアイコンをダブル クリックすることでも実行することができます。 + +@example +lilypond-book --output=out --pdf myproject.lytex +cd out +pdflatex myproject +makeindex myproject +pdflatex myproject +cd .. +copy out\myproject.pdf MyProject.pdf +@end example + + +@seealso +アプリケーションの使用方法: +FIXME +@c @rprogram{Setup for MacOS X}, +@rprogram{コマンド ラインの使用方法}, +@rprogram{lilypond-book} diff --git a/Documentation/ja/index.html.in b/Documentation/ja/index.html.in index 85aebda112..84dbf9b5ca 100644 --- a/Documentation/ja/index.html.in +++ b/Documentation/ja/index.html.in @@ -42,7 +42,7 @@ href="learning/index.ja.html">学習マニュアル
  • 音楽用語集 -(大きな 1 ページ 形式 ~ 500 kB), +(大きな 1 ページ 形式 ~ 500 kB, PDF 形式)
    (非英語圏のユーザ向け)
  • @@ -53,7 +53,7 @@ href="music-glossary/index.html">音楽用語集 News
    (前回のメジャー リリースからの変更点) -
  • Examples +
  • 例
    (参照用の例)
  • @@ -63,8 +63,8 @@ href="music-glossary/index.html">音楽用語集 @@ -83,14 +82,14 @@ href="internals/index.ja.html">内部リファレンス