| [ << lilypond-book ] | [トップ][目次][インデックス] | [ 外部プログラム >> ] |
| [ < 楽譜とテキストを統合する ] | [ 上へ : 楽譜とテキストを統合する ] | [ Texinfo > ] |
3.2.1 LaTeX
LaTeX は物理学や化学等の出版のデファクト スタンダードです。LaTeX は TeX 植字エンジン上に構築され、最高品位の活版印刷術を提供します。
LaTeX の使い方についての概要は The Not So Short Introduction to LaTeX を参照してください。
lilypond-book は楽譜を LaTeX ファイルに組み込むために以下のコマンドと環境を提供します:
-
\lilypond{…}コマンド: ここに直接短い lilypond コードを入力することができます -
\begin{lilypond}…\end{lilypond}環境: ここに長い lilypond コードを入力することができます -
\lilypondfile{…}コマンド: このコマンドで lilypond ファイルを挿入することができます -
\musicxmlfile{…}コマンド: このコマンドで MusicXML ファイルを挿入することができます。挿入されたファイルはmusicxml2lyとlilypondで処理されます
入力ファイルの中では、楽譜は以下のコマンドのいずれかで特定されます:
\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}
これは以下を作り出します
以下の短いバージョン
\lilypond[quote,fragment,staffsize=11]{<c' e' g'>}
これは以下を作り出します
今のところ \lilypond{} の中で { や } を記述することはできないため、このコマンドは fragment オプションを指定した場合にのみ機能します。
楽譜のデフォルトの行幅は、ドキュメント前文
– \begin{document} より前の部分 –
のコマンドを検証することにより調節されます。lilypond-book コマンドはそれらのコマンドを LaTeX に送ってテキストの幅を調べます。その後、楽譜断片の行幅はそのテキスト幅に調節されます。試行錯誤なアルゴリズムは容易に失敗する可能性があります
– そのような場合、line-width 楽譜断片オプションを使用する必要があります。
以下のマクロがユーザによって定義されている場合、各楽譜断片はそれらのマクロを呼び出します:
-
\preLilyPondExampleは楽譜断片の処理が始まる前に呼び出されます。 -
\postLilyPondExampleは楽譜断片の処理が終わった後に呼び出されます。 -
\betweenLilyPondSystem[1]は、lilypond-bookが楽譜断片をいくつかの PostScript ファイルに分けて出力する場合に、ある段と次の段の間で呼び出されます。このマクロはパラメータを 1 つ取るように定義する必要があり、何段数目の処理が終わったらマクロが動作を始めるかを指定する数を渡します。デフォルトでは\linebreakを挿入するだけです。
Selected Snippets
楽譜要素 (タイやスラー等) を断片の後に続くかのように表示することが有用な場合があります。これは譜を改行して、残りの 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 を呼び出す を参照してください。
| [ << lilypond-book ] | [トップ][目次][インデックス] | [ 外部プログラム >> ] |
| [ < 楽譜とテキストを統合する ] | [ 上へ : 楽譜とテキストを統合する ] | [ Texinfo > ] |