LilyPond — 使用方法

このマニュアルは LilyPond バージョン 2.19.12 で配布されるプログラムの実効方法について説明します。さらに、効率的な使用方法について提案します。

このマニュアルと他のドキュメントの関係について、あるいは、このマニュアルを他の形式で読む方法についての情報は、 マニュアル を参照してください。

マニュアルのいずれかを見失ってしまった場合、http://www.lilypond.org/ にマニュアルがすべて揃っています。


1. lilypond を実行する

この章では LilyPond を実行するための細かな規定について詳述します。


1.1 通常の使用方法

たいていのユーザは GUI から LilyPond を実行します。まだ実行したことがないのであれば チュートリアル を読んでください。 lilypond ファイルを書くのに代替のエディタを使用するのであれば、そのエディタのドキュメントを読んでください。


1.2 コマンド ラインの使用方法

この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。これにはプログラムに追加オプションを渡す必要があるかもしれません。さらに、いくつかの特別なプログラム (midi2ly など) はコマンド ラインからしか利用できません。

ここで ‘コマンド ライン’ とは、OS の中にあるコマンド ラインを意味します。Windows ユーザは ‘DOS シェル’ という言葉の方が馴染みがあるかもしれません。MaxOS X ユーザは ‘ターミナル’ や ‘コンソール’ という言葉の方が馴染みがあるかもしれません。MaxOS X ユーザは追加のセットアップが必要かもしれません。 MacOS X を参照してください。

OS のコマンド ラインの使用方法についての説明はこのマニュアルが扱う範囲ではありません。コマンド ラインに馴染みがない場合は、その内容を扱っている他のドキュメントをあたってください。


lilypond を呼び出す

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

lilypond [option]… file

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

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

filename.ly’ が複数の \score を含んでいる場合、2 つ目以降の score は ‘filename-1.pdf’ から始まる番号付きのファイルに出力されます。さらに、output-suffix がベース名と番号の間に挿入されます。以下の内容を含んでいる入力ファイルは

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

base-violin.pdf’ と base-cello-1.pdf’ を出力します。


標準シェル コマンド

シェル (例えばコマンド ウィンドウ) がリダイレクトをサポートしているのであれば、以下のコマンドでコンソール出力をファイルにリダイレクトすると役に立つかもしれません。

あなたの使用しているシェルがこれらのオプションをサポートしているかどうか、あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。これらはシェル コマンドであり、lilypond とは無関係です。


Lilypond の基本的なコマンド ライン オプション

以下のオプションがサポートされます:

-d, --define-default=var=val

LilyPond の高度なコマンド ライン オプション を参照してください。

-e, --evaluate=expr

.ly’ ファイルを解析する前に Scheme expr を評価します。複数の -e オプションが与えられた場合、それらは順番に評価されます。

Scheme 表記は guile-user モジュールの中で評価されます。そのため、expr の中で定義を使いたいのならば、コマンド ラインで以下を使用して、

lilypond -e '(define-public a 42)'

.ly ファイルの先頭に以下を含めます:

#(use-modules (guile-user))

Note: Windows ユーザはシングル クォートではなく、ダブル クォートを使う必要があります。

-f, --format=format

フォーマットを指定します。format の選択肢は ps, pdf, それに png です。

例: lilypond -fpng filename.ly

-h, --help

使用方法の要約を表示します。

-H, --header=FIELD

ヘッダ フィールドをファイル ‘BASENAME.FIELD’ に吐き出します。

-i, --init=file

init ファイルとして file をセットします (デフォルト: ‘init.ly’)。

-I, --include=directory

directory を入力ファイルのサーチ パスに追加します。

複数の -I オプションを与えることができます。検索は最初に指定されたディレクトリから開始され、入力ファイルが見つからない場合は次に指定されたディレクトリを検索します。

-j, --jail=user,group,jail,dir

lilypond を chroot jail 環境で実行します。(訳者: chroot jail 環境とはセキュリティのためにカレント プロセスに対してルート ディレクトリの位置を変更すること。)

--jail’ オプションは、Web サーバ経由で LilyPond 譜刻を提供する時や LilyPond が外部ソースから送られてきたコマンドを実行する時に、--dsafe よりも自由度の高い代替手段を提供します。

--jail オプションはコンパイル プロセスの開始直前に lilypond のルート ディレクトリを jail に変更します。それから、ユーザとグループを usergroup に変更して、カレント ディレクトリを dir に変更します。これにより、jail (牢獄) から抜け出せないことを (少なくとも理論上は) 保証します。--jail を指定した lilypond の実行は root (ユーザ名) として行う必要があります。通常、これは sudo を用いた安全な方法で行います。

jail のセットアップは比較的複雑な問題です。LilyPond がソースをコンパイルするのに必要とされるものすべてを jail の内部 で見つけられるということを保証しなければならないからです。一般的なセットアップには以下の項目が含まれます:

専用のファイルシステムをセットアップする

noexec, nodev, nosuid などのセーフ オプションでマウントするための専用ファイルシステムを作成すべきです。こうすることで、LilyPond から実行可能形式ファイルを実行したり、デバイスに直接書き込むことは不可能になります。専用のパーティションを作成することを望まないのなら、適当なサイズのファイルを作成し、それを使用してループ デバイス (ループバック デバイス) をマウントしてください。専用ファイルシステムはさらに、LilyPond が許可されたディスク容量以上には書き込めないということを保証します。

専用のユーザをセットアップする

jail 内部で LilyPond を実行する際、低い権限を持つ専用のユーザとグループ (仮に lily/lily とします) で行うべきです。このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、それを dir に渡します。

jail の準備をする

LilyPond は実行中にいくつかのファイルを読み込む必要があります。それらのファイルをすべて jail にコピーしておきます。それらのファイルが本当のルート ファイル システムで存在しているパスと同じパスにコピーします。LilyPond インストールの内容すべて (例えば、‘/usr/share/lilypond’) をコピーすべきです。

問題が発生した場合、その原因を突き止める最も簡単な方法は strace を使って LilyPond を実行することです。これによりどのファイルが見当たらないのかがわかります。

LilyPond を実行する

noexec でマウントされた jail の中では、外部プログラムを実行することは一切できません。そのため、外部プログラムを必要としないバックエンドで LilyPond を実行しなければなりません。すでに述べたように、jail モードでの LilyPond の実行はスーパーユーザ権限で行われならず (もちろん、その権限はすぐに外されます)、たぶん sudo を使います。LilyPond が使用可能な CPU 時間を数秒に制限する (例えば、ulimit -t を使って) というのも良い方法です。さらに、OS がサポートしているのなら、割り当て可能なメモリ容量を制限するというのも良い方法です。chroot jail 環境で LilyPond を実行する も参照してください。

-l, --loglevel=LEVEL

コンソール出力の饒舌さを LEVEL にセットします。取り得る値は以下の通りです:

NONE

何も出力しません。エラー メッセージさえも出力しません。

ERROR

エラー メッセージだけを出力します。警告や進捗メッセージは出力しません。

WARN

警告とエラー メッセージを出力し、進捗メッセージは出力しません。

BASIC_PROGRESS

基本的な進捗メッセージ (成功メッセージ)、警告、それにエラー メッセージを出力します。

PROGRESS

しべての進捗メッセージ、警告とエラー メッセージを出力します。

INFO (デフォルト)

進捗メッセージ、警告、エラーそれに追加の実行情報を出力します。

DEBUG

饒舌なデバッグ出力を含む、出力可能なメッセージをすべて出力します。

-o, --output=FILE or FOLDER

デフォルトの出力ファイルとして FILE をセットします。セットした名前のフォルダが存在する場合、そのフォルダに出力されます。適切な接尾辞が追加されます (つまり、pdf ならば拡張子 .pdf が追加されます)。

--ps

PostScript を生成します。

--png

各ページの図を PNG フォーマットで生成します。これは内部で --ps を使用します。画像の DPI 解像度は以下のようにセットします:

-dresolution=110
--pdf

PDF を生成します。これは内部で --ps を使用します。

-v, --version

バージョン情報を表示します。

-V, --verbose

冗長表示モードにします: 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。

-w, --warranty

GNU LilyPond の保証責任を表示します。(GNU LilyPond には保証責任はありません!)


LilyPond の高度なコマンド ライン オプション

-d[option-name]=[value],--define-default=[option-name]=[value]

これは内部 Scheme 関数に value をセットします。

-dbackend=svg

value が提供されない場合、デフォルト値が使われます。例えば、option-name に接頭辞 no- を付けると、そのオプションは ‘off’ なります

-dpoint-and-click=#f

-dno-point-and-click

と同じです。

以下にサポートされるオプションをデフォルト値とともに示します:

シンボル説明/オプション
anti-alias-factor1(与えられた因数を用いて) 高解像度で描画して、その結果をスケール ダウンすることにより、PNG 画像の輪郭がギザギザになることを防ぎます。
aux-files#tEPS バックエンドの中に .tex, .texi, .count ファイルを作成します。
backendpsバックエンドを選択します。Postscript ファイル (デフォルト) はTTF, Type1, それに OTF フォントを内包します。フォントのサブセットは作成されません。‘東洋’ の文字セットを用いるとファイルが非常に大きくなる可能性があります。
epsEncapsulated PostScript。これはフォントを持たないページ (段) 毎の ‘EPS’ ファイルと、フォントを内包するすべてのページ (段) を 1 つにまとめた ‘EPS’ ファイルを吐き出します。lilypond-book はデフォルトでこのオプションを使用します。
null楽譜を出力しません。-dno-print-pages と同じ効果を持ちます。
svgScalable Vector Graphics。これはページ毎に埋め込みフォントを持たない SVG ファイルを作成します。最適な描画を得るために、Century Schoolbook フォントをインストールすることを推奨します。このフォントは LilyPond のインストールに含まれています。UNIX では、このフォントを LilyPond ディレクトリ (通常は、 ‘/usr/share/lilypond/VERSION/fonts/otf/’) から ‘~/.fonts/’ にコピーするだけです。この SVG 出力は任意の SVG エディタやユーザ エージェントと互換性があります。SVG バックエンドの中で woff フォント ファイルを使うためのオプション svg-woff (この表の下にあります) もあります。
scm内部的な Scheme ベースの描画コマンドを吐き出します。
check-internal-types#fCheck every property assignment for types.
clip-systems#fGenerate cut-out snippets of a score.
datadirPrefix for data files (read-only).
debug-gc#fDump memory debugging statistics.
debug-gc-assert-parsed-dead#fFor memory debugging: Ensure that all references to parsed objects are dead. This is an internal option, and is switched on automatically for `-ddebug-gc'.
debug-lexer#fDebug the flex lexer.
debug-page-breaking-scoring#fDump scores for many different page breaking configurations.
debug-parser#fDebug the bison parser.
debug-property-callbacks#fDebug cyclic callback chains.
debug-skylines#fDebug skylines.
delete-intermediate-files#tコンパイルの途中で作成される使用しない中間ファイル .ps を削除します。
dump-cpu-profile#fCPU 時間情報を吐き出します (システムに依存します)。
dump-profile#f各ファイルのメモリと CPU 時間情報を吐き出します。
dump-signatures#fDump output signatures of each system. Used for regression testing.
eps-box-padding#f出力される EPS の左端に与えられた数の余白を追加します (単位は mm です)。
gs-load-fonts#fGhostscript 経由でフォントを読み込みます。
gs-load-lily-fonts#fGhostscript 経由でフォントだけを読み込みます。
gui#f出力を表示せずに処理を行い、すべての出力をログ ファイルにリダイレクトします。

Windows ユーザへの注意: lilypond.exe がデフォルトですべての進捗情報をコマンド ウィンドウに出力するのに対して、lilypond-windows.exe は進捗情報を出力しません。‘-dgui’ オプションを用いることで、出力をログ ファイルにリダイレクトさせることができます。

help#fこのヘルプを表示します。
include-book-title-preview#tプレビュー画像にブック タイトルを含めます。
include-eps-fonts#tシステム毎の EPS ファイルにフォントを含めます。
include-settings#fグローバル設定のファイルをインクルードします。このファイルは楽譜の処理が開始する前にインクルードされます。
job-count#f与えられた数のジョブで、並行して処理します。
log-file#f [file]2 番目の引数として文字列 FOO が与えられた場合、出力をログ ファイル FOO にリダイレクトします。
max-markup-depth1024マークアップ ツリーの階層の最大値です。それよりも深い階層を持つマーックアップがある場合、そのマークアップは終了していないと見なされて、警告が表示され、null マークアップが返されます。
midi-extension"midi"MIDI 出力ファイルのデフォルトのファイル拡張子を与えられた文字列に設定します。
music-strings-to-paths#fConvert text strings to paths when glyphs belong to a music font.
old-relative#f同時進行する音楽のための \relative モードを和音構文と同じように機能させます。
paper-size\"a4\"デフォルトの紙面サイズを設定します。文字列をエスケープ記号付の 2 重引用符 \" で囲む必要があることに注意してください。
pixmap-formatpng16m画像出力のための GhostScript の出力フォーマットを設定します。
point-and-click#fPDF 出力に ‘ポイント&クリック’ リンクを付け加えます。ポイント&クリック を参照してください。
preview#f通常の出力に加えてプレビュー画像を作成します。

