• 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ü

Fußnote an Staff.instrumentName oder wie finde ich Grob-Bezeichner?

Begonnen von martinmagtenor, Samstag, 14. Juni 2014, 19:43

Vorheriges Thema - Nächstes Thema

martinmagtenor

Hallo,

ich will an einer Instrumentbezeichnung eine Fußnote anbringen. Jetzt habe ich verstanden, dass der Befehl

\footnote Zeichen Verschiebung Grob-Bezeichnung Fußnote

das grundsätzlich erlaubt, in dem man als Zeichen (erstes Argument) \default angibt. Dann muss man aber den Grob-Bezeichner angeben.

Konkrete Frage zu meinem Fall: wie heißt der Grob für Staff.instrumentName?

Und verallgemeinert: woher bekomme bzw. wie finde ich diese Bezeichner selber?

Grüße
  Martin

Pierre


martinmagtenor

Hallo Pierre,

Danke, der Beitrag ist ja brandneu.

Zitat von: Pierre am Sonntag, 15. Juni 2014, 11:51
Hier gibts einen Workaround : http://lsr.di.unimi.it/LSR/Item?id=918

Da sind die Pixel sozusagen noch nicht richtig trocken.   ;)

Mal schauen, ob ich damit weiterkomme.

Grüße
  Martin

martinmagtenor

Hallo,

ich wende mich nochmal der eigentlichen Frage zu.

Zitat von: martinmagtenor am Samstag, 14. Juni 2014, 19:43
[...]

Konkrete Frage zu meinem Fall: wie heißt der Grob für Staff.instrumentName?

[...]

Nach einigem Lesen und Nachdenken habe ich diese Spur aufgenommen:

Nachdem ich gefunden hatte, dass Grob eigentlich nur die Verkürzung von GRafisches OBjekt ist, ist mir aufgefallen, dass für den instrument_name_engraver dokumentiert ist, dass zu seinen Schnittstellen auch das grob_interface gehört. Beim Herumsuchen war ich auch auf den LSR-Beitrag 622 mit dem Titel Displaying grob ancestry gestoßen. Das brachte mich auf die Idee, diesen Ansatz zu verwenden, um zu prüfen, ob InstrumentName ein Grob ist.

Gesagt getan: Ich lasse den Scheme-Vorspann aus dem LSR-Beitrag weg und zeige nur den modifizierten Notentext (noch in der Schreibweise für 2.16.2):


#(set-default-paper-size "a6")

\relative c' {
  \once \override NoteHead #'before-line-breaking = #display-ancestry
  f4
  \once \override Accidental #'before-line-breaking = #display-ancestry
  \once \override Arpeggio #'before-line-breaking = #display-ancestry
  % \once \override InstrumentName #'before-line-breaking = #display-ancestry
  <f as c>4\arpeggio
}

\layout {
  \context {
    \Staff
    instrumentName = "x"
    \override InstrumentName #'before-line-breaking = #display-ancestry
  }
}


Das  (für mich) interessante Ergebnis ist, dass in der Ausgabe nun zusätzlich dieser Schnippsel erscheint:


------------------------------------

InstrumentName
X: NonMusicalPaperColumn
   X,Y: System
Y: System


------------------------------------


Ich deute das, als Beleg dafür, dass auch das InstrumentName-Ding ein Grob ist und dass der Name dieses Grob "InstrumentName" ist und hiermit gefunden ist.

Richtig?

Grüße
  Martin

Pierre

Zitat von: martinmagtenor am Montag, 16. Juni 2014, 21:39[...] Da sind die Pixel sozusagen noch nicht richtig trocken.   ;) [...]
... habe ich speziell für dich erstellt  ;)

harm6

Hallo,

Zitat von: martinmagtenor
ich wende mich nochmal der eigentlichen Frage zu.

Zitat von: martinmagtenor am Juni 14, 2014, 18:43:28
    [...]
    Konkrete Frage zu meinem Fall: wie heißt der Grob für Staff.instrumentName?
    [...]

Nachdem ich gefunden hatte, dass Grob eigentlich nur die Verkürzung von GRafisches OBjekt ist, ist mir aufgefallen, dass für den instrument_name_engraver dokumentiert ist, dass zu seinen Schnittstellen auch das grob_interface gehört. Beim Herumsuchen war ich auch auf den LSR-Beitrag 622 mit dem Titel Displaying grob ancestry gestoßen. Das brachte mich auf die Idee, diesen Ansatz zu verwenden, um zu prüfen, ob InstrumentName ein Grob ist.
[...]
Das  (für mich) interessante Ergebnis ist, dass in der Ausgabe nun zusätzlich dieser Schnippsel erscheint:

------------------------------------
InstrumentName
X: NonMusicalPaperColumn
   X,Y: System
Y: System
------------------------------------

Ich deute das, als Beleg dafür, dass auch das InstrumentName-Ding ein Grob ist und dass der Name dieses Grob "InstrumentName" ist und hiermit gefunden ist.

Richtig?

das LSR-snippet ist ja ganz nett, ich wäre allerdings anders vorgegangen.

Auch auf die Gefahr hin Dir schon bekanntes zu erzählen, so ist es doch sinnvoll sich nochmal die "naming conventions" zu verdeutlichen:
http://lilypond.org/doc/v2.19/Documentation/learning/naming-conventions-of-objects-and-properties.html

Im konkreten Fall geht es ja um instrumentName, ein context-property.
Den Eintrag in der IR zum Instrument_name_engraver hattest Du ja schon gefunden.
http://www.lilypond.org/doc/v2.19/Documentation/internals/instrument_005fname_005fengraver
Dort ist unter anderem zu lesen:
ZitatThis engraver creates the following layout object(s):

InstrumentName.

"Layout object" ist ein Synonym für "grob":
http://www.lilypond.org/doc/v2.19/Documentation/internals/backend
Zitat3. Backend
3.1 All layout objects        Description and defaults for all graphical objects (grobs).

Dann kommst Du schnell zu IR 3.1.54 InstrumentName
http://www.lilypond.org/doc/v2.19/Documentation/internals/instrumentname

Et voilà.

Tatsächlich benutze ich meistens die big-page Fassung der Manuals, um auch mit der browser-Suchfunktion suchen zu können und gehe meistens von IR 3.1 All layout objects aus.
http://www.lilypond.org/doc/v2.19/Documentation/internals-big-page#all-layout-objects
Gruß,
  Harm

martinmagtenor

Hallo Harm,

danke, das sind sehr nützliche Hinweise. Vor allem

Zitat von: harm6 am Samstag, 21. Juni 2014, 12:21
[...]
"Layout object" ist ein Synonym für "grob":
[...]

Grüße
   Martin