• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Gelöst: Generalbassbezifferung kursiv

Begonnen von Joei, Montag, 13. März 2017, 09:37

Vorheriges Thema - Nächstes Thema

Joei

Moin,

ich würde gerne für eine kritische Ausgabe den Generalbass ergänzen - damit man aber meine Ergänzungen als solche erkennt, würde ich die gerne kursiv setzen.
Nun dachte ich, ich sei schlau und habe folgendes versucht:

\override FiguredBass.BassFigure #'font-shape = #'italic

leider ohne Erfolg.

1) Wie sieht die richtige Lösung aus?
2) Wo kann ich mir zusammensuchen welche Attribute es für "FiguredBass.BassFigure" gibt?

Viele Grüße,
Joei

harm6

Hallo,

ich hab' momentan keine Zeit es auszuarbeiten, aber vielleicht ist folgender thread hilfreich:
https://archiv.lilypondforum.de/index.php?topic=2465.msg13902#msg13902

Gruß,
  Harm

Joei

mh - sah zumindest von der Beschreibung passend aus - die vorgeschlagene Lösung analog angewandt funktioniert allerdings nicht:
\version "2.19.40"

\figuremode {
  <_7>4
  \override FiguredBass.BassFigure.font-name = "TeXGyreSchola italic"
  <_7>4
}



  • und ja: der Font ist installiert ;)
  • auch im \Layoutblock blieb's erfolglos

ich probier mal weiter rum...

fugenkomponist

#3
Ganz einfach: Du befindest dich nicht in einem FiguredBass-Kontext, sondern in einem Staff-Kontext, deshalb zeigt der \override keine Wirkung.

Lösungsmöglichkeiten:
1. \override Staff.... statt \override FiguredBass....
2. \figuremode in nen FiguredBass-Kontext setzen
3. die Abkürzung \figures für \new FiguredBass \figuremode verwenden.

Ich würde zu 2. oder 3. raten (genauer gesagt zu 2., wenn Noteneingabe und \score voneinander getrennt sein sollen, ansonsten 3.).

Code für alle drei Versionen:
\version "2.19.56"

\figuremode {
  <_7>4
  \override Staff.BassFigure.font-name = "TeXGyreSchola italic"
  <_7>4
}

\new FiguredBass \figuremode {
  <_7>4
  \override FiguredBass.BassFigure.font-name = "TeXGyreSchola italic"
  <_7>4
}

\figures {
  <_7>4
  \override FiguredBass.BassFigure.font-name = "TeXGyreSchola italic"
  <_7>4
}


Edit: Wenn ein \override keine Auswirkung zeigt, finde ich normalerweise mithilfe von Farbe heraus, ob ich den richtigen Kontext für den \override erwischt habe.
\override FiguredBass.BassFigure.color = #red
hatte keinen Effekt, also wußte ich, daß FiguredBass nicht stimmen kann und habs mit Staff probiert (weil ja auch ein Notensystem angezeigt wurde, war das die naheliegendste Variante).

Joei

Lieber Fugenkomponist - vielen Dank, habe ich wieder was gelernt - ich bin immer wieder begeistert, mit wie viel Engagement und Sachkenntnis Du und harm6 (und manch Andere(r)) helft. Joei

Joei

...obwohl :( - jetzt lassen sich die Eigenschaften ändern (Farbe, Font-size - alles kein Problem) - aber das mit den Schriftarten erschließt sich mir noch nicht ganz.

Die "TeXGyreSchola italic bold" funktioniert - andere Schriftarten scheinbar nicht

\version "2.19.40"
\new FiguredBass
\figuremode {
  <7>4
  \override FiguredBass.BassFigure.font-size = #+3

  \override FiguredBass.BassFigure.font-name = "TeXGyreSchola italic bold" %funktioniert
  <7>

  \override FiguredBass.BassFigure.font-name = "TeXGyreSchola italic" %funktioniert
  <7>

  \override FiguredBass.BassFigure.font-name = #"Times New Roman" %funktioniert nicht weder mit noch ohne "#"
  <7>

  \override FiguredBass.BassFigure.font-name = #"Times New Roman Bold" %funktioniert nicht
  <7>

  \override FiguredBass.BassFigure.font-name = #"Times New Roman Italic" %funktioniert nicht
  <7>

  \override FiguredBass.BassFigure.font-shape = #'italic %funktioniert nicht
  <7>

  \override FiguredBass.BassFigure.font-name = #"Times New Roman bold italic" %funktioniert nicht
  <7>

}


1) Woher weiß ich, in welcher Form ich den Namen schreiben muss? 

  • Als Datei heißt der obige funktionierende Font teXgyreschola-bolditalic.otf
  • im Fontmanager TeXGyreSchola-Bolditalic