このオプションはすべてのバックエンド – pdf, png, ps, eps, それに svg – でサポートされますが、scm ではサポートされません。このオプションはタイトルと楽譜の最初の段を保持するファイル – myFile.preview.extension という形式のファイル名を持ちます – を出力します。\book ブロックや \bookpart ブロックが使われている場合、\book, \bookpart, それに \score のタイトルが出力に譜刻され、\paper 変数 print-all-headers#t にセットされている場合は各 \score ブロックの最初の段も譜刻されます。

通常の出力を抑制するには、必要に応じて ‘-dprint-pages’ オプションまたは ‘-dno-print-pages’ オプションを使ってください。

print-pages#tすべてのページを生成します。これがデフォルトです。‘-dpreview’ を使う場合は ‘-dno-print-pages’ を組み合わせると有用です。
profile-property-accesses#fget_property() 関数呼び出しの統計を取ります。
protected-scheme-parsing#tパーサでインライン Scheme のエラーが発生しても処理を続けます。#f に設定されている場合、エラー終了して、スタック トレースを表示します。
read-file-list#f [file]処理する入力ファイルのリストを保持するファイルを指定します。
relative-includes#f\include コマンドを処理するとき、インクルードするファイルを(ルート ファイルからではなく) カレント ファイルからの相対位置で検索します。
resolution101生成する PNG 画像の解像度を与えられた値に設定します。単位は dpi です。
safe#f.ly 入力ファイルを信用しません。

Web サーバ経由で LilyPond 譜刻が利用可能な場合、‘--safe’ オプションか ‘--jail’ オプションのどちらかを 指定する必要があります。‘--safe’ オプションはインライン Scheme コードが無茶をする – 例えば、以下のような – ことを防ぎます。

#(system "rm -rf /")
{
  c4^$(ly:gulp-file "/etc/passwd")
}

-dsafe’ オプションはインライン Scheme 表記を特別なセーフ モジュールの中で評価します。これは GUILE ‘safe-r5rs’ モジュールに由来しますが、‘scm/safe-lily.scm’ でリスト アップされている LilyPond API 関数のいくつかも追加されています。

さらに、セーフ モードでは \include は許可されず、TeX 文字列の中でバックスラッシュを使うこともできません。また、セーフ モードでは LilyPond 変数を Scheme にインポートすることもできません。

-dsafe’ はリソースの過使用を検出 しません ので、このオプションを指定してもプログラムをハングさせられる可能性があります – 例えば、サイクリック (巡回) データ構造をバックエンドに埋め込むことによってです。 そのため、LilyPond を一般公開する Web サーバで使用する場合、プロセスのCPU とメモリ使用を制限すべきです。

セーフ モードは多くの有用な LilyPond 楽譜断片がコンパイルすることを妨げます。

--jail’ はさらに安全な代替手段ですが、セットアップにかかる手間も増えます。Lilypond の基本的なコマンド ライン オプション を参照してください。

separate-log-files#f入力ファイル FILE1.ly, FILE2.ly, ... に対するログ データをファイル FILE1.log, FILE2.log, ... に出力します。
show-available-fonts#f使用可能なフォント名をリスト アップします。
strict-infinity-checking#f浮動小数点の例外 InfNaN に遭遇した時、強制終了します。
strip-output-dir#t出力ファイル名を構築する時に入力ファイルのディレクトリを使用しません。
svg-woff#fSVG バックエンドの中で woff フォントを使用します。
trace-memory-frequency#fScheme セルの 1 秒毎の使用数を記録します。結果を FILE.stacksFILE.graph に吐き出します。
trace-scheme-coverage#fScheme ファイルの適用範囲を FILE.cov に記録します。
verbose#f饒舌な出力。つまり、loglevel を DEBUG に設定します。
warning-as-error#fすべての警告と ‘プログラミング エラー’ をエラーに変更します。

環境変数

lilypond は以下の環境変数を認識します:

LILYPOND_DATADIR

これはデフォルトで参照するロケール メッセージとデータ ファイルがあるディレクトリを指定します。このディレクトリは ‘ly/’, ‘ps/’, ‘tex/’ などのサブディレクトリを保持しているべきです。

LANG

これは警告メッセージの言語を選択します。

LILYPOND_LOGLEVEL

デフォルトのログレベル。明示的にログレベルが指定されずに LilyPond が呼び出された場合 (すなわち ‘--loglevel’ コマンド ライン オプションが指定されなかった場合)、この値が使用されます。

LILYPOND_GC_YIELD

メモリ管理を調節する変数 (単位はパーセント) です。大きな値は LilyPond に多くのメモリ使用を許し、小さな値だと CPU 使用時間が長くなります。デフォルト値は 70 です。 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。これはメモリ管理の振る舞いを調整するパーセント値です。高い値にするとプログラムはより多くのメモリを使用し、低い値にするとより多くの CPU 時間を使用します。デフォルト値は 70 です。


chroot jail 環境で LilyPond を実行する

LilyPond を chroot jail 環境で実行させるようサーバをセットアップすることは複雑な作業です。以下にステップをリスト アップします。各ステップの中にある例は Ubuntu GNU/Linux 用であり、sudo の使用が必要となるかもしれません。

32-bit Ubuntu 8.04 用のスクリプト例

#!/bin/sh
## defaults set here

username=lily
home=/home
loopdevice=/dev/loop0
jaildir=/mnt/lilyloop
# the prefix (without the leading slash!)
lilyprefix=usr/local
# the directory where lilypond is installed on the system
lilydir=/$lilyprefix/lilypond/

userhome=$home/$username
loopfile=$userhome/loopfile
adduser $username
dd if=/dev/zero of=$loopfile bs=1k count=200000
mkdir $jaildir
losetup $loopdevice $loopfile
mkfs -t ext3 $loopdevice 200000
mount -t ext3 $loopdevice $jaildir
mkdir $jaildir/lilyhome
chown $username $jaildir/lilyhome
cd $jaildir

mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
chmod a+w tmp

cp -r -L $lilydir $lilyprefix
cp -L /bin/sh /bin/rm bin
cp -L /usr/bin/convert /usr/bin/gs usr/bin
cp -L /usr/share/fonts/truetype usr/share/fonts

# Now the library copying magic
for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
  "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
    \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
      's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
        | sed '/.*=>.*/d'; done | sh -s

# The shared files for ghostscript...
      cp -L -r /usr/share/ghostscript usr/share
# The shared files for ImageMagick
      cp -L -r /usr/lib/ImageMagick* usr/lib

### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
### you should be able to run:
### Note that /$lilyprefix/bin/lilypond is a script, which sets the
### LD_LIBRARY_PATH - this is crucial
      /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly

1.3 エラー メッセージ

ファイルのコンパイルの最中にはさまざまなエラー メッセージが表示される可能性があります。

Warning

何か疑わしいことがあります。あなたが何か普通でないことをリクエストしている場合は、そのメッセージを理解して、それを無視することができます。しかしながら、Warning は通常、入力ファイルに何か問題があることを示しています。

Error

何か明らかに問題があります。カレントの処理ステップ (構文解析、構文解釈、フォーマット) は終了され、次のステップは飛ばされます。

Fatal error

何か明らかに問題があり、LilyPond はコンパイルを続けられません。これが起きることは稀です。これが起こるのはたいてい、フォントのインストールに問題があるためです。

Scheme error

Scheme コードの実行中に発生するこのエラーは Scheme インタプリタによって引き起こされます。冗長オプション (‘-V’ または ‘--verbose’) 付きで実行している場合、問題となっている関数呼び出しの呼び出し追跡が表示されます。

Programming error

内部的な矛盾があります。このエラー メッセージはプログラマとデバッガを助けることを意図したものです。通常、それらは無視できます。時々、それらは非常に大きなメッセージとなり、他の出力を見えにくくします。

Aborted (core dumped)

これは、プログラムをクラッシュさせる深刻なプログラミング エラーを示しています。そのようなエラーは決定的なものだと考えられます。あなたがそのようなエラーでつまずいた場合、バグ レポートを送ってください。

警告とエラーを入力ファイルのある部分にリンクさせることが可能な場合、エラー メッセージは以下のような形式になります:

filename:lineno:columnno: message
offending input line

エラーが見つかった場所を示すために問題のある行に改行が挿入されます。例えば:

