Autor Thema: Falscher Schrift-Schnitt wird angezeigt  (Gelesen 2030 mal)

Pondus

  • Member
Falscher Schrift-Schnitt wird angezeigt
« am: Samstag, 24. Januar 2015, 23:07 »
Hallo liebes Forum!

Eine weitere Frage zu Pango.

Ich versuche, die Schrift Mercury mit LilyPond zu verwenden. Bei anderen Schriften gibt es keine Probleme, doch Mercury wird ausschließlich in der fetten Variante dargestellt (normaler und fetter Text).

Wenn der fette Schnitt zeitweise gelöscht wird, stellt LilyPond den Standard-Schnitt „Roman“ korrekt dar (kursiv dann aber als fett-kursiv).

#(ly:font-config-display-fonts)
zeigt folgendes Ergebnis an.

Zitat
family Mercury Text G1
 Mercury Text G1,Mercury Text G1 Bold:style=Bold Italic,Italic

Könnte es vielleicht sein, dass LilyPond Probleme mit den Dateinamen oder der Bezeichnung „Roman“ hat? Gibt es eine Möglichkeit, anhand der Dateinamen normale, kursive, fette usw. Schnitte festzulegen?

Für Eure Hilfe wäre ich sehr dankbar!

Rahmendaten: Mercury in der otf-Variante
LilyPond: 2.19.15
Betriebssystem: OS X

Gruß
Pondus

harm6

  • Member
Re: Falscher Schrift-Schnitt wird angezeigt
« Antwort #1 am: Montag, 26. Januar 2015, 01:39 »
Hallo,

ich bin weder Experte für fonts, noch weiß ich wie LilyPond damit umgeht.
Ich habe auch Mercury nicht und außerdem ein (ziemlich altes) Linuxsystem.

Aber hier meine Beobachtungen anhand eines anderen Beispiels:
Die Schriftart "Sawasdee"

Mit dem Befehl
lilypond -dshow-available-fonts 2>&1 |less
(die command-line-option als Entsprechung von #(ly:font-config-display-fonts) bei der man dann allerdings weitere Befehle anfügen kann)
kann ich folgende Einträge finden:

Zitat
family Sawasdee
 Sawasdee:style=Regular

family Sawasdee
 Sawasdee:style=Bold

family Sawasdee
 Sawasdee:style=BoldOblique

family Sawasdee
 Sawasdee:style=Oblique

Diese Schriftarten habe ich dann als toplevel-markup getestet:
(stör dich nicht an dem ganzen 'format'-Zeug, ich war nur zu faul normale markup-commands zu benutzen)
\markup \column {
  \override #'(font-name . "Sawasdee")
  #(format #f
    "~a ~30taufgerufen mit ~
    \\override #'(font-name . \"Sawasdee\")"
    "Sawasdee,")

  \override #'(font-name . "Sawasdee Bold")
  #(format #f
    "~a ~28taufgerufen mit ~
    \\override #'(font-name . \"Sawasdee Bold\")"
    "Sawasdee Bold,")

  \override #'(font-name . "Sawasdee Oblique")
  #(format #f
    "~a ~27taufgerufen mit ~
    \\override #'(font-name . \"Sawasdee Oblique\")"
    "Sawasdee Oblique,")

  \override #'(font-name . "Sawasdee Italic")
  #(format #f
    "~a ~27taufgerufen mit ~
    \\override #'(font-name . \"Sawasdee Italic\") klappt auch" 
    "Sawasdee Oblique,")

  \override #'(font-name . "Sawasdee Bold Italic")
  #(format #f
    "~a ~25taufgerufen mit ~
    \\override #'(font-name . \"Sawasdee Bold Italic\")"
    "Sawasdee Bold Oblique,")

  \override #'(font-name . "Sawasdee Bold Oblique")
  #(format #f
    "~a ~25taufgerufen mit ~
    \\override #'(font-name . \"Sawasdee Bold Oblique\") klappt auch"
    "Sawasdee Bold Oblique,")

  \override #'(font-name . "Sawasdee BoldOblique")
  #(format #f
    "Sawasdee BoldOblique, aufgerufen mit ~
     \\override #'(font-name . \"Sawasdee BoldOblique\") klappt nicht\")")
}

Heraus kommt das angehängte Bild.

Festzustellen ist, daß nicht immer der "style" direkt aufrufbar ist (siehe letztes Beispiel).

Auch wenn ich Mercury nicht als Schriftart habe, wäre es sinnvoll ein kurzes Beispiel zu posten, wie Du diese Schriftart bzw deren Varianten aufzurufen versuchst.


Gruß,
  Harm

Pondus

  • Member
Re: Falscher Schrift-Schnitt wird angezeigt
« Antwort #2 am: Montag, 26. Januar 2015, 13:49 »
Lieber Harm!

Vielen Dank für die Hilfe. Das ist extrem nett!

Mit
lilypond -dshow-available-fonts 2>&1 |lessgab es leider Probleme - sowohl in Lilypond als auch im Terminal, obwohl ich den alias „lilypond” eingerichtet habe.

Dein Beispiel könnte genau das sein, was ich benötige. Dennoch hier ein Minimalbeispiel, bei dem der Liedtext leider mit dem fetten Schnitt dargestellt wird.

\version "2.19.15"
myStaffSize = #17
#(set-global-staff-size myStaffSize)

\paper {
  #(define fonts (make-pango-font-tree "Mercury Text G1" "Gotham HTF" "Menlo" (/ myStaffSize 20)))
}

<<
{
    a2 a
  }
  \new Lyrics {
    \lyricmode {
      foo2 foo2
    }
  }
>>

Mir ist leider noch nicht klar, ob ich Deinen Code benutzen kann, um den Pango-Tree zu ersetzen.

Vielen Dank
Pondus

harm6

  • Member
Re: Falscher Schrift-Schnitt wird angezeigt
« Antwort #3 am: Dienstag, 27. Januar 2015, 00:15 »
Mit
lilypond -dshow-available-fonts 2>&1 |lessgab es leider Probleme - sowohl in Lilypond als auch im Terminal, obwohl ich den alias „lilypond” eingerichtet habe.

lilypond -dshow-available-fonts Sollte aber funktionieren. Ich denke die Zusätze könnten das Problem verursacht haben.

Eine Möglichkeit fällt mir noch ein.
Im LyricText ist das 'font-series-property auf 'medium eingestellt.

Aus der IR
Zitat
font-series (symbol):

    'medium

    Select the series of a font. Choices include medium, bold, bold-narrow, etc.

Versuch doch mal, es explicit in deinen Code zu setzen, bzw damit rumzuspielen, sowie 'font-name für den LyricText ebenfalls explicit zu setzen
<<
\new Staff {
    a2 a
  }
  \new Lyrics {
    \lyricmode {
      \override LyricText.font-series = #'medium
      %\override LyricText.font-name = #"Mercury Text G1 Bold"
      \override LyricText.font-name = #"Mercury Text G1"
      foo2 foo2
    }
  }
>>


Gruß,
  Harm


Pondus

  • Member
Re: Falscher Schrift-Schnitt wird angezeigt
« Antwort #4 am: Mittwoch, 28. Januar 2015, 01:23 »
Danke noch mal!!

Leider habe ich auch mit Deinem Minimalbeispiel keinen Erfolg. Ich werde aber weiter forschen; denn es muss ja möglich sein, z. B. condensed-Schnitte usw. zu verwenden?! Insofern ist das vielleicht nicht ein extrem spezifisches Problem mit meinem Schrift-Typ.

Viele Grüße
Pondus