nach Kompilieren mit Lilypond-book sind die Akkordbezeichnungen nur noch Kästche

Begonnen von Otto, Mittwoch, 27. Juni 2018, 21:53

« vorheriges - nächstes »

Otto

Hallo zusammen,

ich versuche mit Frescobaldi ein Lied mit Text und Akkorden zu setzen. In der Frescobaldi-Ausgabe sieht das auch alles sehr gut aus. Gerne würde ich mehrere Lieder in LaTex zusammenfügen. Daher setze ich an den Anfang des Codes


\documentclass{article}
\begin{document}
\begin{lilypond}


und ans Ende


\end{lilypond}
\end{document}


Dann gebe ich in Windows in die Kommandozeile "lilypond-book --pdf 'Datiname'.lytex" ein. Es werden neue Dateien erzeugt, auch eine LaTex-Datei, die ich kompilieren kann. Und am Ende sind alle Akkordbezeichnungen im PDF durch Kästchen ersetzt worden. Bereits die PDF, die von Lilypond-book erzeugt wurde besitzt keine Akkordbezeichnungen sondern nur noch Kästchen. Kann mir jemand helfen und sagen, ob ich lilypond-book falsch aufrufe?

Hier noch mein Beispiel:


\documentclass{article}
\begin{document}
    An easy song to learn on the piano is Mary Had a Little Lamb:\\

\begin{lilypond}
#(set-default-paper-size "a5" )
\version "2.18.2"
\paper {
  oddFooterMarkup = \markup{ \fill-line{ \line{" "} } }
}
\markup {
  \column{
    \line{ \null}
    \line{ \lower #5 \large \bold { Ich lobe meinen Gott } }
  }
}
\score{
  <<
    \new ChordNames \chords{\germanChords d2 a b1:m g2 a2 d1  }
    \new Staff {
      \relative c''
      \new Voice = "strophe" {
        \key d \major
        \autoBeamOn
        \numericTimeSignature
        \time 2/2
        fis='2 e8 fis g a | d='2. d4 | b='2 a4 (g)|
        fis 4 fis2
      }
     
    }
   
    \new Lyrics \lyricsto "strophe" {
      <<
        {
          \set stanza = #"1. "
          \set associatedVoice = "strophe"
           Ich lo -- be mei -- nen Gott von gan -- zem Her -- zen,

           
        }


      >>
 
    }
  >>
  \layout {
    indent = #0
  }
}

\end{lilypond}



\end{document}



Vielen Dank schon mal

Malte

Hallo Otto,

willkommen im Forum! Welche LilyPond-Version nutzt du denn? Das ist für dein Problem von entscheidender Bedeutung: Wenn ich das richtig sehe, verläßt sich LilyPond 2.18.2 darauf, daß Bitstream Vera Sans im System vorhanden ist. Irgendwann in 2.19.xx wurden Century Schoolbook und Bitstream Vera abgelöst durch TeX Gyre Schola und Nimbus Sans (?), die, wenn ich alles richtig verstanden habe, genauso aussehen wie die alten, aber von LilyPond selbst mitgebracht werden.

Viele Grüße
Malte

Otto

Hallo Malte,

vielen Dank für deine schnelle Antwort. Die Zeile


\version "2.18.2"


im Code habe ich aus einer Vorlage unbewusst übernommen. Wenn ich diese Zeile entferne, besteht weiterhin dasselbe Problem.

Ich habe die neueste Version auf lilypond.org heruntergeladen. Von daher müsste das Version 2.18.2-1 sein.

Wäre mi 2.19 mein Problem gelöst?

Ich habe nun die Schrift Bitstream Vera Sans in Windows installiert und das Problem ist gelöst.

Stellt sich nun die Frage: Kann ich die Schriftart der Akkordbezeichnungen ändern?

Malte

Zitat von: Otto am Donnerstag, 28. Juni 2018, 17:25
Die Zeile


\version "2.18.2"


im Code habe ich aus einer Vorlage unbewusst übernommen. Wenn ich diese Zeile entferne, besteht weiterhin dasselbe Problem.
Dieser \version-Befehl steuert nicht (bzw. nur wenn man das in Frescobaldi so einstellt und mehrere Versionen gleichzeitig installiert hat), welche LilyPond-Version verwendet wird. Er dient vielmehr dazu, zu dokumentieren, für welche LilyPond-Version der Code geschrieben wurde. Gerade, wenn man Code von irgendwoher kopiert, ist diese Information hilfreich. Damit Helfer bei Fragen wissen, welche Version man verwendet, und man vor allem auch später das selbst noch weiß und ggfs. den Code per convert-ly automatisch aktualisieren lassen kann, ist es auf jeden Fall sinnvoll, diesen Befehl immer in jede Datei reinzuschreiben.

Ich hatte ihn einfach übersehen, daher meine Frage.

Ach ja, eine Auswirkung hat dieser Befehl doch: Verwendet man eine ,,zu alte" Version (z. B. in diesem Fall 2.16.2), dann meldet LilyPond das als Fehler. Andersrum (also z. B. wenn du eine Datei, in der \version 2.18.2 drinsteht, mit 2.19.82 übersetzt) wird allerdings keine Warnung ausgegeben.
Zitat
Ich habe die neueste Version auf lilypond.org heruntergeladen. Von daher müsste das Version 2.18.2-1 sein.
2.18.2 ist die neuste stabile Version, ja. Die neueste Entwickler-Version ist 2.19.82.
Zitat
Wäre mi 2.19 mein Problem gelöst?
Das weiß ich nicht 100% sicher, vermute aber schon, weil es so aussieht, als bringe 2.19.xx die Schriftart selbst mit.
Zitat
Ich habe nun die Schrift Bitstream Vera Sans in Windows installiert und das Problem ist gelöst.
Das ist natürlich die einfachere Lösung, dann brauchst du auch erstmal kein 2.19.xx ;)
Zitat
Stellt sich nun die Frage: Kann ich die Schriftart der Akkordbezeichnungen ändern?
Ja, ergänze dazu nach \new ChordNames noch einen \with-Block mit dem entsprechenden \override:\new ChordNames \with {
  \override ChordName.font-name = "Vollkorn"
} \chordmode {
  a:7
}

