Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: chf am Dienstag, 29. August 2017, 09:31

Titel: UNI-C die Dritte
Beitrag von: chf am Dienstag, 29. August 2017, 09:31
Liebe Freunde,

unter  STANDARD MUSIC FONT LAYOUT gibt es eine wunderbare Liste mit Pictogrammen für Musikinstromente.

\version "2.18.2"
\relative {
d''\laissezVibrer\p^\markup {\override #'(font-encoding . fetaText) \char ##xE700}
}

gibt leider eine Fehlermeldung:
...
d''\laissezVibrer\p^\markup {\override #'(font-encoding . fetaText) \char #
                                                                                             #xE700}
/tmp/frescobaldi-ms6274i0/tmpj860wpr8/SchwarzeGlocken_Percuss1+2.ly:344:93: Fehler: falscher Typ für Argument 1; integer erwartet, #<unspecified> gefunden
r4 r \extendLV #3 d''\laissezVibrer\p^\markup {\override #'(font-encoding . fetaText) \char
                                                                                            ##xE700}
...unknown # object
/usr/share/lilypond/2.18.2/scm/lily.scm:1039:21: In procedure reverse! in expression (ly:parse-file file-name):
/usr/share/lilypond/2.18.2/scm/lily.scm:1039:21: Wrong type argument in position 1: (#<unspecified> . #f

Bitte helft!
Gruß
chf
Titel: Antw:UNI-C die Dritte
Beitrag von: harm6 am Dienstag, 29. August 2017, 10:02
Erklärung:
Dadurch, daß vor der schließenden Klammer ein Leerzeichen fehlt, versucht das char-markup  ein Zeichen mit der hexadezimalen Codierung E700} zu finden. Klappt natürlich nicht.

Lösung: füge das Leerzeichen ein.

Als Faustregel solltest Du in LilyPond-Syntax immer Leerzeichen nach { und vor } verwenden. Ansonsten kann es eben, wie in diesem Fall vorkommen, daß die Klammer(n) als zu einem scheme-Audruck gehörend interpretiert werden.
In scheme ist z.B. E700} ein valider wenn auch undefinierter Ausdruck.

Gruß,
  Harm
Titel: Antw:UNI-C die Dritte
Beitrag von: chf am Dienstag, 29. August 2017, 20:03
Hallo Harm,

meine Freude war verfrüht -

\version "2.18.2"
\relative {
d^\markup { \override #'(font-encoding . fetaText) \char ##xE700 }}

Leider
Warnung: Kein Glyph für Zeichen U+E700 in Schriftart »/usr/share/lilypond/2.18.2/
fonts/otf/emmentaler-20.otf«
Titel: Antw:UNI-C die Dritte
Beitrag von: Malte am Dienstag, 29. August 2017, 20:56
Um diese Symbole verwenden zu können, brauchst du schon auch einen Font, der den SMuFL-Standard erfüllt und diese Zeichen enthält. Emmentaler (LilyPonds Standardfont) ist noch nicht so weit; nicht umsonst wird in den oben verlinkten Posts von Bravura und November geredet. Bravura kannst du hier (https://www.smufl.org/fonts/) herunterladen und entweder für die gesamte Partitur verwenden (wie, müßtest du im entsprechenden Blogpost nachlesen) oder nur für solche Sonderzeichen:\version "2.19.65"

\relative {
  d^\markup {
    \override #'(font-name . "Bravura")
    \char ##xE700
  }
}

Ich bin mir gerade nicht ganz sicher, warum es mit LilyPond 2.18.2 nicht geht, anscheinend sucht LilyPond nicht an der richtigen Stelle nach dem Font und verwendet stillschweigend einen anderen, der das Symbol nicht enthält.
Titel: Antw:UNI-C die Dritte
Beitrag von: chf am Dienstag, 29. August 2017, 21:34
Hallo Malte,

Bravura war auf meinem Rechner noch nicht installiert - das hatte ich gerade begriffen.
Mein Computerdoktor hat jetzt alles auf Vordermann gebracht, und es funktioniert bestens.

Dank und Gruß
Christa