Autor Thema: Eigene Font (Gentium) mit \bold  (Gelesen 4890 mal)

kilgore

  • Member
Eigene Font (Gentium) mit \bold
« am: Sonntag, 8. Mai 2011, 14:38 »
Liebe Lilys!

Ich habe mich jetzt mit Thema "Font" etwas auseinander gesetzt.  Ich habe erfolgreich den Schriftart für die ganze Partitur zu meinem neuen lieblings Font geändert mit make-pango-font-tree.  Alles ist damit erstmal wunderbar, aber \bold hat dabei keine Wirkung.  Das font-shape zu ändern (im prinzip das gleiche?) hat dann auch keine Wirkung.  \italic funktioniert problemlos.

Meine erste Frage, eine neben Frage: warum muss ich für make-pango-font-tree mindestens drei Fonts auswählen wenn ich ja sowieso nur ein Font in der ganzen Partitur haben möchte?  Und falls ich da drei (oder mehrere) verschiedene Fonts wähle, was für ein Unterschied macht die Reihenfolge in der sie aufgelistet werden?

Und dazu die Hauptfrage:  Wie kann ich lilypond überzeugen, das schöne Gentium auch in bold zu drucken?

Die Erklärungen über Fonts in den Doks finde ich etwas unklar....


\version "2.12.3"

\header {
  title = "Titel mit meinem Font"
  composer =  "Composer"
}

\paper {
myStaffSize = #17
#(define fonts
(make-pango-font-tree "Gentium"
  "Gentium" "Gentium"
(/ myStaffSize 17)))
}

\relative c' {
  c_\markup { \italic "\italic funktioniert" } c c c
  \mark \markup { RehearsalMark }
  c c c c
  c_\markup { \bold "\bold geht nicht!" } c c c
  \once \override TextSpanner #'(bound-details left text) = "Gentium"
  c\startTextSpan c c c
  c c c c\stopTextSpan
}


ding-dong

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #1 am: Sonntag, 8. Mai 2011, 15:32 »
versuchs mal mit Gentium Basic

kilgore

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #2 am: Montag, 9. Mai 2011, 16:49 »
 :)  Danke!  Das war es!

Würde mich trotzdem interessieren, ein bisschen mehr über diese make-pango-font-tree zu wissen, falls jemand was weiss!

ding-dong

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #3 am: Montag, 9. Mai 2011, 17:20 »
da steht was im NR 1.8.3 Fonts  ::)

RobUr

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #4 am: Montag, 9. Mai 2011, 18:43 »
Hallo Kil,

es ist wichtig zu wissen, welche Größenangaben zu ändern sind: die Zahl in der ersten Codezeile muss mit set-global-staff-size übereinstimmen, und die Zahl in der letzten Codezeile muss immer 20 bleiben (das ist die Referenz zur default staff size). Wenn du deine Partitur in Größe 17 haben möchtest, brauchst du also folgenden Code:
#(set-global-staff-size 17)

\paper {
  myStaffSize = #17
  #(define fonts
  (make-pango-font-tree
    "Gentium" ;Standard serif (auch: „roman“)
    "Gentium" ;Standard sans-serif (auch: „sans“)
    "Gentium" ;Standard monospace (auch: „typewriter“ oder „fixed-width“)
  (/ myStaffSize 20)))
}

Es ist leider nicht dokumentiert, dass der Faktor 20 bleiben muss; ich habe es bisher nur in der englischen Liste gefunden.

Grüße, Robert

RobUr

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #5 am: Dienstag, 10. Mai 2011, 13:26 »
Zitat von: RobUr
Es ist leider nicht dokumentiert, dass der Faktor 20 bleiben muss; ich habe es bisher nur in der englischen Liste gefunden.
Und hier ist der Beitrag dazu: Finally I found out about "\myStaffSize 20".

ding-dong

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #6 am: Mittwoch, 11. Mai 2011, 11:06 »
danke Robert für diese wertvollen hinweise!

kilgore

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #7 am: Donnerstag, 12. Mai 2011, 14:03 »
Ja Robert, sehr wichtig!  Ich hätte das nicht gewusst.

