UNI-C die Dritte

Begonnen von chf, Dienstag, 29. August 2017, 09:31

« vorheriges - nächstes »

chf

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

harm6

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

chf

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«

Malte

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 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.

chf

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