Liederbuch-Layout
In diesem Teil der Doku geht es um die Layout-Konfigurationen, die in aller Regel für ein gesamtes Liederbuch gelten sollen, also zum Beispiel die Schriftart der Akkorde, der Lyrics, der Überschriften, Seitenränder, Kategorien und vieles mehr. Generell sind diese Konfigurationen im Ordner lilypond-custom-includes
zu machen.
Einstellungen überschreiben
In der Datei lilypond-custom-includes/base_config.ly
können unter anderem LilyPond-Einstellungen, die in den lilypond-common-includes
definiert wurden, überschrieben werden, zum Beispiel die Einstellungen zu Versetzungszeichen oder Balkensetzungen.
Generelle Layout-Einstellungen
Die allermeisten liederbuchspezifischen Einstellungen, die man vermutlich verändern will, finden sich in der Datei lilypond-common-includes/default_style.ly
. Die dortigen Einstellungen können angepasst werden, indem die entsprechenden Parameter in die Datei lilypond-custom-includes/custom_style_overrides.ly
kopiert werden und die Werte entsprechend verändert werden. Sofern nicht anders angegeben, müssen numerische Werte übergeben werden. Folgende Parameter gibt es:
songFormatAndSize
definiert das Format, zum Beispiela5
oderb6
.songMargin
definiert den Seitenabstand.songInfoFontSize
definiert die Schriftgröße der Songinfo.songInfoLineWidthFraction
definiert die Breite der Songinfo in ProzentsongTitleSize
definiert die Schriftgröße des Titels.songTitleFont
definiert die Schriftart des Titels. Der Name der Schriftart wird als String, also in Anführungszeichen übergeben.songChordFont
definiert die Schriftart der Akkorde. Der Name der Schriftart wird als String, also in Anführungszeichen übergeben.songLyricFont
definiert die Schriftart der Lyrics (Strophen). Der Name der Schriftart wird als String, also in Anführungszeichen übergeben.songChordFontSeries
. Hier kann eingestellt werden, ob die Akkorde normal (#'normal
) oder fett (#'bold
) dargestellt werden sollen.songTextChordAlignment
ist nur für das „alte“ System notwendig, wenn also keine Noten im Spiel sind. Mit#'left
werden die Akkorde dann über den Silben links ausgerichtet, mit#'center
werden sie über der jeweiligen Silbe zentriert.songScoreChordFontSize
definiert die Größe der Akkordzeichen in den Noten.songTextChordFontSize
definiert die Größe der Akkordzeichen in den Strophen. Es empfiehlt sich, beide Variablen gleichzusetzen.songTextChordDistance
definiert den Abstand zwischen den Akkordzeichen in den Strophen zu den zugehörigen Lyrics (nur neues System).songTextLineHeigth
definiert den Abstand zwischen den Lyric-Zeilen. Da die Akkorde sich jeweils an den Lyrics orientieren, werden die bei Anpassung des Werts mit verschoben.songTocColumns
definiert die Anzahl der Spalten, die im Inhaltsverzeichnis genutzt werden sollen.globalSize
definiert die Größe des Notensatzes.lyricSize
definiert die Größe der Lyrics.stanzaFormat
definiert das Format für die Nummerierung der Strophen. Standardformat ist"~a."
.~a
ist hierbei ein Platzhalter für die Strophennummer. Hier kann also definiert werden, ob als Ausgabe beispielsweise1.
,1.:
oder1)
gewünscht ist.romanStanzaFormat
definiert das Format für die römische Nummerierung der Strophen, also der Alternativnummerierung, die zum Beispiel für fremdsprachige Strophen genutzt werden kann. Das Prinzip ist dasselbe wie beimstanzaFormat
.refString
definiert, welche Stanza beim\ref
-Befehl übergeben werden soll.refStringWithNumbers
definiert das Format von nummerierten Refrains nach demselben Schema wie beimstanzaFormat
.repStart
definiert den Befehl\repStart
für das alte System, um typographisch korrekte Wiederholungszeichen zu setzen.repStop
sieherepStart
.
Es empfiehlt sich, dass die Schriftart ebenfalls im Repo gespeichert wird, da nicht auf jedem Computer dieselben Schriftarten installiert sind.
Der Default-Style sieht so aus:
a5"
songFormatAndSize = "
songMargin = 5
songInfoFontSize = 0
songInfoLineWidthFraction = 0.9
songTitleSize = 6Liberation Sans"
songTitleFont = "Liberation Sans"
songChordFont = "Liberation Sans"
songLyricFont = "'bold
songChordFontSeries = #'left
songTextChordAlignment = #
songScoreChordFontSize = 2\songScoreChordFontSize
songTextChordFontSize =
songTextChordDistance = 2.8
songTextLineHeigth = 5.8
songTocColumns = 3
globalSize = 15
lyricSize = 1.6~a."
stanzaFormat = "~@r."
romanStanzaFormat = "Ref.:"
refString = "Ref. ~a:"
refStringWithNumbers = " hübsche Wiederholungszeichen für den Liedtext
%𝄆"
repStart = "𝄇" repStop = "
Anpassung von Kanoneinsätzen
Der Stil, in dem Kanoneinsätze markiert werden, kann in den lilypond-custom-includes/base_config.ly
eingestellt werden (unbedingt unter die general_include
!). So sieht die Standardeinstellung aus:
{
\paper\markup {
cueMarkup = \italic
(make-on-the-fly-markup (lambda (layout props m)
# (interpret-markup layout props
(string-join (map (lambda (n) (format #f "~@r." n)) (chain-assoc-get 'cues props)) ", ")))
(make-null-markup))
}
}
Relevant sind vermutlich die Auszeichnung (italic, bold). Das kann entsprechend angepasst werden. Außerdem das Ziffernformat, also römisch oder arabisch. Das funktioniert mit dem String "~@r."
. Arabische Ziffern könnten mit dem String "~a."
erreicht werden. Alle verfügbaren Formatspezifikationen gibt es in der Scheme-Doku zu finden.
Anpassung der Akkordsymbole
Auch die bestimmte Darstellung, spezieller Akkordsymbole kann in den custom_style_overrides.ly
angepasst werden. Siehe dazu mehr in der LilyPond-Doku.
Kategorien
Mithilfe unserer Skripte ist es möglich, Lieder Kategorien zuzuordnen und sie optional mit Kategoriebildchen zu versehen. Auch ein Kategorienverzeichnist ist möglich (siehe Einführung). So funktioniert es:
Kategorien erstellen
Als erstes solltest du Kategorien in der Datei lilypond-custom-includes/categories.ly
definieren. Die Datei sieht so aus:
(define category-names '(
# (see "See und\nPiraten")
;(categoriekey "Titel der Kategorie")
))
% Path to Category images
%(define-public (category-image-path category)
# (string-append "../../liederbuecher/beispiel_liederbuch/categories/"
category ".eps"))
Das gehen wir jetzt Zeile für Zeile durch. In der ersten Zeile wird die Scheme1-Funktion definiert, das ist erstmal uninteressant. Ab der zweiten Zeile werden dann alle Kategorien und ihre Titel definiert. Das Schema wird im auskommentierten Teil beschrieben2: Erst kommt die ID der Kategorie und danach in Anführungszeichen der Titel. Auf die ID wird in der Lied-Layout-Datei referenziert. Der Titel ist der, der dann im Kategorienverzeichnis benutzt wird. Im obigen Beispiel ist also see
die ID und "See und/nPiraten"
der Titel. Das /n
bewirkt übrigens einen Zeilenumbruch.
Im zweiten Teil wird der Pfad zu den Kategoriebildchen definiert. Der sollte auf jeden Fall angepasst werden und auf einen Ordner in deinem Liederbuch-Ordner verweisen. Die Dateinamen müssen dabei der ID entsprechen und das EPS-Format haben.
Liedern Kategorien zuweisen
In der Layout-Datei der Lieder können im zweiten Schritt dann Kategorien den Liedern zugewiesen werden, in dem in der categories
-Variable alle betreffenden IDs durch Leerzeichen getrennt aufgeschrieben werden. Das könnte dann so aussehen:
\bookpart {
HEADER = {
\header\basicSongInfo
infotext = ""
%see abend andacht"
categories = "}
}
Das Lied würde also den Kategorien mit den IDs see
, abend
und andacht
zugewiesen werden.
Seitennummerierung beeinflussen
Die Seitennummerierung bei Liederbüchern folgt der grundsätzlichen Logik, dass gerade Seiten immer links sind und ungerade Seiten immer rechts. Die erste Seite ist grundsätzlich immer die Seite 0. Das führt unter Umständen zu folgendem Problem:
Links | Rechts |
---|---|
0 (Deckblatt) | 1 (Leerseite Einband, eigentlich links) |
2 (erstes Lied, eigentlich rechts) | 3 … |
Wie zu sehen, sollte das Deckblatt in diesem Fall (der vermutlich der Regelfall ist) eigentlich die Seite 1 haben. Die Lösung ist, dass im Paper-Block der Book-Umgebung in der Liederbuchdatei die Ziffer der ersten Seite definiert wird (diese folgt dann nach wie vor der oben genannten Logik):
\book {
{
\paperfirst-page-number = #1
}
…
%}
Seitennummerierung ausblenden
Soll die Seitennummerierung ausgeblendet werden, kann dafür folgender Befehl in der Bookpart-Umgebung verwendet werden:
\bookpart {
{
\paperprint-page-number = ##f
}
}