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

オプション -d は LilyPond の Scheme 関数 ly:set-option のコマンドラインインタフェースです。つまり、ここで示しているすべてのオプションは .ly ファイルの中で設定することが可能です。

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

内部 Scheme シンボル option-namevalue を設定するのと同じです。例えば、コマンドラインオプション

-dbackend=svg

は LilyPond 入力ファイルに

#(ly:set-option 'backend 'svg)

を書くことと同じです。

value が指定されない場合、 #t (真偽値以外を取る場合は、おかしな結果になるかもしれません)が使われます。option-name に接頭辞 no- を付けると、そのオプションは ‘off’ つまり #f が使われます。例えば、

-dpoint-and-click='#f'

-dno-point-and-click

と同じです。

[‘#’ 文字は多くのシェルでコメントの開始を意味することに注意してください。そのため、それを含む式は常にクォートすることをお勧めします。]

次の表に、サポートされているすべてのオプション名と値を示します。Scheme コード内では、オプション値は関数 ly:get-option で読み取ることができます。

anti-alias-factor num

(与えられた因数 num を用いて) 高解像度で描画して、その結果をスケールダウンすることにより、PNG 画像の輪郭がギザギザになることを防ぎます。デフォルト: 1.0

aux-files bool

bool#t ならば、 eps バックエンドオプションを使っているときに .tex, .texi, と .count ファイルを生成します。デフォルト: #t

backend symbol

symbol を LilyPond 出力のバックエンドとして使用します。 選択肢は:

ps

こればデフォルトです。 Postscript ファイルはTTF, Type1, それに OTF フォントを埋め込みます。フォントのサブセットは作成されません。日本語のような ‘東洋’ の文字セットを用いるとファイルが非常に大きくなる可能性があることに注意してください。

PDF 出力には ps バックエンドが使われます。出力された PS データは Ghostscript の ps2pdf で後処理され、デフォルトでフォントのサブセットが作成されます。

eps

lilypond-book コマンドのデフォルトです。これは、1 つのファイルにすべてのページとフォントを埋め込んだものと、ページ毎に分離しフォントを埋め込まない eps ファイルの、両方を吐き出します。

svg

ページ毎の SVG (Scalable Vector Graphics) ファイルが全ページ分作られます。音楽グリフはベクタ画像に変換されますが、文字フォントは SVG ファイルには埋め込まれません。 そのため、テキストや歌詞の最適な描画を得るためには、SVG ビュアーに関連するテキストフォントが必要となります。SVG ビュアーが対応していないことがあるので、‘フォントリスト’ や ‘フォントエイリアス’ を使用しないことをお勧めします。Web Open Font Format (WOFF) ファイルを使うときには、追加の -dsvg-woff スイッチが必要となります。

clip-systems bool

bool#t なら、楽譜から断片を取り出します。これを使用するには、 \layout ブロックに clip-regions 関数が定義されている必要があります。音楽の断片を抽出するを参照してください。 -dno-print-pages と一緒に用いられた場合、断片は全く出力されません。デフォルト: #f

crop bool

bool#t なら、すべての楽譜とヘッダをマージンなしの ‘単一ページ’ 出力に合わせます。デフォルト: #f

datadir

データファイル パスの接頭辞です。読み取り専用で、設定しても効果がありません。

debug-skylines bool

bool#t なら、スカイライン (訳注: 行ごとのオブジェクトの最高位置と最低位置を線で表示するもの) を表示します。デフォルト: #f

delete-intermediate-files bool

bool#t なら、コンパイルの途中で作成される使用しない中間ファイル .ps を削除します。デフォルト: #t

embed-source-code bool

bool#t なら、出力される PDF ドキュメントに LilyPond ソースファイルを埋め込みます。デフォルト: #f

eps-box-padding num

出力される EPS の左端に num mm の余白を追加します。デフォルト: #f (余白追加しないことを意味します)。

font-export-dir string

PostScript ファイルとしてフォントをエクスポートするディレクトリを string に指定します。デフォルト: #f (カレントディレクトリを意味します)。 これは、次に示すように、フォントを埋め込まずに PDF を作成し、後でフォントを Ghostscript で埋め込む場合に便利です。

$ lilypond -dfont-export-dir=fontdir -dgs-never-embed-fonts foo.ly
$ gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
     -sOutputFile=foo.embedded.pdf foo.pdf fontdir/*.font.ps

注: font-ps-resdir とは異なり、このメソッドは Ghostscript 9.26 以降で CID フォントを埋め込むことはできません。

注: font-ps-resdir と同様に、 TrueType フォントを埋め込むと文字化けが発生するため、このオプションは TrueType フォントをスキップします。文字化けしないようにするには、gs-never-embed-fonts を使用します。これは、TrueType フォントをその名前に関係なく埋め込みます。

デフォルト: #f (エクスポートしないことを意味します)。

font-ps-resdir string

(string として) ディレクトリを設定して、後でフォントを埋め込むために使用する PostScript リソース ディレクトリのサブセットをビルドします。これは、次に示すように、フォントを埋め込まずに PDF を作成し、後でフォントを Ghostscript で埋め込む場合に便利です。

$ lilypond -dfont-ps-resdir=resdir -dgs-never-embed-fonts foo.ly
$ gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
     -I resdir -I resdir/Font \
     -sOutputFile=foo.embedded.pdf foo.pdf

注: Ghostscript の -I オプションで指定した場合、特別な意味があるため、 Resource という名前を含むディレクトリは指定しない方がよいでしょう。

注: font-export-dir とは異なり、このメソッドは Ghostscript 9.26 以降で CID フォントを埋め込むことができます。

注: font-export-dir と同様に、 TrueType フォントを埋め込むと文字化けが発生するため、このオプションは TrueType フォントをスキップします。文字化けしないようにするには、gs-never-embed-fonts を使用します。これは、TrueType フォントをその名前に関係なく埋め込みます。

デフォルト: #f (ビルドしないことを意味します)。

gs-load-fonts bool

bool#t なら、Ghostscript 経由でフォントを読み込みます。LilyPond 出力ファイルのフォントはすべて参照のみが含まれるようになり、 Ghostscript による後処理で実際のフォントに解決する必要があります。デフォルト: #f

gs-load-lily-fonts bool

bool#t なら、LilyPond のフォントを Ghostscript 経由で読み込みます。LilyPond 出力ファイルの音楽フォントはすべて参照のみが含まれるようになり、 Ghostscript による後処理で実際のフォントに解決する必要があります。他のすべてのフォントは通常通り出力されます。デフォルト: #f

gs-never-embed-fonts bool

bool#t なら、Ghostscript が TrueType フォントのみを埋め込むようになり、他のフォーマットのフォントは埋め込まれません。デフォルト: #f

help bool

bool#t なら、このヘルプを表示します。デフォルト: #f

include-book-title-preview bool

bool#t なら、プレビュー画像にブック タイトルを含めます。デフォルト: #t

include-eps-fonts bool

bool#t なら、システム毎の EPS ファイルにフォントを含めます。デフォルト: #t

include-settings string

グローバル設定のファイルとして string をインクルードします。このファイルは楽譜の処理が開始する前にインクルードされます。デフォルト: #f (グローバル設定ファイル無しを意味します)。

job-count num

num ジョブで、並列処理します。デフォルト: #f (並列処理無しを意味します)。

log-file string

出力をログファイル string.log にリダイレクトします。デフォルト: #f (ログファイル無しを意味します)。

max-markup-depth num

マークアップ ツリーの階層の最大値を num に設定します。それよりも深い階層を持つマークアップがある場合、そのマークアップは終了していないと見なされて、警告が表示され、null マークアップが返されます。デフォルト: 1024

midi-extension string

MIDI 出力ファイルのデフォルトのファイル拡張子を .string に設定します。デフォルト: "midi"

music-strings-to-paths bool

bool#t なら、記譜フォントを用いるテキストをパスに変換します。デフォルト: #f

paper-size extra-quoted-string

デフォルトの紙面サイズを extra-quoted-string に設定します。文字列をエスケープ記号付の 2 重引用符で囲む必要があることに注意してください。デフォルト: "\"a4\""

pixmap-format symbol

画像出力のための GhostScript の出力フォーマットを symbol に設定します。デフォルト: png16m

point-and-click bool

bool#t なら、PDF と SVG 出力に ‘ポイント&クリック’ リンクを付け加えます。ポイント&クリック を参照してください。デフォルト: #f

preview bool

bool#t なら、通常の出力に加えてプレビュー画像を作成します。デフォルト: #f

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

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

print-pages bool

bool#t なら、すべてのページを生成します。デフォルト: #t

-dpreview-dcrop を使う場合は -dno-print-pages を組み合わせると有用です。

protected-scheme-parsing bool

bool#t なら、パーサでインライン Scheme のエラーが発生しても処理を続けます。#f に設定されている場合、エラー終了して、スタック トレースを表示します。デフォルト: #t

relative-includes bool

bool#t なら、\include コマンドを処理するとき、インクルードするファイルをカレント ファイルからの相対位置で検索します。#f なら、ルート ファイルからからの相対位置で検索します。デフォルト: #f

resolution num

生成する PNG 画像の解像度を num dpi に設定します。デフォルト: 101

safe bool

bool#t なら、.ly 入力ファイルを信用しません。デフォルト: #f

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

% 正しく書くのはあまりにも危険
#(s ystem "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 bool

bool#t なら、入力ファイル file1.ly, file2.ly, … に対するログをファイル file1.log, file2.log, … に出力します。デフォルト: #f

show-available-fonts bool

bool#t なら、使用可能なフォント名をリスト アップします。加えて LilyPond は fontconfig の設定そのものを表示します。デフォルト: #f

strip-output-dir bool

bool#t なら、出力ファイル名を構築する時に入力ファイルのディレクトリを使用しません。デフォルト: #f

strokeadjust bool

bool#t なら、PostScript に線幅補正 (stroke adjustment) を強制します。このオプションは普通、PDF ファイルが PostScript 出力から生成されている場合に意味があります (線幅補正は、低解像度のビットマップ デバイスに対して自動的に有効になります)。このオプションを指定しない場合、PDF ビューアは典型的な解像度のスクリーンにおいて、一貫性の無い符幹の幅を出力しようとします。このオプションは印刷結果の品質には目立って影響せず、PDF のファイル サイズを大きく増加させます。デフォルト: #f

svg-woff bool

このオプションは svg バックエンドで Web Open Format (WOFF) フォントを使うために必要となります。bool#t なら、ページ毎の SVG ファイルが全ページ分作られます。LilyPond 自身の音楽グリフを除き、フォントは埋め込まれません。そのため、テキストや歌詞の最適な描画を得るためには、SVG ビュアーにフォントが必要となります。SVG ビュアーが対応していないことがあるので、‘フォントエイリアス’ や ‘フォントリスト’ を使用しないことをお勧めします。デフォルト: #f

verbose

饒舌レベル。これは読み込み専用のオプションで、設定しても効果はありません。

warning-as-error bool

bool#t なら、すべての警告と ‘プログラミング エラー’ をエラーに変更します。デフォルト: #f


GNU LilyPond – アプリケーション使用方法 v2.25.22 (development-branch).