[ << lilypond-book ] | [Anfang][Inhalt][Index] | [ Externe Programme >> ] |
[ < Noten in Text integrieren ] | [ Nach oben : Noten in Text integrieren ] | [ Texinfo > ] |
3.2.1 LaTeX
LaTeX ist der de-facto Standard zur Publikation von wissenschaftlichen Texten in Naturwissenschaft und Technik. Es basiert auf dem Schriftsetzer TeX, der die bestmögliche Typographie erzeugt.
Siehe die LaTeX2e-Kurzbeschreibung für eine Einführung in die Benutzung von LaTeX.
lilypond-book
stellt folgende Befehle und Umgebungen zu Verfügung,
um Noten in LaTeX-Dateien einzufügen:
-
den
\lilypond{...}
-Befehl, womit man direkt kurze LilyPond-Codeabschnitte schreiben kann -
die
\begin{lilypond}...\end{lilypond}
-Umgebung, mit der man längere LilyPond-Codeabschnitt direkt schreiben kann -
den
\lilypondfile{...}
-Befehl um eine LilyPond-Datei einzufügen -
den
\musicxmlfile{...}
-Befehl um eine MusicXML-Datei einzufügen, die dann vonmusicxml2ly
undlilypond
bearbeitet wird.
In der Eingabedatei werden Noten mit beliebigen der folgenden Befehle angegeben:
\begin{lilypond}[Optionen,kommen,hierhin] IHR LILYPOND-QUELLCODE \end{lilypond} \lilypond[Optionen,kommen,hier]{ IHR LILYPOND-QUELLCODE } \lilypondfile[Optionen,kommen,hier]{Dateiname} \musicxmlfile[Optionen,kommen,hier]{Dateiname}
Zusätzlich kann mit \lilypondversion
die benutzte Versionsnummer
von LilyPond angezeigt werden. Der Aufruf von lilypond-book
liefert eine Datei, die dann mit LaTeX weiter verarbeitet werden kann.
Dies soll hier an einigen Beispielen gezeigt werden. Die lilypond
-Umgebung
\begin{lilypond}[quote,fragment,staffsize=26] c' d' e' f' g'2 g'2 \end{lilypond}
erzeugt
Die Kurzversion
\lilypond[quote,fragment,staffsize=11]{<c' e' g'>}
erzeugt
Innerhalb des \lilypond{}
Befehls dürfen keine geschwungenen
Klammern {
oder }
vorkommen, weshalb dieser Befehl
nur mit der fragment
-Option Sinn macht.
Die Standardzeilenlänge wird bestimmt, indem die Angaben in der Dokumentpräambel,
also dem Teil der LaTeX Datei vor dem \begin{document}
,
analysiert werden. Der lilypond-book
-Befehl sendet diese
Angaben an LaTeX, um herauszufinden, wie breit der Text tatsächlich
ist. Die Breite der Notenzeilen wird dann an diese Textbreite angepasst.
Ein derartig heuristischer Algorithmus kann natürlich auch versagen,
wobei man in diesem Fall die Breite auch explizit durch die
line-width
Option des \lilypond{}
oder \begin{lilypond}
Befehls angeben kann.
Jedes Musikbeispiele ruft die folgenden Makros auf, wenn sie vom Benutzer definiert wurden:
-
\preLilyPondExample
– wird vor der Musik aufgerufen, -
\postLilyPondExample
– wird nach der Musik aufgerufen, -
\betweenLilyPondSystem[1]
– wird zwischen den einzelnen Systemen aufgerufen, wennlilypond-book
das Beispiel in verschiedene PostScript Dateien getrennt hat. Dieser LaTeX-Befehl muss so definiert werden, dass er genau ein Argument erhält, nämlich die Zahl der bereits in LaTeX eingefügten Dateien dieses Beispiels. Als Standard wird einfach ein\linebreak
eingefügt.
Ausgewählte Schnipsel
Manchmal ist es nötig, Musikelemente wie Halte- oder Bindebögen so darzustellen, als ob sie am Ende des Musikausschnittes noch weitergehen würden. Eine solche Ausgabe kann erreicht werden, indem ein Zeilenumbruch in die Notenzeile eingefügt wird und die Ausgabe der folgenden Notenzeile unterdrückt wird.
In LaTeX wird dazu der Befehl \betweenLilyPondSystem
einfach derartig
programmiert, dass die Ausgabe der einzelnen Notensysteme abgebrochen wird,
sobald die gewünschte Anzahl an Systemen erreicht ist. Da
\betweenLilyPondSystem
zum ersten Mal nach dem ersten System aufgerufen
wird, ist die Ausgabe nur eines Systems trivial.
\def\betweenLilyPondSystem#1{\endinput} \begin{lilypond}[fragment] c'1\( e'( c'~ \break c' d) e f\) \end{lilypond}
Um eine größere Zahl an System nötig, dann muss dementsprechend eine
TeX-Bedingung vor dem \endinput
benutzt werden:
\def\betweenLilyPondSystem#1{ \ifnum##1<2\else\endinput\fi }
Dieses Beispiel bricht nach genau zwei ausgegebenen Notenzeilen ab. Für eine andere Anzahl braucht nur ‚2‘ durch die entsprechende Anzahl ersetzt werden.
Die Definition von \betweenLilyPondSystem
bleibt gültig,
bis TeX die aktuelle Umgebung in LaTeX verlässt oder der
Befehl durch eine neue Definition überschrieben wird.
Dies kann etwa folgendermaßen in der LaTeX-Datei geschehen:
\let\betweenLilyPondSystem\undefined
Obige Definition von \betweenLilyPondSystem
kann durch die
Definition eines TeX-Makros auch verallgemeinert werden,
\def\onlyFirstNSystems#1{ \def\betweenLilyPondSystem##1{\ifnum##1<#1\else\endinput\fi} }
wobei diesem Makro \onlyFirstNSystems
einfach die Anzahl der
gewünschten Systeme übergeben wird:
\onlyFirstNSystems{3} \begin{lilypond}...\end{lilypond} \onlyFirstNSystems{1} \begin{lilypond}...\end{lilypond}
Siehe auch
lilypond-book
stellt auch zahlreiche Kommandozeilen-Optionen zur
Verfügung. Für eine Liste dieser Optionen und andere hilfreiche Details zur
Verarbeitung von LaTeX-Dokumenten, siehe lilypond-book
aufrufen.
[ << lilypond-book ] | [Anfang][Inhalt][Index] | [ Externe Programme >> ] |
[ < Noten in Text integrieren ] | [ Nach oben : Noten in Text integrieren ] | [ Texinfo > ] |