test.ly:2:19: error: not a duration: 5
  { c'4 e'
           5 g' }

これらの位置は LilyPond が警告やエラーが発生した位置を最善を尽くして推測したものですが、(ごく当たり前のことですが) 警告とエラーは何か予期しないことが起こったときに発生するものです。入力ファイルの示された行にエラーを見つけることができない場合は、示された位置の 1 行か 2 行上をチェックしてみてください。

エラーについての更なる情報が 一般的なエラー で提供されています。


1.4 一般的なエラー

以下で説明するエラーがしばしば発生しますが、その原因は明白でなかったり、見つけにくかったりします。目を通しておくと、それらのエラーに対処しやすくなります。


楽譜がページからはみ出る

楽譜がページの右マージンを越えてはみ出る、あるいは過度に密集するのは、ほぼ間違いなく音符の演奏時間に誤りがあり、小節の最後の音符が小節線を越えてしまうためです。ある小節の最後の音符が自動的に挿入される小節線の所で終わらなくても無効ではありません。なぜなら、その音符は次の小節に持ち越されるためです。しかしながら、そのような持ち越しが発生する小節が長く続くと、楽譜は密集して表示されたり、ページからはみ出たりします。ページからはみ出るのは、自動改行を挿入できるのは正しく終了する小節 (その小節のすべての音符が小節の中で終了しています) の後ろだけだからです。

Note: 誤った演奏時間は改行を抑制し、結果として楽譜が過度に密集したり、c ページからはみ出たりする可能性が生じます。

小節チェックを使用していれば、誤った演奏時間を簡単に見つけることができます。 小節と小節番号のチェック を参照してください。

あなたがそのような音符が持ち越される小節を続けることを意図しているのであれば、改行させたい場所に不可視の小節線を挿入する必要があります。詳細は 小節線 を参照してください。


余計な譜が表示される

コンテキストが \new\context で明示的に作成されていない場合、既存のコンテキストには適用できないコマンドに遭遇した時点で暗黙的に作成されます。単純な楽譜では、コンテキストの自動作成は有用であり、LilyPond マニュアルのほとんどの例はこの手法を用いています。しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を発生させてしまいます。例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを意図していますが、結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。

\override Staff.NoteHead.color = #red
\new Staff { a }

[image of music]

これは、(符頭色の) オーバライドが処理される時に Staff コンテキストが存在していないため、Staff コンテキストが暗黙的に作成され、そのコンテキストにオーバライドが適用されるからです。その後に \new Staff コマンドによりもう 1 つ別の Staff コンテキストが作成され、そこに音符が配置されます。すべての符頭を赤にする正しいコードは以下のようになります:

\new Staff {
  \override Staff.NoteHead.color = #red
  a
}

[image of music]

次の例では、\repeat コマンドの中に \relative コマンドが置かれているため、譜が 2 つ生じています。\repeat コマンドが 2 つの \relative ブロックを生成し、それぞれが暗黙的に Staff ブロックと Voice を作成するため、2 番目の譜は右にずれています。

\repeat unfold 2 {
  \relative c' { c4 d e f }
}

[image of music]

明示的に Voice をインスタンス化することで、この問題は修正されます:

\new Voice {
  \repeat unfold 2 {
    \relative c' { c4 d e f }
  }
}

[image of music]


エラー メッセージ Unbound variable %

このエラー メッセージは、Scheme 形式ではなく LilyPond 形式のコメントを含む Scheme ルーチンが呼び出されるたびに、コンソール出力またはログ ファイルの最後に表示されます。

LilyPond 形式のコメントはパーセント記号 (%) で始まり、Scheme ルーチンの中で使うことはできません。Scheme 形式のコメントはセミコロン (;) で始まります。


エラー メッセージ FT_Get_Glyph_Name

入力ファイルが非 ASCII キャラクタを保持していて、UTF-8 エンコードで保存されていない場合、このエラー メッセージがコンソール出力やログ ファイルに表示されます。詳細は、 Text encoding を参照してください。


警告 – Warning staff affinities should only decrease

この警告は、譜刻された出力の中に譜が無い場合に表示されます。例えば、リード譜に ChordName コンテキストと Lyrics コンテキストしか無い場合です。この警告は、入力の始めに以下を挿入することで譜として振舞うコンテキストを作ることで回避できます:

\override VerticalAxisGroup.staff-affinity = ##f

詳細は システム内部の可変な垂直方向のスペース の “譜ではない行のスペース” を参照してください。


2. convert-ly を使ってファイルを更新する

LilyPond の入力構文は、さまざまな方法で単純化または改善するために、定期的に変更されます。その副作用として、LilyPond のインタプリタはしばしば古い入力ファイルと互換性を持たなくなります。これを救済するために、プログラム convert-ly を用いることで、たいていの LilyPond のバージョン間での構文変更を処理することができます。


2.1 何故構文は変更されるのか?

LilyPond の入力構文はしばしば変更されます。LilyPond 自体が改良されるため、構文 (入力言語) もそれに合わせて変更されます。変更の目的は、入力ファイルを読みやすく、書きやすくするためであったり、LilyPond に新しい機能を持たせるためであったりします。

例えば、\paper\layout のプロパティ名は first-second-third という形式で記述することになっています。しかしながら、バージョン 2.11.60 で printallheaders プロパティがこの規則に従っていないことが判明しました。放置すべきでしょうか? (新しいユーザはつじつまの合わない入力形式で混乱するでしょう。) それとも、変更すべきでしょうか? (既存の楽譜を持つユーザには煩わしいことです。) このケースでは、プロパティ名を print-all-headers に変更することを決断しました。幸運なことに、この変更は convert-ly ツールで自動的に変換することができます。

不幸なことに、convert-ly はすべての変更を処理できるわけではありません。例えば、バージョン 2.4 以前の LilyPond では、アクセント文字と非英語文字を LaTeX を用いて入力していました – Christmas のフランス語は No\"el のように入力されていました。しかしながら、バージョン 2.6 以降の LilyPond では、特殊文字 ë を UTF-8 文字として直接 LilyPond ファイルに入力することになりました。convert-ly はすべての LaTeX の特殊文字を UTF-8 文字に変換することはできません。手動で古い LilyPond 入力ファイルを更新する必要があります。


2.2 convert-ly を呼び出す

convert-ly は古いバージョン番号を検出するために入力ファイルの version ステートメントを使用します。たいていの場合、あなたの入力ファイルを更新するには、そのファイルを保持しているディレクトリで以下を実行することで十分です:

convert-ly -e myfile.ly

これにより、myfile.ly は更新され、オリジナル ファイルは myfile.ly~ に保存されます。

Note: convert-ly のバージョンは、それが扱う最新の構文変更に合わせて変更されます。このため、入力ファイルの version 番号はたいていconvert-ly のバージョンよりも低いことになります。

ディレクトリの中にある入力ファイルをすべて変換するには、以下のようにします:

convert-ly -e *.ly

オリジナル ファイルをそのまま残しておき、 更新されたファイルに新しいファイル名を指定するには以下のようにします:

convert-ly myfile.ly > mynewfile.ly

このプログラムは変換元のバージョン番号をリストアップします。 バージョン番号がリストアップされない場合、そのファイルは最新であるということになります。

MacOS X ユーザはこのコマンドをメニュー エントリ (Compile > Update syntax) 下で実行することになるかもしれません。

Windows ユーザはこれらのコマンドを ‘コマンド プロンプト’ ウィンドウから実行する必要があります。コマンド プロンプトは通常、スタート > アクセサリ > コマンド プロンプト で見つかります。


2.3 convert-ly のコマンド ライン オプション

一般に、このプログラムは以下のように呼び出されます:

convert-ly [option]… filename

以下のオプションを与えることができます:

-d, --diff-version-update

\version を最新に更新します。最新バージョンよりも大きい場合は何もしません。

-e, --edit

入力ファイルに直接変換を適用して、それをその場で変更します。

-f, --from=from-patchlevel

変換元のバージョンをセットします。これがセットされていない場合、convert-ly は入力ファイルの中にある version 文字列を基に推測します。例: ‘--from=2.10.25

-h, --help

ヘルプ (使い方) を表示します。

-l loglevel, --loglevel=loglevel

出力の饒舌さを loglevel にセットします。取り得る値は、大文字で、PROGRESS (デフォルト), NONE, WARNING, ERROR, それに DEBUG です。

-n, --no-version

通常、convert-ly\version インジケータを出力に付け加えます。このオプションを指定すると、それを抑制します。

-s, --show-rules

すべての変換を表示して、終了します。

-t, --to=to-patchlevel

変換先のバージョンを明示してセットします。明示されない場合は、デフォルトで最新バージョンにセットします。

convert-ly --to=2.14.1 myfile.ly

texinfo ファイルの中にある LilyPond 断片を更新するには以下を使用してください:

convert-ly --from=... --to=... --no-version *.itely

2 つのバージョン間での LilyPond 構文の変更を調べるには、以下を使用してください:

convert-ly --from=... --to=... -s

2.4 convert-ly の問題点

Windows の ‘コマンド プロンプト’ ウィンドウからスペースを含むファイル名やパスを持つファイルに対してconvert-ly を実行する場合、入力ファイル名全体を 3 つ (!) のダブル クォートで囲む必要があります:

convert-ly """D:/My Scores/Ode.ly""" > "D:/My Scores/new Ode.ly"

convert-ly -e *.ly コマンドが展開時に長くなりすぎて失敗する場合、convert-ly コマンドをループさせてやります。以下の例は UNIX 用であり、カレント ディレクトリの中にあるすべての .ly ファイルを更新します:

for f in *.ly; do convert-ly -e $f; done;

Windows の ‘コマンド プロンプト’ ウィンドウでの上の例に対応するコマンドは以下の通りです:

for %x in (*.ly) do convert-ly -e """%x"""

言語の変更がすべて処理されるわけではありません。指定できる出力オプションは 1 つだけです。自動的に Scheme と更新することと LilyPond の Scheme インタフェイスを更新することはまったく異なります。Scheme コードの調整は手動で行う覚悟でいてください。


2.5 手動変換

理論的には、convert-ly のようなプログラムはすべての構文変更を処理できます。 After all, a computer program interprets the old version and the new version, so another computer program can translate one file into another2.

しかしながら、LilyPond プロジェクトの資源には限りがあり、すべての変換を自動化することはできません。以下は既知の問題のリストです。

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.

3. lilypond-book を実行する

ドキュメントに楽譜の画像を追加したければ、他のタイプの画像を追加するのと同じ方法で追加することができます。ドキュメントとは別に画像を作成して、PostScript 出力や PNG 画像として保存して、LaTeX や HTML ドキュメントに組み込みます。

lilypond-book はこの処理を自動で行うための手段です: このプログラムはドキュメントから楽譜のコード断片を抽出して、それらに対して lilypond を実行して、楽譜のコード断片を画像で置き換えたドキュメントを出力します。楽譜の線の太さやフォント サイズはドキュメントのレイアウトに調和するよう調節されます。

lilypond-booklilypond とは別のプログラムであり、コマンド ラインで実行されます。更なる情報は コマンド ラインの使用方法 を参照してください。Windows や Mac OS X のコマンド ラインを用いて lilypond-book を実行しようとした際に問題があるようなら、 Windows MacOS X を参照してください。

この処理は LaTeX, HTML, Texinfo, または DocBook のドキュメントに適用することができます。


3.1 音楽学のドキュメントの例

テキストのなかには楽譜の例を保持しているものがあります。そのようなテキストには、音楽学の専門書、歌集、このドキュメントのようなマニュアルがあります。そのようなテキストを手作業で作成することができます – PostScript 画像をワープロにインポートするといったようにです。しかしながら、HTML, LaTeX, Texinfo, それに DocBook ドキュメントの場合は、作業量を減らすための自動処理を利用することができます。

lilypond-book と呼ばれるスクリプトは楽譜の断片を抽出して、それらをフォーマットして、得られた楽譜をドキュメントに戻します。LaTeX に対するちょっとした使用例を示します。この例には説明文も含まれていますので、それ以上コメントすることはしません。

入力

\documentclass[a4paper]{article}

\begin{document}

\verb+lilypond-book+ のドキュメントでは自由に楽譜とテキストを
組み合わせることができます。
例えば、以下のように:

\begin{lilypond}
\relative c' {
  c2 e2 \tuplet 3/2 { f8 a b } a2 e4
}
\end{lilypond}

オプションは角括弧の中に配置します。

\begin{lilypond}[fragment,quote,staffsize=26,verbatim]
  c'4 f16
\end{lilypond}

大きな楽譜例は別のファイルに配置して、\verb+\lilypondfile+ で
インポートすることができます。

\lilypondfile[quote,noindent]{screech-and-boink.ly}

(必要があれば、@file{screech-and-boink.ly} をこのファイルと同じディレクトリ
にある任意の @file{.ly} に置き換えてください。)

\end{document}

処理

上記のコードを ‘lilybook.lytex’ というファイル名で保存して、ターミナルで以下を実行します:

lilypond-book --output=out --pdf lilybook.lytex
lilypond-book (GNU LilyPond) 2.19.12 
Reading lilybook.lytex...
..lots of stuff deleted..
Compiling lilybook.tex...
cd out
pdflatex lilybook
..lots of stuff deleted..
xpdf lilybook
(xpdf をお好みの PDF ビューアに置き換えてください)

lilypond-booklatex を実行すると多くの一時ファイルが作成されて、作業ディレクトリを散らかします。散らかされることを防ぐには ‘--output=dir’ オプションを使います。このオプションを指定すると、一時ファイルはサブディレクトリ ‘dir’ に作成されます。

以下に上記の LaTeX 例の結果を示します。3これでこのチュートリアル セクションを終わります。

出力

lilypond-book のドキュメントでは自由に楽譜とテキストを 組み合わせることができます。 例えば、以下のように:

[image of music]

オプションは角括弧の中に配置します。

c'4 f16

[image of music]

大きな楽譜例は別のファイルに配置して、\lilypondfile で インポートすることができます。

[image of music]

デフォルトあるいはカスタムの tagline が必要であれば、 楽譜コード断片全体を \book { } 構造で囲んでください。

\book{
  \header{
    title = "A scale in LilyPond"
  }

  \relative c' {
    c d e f g a b c
  }
}

[image of music]


3.2 楽譜とテキストを統合する

LilyPond をさまざまな出力フォーマットと統合する方法を説明します。


3.2.1 LaTeX

LaTeX は物理学や化学等の出版のデファクト スタンダードです。LaTeX は TeX 植字エンジン上に構築され、最高品位の活版印刷術を提供します。

LaTeX の使い方についての概要は The Not So Short Introduction to LaTeX を参照してください。

lilypond-book は楽譜を LaTeX ファイルに組み込むために以下のコマンドと環境を提供します:

入力ファイルの中では、楽譜は以下のコマンドのいずれかで特定されます:

\begin{lilypond}[options,go,here]
  YOUR LILYPOND CODE
\end{lilypond}

\lilypond[options,go,here]{ YOUR LILYPOND CODE }

\lilypondfile[options,go,here]{filename}

\musicxmlfile[options,go,here]{filename}

さらに、\lilypondversion は lilypond のバージョン番号を表示します。lilypond-book を実行して得られたファイルを更に LaTeX で処理することができます。

例をいくつか挙げます。以下の lilypond 環境

\begin{lilypond}[quote,fragment,staffsize=26]
  c' d' e' f' g'2 g'2
\end{lilypond}

これは以下を作り出します

[image of music]

以下の短いバージョン

\lilypond[quote,fragment,staffsize=11]{<c' e' g'>}

これは以下を作り出します

[image of music]

今のところ \lilypond{} の中で {} を記述することはできないため、このコマンドは fragment オプションを指定した場合にのみ機能します。

楽譜のデフォルトの行幅は、ドキュメント前文 – \begin{document} より前の部分 – のコマンドを検証することにより調節されます。lilypond-book コマンドはそれらのコマンドを LaTeX に送ってテキストの幅を調べます。その後、楽譜断片の行幅はそのテキスト幅に調節されます。試行錯誤なアルゴリズムは容易に失敗する可能性があります – そのような場合、line-width 楽譜断片オプションを使用する必要があります。

以下のマクロがユーザによって定義されている場合、各楽譜断片はそれらのマクロを呼び出します:

Selected Snippets

Sometimes it is useful to display music elements (such as ties and slurs) as if they continued after the end of the fragment. これは譜を改行して、残りの LilyPond 出力を抑制することで実現できます。

LaTeX の中で \betweenLilyPondSystem を定義して、必要な楽譜段数が出力された後の出力を抹消するようにします。\betweenLilyPondSystem が最初に呼び出されるのは 最初の 段が処理された後なので、最初の段だけを残すことは簡単です。

\def\betweenLilyPondSystem#1{\endinput}

\begin{lilypond}[fragment]
  c'1\( e'( c'~ \break c' d) e f\)