2) welchen Unterschied macht das "#" vor dem Schriftnamen - hab's im Netzt mit und ohne gefunden, scheint beides zu funktionieren

3) welchen Font verwendet Lily original für die BassFigures - ich würde ja gerne exakt den nehmen, nur in kursiv

Vielen Dank nochmal, Joei

harm6

ZitatDie "TeXGyreSchola italic bold" funktioniert - andere Schriftarten scheinbar nicht

Nicht ganz, tatsächlich funktioniert "Times New Roman" nicht, denn pango sieht das "Roman" in "Times New Roman" als Spezifikation des Schriftschnitts von "Times New" und nicht als Teil das Namens. "Times New" gibts aber nicht, insoweit nimmt LiyPond ein Fallback.

Zitat1) Woher weiß ich, in welcher Form ich den Namen schreiben muss? 
Aber man kann es trotzdem hinkriegen. Zu diesem Zwecke kann ein Komma eingefügt werden. Davor ist der Name, danach der Schnitt. Funktioniert tatsächlich meistens auch ohne Komma, nur für "Times New Roman" nicht. Der Name "Times New Roman" ist halt altehrwürdig, aber schlecht für pango...

Folgndes klappt aber:

\markup \column {
  \override #'(font-name . "TeXGyreSchola italic") "TeXGyreSchola italic"
  \override #'(font-name . "TeXGyreSchola, italic") "TeXGyreSchola italic"
  \override #'(font-name . "TeXGyreSchola bold") "TeXGyreSchola bold"
  \override #'(font-name . "TeXGyreSchola, bold") "TeXGyreSchola bold"
  \override #'(font-name . "TeXGyreSchola italic bold") "TeXGyreSchola italic bold"
  \override #'(font-name . "TeXGyreSchola, italic bold") "TeXGyreSchola italic bold"
  \override #'(font-name . "Times New Roman") "Not Times New Roman"
  \override #'(font-name . "Times New Roman,") "Times New Roman"
  \override #'(font-name . "Times New Roman, italic") "Times New Roman"
  \override #'(font-name . "Times New Roman, italic") "Times New Roman italic"
  \override #'(font-name . "Times New Roman, bold") "Times New Roman bold"
  \override #'(font-name . "Times New Roman, italic bold") "Times New Roman italic bold"
}


Zitat2) welchen Unterschied macht das "#" vor dem Schriftnamen - hab's im Netzt mit und ohne gefunden, scheint beides zu funktionieren
Sobald der LilyPond-parser "#" sieht wird der nachfolgende Ausdruck an den scheme-interpreter weitergereicht.
Bei strings ist das #-Zeichen aber seit einiger Zeit häufig nicht mehr nötig. Leider gibt es noch Gegenbeispiele, z.B.
gibt
\markup \simple "simple"
einen error aus.

Zitat
3) welchen Font verwendet Lily original für die BassFigures - ich würde ja gerne exakt den nehmen, nur in kursiv
Das war etwas schwieriger herauszukriegen, denn es wird überhaupt kein grob-property bzgl der Schriftart für BassFigure gesetzt.
Allerdings gibt es das context property 'figuredBassFormatter' welches zur procedure 'format-bass-figure' gestzt wird.
Wenn man sich diese procedure ansieht, so sieht man einen Haufen markup-commands wie 'slashed-digit', 'backslashed-digit' und 'number', die alle mit font-encoding fetaText arbeiten und einzelne Teile der BassFigure formatieren.

fetaText hat aber keine kursiv-Variante.
Aber zumindest gibt es
https://sourceforge.net/p/testlilyissues/issues/5074/
welches indirekt eine Folge des von mir oben schon verlinkten threads ist.


Gruß,
  Harm






Joei

Lieber Harm,

auch Dir ein fettes DANKE für diese ausführliche und zielführende Antwort. Menschen wie Du sind ein wesentlicher Grund dafür, das Lilypond derart großartig ist.

Joei