Vollkorn ist hier nur ein Beispiel für den Font, den du verwenden möchtest.

Otto

Hallo Malte,

vielen Dank für die Antwort! Das funktioniert super.

Wie kann ich denn die Schriftgröße der Akkordbezeichnungen einstellen?

Und noch ganz allgemein (oder soll ich dafür ein neues Thema aufmachen?), wie kann es hinbekommen, dass ich sowohl in Latex (also der Text zwischen den Liedern) als auch in den Noten (Tiel und Strophen) die gleiche Schriftart und Schriftgröße besitzen?

Malte

Zitat von: Otto am Samstag, 30. Juni 2018, 11:04
Wie kann ich denn die Schriftgröße der Akkordbezeichnungen einstellen?
An gleicher Stelle noch einen entsprechenden \override hinzufügen:\override ChordName.font-size = 5

Dabei ist zu beachten, daß in LilyPond die font-size nicht in pt anzugeben ist, sondern als relative Größe im Verhältnis zum Standard 0. Dabei entspricht -6 halb so groß und 6 doppelt so groß wie 0. Ein ähnliches Konzept gibts auch für LaTeX (unter dem gleichen Namen, nämlich magstep), allerdings ist die Schrittgröße da eine andere (LaTeX: 1 Schritt = Faktor 1,2; LilyPond: 6 Schritte = Faktor 2; zum Vergleich LaTeX 6 Schritte = 2,985984).


Zitat
Und noch ganz allgemein (oder soll ich dafür ein neues Thema aufmachen?), wie kann es hinbekommen, dass ich sowohl in Latex (also der Text zwischen den Liedern) als auch in den Noten (Tiel und Strophen) die gleiche Schriftart und Schriftgröße besitzen?
Das wär eigentlich was für ein neues Thema. Bin mir auch gerade nicht ganz sicher über die Details. Jedenfalls kann man in LilyPond die Standardschriftart einstellen, siehe Abschnitt 1.8.3 der Notationsreferenz. In Version 2.19.xx gibts noch neue Möglichkeiten, Schriftarten (jetzt auch für die Noten an sich) auszuwählen, deshalb verlink ich dir auch mal für 2.19 Abschnitt 1.8.3 der Notationsreferenz.
Die Textschriftgröße hängt erst einmal ab von der Notensystemgröße. Inwieweit man das global voneinander unabhängig einstellen kann, weiß ich gerade nicht so genau ...

Otto

Hallo Malte,

die Größe kann ich so einstellen. Wenn ich allerdings eine Zahl kleiner als 1 wähle, werden die Akkordbezeichungen nicht mehr kleiner. Darf die Größe der Akkordbezeichungnen eine bestimmte Größe nicht unterschreiten?

Deine Links zur Schriftart haben leider keinen Bezug zu LateX. Ich habe das Problem vorerst damit gelöst ind LaTeX das package 'tgschola' einzubinden. Die Schriftart ist wohl ziemlich die gleiche wie in Lilypond verwendet wird. Wenn ich später allerdings eine andere Schriftart verwenden will, muss ich mich der Sache noch einmal annehmen.

Malte