\end{lilypond}

必要とする段数が多い場合、\endinput の前で TeX 条件分岐を使う必要があります。以下の例で、‘2’ を必要とする段数に置き換えてください。

\def\betweenLilyPondSystem#1{
    \ifnum#1<2\else\expandafter\endinput\fi
}

(\endinput は入力ファイルの処理をすぐに停止するため、\endinput の呼び出しを \fi 実行後まで遅らせるために \expandafter を記述する必要があります。これにより \if-\fi 節がバランスします。)

\betweenLilyPondSystem の定義は TeX がカレントのグループ (LaTeX 環境等) を終了するか、他の定義で上書きされる (これは大抵の場合、ドキュメントの残りの部分に対する定義です) まで効果を持つということを覚えておいてください。定義をリセットするには、LaTeX に以下を記述します:

\let\betweenLilyPondSystem\undefined

これを簡単にするには、以下の TeX マクロを定義して、

\def\onlyFirstNSystems#1{
    \def\betweenLilyPondSystem##1{%
      \ifnum##1<#1\else\expandafter\endinput\fi}
}

各楽譜断片の前に必要な段数を指定します。

\onlyFirstNSystems{3}
\begin{lilypond}...\end{lilypond}
\onlyFirstNSystems{1}
\begin{lilypond}...\end{lilypond}

参照

LaTeX ドキュメント専用の lilypond-book コマンド オプションがあり、他にも知っておくべき細かなことがあります。lilypond-book を呼び出す を参照してください。


3.2.2 Texinfo

Texinfo は GNU プロジェクトのドキュメントのデフォルト フォーマットです。Texinfo ドキュメントの例の 1 つはこのマニュアルです。このマニュアルの HTML, PDF, それに Info 形式は Texinfo ドキュメントから生成されています。

lilypond-book は楽譜を Texinfo ファイルに組み込むために以下のコマンドと環境を提供します:

入力ファイルの中では、楽譜は以下のコマンドのいずれかで特定されます:

@lilypond[options,go,here]
  YOUR LILYPOND CODE
@end lilypond

@lilypond[options,go,here]{ YOUR LILYPOND CODE }

@lilypondfile[options,go,here]{filename}

@musicxmlfile[options,go,here]{filename}

さらに、@lilypondversion は lilypond のバージョン番号を表示します。

lilypond-book を実行して得られる Texinfo ファイル (拡張子は ‘.texi’ です) は HTML, Info, それに表示出力用の @image タグを保持しています。lilypond-book は表示出力に対しては EPS と PDF 形式の楽譜を生成して、HTML と Info 出力に対しては PNG 形式の楽譜を生成します。

2 つの簡単な例を挙げます。以下の lilypond 環境

@lilypond[fragment]
c' d' e' f' g'2 g'
@end lilypond

これは以下を作り出します

[image of music]

以下の短いバージョン

@lilypond[fragment,staffsize=11]{<c' e' g'>}

これは以下を作り出します

[image of music]

LaTeX とは対照的に、@lilypond{...} はインライン画像を生成しません。生成される画像は常に 1 つの段落を構成します。


3.2.3 HTML

lilypond-book は楽譜を HTML ファイルに組み込むために以下のコマンドと環境を提供します:

入力ファイルの中では、楽譜は以下のコマンドのいずれかで特定されます:

<lilypond options go here>
  YOUR LILYPOND CODE
</lilypond>

<lilypond options go here: YOUR LILYPOND CODE />

<lilypondfile options go here>filename</lilypondfile>

<musicxmlfile options go here>filename</musicxmlfile>

記述例を挙げます:

<lilypond fragment relative=2>
\key c \minor c4 es g2
</lilypond>

上記のコードから lilypond-book は楽譜断片に対する適切な画像タグを持つ HTML ファイルを作り出します:

[image of music]

インライン画像を得るには、<lilypond ... /> を使います。以下のように、コロン : でオプションと楽譜コードを区切ります:

Some music in <lilypond relative=2: a b c/> a line of text.

HTML ファイルとは別に記述した lilypond ファイルを組み込むには以下のようにします:

<lilypondfile option1 option2 ...>filename</lilypondfile>

<musicxmlfile><lilypondfile> と同じ構文を使い、LilyPond ファイルではなく MusicXML ファイルを参照します。

lilypond タグや lilypondfile タグで使用するオプションのリストは、楽譜断片オプション を参照してください。

さらに、<lilypondversion/> は lilypond のバージョン番号を表示します。


3.2.4 DocBook

LilyPond 断片を組み込む場合、DocBook ドキュメントとの適合を保つべきです。そうすることで、DocBook のエディタや検証機能等を使うことができます。そのため、カスタム タグは使わず、標準 DocBook 要素に基づく約束ごとだけを使います。

Common conventions

楽譜断片をインラインあるいはインラインではなく挿入するために、mediaobject 要素と inlinemediaobject 要素を使います。楽譜断片フォーマット オプションは常に最も内側の要素の role プロパティの中に配置します (次のセクションを参照してください)。タグは DocBook エディタがコンテンツをきれいにフォーマットすることを可能にします。lilypond-book で処理する DocBook ファイルの拡張子は ‘.lyxml’ にするべきです。

LilyPond ファイルを組み込む

これが最も簡単な方法です。組み込むファイルの拡張子は ‘.ly’ にして、それを以下に示す構造で標準の imageobject として挿入する必要があります:

<mediaobject>
  <imageobject>
    <imagedata fileref="music1.ly" role="printfilename" />
  </imageobject>
</mediaobject>

必要に応じて、最も外側の要素に mediaobject または inlinemediaobject を使うことができるということに注意してください。

LilyPond コードを組み込む

programlisting を用いることで、LilyPond コードを組み込むことができます。以下の構造を用いて、programlisting の言語には lilypond をセットします:

<inlinemediaobject>
  <textobject>
    <programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
\context Staff \with {
  \remove "Time_signature_engraver"
  \remove "Clef_engraver"}
  { c4( fis) }
    </programlisting>
  </textobject>
</inlinemediaobject>

最も外側の要素は mediaobject または inlinemediaobject であり、その中に programlisting を保持する textobject がありことが見て取れます。

DocBook ドキュメントを処理する

.lyxml’ ファイルに対して lilypond-book を実行すると、拡張子が ‘.xml’ の有効な DocBook ドキュメントが作成され、それを更に処理にかけることがでいます。dblatex を使うと、このドキュメントから自動的に PDF ファイルを作成することがでいます。公式 DocBook スタイルシートを用いることで HTML (HTML ヘルプ、JavaHelp 等) を生成することが可能ですが、カスタマイズが必要かもしれません。


3.3 楽譜断片オプション

以下では、‘LilyPond コマンド’ は、これまでのセクションで説明した楽譜断片を作り出すために lilypond-book によって処理される任意のコマンドを意味します。シンプルにするために、LaTeX 構文の LilyPond コマンドだけを示します。

オプション文字列は左から右の順で解析されるということに注意してください。あるオプションを複数指定した場合、最後のオプションが有効となります。

LilyPond コマンドで以下のオプションを使うことができます:

staffsize=ht

譜サイズを ht にセットします。単位はポイントです。

ragged-right

デフォルトの間隔を用いるため、行の右端が揃いません。つまり、LilyPond コード断片に ragged-right = ##t を追加します。明示的に noragged-right を指定しない限り、1 行の楽譜断片はデフォルトでは常に ragged-right で譜刻されます。

noragged-right

楽譜断片が 1 行の場合に、譜の長さを行幅まで広げます。つまり、LilyPond コード断片に ragged-right = ##f を追加します。

line-width
line-width=size\unit

行幅を size にセットします。unit は単位です。unit は以下の文字列のどれかです: cm, mm, in, あるいは pt。このオプションは LilyPond 出力 (つまり、楽譜断片の譜の幅に) に影響を与えますが、テキスト レイアウトには影響を与えません。

引数無しで使用した場合、行幅はデフォルト値にセットされます (試行錯誤的なアルゴリズムで算出される値です)。

line-width オプションが指定されなかった場合、lilypond-bookragged-right オプションを使用しない lilypond 環境のデフォルトを推測しようと試みます。

papersize=string

string は ‘scm/paper.scm’ で定義されている紙面サイズ – つまり、a5, quarto, 11x17 等 – です。

scm/paper.scm’ で定義されていない値は無視され、警告が発せられ、楽譜断片はデフォルトの a4 サイズで譜刻されます。

notime

拍子記号と小節線を譜刻しません。

fragment

lilypond-book が常用コードを追加するので、\layout, \score 等を入力する必要がなく、単に以下のように入力できます:

c'4
nofragment

楽譜断片の LilyPond コードに補完コードを追加しません。これがデフォルトなので、通常、nofragment は不要です。

indent=size\unit

楽譜の最初の段のインデントを size にセットします。unit は単位です。unit は以下の文字列のどれかです: cm, mm, in, あるいは pt。このオプションは LilyPond に影響を与えますが、テキスト レイアウトには影響を与えません。

noindent

楽譜の最初の段のインデントを 0 にセットします。このオプションは LilyPond に影響を与えますが、テキスト レイアウトには影響を与えません。これがデフォルトなので、通常、noindent は不要です。

quote

楽譜の両端に 0.4in のインデントを挿入して、引用ブロックで囲みます。値 ‘0.4in’ は exampleindent オプションで制御することができます。

exampleindent

quote オプションが楽譜断片に挿入するインデントの量をセットします。

relative
relative=n

相対オクターブ モードを使用します。デフォルトでは、音符はミドル C との相対関係で指定します。オプションで指定する整数の引数は開始音符のオクターブを指定します – デフォルトの 1 はミドル C です。relative オプションは fragment オプションがセットされている場合にのみ機能するため、relative オプションがセットされるとソースの中の (no)fragment オプション有無にかかわらず fragment が自動的、暗黙的にセットされます。

LilyPond もそれ自体のドキュメントを作り出すのに lilypond-book を使います。LilyPond のドキュメントを作るために、さらに細かな楽譜断片オプションが用意されています。

verbatim

LilyPond コマンドの引数をそのまま出力ファイルにコピーして、ブロックで囲み、その後に intertext オプションで与えられた任意のテキストが続きます (intertext オプションはまだ実装されていません)。それから実際の楽譜が表示されます。段落の一部となっている \lilypond{} でこのオプションを指定しても機能しません。

lilypondfile コマンドで verbatim を使用した場合、ソース ファイルの一部だけをそのままコピーして囲むことができます。ソース ファイルが ‘begin verbatim’ (引用符を除く) という文字列を含むコメントを保持している場合、最後の ‘begin verbatim’ より後のソースが引用されます。同様に、‘end verbatim’ を含むコメントがあれば、ソースの引用は最初の ‘end verbatim’ の前で終了します。以下のソース ファイル例で、楽譜コードは相対モードで解釈されますが、ソースの引用に relative ブロックは表示されません。つまり、

\relative c' { % begin verbatim
  c4 e2 g4
  f2 e % end verbatim
}

上記のソースは以下のように引用されます。

  c4 e2 g4
  f2 e

ソースの引用の中にあるコメントと変数名を翻訳したけれども、ソース自体の中にあるコメントと変数名は翻訳したくない場合、環境変数 LYDOC_LOCALEDIR をディレクトリ パスにセットします – セットしたディレクトリはドメインに lilypond-doc を指定した‘.mo’ メッセージ カタログのツリーを保持する必要があります。

addversion

(Texinfo 出力専用です) verbatim 出力の先頭に \version @w{"@version{}"} という行を追加します。

texidoc

(Texinfo 出力専用です) 入力ファイル ‘foo.ly’ に対して ‘--header=texidoc’ オプションを指定して lilypond を呼び出した場合、入力ファイルの \headertexidoc フィールドがあればファイル ‘foo.texidoc’ が作成されます。texidoc オプションは lilypond-book にそのようなファイルをインクルードさせ、その内容を楽譜断片の直前 (ただし、quote オプションによって生成される example 環境の外側) にドキュメントとして追加させます。

ファイル ‘foo.ly’ は以下を保持していて、