Zitat
da steht was im NR 1.8.3 Fonts  Augen rollen

eben nicht, da ist nur ein pango Beispiel.  Die Reihenfolge der Fonts usw wird gar nicht erklärt.... 


Das mit den Fonts finde ich immer noch rätselhaft, aber ich werde einfach weiter experimentieren!   Danke ihr beiden!!

RobUr

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #8 am: Donnerstag, 12. Mai 2011, 15:25 »
Zitat von: kilgore
Das mit den Fonts finde ich immer noch rätselhaft
Was genau ist jetzt noch rätselhaft? Der pango-font-tree definiert eine Schriftliste mit 3 Komponenten: (1) Name der Standardserifenschrift (roman/serif), (2) Name der serifenlosen Standardschrift (sans serif), (3) Name der Standardfestbreitenschrift (typewriter/monospace/fixed-width).

Beispiele für Serifenschriften: Times [New Roman], Garamond, Georgia, Baskerville, Century Schoolbook, Palatino
Beispiele für serifenlose Schriften: Arial, Helvetica, Calibri, Lucida Sans, Futura, Impact, Tahoma, Verdana
Beispiele für Festbreitenschriften: Courier [New], Andale Mono, Lucida Console

Die Liste in make-pango-font-tree muss vollständig und die Namen für die Schriften systemweit eindeutig sein, ansonsten fällt Lily zurück zu den „Hausschriften“.

Sinn der ganzen Sache ist, eigene Schriften über die bereitgestellten Befehle \roman, \sans und \typewriter im Markup ansprechen zu können. Achtung: die neue Standardserifenschrift wird auch auf alle anderen Objekte angewandt, die diese vordefiniert haben: vornehmlich LyricText und TextScript, aber eben auch StanzaNumber, InstrumentName, RehearsalMark, BarNumber, TupletNumber, OctavateEight und viele andere! Diese können im \layout-Block jedoch wieder umdefiniert werden, z.B.
\layout {
  \context {
    \Staff
    \override OctavateEight #'font-name = #"Times New Roman Bold Italic"
  }
  \context {
    \Score
    \override RehearsalMark #'font-name = #"Century Schoolbook Regular"
  }
}

Zu den Schriftstilen: Wenn eine Schriftart (genauer: Schriftfamilie) keine kursive oder [halb-]fette Type mitliefert, bewirken die Befehle \italic bzw. \bold natürlich nichts  ;)

Hinweisen möchte ich erneut auf die änderbaren Faktoren:

#(set-global-staff-size 15.87)
\paper  {
  myStaffSize = #15.87  <== dieser Wert muss mit dem in "global-staff-size" übereinstimmen (default: 20)
  #(define fonts
    (make-pango-font-tree "Times New Roman"  <== der Schriftname für die default serif
                          "Nimbus Sans"      <== der Schriftname für die default sans serif
                          "Luxi Mono"        <== der Schriftname für die default monospace
                           (/ myStaffSize 20)))  <== dieser Wert muss immer 20 bleiben
}


Ein bekanntes Problem tritt leider bei der Verwendung von #(layout-set-staff-size X) in verschiedenen \score-Blöcken auf: hier fällt Lily auf die hauseigenen Schriften zurück  :(
Custom fonts don't show in score when staff size is modified in the score block
Issue 1129: Font styles return to default when font size changed
Das Problem hat lediglich mittlere Priorität und ist bisher nicht behoben.

Hoffe, das bringt etwas Licht in’s Dunkel – viele Grüße,
Robert

kilgore

  • Member
Re:Eigene Font (Gentium) mit \bold
« Antwort #9 am: Freitag, 13. Mai 2011, 09:21 »
Rob!  wie immer hast du so ein umfangreiches wissen!  Das erklärt schon vieles, und hilft mir weiter. 

Es ist schon lustig.... in Open Office wählt man einfach den Schriftart aus. In Lilypond lernt man gleich viel mehr über Schriftarten als man wollte.  Find ich super  ;D  .  Und ja, ich musste tatsächlich nachgucken was "serif" überhaupt bedeutet   ::)

Danke!