Zitat von: Otto am Sonntag,  1. Juli 2018, 10:24
die Größe kann ich so einstellen. Wenn ich allerdings eine Zahl kleiner als 1 wähle, werden die Akkordbezeichungen nicht mehr kleiner. Darf die Größe der Akkordbezeichungnen eine bestimmte Größe nicht unterschreiten?
Da ist deine Beobachtung vermutlich falsch: Eigentlich dürfen die \overrides gar keinen Effekt in der Originaldatei haben, wenn ich mich nicht irre. Ich habe nämlich gerade gemerkt, daß du \new ChordNames \chords { ... } geschrieben hast. Hier muß es aber (wie in meinem Code oben) \chordmode heißen, nicht \chords. Letzteres wäre eine Abkürzung für \new ChordNames \chordmode, du hast also effektiv mit dem \with-Block sonst dastehen: \new ChordNames \with { ... } \new ChordNames \chordmode { ... }, es wird also ein ChordNames-Kontext zu viel kreiert.

Langer Rede kurzer Sinn:\new ChordNames \with {
    \override ChordName.font-size = -5
    \override ChordName.font-name = "Vollkorn"
} \chordmode { c:7 }
sollte dir in winziger Vollkorn-Schrift einen C⁷ drucken.

Zitat
Deine Links zur Schriftart haben leider keinen Bezug zu LateX. Ich habe das Problem vorerst damit gelöst ind LaTeX das package 'tgschola' einzubinden. Die Schriftart ist wohl ziemlich die gleiche wie in Lilypond verwendet wird. Wenn ich später allerdings eine andere Schriftart verwenden will, muss ich mich der Sache noch einmal annehmen.
Brauchst du einen expliziten Bezug zu LaTeX? Ich dachte, du wolltest einfach die Schrift aus deinem LaTeX-Dokument in den LilyPond-Code übernehmen. Dafür mußt du ja in LaTeX nichts ändern, sondern nur im LilyPond-Code und da passen die Links eigentlich schon ...

Otto

Hallo Malte,

mir war nicht bewusst, dass man auch negative Werte für die Schriftgröße eingeben kann.

Damit müssten meine Fragen vorerst geklärt sein. Vielen Dank für Deine große Hilfe!


Malte

Achso, das hätte ich vielleicht deutlicher machen sollen – das meinte ich jedenfalls mit ,,−6 ist halb so groß" ;)

Mir sind gerade noch drei weitere Sachen aufgefallen, im Wesentlichen halte ich sie alle drei für Bugs, von denen einer bereits behoben wurde:

1. LilyPond 2.18.2 geht nicht gut um mit veränderter Schriftgröße bei Akkordsymbolen: Die hochgestellten Zahlen wie bei C⁷ die 7 passen ihre Höhe nicht an. Dieser Fehler wurde in 2.19.xx behoben.
2. Die Frage nach den Versetzungszeichen bei deutschen Akkordnamen (siehe auch Manuelas Post im anderen Thread): Der Standard, nämlich für deutsche Akkordsymbole die Vorzeichen höher zu stellen, ist meiner Meinung nach totaler Quatsch. Das sieht einfach bescheuert aus und ich hab schon mehrmals die Frage gelesen, wie man das denn anders hinkriegt.
3. Die Höhe der Versetzungszeichen paßt sich bei veränderter Schriftgröße nicht richtig an. Das Problem liegt in der Funktion alteration->text-accidental-markup oder möglicherweise sogar noch tiefer (raise ahnt nämlich nichts von der Schriftgröße, so wies aussieht).

Ich schreibe für 2. und 3. mal zwei Bugreports und melde mich, wenn ich mehr weiß.

Otto

Danke für die Hinweise.

Und noch kurz zu Schriftart in LaTeX: das war ein Denkfehler von mir. Wenn ich in Lilypond die Schriftart von LaTeX übernehmen will, dann hilft mir die Lilypond-Dokumentation natürlich weiter!

Malte

Zitat von: Malte am Sonntag,  1. Juli 2018, 14:25
2. Die Frage nach den Versetzungszeichen bei deutschen Akkordnamen (siehe auch Manuelas Post im anderen Thread): Der Standard, nämlich für deutsche Akkordsymbole die Vorzeichen höher zu stellen, ist meiner Meinung nach totaler Quatsch. Das sieht einfach bescheuert aus und ich hab schon mehrmals die Frage gelesen, wie man das denn anders hinkriegt.
3. Die Höhe der Versetzungszeichen paßt sich bei veränderter Schriftgröße nicht richtig an. Das Problem liegt in der Funktion alteration->text-accidental-markup oder möglicherweise sogar noch tiefer (raise ahnt nämlich nichts von der Schriftgröße, so wies aussieht).

Ich schreibe für 2. und 3. mal zwei Bugreports und melde mich, wenn ich mehr weiß.
Beide Fehler sind behoben: Ich habe soeben 2. fertiggestellt, David Kastrup hat sich um 3. gekümmert; da steht nur noch der push nach master aus, d. h. die Änderung ist spätestens in ein oder zwei Tagen auch verfügbar. Allerdings werden die Änderungen wohl erst in Version 2.21.0 veröffentlicht, falls du das davor nutzen möchtest, müßtest du LilyPond selbst kompilieren.