\header {
  texidoc = "This file demonstrates a single note."
}
{ c'4 }

Texinfo ドキュメント ‘test.texinfo’ に以下の記述があると仮定すると、

@lilypondfile[texidoc]{foo.ly}

以下のコマンドで期待した結果を得られます。

lilypond-book --pdf --process="lilypond \
  -dbackend=eps --header=texidoc" test.texinfo

たいていの LilyPond テスト ドキュメント (配布ソースの ‘input’ ディレクトリにあります) はこのような形の小さな ‘.ly’ ファイルです。

ローカライズするために Texinfo ドキュメントが @documentlanguage LANG 保持していて、‘foo.ly’ のヘッダが texidocLANG フィールドを保持している場合、‘--header=texidocLANG’ を付けて lilypond を呼び出すと、‘foo.texidoc’ の代わりに ‘foo.texidocLANG’ がインクルードされます。

doctitle

(Texinfo 出力専用です) このオプションは texidoc オプションと同じような働きをします: \headerdoctitle フィールドを持つ入力ファイル ‘foo.ly’ に対して ‘--header=doctitle’ オプションを指定して lilypond を呼び出した場合、‘foo.doctitle’ が生成されます。doctitle オプションを使用した場合、‘foo.doctitle’ の内容 – 1 行のテキスト text である必要があります – は Texinfo ドキュメントに @lydoctitle text として挿入されます。@lydoctitle は Texinfo ドキュメントの中で定義されたマクロである必要があります。あとはローカライズされた言語に対する texidoc 処理と同じ説明になります。

nogettext

(Texinfo 出力専用です) 楽譜ソース引用の中にあるコメントと変数名を翻訳しません。

printfilename

\lilypondfile で LilyPond 入力ファイルをインクルードした場合、楽譜断片の直前にインクルードしたファイルの名前を表示します。HTML 出力では、これはリンクになります。ファイルのベース名だけが表示されます – つまり、ファイル パスのディレクトリ部分は取り除かれます。


3.4 lilypond-book を呼び出す

lilypond-book は出力形式に応じて以下の拡張子の 1 つを持つファイルを生成します: ‘.tex’, ‘.texi’, ‘.html’, あるいは ‘.xml’。‘.tex’, ‘.texi’, それに ‘.xml’ のファイルは更なる処理を必要とします。

各出力形式に特有の説明

LaTeX

印刷や公開のために LaTeX ドキュメントを処理する方法は 2 つあります: PDFLaTeX を用いて直接 PDF ファイルを得ることができ、dvips のような PostScript への変換プログラムを用いて DVI 経由で PostScript ファイルを得ることができます。1 つ目の方法は簡単で、お勧めです4。どのような方法を採るにせよ、Ghostscript パッケージに含まれる ps2pdfpdf2ps のようなツールを用いて PostScript と PDF 間の変換は容易に行うことができます。

PDFLaTeX を用いて PDF ファイルを作り出すには、以下のようにします:

lilypond-book --pdf yourfile.lytex
pdflatex yourfile.tex

LaTeX/dvips/ps2pdf 経由で PDF ファイルを作り出すには、以下のようにします:

lilypond-book yourfile.lytex
latex yourfile.tex
dvips -Ppdf yourfile.dvi
ps2pdf yourfile.ps

このプロセスで作成される ‘.dvi’ ファイルは符頭を保持していません。それで通常です – 以下の手順に従うと、‘.ps’ ファイルや ‘.pdf’ ファイルには符頭が含まれます。

dvips を実行するとフォントに関する警告が発せられます: それらは無害で無視できます。latex を 2 列モードで実行するのであれば、忘れずに dvips のオプションに ‘-t landscape’ を付け加えてください。

既知の問題と警告

\pageBreak コマンドは \begin{lilypond} … \end{lilypond} 環境の中では機能しません。

多くの \paper ブロック変数も \begin{lilypond} … \end{lilypond} 環境の中では機能しません。ドキュメント前文の中で \betweenLilyPondSystem を持つ \newcommand を使ってください。

\newcommand{\betweenLilyPondSystem}[1]{\vspace{36mm}\linebreak}

Texinfo

(任意の出力形式の) Texinfo ドキュメントを作り出すには、Texinfo の通常の手順を踏みます。つまり、作り出そうとしている出力形式に応じて texi2pdftexi2dvi のどちらかを呼び出します。 詳細は Texinfo のドキュメントを参照してください。

コマンド ライン オプション

lilypond-book は以下のコマンド ライン オプションを受け付けます:

-f format
--format=format

処理するドキュメントのタイプを指定します: html, latex, texi (デフォルト), あるいは docbook です。このオプションが無い場合、lilypond-book は形式を自動的に検出しようとします – ファイル拡張子 を参照してください。今のところ、texitexi-html と同じです。

-F filter
--filter=filter

楽譜ソース断片を filter に通します。lilypond-book は ‘--filter’ と ‘--process’ を一度に実行することはしません。例を挙げます:

lilypond-book --filter='convert-ly --from=2.0.0 -' my-book.tely
-h
--help

短いヘルプ メッセージを表示します。

-I dir
--include=dir

インクルード パスに dir を追加します。lilypond-book はインクルード パスの中でコンパイル済みの楽譜断片を見つけると、それらを出力ディレクトリに書き出しません。そのため、lilypond-book を呼び出してから更に makeinfolatex 等のコマンドを同じ ‘-I dir’ オプションを付けて呼び出す必要がある場合があります。

-l loglevel
--loglevel=loglevel

出力の饒舌さを loglevel にセットします。取り得る値は NONE, ERROR, WARNING, PROGRESS (デフォルト), それに DEBUG です。このオプションを使わなかった場合、環境変数 LILYPOND_BOOK_LOGLEVEL がセットされ、その値が loglevel として使われます。

-o dir
--output=dir

生成されるファイルをディレクトリ dir に保存します。lilypond-book を実行すると LilyPond が処理するための多くの小さなファイルが生成されます。そのようなゴミがソース ディレクトリに混入することを防ぐには、‘--output’ コマンド ライン オプションを使用して出力ディレクトリを変更して、latexmakeinfo を実行する前にそのディレクトリに移動します。

lilypond-book --output=out yourfile.lytex
cd out
...
--skip-lily-check

lilypond 出力が見つからなくても処理を終了しません。画像を持たない LilyPond Info ドキュメントを作成するために使います。

--skip-png-check

EPS ファイルを作成するための PNG 画像が見つからなくても処理を終了しません。画像を持たない LilyPond Info ドキュメントを作成するために使います。

--lily-output-dir=dir

lily-XXX ファイルをディレクトリ dir に書き出し、‘--output’ ディレクトリにリンクさせます。このオプションは別々のディレクトリの中にあり、多くの楽譜断片を共有するドキュメントをビルドする時間を節約するために使います。

--lily-loglevel=loglevel

呼び出された lilypond の出力の饒舌さを loglevel にセットします。取り得る値は NONE, ERROR, WARNING, BASIC_PROGRESS, PROGRESS, INFO (デフォルト), それに DEBUG です。このオプションを使わなかった場合、環境変数 LILYPOND_LOGLEVEL がセットされ、その値が loglevel として使われます。

--info-images-dir=dir

Texinfo 出力をフォーマットして、Info が dir の中にある楽譜画像を探すようにします。

--latex-program=prog

latex の代わりに実行可能な prog を実行します。これは、例えばドキュメントを xelatex で処理する場合に有用です。

--left-padding=amount

EPS ボックスのパディングを指定します。amount の単位はミリメートルで、デフォルト値は 3.0 です。このオプションは楽譜が右マージンに食い込む場合に使います。

The width of a tightly clipped system can vary, due to notation elements that stick into the left margin, such as bar numbers and instrument names. This option will shorten each line and move each line to the right by the same amount.

-P command
--process=command

LilyPond コード断片を command を用いて処理します。デフォルトのコマンドは lilypond です。lilypond-book は ‘--filter’ と ‘--process’ を一度に実行することはしません。

--pdf

PDFLaTeX で PDF ファイルを作成します。

--redirect-lilypond-output

デフォルトでは、出力はターミナルに表示されます。このオプションは全ての出力をソース ファイルと同じディレクトリにあるログ ファイルにリダイレクトします。

--use-source-file-names

楽譜断片出力ファイルにソース ファイルと同じベース名を付けます。このオプションは lilypondfile でインクルードされた楽譜断片に対してのみ、更に ‘--output-dir’ オプションと ‘--lily-output-dir’ オプションで指定されたディレクトリが異なる場合にのみ機能します。

-V
--verbose

出力を饒舌にします。これは --loglevel=DEBUG と等価です。

-v
--version

バージョン情報を表示します。

既知の問題と警告

Texinfo コマンド @pagesizes は解釈されません。同様に、ドキュメント前文以降にあるマージンと行幅を変更する LaTeX コマンドも無視されます。

LilyPond ブロックの最初の \score だけが処理されます。


3.5 ファイル拡張子

入力ファイルに対して任意のファイル拡張子を使うことができます。しかしながら、ある形式のファイルに対して推奨する拡張子を使わなかった場合、手動で出力形式を指定する必要があるかもしれません – 詳細は lilypond-book を呼び出す を参照してください。推奨する拡張子を使えば、lilypond-book はその拡張子に基づいて自動的に出力形式を選択します。

拡張子

出力形式

.html

HTML

.htmly

HTML

.itely

Texinfo

.latex

LaTeX

.lytex

LaTeX

.lyxml

DocBook

.tely

Texinfo

.tex

LaTeX

.texi

Texinfo

.texinfo

Texinfo

.xml

HTML

入力ファイルの拡張子を lilypond-book が出力ファイルに付ける拡張子と同じで、入力ファイルが lilypond-book の作業ディレクトリに置かれている場合、‘--output’ オプションを使って lilypond-book を実行する必要があります。そうしないと、“Output would overwrite input file” のようなエラー メッセージが表示されて、終了します。


3.6 lilypond-book テンプレート

以下に示すテンプレートは lilypond-book で使います。lilypond-book に馴染みが無いのであれば、lilypond-book を実行する を読んで下さい。


3.6.1 LaTeX

LilyPond 断片を LaTex ドキュメントに組み込むことができます。

\documentclass[]{article}

\begin{document}

通常の LaTeX テキスト。

\begin{lilypond}
\relative c'' {
  a4 b c d
}
\end{lilypond}

次の LaTeX テキスト。オプションは角括弧の中に入れます。

\begin{lilypond}[fragment,relative=2,quote,staffsize=26,verbatim]
d4 c b a
\end{lilypond}
\end{document}

3.6.2 Texinfo

LilyPond 断片を Texinfo に組み込むことができます。実際、このマニュアル全体が Texinfo で記述されています。

\input texinfo @node Top
@top

Texinfo テキスト

@lilypond
\relative c' {
  a4 b c d
}
@end lilypond

次の Texinfo テキスト。オプションは角括弧の中に入れます。

@lilypond[verbatim,fragment,ragged-right]
d4 c b a
@end lilypond

@bye

3.6.3 html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- header_tag -->
<HTML>
<body>

<p>

以下のように、lilypond-book 用のドキュメントには自由に楽譜と
テキストを組み合わせることができます。
<lilypond>
\relative c'' {
  a4 b c d
}
</lilypond>
</p>

<p>
次の lilypond コードにはオプションをつけます

<lilypond fragment quote staffsize=26 verbatim>
a4 b c d
</lilypond>
</p>

</body>
</html>



3.6.4 xelatex

\documentclass{article}
\usepackage{ifxetex}
\ifxetex
%xetex specific stuff
\usepackage{xunicode,fontspec,xltxtra}
\setmainfont[Numbers=OldStyle]{Times New Roman}
\setsansfont{Arial}
\else
%This can be empty if you are not going to use pdftex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{mathptmx}%Times
\usepackage{helvet}%Helvetica
\fi
%Here you can insert all packages that pdftex also understands
\usepackage[ngerman,finnish,english]{babel}
\usepackage{graphicx}

\begin{document}
\title{A short document with LilyPond and xelatex}
\maketitle

Normal \textbf{font} commands inside the \emph{text} work,
because they \textsf{are supported by \LaTeX{} and XeteX.}
If you want to use specific commands like \verb+\XeTeX+, you
should include them again in a \verb+\ifxetex+ environment.
You can use this to print the \ifxetex \XeTeX{} command \else
XeTeX command \fi which is not known to normal \LaTeX .

In normal text you can easily use LilyPond commands, like this:

\begin{lilypond}
{a2 b c'8 c' c' c'}
\end{lilypond}

\noindent
and so on.

The fonts of snippets set with LilyPond will have to be set from
inside
of the snippet.  For this you should read the AU on how to use
lilypond-book.

\selectlanguage{ngerman}
Auch Umlaute funktionieren ohne die \LaTeX -Befehle, wie auch alle
anderen
seltsamen Zeichen: __ ______, wenn sie von der Schriftart
unterst__tzt werden.
\end{document}

3.7 目次を共有する

