1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
2 @c This file is part of lilypond-program.tely
4 Translation of GIT committish: 3ab56c82129c4e70a2a23af040be70817feb8b00
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
12 @chapter @command{lilypond-book}: Integrating text and music
15 Wenn Sie in ein Dokument Bilder von Musiknoten einfügen möchten, so können
16 Sie genauso machen, wie Sie andere Bilder einfügen würden: Die Bilder
17 werden getrennt vom Dokument im PostSciprt oder PNG Format erstellt
18 und können dann in @LaTeX{} oder HTML inkludiert werden.
20 @command{lilypond-book} automatisiert diesen Prozess: Dieses
21 Programm extrahiert Musik-Schnipsel aus Ihrem Dokument,
22 ruft @command{lilypond} auf und fügt die resultierenden Bilder
23 in Ihr Dokument ein. Die Länge der Zeilen und die Schriftgroße
24 werden dabei Ihrem Dokument angepasst.
26 @command{lilypond-book} ist ein eigenständiges Programm und wird
27 üblicherweise von der Kommandozeile aufgerufen. Nähere Informationen
28 hierzu finden sich in @ref{Command-line usage}.
30 Dieses Vorgehen kann bei @LaTeX{}, HTML, Texinfo oder DocBook Dokumenten
39 @cindex Dokument, Musik einfügen in
40 @cindex HTML, Musik in
41 @cindex Texinfo, Musik in
42 @cindex DocBook, Musik in
43 @cindex @LaTeX{}, Musik in
47 * An example of a musicological document::
48 * Integrating music and text::
49 * Music fragment options::
50 * Invoking lilypond-book::
51 * Filename extensions::
52 * Alternate methods of mixing text and music::
55 @node An example of a musicological document
56 @section An example of a musicological document
59 @cindex Musikwissenschaft
61 Zahlreiche Texte enthalten Musikbeispiele: musikwissenschaftliche
62 Abhandlungen, Liederbücher oder Handbücher wie dieses. Solche
63 Texte können händisch erzeugt werden, indem einfach die Musikbeispiele
64 als Grafik (PostScript, PNG, GIF, etc.) im Textverarbeitungsprogramm
65 eingefügt werden. Für HTML, @LaTeX{}, Texinfo und DocBook Dokumente
66 existiert jedoch ein Weg, dies automatisiert durchzuführen.
68 Das Programm @code{lilypond-book} extrahiert die Musikfragmente aus
69 dem Dokument, formatiert sie automatisiert in eine Grafik und fügt die
70 resultierenden Notenbeispiele dann wieder in das Dokument ein. Dies soll
71 hier an einem einfachen @LaTeX{}-Beispiel verdeutlicht werden. Das Beispiel
72 selbst enhält schon Erklärungen, sodass wir es hier nicht weiter diskutieren
79 \documentclass[a4paper]{article}
83 Dokumente für \verb+lilypond-book+ können Musik und Text nach Belieben
84 kombinieren. Zum Beispiel:
88 c2 g'2 \times 2/3 { f8 e d } c'2 g4
92 Optionen für \verb+lilypond+ werden dabei in eckige Klammern gesetzt.
94 \begin[fragment,quote,staffsize=26,verbatim]{lilypond}
98 Größere Beispiele können auch in einer eigenständigen Datei gespeichert
99 und dann mit \verb+\lilypondfile+ eingebunden werden.
101 \lilypondfile[quote,noindent]{screech-boink.ly}
103 (Falls nötig kann screech-boink.ly durch eine beliebige andere .ly
104 Datei im selben Verzeichnis wie diese Datei ersetzt werden.)
110 @subheading Processing
112 Speichern Sie den obigen @LaTeX{} Quellcode in eine Datei @file{lilybook.lytex}
113 und führen Sie dann in der Kommandozeile folgende Befehle aus:
115 @c keep space after @version{} so TeX doesn't choke
117 lilypond-book --output=out --pdf lilybook.lytex
118 @emph{lilypond-book (GNU LilyPond) @version{} }
119 @emph{Reading lilybook.lytex...}
120 @emph{..(viele Ausgabezeilen entfernt)..}
121 @emph{Compiling lilybook.tex...}
124 @emph{..(viele Ausgabezeilen entfernt)..}
126 @emph{(Ersetzen Sie @command{xpdf} durch Ihren PDF-Betrachter)}
129 Die Ausführung von @command{lilypond-book} und @command{latex} erzeugt
130 zahlreiche temporäre Dateien, die das Arbeitsverzeichnis unnötig
131 vollstopfen würden. Daher empfiehlt sich die Benutztung der @code{--output=@var{dir}}
132 Option, wodurch die Dateien im Unterverzeichnis @file{dir} erzeugt werden.
134 Das Endresultat des obigen @LaTeX{} Beispiels ist im nächsten Abschnitt
135 zu sehen.@footnote{Da dieses Handbuch mit Texinfo erzeugt wurde,
136 kann sich das Aussehen des Beispiels leicht von dem mit @LaTeX{}
137 erzeugten unterscheiden.}
138 tutorial is processed with Texinfo, so the example gives slightly
139 different results in layout.}
145 Dokumente für @command{lilypond-book} können Musik und Text nach Belieben
146 kombinieren. Zum Beispiel:
150 c2 g'2 \times 2/3 { f8 e d } c'2 g4
154 Optionen für @command{lilypond} werden dabei in eckige Klammern gesetzt.
156 @lilypond[fragment,quote,staffsize=26,verbatim]
160 Größere Beispiele können auch in einer eigenständigen Datei gespeichert
161 und dann mit @code{\lilypondfile} eingebunden werden.
163 @lilypondfile[quote,noindent]{screech-boink.ly}
170 @node Integrating music and text
171 @section Integrating music and text
173 In diesem Abschnitt soll die Integration von LilyPond mit den
174 verschiedenen Dateiformaten detalliert erläutert werden.
188 @LaTeX{} ist der de-facto Standard zur Publikation von wissenschaftlichen Texten
189 in Naturwissenschaft und Technik. Es basiert auf dem Schriftsetzer @TeX{},
190 der die bestmögliche Typographie erzeugt.
192 Siehe die @uref{http://@/www@/.ctan@/.org/@/tex@/-archive/@/info/@/lshort/@/german/,
193 @emph{@LaTeX{} 2@epsilon{}-Kurzbeschreibung}} für eine Einführung in die
194 Benutzung von @LaTeX{}.
196 Musikbeispiele können eingegeben werden als
199 \begin[Optionen,kommen,]@{lilypond@}
200 IHR LILYPOND QUELLCODE
208 \lilypondfile[Optionen,kommen,hier]@{@var{Dateiname}@}
215 \lilypond@{ IHR LILYPOND QUELLCODE @}
218 Der Aufruf von @command{lilypond-book} liefert eine Datei, die dann mit
219 @LaTeX{} weiter verarbeitet werden kann.
221 Dies soll hier an einigen Beispielen gezeigt werden. Die @code{lilypond} Umgebung
224 \begin[quote,fragment,staffsize=26]@{lilypond@}
232 @lilypond[quote,fragment,staffsize=26]
239 \lilypond[quote,fragment,staffsize=11]@{<c' e' g'>@}
245 @lilypond[quote,fragment,staffsize=11]{<c' e' g'>}
248 Innerhalb des @code{\lilypond@{@}} Befehls dürfen keine geschwungenen
249 Klammern @code{@{} oder @code{@}} vorkommen, weshalb dieser Befehl
250 nur mit der @code{fragment} Option Sinn macht.
252 Die Standardzeilenlänge wird bestimmt, indem die Angaben in der Dokumentpräambel,
253 alse dem Teil der @LaTeX{} Datei vor dem @code{\begin@{document@}},
254 analysiert werden. Der @command{lilypond-book} Befehl sendet diese
255 Angaben an @LaTeX{}, um herauszufinden, wie breit der Text tatsächlich
256 ist. Die Breite der Notenzeilen wird dann an diese Textbreite angepasst.
257 Ein derartig heuristischer Algorithmuss kann natürlich auch versagen,
258 wobei man in diesem Fall die Breite auch explizit durch die
259 @code{line-width} Option des @code{\lilypond@{@}} oder @code{\begin@{lilypond@}}
260 Befehls angeben kann.
262 @cindex titling and lilypond-book
263 @cindex \header in @LaTeX{} documents
265 Jedes Musikbeispiele ruft die folgenden Makros auf, wenn sie vom Benutzer
269 @item @code{\preLilyPondExample} -- wird vor der Musik aufgerufen,
271 @item @code{\postLilyPondExample} -- wird nach der Musik aufgerufen,
273 @item @code{\betweenLilyPondSystem[1]} -- wird zwischen den einzelnen
274 Systemen aufgerufen, wenn @code{lilypond-book} das Beispiel in verschiedene
275 PostScript Dateien getrennt hat. Dieser @LaTeX{}-Befehl muss so definiert
276 werden, dass er genau ein Argument erhält, nämlich die Zahl der bereits
277 in @LaTeX{} eingefügten Dateien dieses Beispiels. Als Standard wird einfach
278 ein @code{\linebreak} eingefügt.
284 @cindex Latex, Feta Schriftart
287 Um Zeichen wie Auflösungszeichen, Kreuze, Fermaten etc. aus der Feta-Schriftart
288 von LilyPond in @LaTeX{} einzufügen, muss @code{\input@{titledefs@}} benutzt werden,
289 wodurch dann der Befehl @code{\fetachar} zur Verfügung steht.
292 \documentclass[a4paper]@{article@}
303 Die Namen der Symbole sind in der Datei @file{feta20.tex} definiert. Sie finden
304 den Pfad zu dieser Datei mit dem Befehl
314 Manchmal ist es nötig, Musikelemente wie Halte- oder Bindebögen so darzustellen,
315 als ob sie am Ende des Musikausschnitten noch weitergehen würden. Eine solche
316 Ausgabe kann erreicht werden, indem ein Zeilenumbruch in die Notenzeile
317 eingefügt wird und die Ausgabe der folgenden Notenzeile unterdrückt wird.
319 In @LaTeX{} wird dazu der Befehl @code{\betweenLilyPondSystem} einfach derartig
320 programmiert, dass die Ausgabe der einzelnen Notensysteme abgebrochen wird,
321 sobald die gewünschte Anzahl an Systemen erreicht ist. Da
322 @code{\betweenLilyPondSystem} zum ersten Mal nach dem ersten System aufgerufen
323 wird, ist die Ausgabe nur eines Systems trivial.
326 \def\betweenLilyPondSystem#1@{\endinput@}
328 \begin[fragment]@{lilypond@}
329 c'1\( e'( c'~ \break c' d) e f\)
333 Um eine größere Zahl an System nötig, dann muss dementsprechend eine
334 @TeX{}-Bedingung vor dem @code{\endinput} benutzt werden:
337 \def\betweenLilyPondSystem#1@{
338 \ifnum##1<2\else\endinput\fi
342 Dieses Beispiel bricht nach genau zwei ausgegebenen Notenzeilen ab.
343 Für eine andere Anzahl braucht nur @q{2} durch die entsprechende
344 Anzahl ersetzt werden.
346 Die Definition von @code{\betweenLilyPondSystem} bleibt gültig,
347 bis @TeX{} die aktuelle Umgebung in @LaTeX{} verlässt oder der
348 Befehl durch eine neue Definition überschrieben wird.
349 Dies kann etwa folgendermaßen in der @LaTeX{}-Datei geschehen:
352 \let\betweenLilyPondSystem\undefined
355 Obige Definition von @code{\betweenLilyPondSystem} kann durch die
356 Definition eines @TeX{}-Makros auch verallgemeinert werden,
359 \def\onlyFirstNSystems#1@{
360 \def\betweenLilyPondSystem##1@{\ifnum##1<#1\else\endinput\fi@}
365 wobei diesem Makro @code{\onlyFirstNSystems} einfach die Anzahl der
366 gewünschten Systeme übergeben wird:
369 \onlyFirstNSystems@{3@}
370 \begin@{lilypond@}...\end@{lilypond@}
371 \onlyFirstNSystems@{1@}
372 \begin@{lilypond@}...\end@{lilypond@}
376 @command{lilypond-book} stellt auch zahlreiche Kommandozeilen-Optionen zur
377 Verfügung. Für eine Liste dieser Optionen und andere hilfreiche Details zur
378 Verarbeitung von @LaTeX{}-Kokumenten, siehe @ref{Invoking lilypond-book}.
386 Texinfo ist das Standard-Dokumentationsformat des GNU Projekts. Ein Beispiel
387 für ein Dokument im Texinfo Format ist dieses Handbuch, wobei die HTML-, PDF- und
388 Info-Versionen alle aus demselben Texinfo Dokument erzeugt werden.
390 In der Eingabedatei wir Musik eingegeben als
393 @@lilypond[Optionen,kommen,hier]
394 IHR LILYPOND QUELLCODE
402 @@lilypond[Optionen,kommen,hier]@{ IHR LILYPOND QUELLCODE @}
409 @@lilypondfile[Optionen,kommen,hier]@{@var{Dateiname}@}
412 Wenn @command{lilypond-book} eine derartige Datei verarbeitet,
413 wird eine Texinfo-Datei mit der Erweiterung @file{.texi} erzeugt,
414 die @code{@@image} Befehle für die Ausgabe nach HTML, Info und PDF
415 enthält. @command{lilypond-book} erzeugt die entsprechenden Grafiken
416 der Musikbeispiele im EPS- und PDF-Format für die Ausgabe nach PDF
417 und im PNG-Format für die Ausgabe nach HTML und Info.
419 Hier sollen zwei einfache Beispiele gezeigt werden. Eine @code{lilypond} Umgebung
437 @@lilypond[fragment,staffsize=11]@{<c' e' g'>@}
443 @lilypond[fragment,staffsize=11]{<c' e' g'>}
445 Im Gegensatz zu @LaTeX{} erzeugt @code{@@lilypond@{...@}} allerdings keine Grafik
446 im Fließtext, sondern setzt sie immer in einen eigenen Absatz.
452 Musik wird eingegeben als
455 <lilypond fragment relative=2>
456 \key c \minor c4 es g2
461 @command{lilypond-book} erzeugt dann daraud eine HTML-Datei mit den entsprechenden
462 @code{<image>} Tags für die Musikbeispiele in jeweils einem eigenen Absatz.
465 @lilypond[fragment,relative=2]
466 \key c \minor c4 es g2
469 Für Grafiken im Fließtext kann @code{<lilypond ... />} benutzt werden, wobei
470 die Optionen durch einen Doppelpunkt von der Musik getrennt angegeben werden.
473 Musik <lilypond relative=2: a b c/> in derselben Zeile.
476 Um Dateien mit Musik einzubinden, kann folgendermaßen vorgegangen werden:
479 <lilypondfile @var{option1} @var{option2} ...>@var{filename}</lilypondfile>
488 Bei der Einbindung von Musik im LilyPond-Format in DocBook soll die
489 Konformität unseres DocBook Dokuments erhalten bleiben und damit
490 die Bearbeiten mit DocBook-Editoren sowie die Validierung weiter
491 möglich bleiben. Aus diesem Grund werden in DocBook keine eigenen Tags
492 wie in HTML benutzt, sondern die von den vorhandenen DocBook-Elementen
493 vorgegebenen Konventionen entsprechend benützt.
495 @subheading Common conventions
497 Für die Einbindung von LilyPond Code werden in allen Fällen die
498 @code{mediaobject} und @code{inlinemediaobject} Elemente benutzt,
499 die unsere Beispiele in einem eigenen Absatz oder im Fließtext
500 einfügen. Die Optionen zur Formatierung mit LilyPond werden dabei
501 in der @code{role} Eigenschaft des innersten Elements angegeben,
502 wie im nächsten Abschnitt gezeigt wird. Die DocBook Datei, die
503 dann von @command{lilypond-book} verarbeitet wird, sollte der Klarheit
504 halber die Dateierweiterung @file{.lyxml} (jedenfalls nicht
505 @ref{.xml}) besitzen.
507 @subheading Including a LilyPond file
509 Dies ist der einfachste Fall: Die LilyPond-Datei besitzt die Erweiterung
510 @file{.ly} und wird einfach als @code{imageobject} eingebettet:
515 <imagedata fileref="music1.ly" role="printfilename" />
520 Für das äußerste Element kann je nach Bedarf @code{mediaobject} oder
521 @code{inlinemediaobject} benutzt werden.
523 @subheading Including LilyPond code
525 Die Einbindung von LilyPond-Code direkt in der DocBook-Datei ist
526 durch die Benutzung von @code{programlisting} möglich,
527 wobei die Sprache auf @code{lilypond} gesetzt wird:
532 <programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
533 \context Staff \with @{
534 \remove Time_signature_engraver
535 \remove Clef_engraver@}
542 Das äußerste Element ist also @code{mediaobject} oder
543 @code{inlinemediaobject}, welches ein @code{textobject} mit dem
544 @code{programlisting} enthält.
546 @subheading Processing the DocBook document
548 Der Aufruf von @command{lilypond-book} mit der @file{.lyxml}-Datei
549 erzeugt ein gültiges DocBook-Dokument mit der Erweiterung @file{.xml},
550 welches normal weiterverarbeitet werden kann. Bei Benützung von
551 @uref{http://@/dblatex@/.sourceforge@/.net@/,dblatex} wird daraus
552 automatisch eine PDF-Datei erzeugt. Für die Erzeugung von HTML (HTML
553 Help, JavaHelp, etc.) können doe offiziellen DocBook XSL-Stylesheets
554 benutzt werden. Eventuell müssen dafür allerdings kleinere Anpassungen
558 @node Music fragment options
559 @section Music fragment options
564 @node Invoking lilypond-book
565 @section Invoking @command{lilypond-book}
570 @subheading Format-specific instructions
571 @subsubheading @LaTeX{}
572 @subsubheading Texinfo
573 @subheading Command line options
574 @node Filename extensions
575 @section Filename extensions
580 @node Alternate methods of mixing text and music
581 @section Alternative methods of mixing text and music
587 * Many quotes from a large score::
588 * Inserting LilyPond output into OpenOffice.org::
589 * Inserting LilyPond output into other programs::
592 @node Many quotes from a large score
593 @subsection Many quotes from a large score
598 @node Inserting LilyPond output into OpenOffice.org
599 @subsection Inserting LilyPond output into OpenOffice.org
604 @node Inserting LilyPond output into other programs
605 @subsection Inserting LilyPond output into other programs
611 @c -- SKELETON FILE --