lilypond を呼び出す

lilypond 実行可能形式ファイルはコマンド ラインから以下のように呼び出されます。

lilypond [option]… file

拡張子を持たないファイル名で呼び出された場合、.ly が最初に試されます。stdin から入力を読み込む場合には、file に対してダッシュ (-) を使用します。

filename.ly が処理されると、lilypond は出力として filename.pdf を作り出します。いくつかのファイルを指定することもできます。その場合、それらのファイルは個々に処理されます。1

filename.ly が複数の \book ブロックを含んでいる場合、残りの score は filename-1.pdf から始まる番号付きのファイルに出力されます。さらに、output-suffix がベース名と番号の間に挿入されます。例えば、 filename.ly が以下の内容を含んでいる場合、

#(define output-suffix "violin")
\score { … }
#(define output-suffix "cello")
\score { … }

LilyPond は filename-violin.pdffilename-cello-1.pdf を出力します。

標準シェルで LilyPond を使う

LilyPond はコマンドラインアプリケーションなので、LilyPond を呼び出すために ‘シェル’ の機能をうまく利用することができます。

例えば,

lilypond *.ly

は、カレントディレクトリのすべての LilyPond ファイルを処理します。

コンソール出力をリダイレクトする(例えばファイルへ)のも有用でしょう。

lilypond file.ly 1> stdout.txt
lilypond file.ly 2> stderr.txt
lilypond file.ly &> all.txt

上記コマンドはそれぞれ ‘普通の’ 出力、‘エラー’ のみ、‘すべて’ 、 をテキストファイルにリダイレクトします。あなたの使用しているシェル、コマンドプロンプト (Windows)、ターミナルやコンソール (MacOS X) がリダイレクトをサポートしているか、あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。

以下は、カレントディレクトリ以下のすべての入力ファイルを再帰的に探し、処理する例です。出力ファイルは元の入力ファイルのあるディレクトリではなく、コマンドを実行したディレクトリに置かれます。

find . -name '*.ly' -exec lilypond '{}' \;

これは MacOS X ユーザでも使えるでしょう。

Windows ユーザは

forfiles /s /M *.ly /c "cmd /c lilypond @file"

スタートメニューから スタート > アクセサリ > コマンドプロンプト とたどるか、検索ウィンドウで ‘コマンドプロンプト’ と入力して、 コマンド プロンプト を起動し、これらのコマンドを入力します。

または、入力ファイルを含むすべてのサブフォルダを含む、最上位のフォルダを明示的に指定できる /p オプションもあります;

forfiles /s /p C:\Documents\MyScores /M *.ly /c "cmd /c lilypond @file"

最上位フォルダ名がスペース文字を含む場合は、パス全体をダブルクオーテーションで囲む必要があります。;

forfiles /s /p "C:\Documents\My Scores" /M *.ly /c "cmd /c lilypond @file"

Footnotes

(1)

Guile のステータスは .ly 処理後にリセットされません。そのため、Scheme 内部からいかなるシステム デフォルトも変更しないよう注意してください。

GNU LilyPond – アプリケーション使用方法 v2.25.20 (開発版).