この機能はすでに OrchestralLily パッケージで用意されています:

http://repo.or.cz/w/orchestrallily.git

より自由度の高いテキスト処理をするために、lilypond から目次をエクスポートして、LaTeX に読み込ませる方法を好むユーザもいるかもしれません。

LilyPond から目次をエクスポートする

以下のコードは、複数の楽章を 1 つのファイルに出力するものと仮定しています。

 
#(define (oly:create-toc-file layout pages)
  (let* ((label-table (ly:output-def-lookup layout 'label-page-table)))
    (if (not (null? label-table))
      (let* ((format-line (lambda (toc-item)
             (let* ((label (car toc-item))
                    (text  (caddr toc-item))
                    (label-page (and (list? label-table)
                                     (assoc label label-table)))
                    (page (and label-page (cdr label-page))))
               (format #f "~a, section, 1, {~a}, ~a" page text label))))
             (formatted-toc-items (map format-line (toc-items)))
             (whole-string (string-join formatted-toc-items ",\n"))
             (output-name (ly:parser-output-name parser))
             (outfilename (format "~a.toc" output-name))
             (outfile (open-output-file outfilename)))
        (if (output-port? outfile)
            (display whole-string outfile)
            (ly:warning (_ "Unable to open output file ~a for the TOC information") outfilename))
        (close-output-port outfile)))))

\paper {
  #(define (page-post-process layout pages) (oly:create-toc-file layout pages))
}

LaTeX に目次をインポートする

LaTeX ファイルのヘッダ中に以下を記述します:

 
\usepackage{pdfpages}
\includescore{nameofthescore}

ここで、\includescore は以下のように定義されています:

 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \includescore{PossibleExtension}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Read in the TOC entries for a PDF file from the corresponding .toc file.
% This requires some heave latex tweaking, since reading in things from a file
% and inserting it into the arguments of a macro is not (easily) possible

% Solution by Patrick Fimml on #latex on April 18, 2009:
% \readfile{filename}{\variable}
% reads in the contents of the file into \variable (undefined if file
% doesn't exist)
\newread\readfile@f
\def\readfile@line#1{%
{\catcode`\^^M=10\global\read\readfile@f to \readfile@tmp}%
\edef\do{\noexpand\g@addto@macro{\noexpand#1}{\readfile@tmp}}\do%
\ifeof\readfile@f\else%
\readfile@line{#1}%
\fi%
}
\def\readfile#1#2{%
\openin\readfile@f=#1 %
\ifeof\readfile@f%
\typeout{No TOC file #1 available!}%
\else%
\gdef#2{}%
\readfile@line{#2}%
\fi
\closein\readfile@f%
}%


\newcommand{\includescore}[1]{
\def\oly@fname{\oly@basename\@ifmtarg{#1}{}{_#1}}
\let\oly@addtotoc\undefined
\readfile{\oly@xxxxxxxxx}{\oly@addtotoc}
\ifx\oly@addtotoc\undefined
\includepdf[pages=-]{\oly@fname}
\else
\edef\includeit{\noexpand\includepdf[pages=-,addtotoc={\oly@addtotoc}]
{\oly@fname}}\includeit
\fi
}

3.8 テキストと楽譜を組み合わせる他の方法

lilypond-book を使わずにテキストと楽譜を組み合わせる方法を LilyPond 出力を他のプログラムで使用する で説明しています。


4. 外部プログラム

LilyPond は様々な方法で他のプログラムと連携することができます。


4.1 ポイント&クリック

ポイント&クリックは PDF ドキュメントに音楽要素へのリンクを追加します。


ポイント&クリックを有効にする

ポイント&クリックは PDF ビューアの中で表記をクリックすることで入力の中の表記を見つけ出すことを可能にします。これは楽譜の中でエラーを引き起こす入力を見つけ出すことより容易にします。

この機能がアクティブな場合、LilyPond は PDF ファイルにハイパーリンクを付け加えます。これらのハイパーリンクは Web ブラウザに送られ、Web ブラウザはカーソルを持つテキスト エディタを適切な位置に開きます。

この一連の動作を有効にするには、PDF ビューアが LilyPond で提供される ‘lilypond-invoke-editor’ スクリプトを使ってハイパーリンクを追うように設定変更する必要があります。

UNIX の Xpdf では、‘xpdfrc5 の中に以下の記述が必要です:

以下の記述が ‘xpdfrc’ の中に存在している必要があります。 UNIX において、このファイルは ‘/etc/xpdfrc’ の中または ‘$HOME/.xpdfrc’ として存在します。

urlCommand     "lilypond-invoke-editor %s"

プログラム ‘lilypond-invoke-editor’ は小さな支援プログラムです。これは特別な textedit URI に対してエディタを呼び出し、それ以外に対しては Web ブラウザを呼び出します。このプログラムは環境変数 EDITOR を調べて、以下のパターンに動作します:

emacs

このプログラムは以下を呼び出します

emacsclient --no-wait +line:column file
gvim

このプログラムは以下を呼び出します

gvim --remote +:line:normcolumn file
nedit

このプログラムは以下を呼び出します

  nc -noask +line file'

環境変数 LYEDITOR はこの動作をオーバライドするために使用されます。これにはエディタを起動するためのコマンド ラインを保持し、%(column)s, %(line)s はそれぞれファイル、列、行に置き換えられます。 以下の LYEDITOR 設定は標準の emacsclient 呼び出しと等価です。

emacsclient --no-wait +%(line)s:%(column)s %(file)s

ポイント&クリックのリンクは出力ファイルを肥大化させます。PDF ファイルと PS ファイルのサイズを小さくするには、‘.ly’ ファイルの中に以下を記述してポイント&クリックを OFF にします:

\pointAndClickOff

以下を用いて、ポイント&クリックを明示的に ON にすることができます:

\pointAndClickOn

.ly’ ファイルの中でポイント&クリックを OFF にする代わりにコマンド ライン オプションで OFF にすることができます:

lilypond -dno-point-and-click file.ly

Note: 配布する LilyPond ファイルでは常にポイント&クリックを OFF にして、.pdf ファイルにあなたのコンピュータの Path 情報が含まれないようにすべきです。配布する .pdf ファイルに Path 情報が含まれているとセキュリティ リスクとなります。


選択的なポイント&クリック

インタラクティブなアプリケーションでは、ある特定のポイント&クリック要素だけを含むことが望ましい場合もあります。例えば、誰かがある特定の音符から演奏を開始できるアプリケーションを作りたいと思った場合、音符をクリックした場合にその音符の上にある臨時記号やスラーのポイント&クリックが開いてしまったのでは不便です。

どのイベントをポイント&クリックに含めるか指定することで、これを制御できます:

複数のイベントを含めることができます:


4.2 テキスト エディタ サポート

いくつかのテキスト エディタの LilyPond サポート機能があります。


Emacs モード

Emacs は ‘lilypond-mode’ を持ちます。これはキーワード自動補完、インデント挿入、LilyPond 特有の括弧一致、構文カラーリング、コンパイルへのショートカット、それに Info を用いての LilyPond マニュアル参照といった機能を持ちます。‘lilypond-mode’ があなたのプラットフォームにインストールされていないのであれば、以下を参照してください。

楽譜を記述して、LilyPond を実行するための Emacs モードは ‘elisp’ ディレクトリの中にあるソース アーカイブに保持されています。make install を実行して、これを elispdir にインストールします。ファイル ‘lilypond-init.el’ を load-path/sites-start.d/’ に配置するか、‘~/.emacs’ または ‘~/.emacs.el’ に追記する必要があります。

~/.emacs’ に以下の行を追記 (あるいは修正) して、ソース パス (例えば ‘~/site-lisp/) を load-path に追加した方が良いかもしれません。

(setq load-path (append (list (expand-file-name "~/site-lisp")) load-path))

Vim モード

Vim のために LilyPond 用のファイルタイプ プラグイン、インデント モード、それに構文ハイライト モードが用意されています。これらの機能をすべて有効にするには、‘$HOME/.vimrc’ が以下の 3 行を順序に従って保持するよう追記 (あるいは修正) します:

filetype off
set runtimepath+=/usr/local/share/lilypond/current/vim/
filetype on

LilyPond が ‘/usr/local’ にインストールされていない場合はパスを適切に変更してください。このトピックは その他の情報源 で議論されています。


その他のエディタ

他にも LilyPond をサポートするエディタ (テキスト ベースとグラフィカル ベースの両方) がありますが、それらの特殊な設定ファイルは LilyPond では配布されません。更なる情報はそれらのエディタのドキュメントを参照してください。LilyPond をサポートするエディタは より簡単な編集手段 でリストアップされています。


4.3 他のフォーマットから変換する

楽譜の記述を他のフォーマットからインポートするもできます。この章では、配布プログラムに含まれるインポート ツールについて説明します。 LilyPond 入力を作り出すツールは他にもあります。例えば GUI シーケンスと XML コンバータです。詳細は website を参照してください。

上で述べたツールは lilypond とは別のプログラムであり、コマンド ラインで実行します。詳細は コマンド ラインの使用方法 を参照してください。あなたが MacOS 10.3 や 10.4 を使っていて、これらのスクリプト (例えば convert-ly) を実行する際に問題が発生した場合は、 MacOS X を参照してください。

既知の問題と警告

残念なことに我々にはこれらのプログラムを維持していくだけの余力はありません。“これからの課題” になっていると考えてください。パッチは適用されていますが、バグ レポートはほとんど解決されていません。


4.3.1 midi2ly を呼び出す

midi2ly は Type 1 MIDI ファイルを LilyPond ソース ファイルに変換します。

MIDI (Music Instrument Digital Interface) は電子楽器の標準です: これはケーブル、シリアル プロトコル、それにファイル フォーマットを指定します。MIDI ファイル フォーマットは音楽を他のプログラムにエクスポートするためのデファクトスタンダードなフォーマットです。そのため、MIDI ファイルを扱う機能を持つことは、独自フォーマットを MIDI に変換できるプログラムのファイルをインポートする際に有用です。

midi2ly はトラックを Staff コンテキストに変換し、チャネルを Voice コンテキストに変換します。ピッチには相対モードが使用され、演奏時間は必要がある場合にだけ記述されます。

デジタル キーボードを使って MIDI ファイルを録音し、それを ‘.ly’ ファイルに変換することが可能です。しかしながら、人間の演奏者のリズムは LilyPond コンバータにかけられる MIDI を作り出せるほど正確ではありません。量子化オプション (‘-s’ と ‘-d’ オプション) を指定して midi2ly を呼び出すと、リズムの誤りを訂正しようとしますが、十分機能するとは言えません。このため、人間の演奏で生成された MIDI ファイルを midi2ly で変換することはお勧めできません。

midi2ly は以下のようにコマンド ラインから呼び出します:

midi2ly [option]… midi-file

‘コマンド ライン’ とは、OS のコマンド ラインを意味しているということに注意してください。このことについての更なる情報は 他のフォーマットから変換する を参照してください。

midi2ly には以下のオプションがあります。

-a, --absolute-pitches

絶対ピッチで出力します。

-d, --duration-quant=DUR

音符の演奏時間を DUR で量子化します。

-e, --explicit-durations

すべての音符の演奏時間を出力します。

-h, --help

使用方法の要約を表示します。

-k, --key=acc[:minor]

デフォルトの調をセットします。acc > 0 はシャープの数をセットし、acc < 0 はフラットの数をセットします。短調は :1 で指定します。

-o, --output=file

file に出力します。

-s, --start-quant=DUR

音符の始まりを DUR で量子化します。

-t, --allow-tuplet=DUR*NUM/DEN

連符の演奏時間 DUR*NUM/DEN を許可します。

-v, --verbose

Verbose モード (ログ等が詳細) で実行します。

-V, --version

バージョン番号を表示します。

-w, --warranty

保証と著作権を表示します。

-x, --text-lyrics

すべてのテキストを歌詞として扱います。

既知の問題と警告

アルペジオでの音符のオーバラップは正しく変換されません。最初の音符は読み込まれますが、他の音符は無視されます。すべての音符を同時に開始させ、同じ演奏にして、フレーズ記号かペダル指示記号を追加してください。


4.3.2 musicxml2ly を呼び出す

MusicXML は音楽記譜を表すための XML の派生語です。

musicxml2ly は Part-wise (時間軸優先ではなくパート優先の) MusicXML から、音符、アーティキュレーション、楽譜構造、歌詞等を抽出し、それらを ‘.ly’ ファイルに記述します。

このプログラムはコマンド ラインから以下のように呼び出します:

musicxml2ly [option]… xml-file

‘コマンド ライン’ とは、OS のコマンド ラインを意味しているということに注意してください。このことについての更なる情報は 他のフォーマットから変換する を参照してください。

ファイル名に ‘-’ を指定すると、musicxml2ly はコマンド ラインから入力を受け付けます。

musicxml2ly には以下のオプションがあります。

-a, --absolute

絶対ピッチで出力します。

-h, --help

使用方法の要約を表示します。

-l, --language=LANG

ピッチ名に LANG を使用します。例えば、ピッチ名にドイツ語を使用するには 'deutsch' を指定します。

--loglevel=loglevel

出力の饒舌さを loglevel にセットします。取り得る値は NONE, ERROR, WARNING, PROGRESS (デフォルト), それに DEBUG です。

--lxml

XML 解析に lxml.etree Python パッケージを使用します。これはより少ないメモリと CPU 時間で実行されます。

-m, --midi

MIDI ブロックを有効にします。

-nd --no-articulation-directions

アーティキュレーションや強弱等の指示 (^, _ あるいは -) を変換しません。

--no-beaming

連桁情報を変換せず、LilyPond の自動連桁機能を使用します。

-o, --output=file

出力ファイル名を file とします。file に ‘-’ を指定すると、出力は stdout に表示されます。指定が無い場合、出力は xml-file.ly’ となります。

-r, --relative

ピッチを相対モードに変換します。(デフォルト)

-v, --verbose

Verbose モード (ログ等が詳細) で実行します。

--version

バージョン情報を表示します。

-z, --compressed

入力ファイルが ZIP で圧縮された MusicXML ファイルであることを示します。


4.3.3 abc2ly を呼び出す

Note: このプログラムはサポートされていません。LilyPond 将来のバージョンからは削除される可能性があります。

ABC は ASCII ベースの非常にシンプルなフォーマットです。このファイル形式について ABC のサイトで説明されています:

http://www.walshaw.plus.com/abc/learn.html.

abc2ly は ABC から LilyPond に変換を行います。以下のように呼び出します:

abc2ly [option]… abc-file

abc2ly には以下のオプションがあります。

-b, --beams=None

ABC の連桁情報を保持します。

-h, --help

このオプション一覧を表示します。

-o, --output=file

出力ファイル名を file とします。

-s, --strict

be strict about success

--version

バージョン情報を表示します。

LilyPond コードを ABC ソース ファイルに付け加えるための簡単な機能があります。以下のように記述した場合:

%%LY voices \set autoBeaming = ##f

キーワード ‘voices’ の後に続くテキストが LilyPond 出力ファイルのカレントのボイスに挿入されます。

同様に、

%%LY slyrics more words

これは、キーワード ‘slyrics’ の後に続くテキストを歌詞のカレント行に挿入します。

既知の問題と警告

ABC の標準はあくまでも ‘標準’ でしかありません。機能拡張 (例えば、多声音楽) のために、異なる書式があります。

1 つのファイルに複数の旋律を持つものは変換できません。

ABC は行の先頭で単語と音符との同期をとりますが、abc2ly は同期をとりません。

abc2ly は ABC の連桁を無視します。


4.3.4 etf2ly を呼び出す

Note: このプログラムはサポートされていません。LilyPond 将来のバージョンからは削除される可能性があります。

ETF (Enigma Transport Format) is a format used by Coda Music Technology's Finale product. etf2ly will convert part of an ETF file to a ready-to-use LilyPond file.

It is invoked from the command-line as follows.

etf2ly [option]… etf-file

Note that by ‘command-line’, we mean the command line of the operating system. See 他のフォーマットから変換する, for more information about this.

The following options are supported by etf2ly:

-h, --help

this help

-o, --output=FILE

set output filename to FILE

--version

version information

既知の問題と警告

The list of articulation scripts is incomplete. Empty measures confuse etf2ly. Sequences of grace notes are ended improperly.


4.3.5 その他のフォーマット

LilyPond 自体は他のフォーマットを一切サポートしませんが、外部ツールで LilyPond ファイルを生成することができます。それらのツールは より簡単な編集手段 でリストアップされています。


4.4 LilyPond 出力を他のプログラムで使用する

このセクションでは、lilypond-book を用いた自動手法ではない、テキストと楽譜を統合する手法を示します。


大きな楽譜から多くの引用を行う

大きな楽譜から多くの断片を引用する必要がある場合、システムをクリップする機能を使うことができます。 Extracting fragments of music を参照してください。


LilyPond 出力を OpenOffice.org に挿入する

OOoLilyPond を用いて LilyPond 記譜を OpenOffice.org に付け加えることができます。


LilyPond 出力を他のプログラムに挿入する

LilyPond 出力を他のプログラムに挿入するには、lilypond-book ではなく、lilypond を使用します。それぞれの例を個々に作成してドキュメントに付け加えます。大抵のプログラムに ‘PNG’, ‘EPS’, あるいは ‘PDF’ フォーマットの LilyPond 出力を挿入することができます。

LilyPond 楽譜の周りの空白を減らすには、以下のオプションを使用します: the following options

\paper{
  indent=0\mm
  line-width=120\mm
  oddFooterMarkup=##f
  oddHeaderMarkup=##f
  bookTitleMarkup = ##f
  scoreTitleMarkup = ##f
}

{ c1 }

有用な画像ファイルを作り出すには、以下のようにします:

EPS

lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts myfile.ly

PNG

lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png myfile.ly

透過 PNG

lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts \
  -dpixmap-format=pngalpha --png myfile.ly

4.5 独立した include

共有可能な大きな (そして有用な!) コードを記述している人がいます。これらのコードは独自のやり方で LilyPond を include してい場合があります。include が行われない場合、include されるファイルをダウンロードして手動でそれらを include する必要があります。


4.5.1 MIDI アーティキュレーション

LilyPond は “校閲” のために MIDI 出力を作り出すことができます。しかしながら MIDI に出力されるのは、強弱記号、明示的なテンポ記号、音符と演奏時間だけです。

アーティキュレーション プロジェクトは、楽譜の情報をより多く MIDI に組み込もうとしている試みの 1 つです。音符に ‘アーティキュレーション’ を加えるため、スラーの付いていない音符を縮めます。縮める長さは音符に付いているアーティキュレーション記号に基づいてが決まります: 例えば、スタッカートは音価を半分にし、テヌートは音符を演奏時間いっぱい鳴らします。さらに、このスクリプトはトリルとターンを理解し、モルデントなど他の装飾を理解するよう拡張することができます。

http://www.nicta.com.au/people/chubbp/articulate

既知の問題と警告

この機能は理解できるものにしか効果を持ちません: (音符のプロパティの代わりの) テキスト マークアップは無視されます。


5. LilyPond 入力ファイルの記述に対する提案

今やあなたはもっと大きな LilyPond 入力ファイル -- チュートリアルにあるような小さな例ではなく、楽曲全体 -- を書き始める準備が整っています。しかしながら、どのように書き進めていくべきなのでしょうか?

LilyPond があなたの入力ファイルを理解でき、望みの出力を作り出している限り、あなたの入力ファイルがどのようなものであるかは問題になりません。しかしながら、LilyPond 入力ファイルを書いているときに考慮すべきことが他にもいくつかあります。


5.1 一般的な提案

ここで、あなたが問題を回避したり修正する手助けになる可能性がある提案をいくつか挙げます:


5.2 既存の音楽を譜刻する

既存の楽譜からの音楽を入力している (つまり、既存の楽譜の楽曲を譜刻している) のなら、


5.3 大きなプロジェクト

大きなプロジェクトに取り組んでいるとき、LilyPond 入力ファイルの構造をすっきりさせておくことが不可欠です。


5.4 トラブルシュート

遅かれ早かれ、あなたは LilyPond がコンパイルできないファイルを書くことになります。LilyPond が返すメッセージはエラーを見つけ出す手助けになるかもしれませんが、多くの場合、問題の原因を探し出すために調査を行う必要があります。

この目的のための最も強力なツールは 1 行コメント (% で記述します) とブロック コメント (%{ ... %} で記述します) です。問題がどこにあるかわからない場合、入力ファイルの大きな一部分をコメント アウトすることから始めます。あるセクションをコメント アウトして、そのファイルを再びコンパイルしてみます。コンパイルが通ったのなら、問題は今コメント アウトした部分の中にあります。コンパイルが通らなかった場合は、コンパイルが通るようになるまでコメント アウトしたままにしておきます。

極端な場合、最終的に以下のようになるかもしれません:

\score {
  <<
    % \melody
    % \harmony
    % \bass
  >>
  \layout{}
}

(言い換えると、何の音楽も持たないファイルです)

こうなったとしても、あきらめないでください。少しだけコメントを外して -- 例えば、バス パートを -- コンパイルが通るかどうか試してみます。コンパイルが通らなかった場合は、バスの音楽をすべてコメント アウトします (しかし、\score の中の \bass はコメントを外したままにしておきます)。

bass = \relative c' {
%{
  c4 c c c
  d d d d
%}
}

そして、問題を起こしている行を見つけ出すまで、bass パートから少しずつコメントを外していきます。

もう 1 つの非常に有用なデバッグ テクニックは Tiny examples を構築することです。


5.5 Make と Makefile

LilyPond を実行できるほとんどすべてのプラットフォームが make というソフトウェアをサポートします。このソフトウェアは Makefile という名前の特殊なファイルを読み込みます。ファイル Makefile は、ファイルの依存関係と、あるファイルから別のファイルを作り出すためにオペレーティング システムに渡す必要があるコマンドを定義します。例えば、Makefile は LilyPond を実行して ballad.ly から ballad.pdfballad.midi を作り出す方法を記述します。

自身の便利さのためかソース ファイルにアクセスしてくれる他の人のために、自身のプロジェクト用に Makefile を作成することが良い場合があります。これが当てはまるのは、多くのインクルード ファイルと複数の出力オプション (例えば、フル スコア、パート スコア、指揮譜、ピアノ譜など) を持つ 非常に大きなプロジェクト、あるいは、ビルドするために複雑なコマンドを必要とするプロジェクト (lilypond-book プロジェクトなど) です。Makefile の複雑さと自由度は、必要性と作者のスキルに応じて、さまざまです。プログラム GNU Make は GNU/Linux ディストリビューションと MacOS X にインストールされていて、Windows でも利用可能です。

make の使い方についてのすべての詳細は GNU Make マニュアル を参照してください。これから示すのは make でできることのほんの一例です。

Makefile の中に規則を定義するためのコマンドは、プラットフォームによって異なります。例えば、さまざまな種類がある GNU/Linux と MacOS は bash を使いますが、Windows は cmd を使います。MacOS X では、コマンド ライン インタプリタを使用するためにシステムをコンフィグレーションする必要があるということに注意してください。ここで、Makefile の例をいくつか GNU/Linux/MacOS 用と Windows 用の両方のバージョンで示します。

最初の例は、4 楽章のオーケストラのためのもので、以下のようなディレクトリ構造を持ちます:

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

Scores ディレクトリと Parts ディレクトリの中にある .ly ファイルは音符を Notes ディレクトリの中にある .ily ファイルから取得します:

%%% top of file "symphony-cello.ly"
\include ../symphonyDefs.ily
\include ../Notes/cello.ily

この Makefile はターゲットとして score (フル スコアの楽曲全体)、movements (フル スコアの個々の楽章)、それに parts (演奏者のための個々のパート) を持ちます。さらに、web や email で配布するのに適したソース ファイルの tarball (訳者: 複数のファイルをコマンド tar で 1 つのファイルにまとめたもの) を作成するターゲット archive もあります。ここでは GNU/Linux や MacOS X 用の Makefile を示します。これをプロジェクトのトップ ディレクトリに Makefile という名前で保存する必要があります:

Note: ターゲットやパターン ルールが定義されたとき、そのあとの行はスペースではなく Tab で始まる必要があります。

# 出力ファイル名
piece = symphony
# いくつプロセッサがあるかを決定します
CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
# lilypond を実行するコマンド
LILY_CMD = lilypond -ddelete-intermediate-files \
                    -dno-point-and-click -djob-count=$(CPU_CORES)

# この Makefile で使用される拡張子
.SUFFIXES: .ly .ily .pdf .midi

# 入力ファイルと出力ファイルのサーチは 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

# 楽章の依存関係
$(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

# 4 つすべての楽章のフル スコアを 1 つのファイルとして生成するには
# `make score' とタイプします。
.PHONY: score
score: $(piece).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

# 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/*

Windows プラットフォームには特別な面倒さがあります。Windows 用の GNU Make をダウンロードしてインストールした後、システム環境変数に正しいパスを設定して、DOS シェルが Make プログラムを見つけられるようにする必要があります。これを行うには、"マイ コンピュータ" を右クリックして、プロパティ を選択し、それから 詳細設定 を選択します。それから 環境変数 をクリックして、システム環境変数 パネルの中にある Path をハイライトしてから 編集 をクリックして、GNU Make の実行ファイルへのパスを追加します。そのパスは以下のようになります (訳者: GNU Make のインストールのされ方によって異なります):

C:\Program Files\GnuWin32\bin

Linux/MacOS X とは異なるシェル コマンドを扱い、いくつかのデフォルト システム ディレクトリの中に存在するファイル空間を扱うために、Makefile 自体を変更する必要があります。Windows は tar コマンドを持たないため、archive ターゲットは除去されます。また、Windows が持つ MIDI ファイルのデフォルト拡張子は異なります。

## 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

次の Makefile は、LaTeX で処理する lilypond-book ドキュメント用です。このドキュメントは目次を持ちます。目次を作成するには、リンクを更新するために latex コマンドを 2 回実行する必要があります。.pdf 出力ファイルは out ディレクトリに保存され、HTML 出力ファイルは htmlout ディレクトリに保存されます。

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/*

TODO: make this thing work on Windows

この Makefile は Windows では機能しません。Windows ユーザの代替手段として、ビルド コマンドを保持する簡単なバッチ ファイルを作成する方法があります。これは Makefile のように依存関係を保持できませんが、少なくともビルド処理を単一のコマンドに縮小します。以下のコードを build.bat あるいは build.cmd として保存してください。このバッチ ファイルは DOS プロンプトから実行することができ、単にそのアイコンをダブル クリックすることでも実行することができます。

lilypond-book --output=out --pdf myproject.lytex
cd out
pdflatex myproject
makeindex myproject
pdflatex myproject
cd ..
copy out\myproject.pdf MyProject.pdf

参照

アプリケーションの使用方法: コマンド ラインの使用方法, lilypond-book


A. GNU Free Documentation License

Version 1.3, 3 November 2008

 
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
http://fsf.org/

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
  1. PREAMBLE

    The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

    This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

    We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

  2. APPLICABILITY AND DEFINITIONS

    This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.

    A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

    A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

    The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

    The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

    A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''.

    Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

    The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

    The ``publisher'' means any person or entity that distributes copies of the Document to the public.

    A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition.

    The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

  3. VERBATIM COPYING

    You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

    You may also lend copies, under the same conditions stated above, and you may publicly display copies.

  4. COPYING IN QUANTITY

    If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

    If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

    If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

    It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

  5. MODIFICATIONS

    You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

    1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
    2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
    3. State on the Title page the name of the publisher of the Modified Version, as the publisher.
    4. Preserve all the copyright notices of the Document.
    5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
    6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
    7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
    8. Include an unaltered copy of this License.
    9. Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
    10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
    11. For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
    12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
    13. Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version.
    14. Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section.
    15. Preserve any Warranty Disclaimers.

    If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

    You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

    You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

    The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

  6. COMBINING DOCUMENTS

    You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

    The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

    In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.''

  7. COLLECTIONS OF DOCUMENTS

    You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

    You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

  8. AGGREGATION WITH INDEPENDENT WORKS

    A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.

    If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

  9. TRANSLATION

    Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.

    If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

  10. TERMINATION

    You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.

    However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

    Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

    Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.

  11. FUTURE REVISIONS OF THIS LICENSE

    The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

    Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document.

  12. RELICENSING

    ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site.

    ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.

    ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document.

    An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.

    The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

 
  Copyright (C)  year  your name.
  Permission is granted to copy, distribute and/or modify this document
  under the terms of the GNU Free Documentation License, Version 1.3
  or any later version published by the Free Software Foundation;
  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
  Texts.  A copy of the license is included in the section entitled ``GNU
  Free Documentation License''.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with…Texts.'' line with this:

 
    with the Invariant Sections being list their titles, with
    the Front-Cover Texts being list, and with the Back-Cover Texts
    being list.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.


B. LilyPond インデックス

行き先:   \                      
A   C   D   E   F   H   I   L   M   O   P   S   T   U   V   W  
インデックス エントリ セクション

\
\header in LaTeX documents (LaTeX ドキュメントの中にある \header)3.2.1 LaTeX

A
ABC4.3.3 abc2ly を呼び出す

C
call trace (トレースを呼び出す)1.3 エラー メッセージ
chroot jail, running inside (chroot jail 内部で実行する)Lilypond の基本的なコマンド ライン オプション
Coda Technology4.3.4 etf2ly を呼び出す
coloring, syntax (カラーリング構文)4.2 テキスト エディタ サポート
command line options for lilypond (lilypond のためのコマンド ライン オプション)Lilypond の基本的なコマンド ライン オプション
convert-ly2. convert-ly を使ってファイルを更新する
convert-ly2.1 何故構文は変更されるのか?

D
directory, redirect output (出力をディレクトリにリダイレクトする)Lilypond の基本的なコマンド ライン オプション
docbook3. lilypond-book を実行する
DocBook, adding music (DocBook に楽譜を追加する)3. lilypond-book を実行する
documents, adding music (ドキュメントに楽譜を追加する)3. lilypond-book を実行する
dvipsLaTeX

E
editors (エディタ)4.2 テキスト エディタ サポート
emacs4.2 テキスト エディタ サポート
enigma4.3.4 etf2ly を呼び出す
error (エラー)1.3 エラー メッセージ
error messages (エラー メッセージ)1.3 エラー メッセージ
errors, message format (エラー メッセージの形式)1.3 エラー メッセージ
ETF4.3.4 etf2ly を呼び出す
expression evaluation, Scheme (Scheme 表記の評価)Lilypond の基本的なコマンド ライン オプション
External programs, generating LilyPond files (LilyPond ファイルを生成する外部プログラム)4.3.5 その他のフォーマット
Extracting fragments of music大きな楽譜から多くの引用を行う

F
fatal error (致命的なエラー)1.3 エラー メッセージ
file searching (ファイル サーチ)Lilypond の基本的なコマンド ライン オプション
file size, output (出力のファイル サイズ)ポイント&クリックを有効にする
Finale4.3.4 etf2ly を呼び出す
format, output (出力のフォーマット)Lilypond の基本的なコマンド ライン オプション

H
HTML3. lilypond-book を実行する
HTML, adding music (HTML に楽譜を追加する)3. lilypond-book を実行する

I
invoking dvips (dvips を呼び出す)LaTeX
Invoking lilypond (lilypond を呼び出す)Lilypond の基本的なコマンド ライン オプション

L
LANG環境変数
LaTex3. lilypond-book を実行する
LaTeX, adding music (LaTeX に楽譜を追加する)3. lilypond-book を実行する
lilypond-book参照
LILYPOND_DATADIR環境変数
loglevel (ログレベル)Lilypond の基本的なコマンド ライン オプション

M
MacOS X1.2 コマンド ラインの使用方法
MacOS X3. lilypond-book を実行する
MacOS X4.3 他のフォーマットから変換する
MIDI4.3.1 midi2ly を呼び出す
modes, editor (エディタのモード)4.2 テキスト エディタ サポート
musicology (音楽学)3.1 音楽学のドキュメントの例
MusicXML4.3.2 musicxml2ly を呼び出す

O
OpenOffice.orgLilyPond 出力を OpenOffice.org に挿入する
options, command line (コマンド ライン オプション)Lilypond の基本的なコマンド ライン オプション
outline fonts (アウトライン フォント)LaTeX
output, directory (出力ディレクトリ)Lilypond の基本的なコマンド ライン オプション
output, format (出力のフォーマット)Lilypond の基本的なコマンド ライン オプション
output, PDF (Portable Document Format) (PDF 出力)Lilypond の基本的なコマンド ライン オプション
output, PNG (Portable Network Graphics) (PNG 出力)Lilypond の基本的なコマンド ライン オプション
output, PS (Postscript) (PS (PostScript) 出力)Lilypond の基本的なコマンド ライン オプション
output, setting filename (出力のファイル名を設定する)Lilypond の基本的なコマンド ライン オプション
output, verbosity (出力の饒舌さ)Lilypond の基本的なコマンド ライン オプション

P
PDF (Portable Document Format), output (PDF 出力)Lilypond の基本的なコマンド ライン オプション
PNG (Portable Network Graphics), output (PNG 出力)Lilypond の基本的なコマンド ライン オプション
point and click (ポイント&クリック)ポイント&クリックを有効にする
point and click, command line (コマンド ラインでポイント&クリックを指定する)LilyPond の高度なコマンド ライン オプション
Postscript (PS), output (PostScript (PS) 出力)Lilypond の基本的なコマンド ライン オプション
preview image (プレビュー画像)3.2.3 HTML
Programming error (プログラミング エラー)1.3 エラー メッセージ
PS (Postscript), output (PS (PostScript) 出力)Lilypond の基本的なコマンド ライン オプション

S
Scheme error (Scheme エラー)1.3 エラー メッセージ
Scheme, expression evaluation (Scheme 表記の評価)Lilypond の基本的なコマンド ライン オプション
search path (サーチ パス)Lilypond の基本的なコマンド ライン オプション
Skipping corrected music5.2 既存の音楽を譜刻する
Staff4.3.1 midi2ly を呼び出す
switches (切り換え)Lilypond の基本的なコマンド ライン オプション
syntax coloring (カラーリング構文)4.2 テキスト エディタ サポート

T
texi3. lilypond-book を実行する
texinfo3. lilypond-book を実行する
texinfo3. lilypond-book を実行する
Texinfo, adding music (Texinfo に楽譜を追加する)3. lilypond-book を実行する
Text encodingエラー メッセージ FT_Get_Glyph_Name
thumbnail (サムネイル)3.2.3 HTML
Tiny examples5.4 トラブルシュート
titling and lilypond-book (タイトルと lilypond-book)3.2.1 LaTeX
titling in HTML (HTML のタイトル)3.2.3 HTML
trace, Scheme (Scheme トレース)1.3 エラー メッセージ
type1 fonts (type1 フォント)LaTeX

U
Updating a LilyPond file (LilyPond ファイルを更新する)2. convert-ly を使ってファイルを更新する
updating old input files (古い入力ファイルを更新する)2.1 何故構文は変更されるのか?

V
vim4.2 テキスト エディタ サポート
Voice4.3.1 midi2ly を呼び出す

W
warning (警告)1.3 エラー メッセージ
Windows3. lilypond-book を実行する

その他の情報源Vim モード

より簡単な編集手段その他のエディタ
より簡単な編集手段4.3.5 その他のフォーマット

オクターブ チェック5.1 一般的な提案

コマンド ラインの使用方法参照

システム内部の可変な垂直方向のスペース警告 – Warning staff affinities should only decrease

スタイル シート5.1 一般的な提案

チュートリアル1.1 通常の使用方法

マニュアルLilyPond — 使用方法
マニュアルLilyPond — 使用方法

変数と関数を用いて入力の手間を省く5.1 一般的な提案

小節と小節番号のチェック楽譜がページからはみ出る
小節と小節番号のチェック5.1 一般的な提案
小節線楽譜がページからはみ出る

行き先:   \                      
A   C   D   E   F   H   I   L   M   O   P   S   T   U   V   W  

脚注

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

[2] At least, this is possible in any LilyPond file which does not contain scheme. If there is scheme in the file, then the LilyPond file contains a Turing-complete language, and we run into problems with the famous “Halting Problem” in computer science.

[3] このチュートリアルは Texinfo で処理されるため、上記の例とはレイアウトが少し異なります。

[4] PDFLaTeX と LaTeX のどちらもすべての LaTeX ドキュメントをコンパイルできるとは限らないことに注意してください。これが 2 つ目の方法を説明する理由です。

[5] UNIXでは、このファイルは ‘/etc/xpdfrc’ かホーム ディレクトリの中の ‘.xpdfrc’ としてのどちらかです。


目次


このドキュメントについて

This document was generated by gub on 8 月 17, 2014 using texi2html 1.82.

ナビゲーション パネルの中にあるボタンには以下のような意味があります:

ボタン 名前 行き先 1.2.3 からの行き先
[]
[ << ] 大きく戻る この章あるいは前の章の先頭 1
[]
[トップ] トップ ドキュメントの表紙 (先頭)  
[目次] 目次 目次  
[インデックス] インデックス インデックス  
[ ? ] 情報 情報 (ヘルプ)  
[]
[ >> ] 大きく進む 次の章 2
[]
[]
[ < ] 戻る 前のセクション 1.2.2
[]
[ 上へ ] 上のセクション 1.2
[]
[ > ] 進む 次のセクション 1.2.4

この表で、 行き先 は、現在の位置が以下のような構造を持つドキュメントの サブサブセクション 1-2-3 であると仮定しています:


他の言語: English, deutsch, español, français, magyar, italiano
About automatic language selection.

LilyPond — 使用方法 v2.19.12 (開発版).