X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fdisplaying-grob-ancestry.ly;h=dc55c346f292d241239bf3fd83329cc80767a489;hb=7719b3925322a347391fc6c5520a1d763695560f;hp=a13e95523076ba8c793960de077766e35d07aae3;hpb=e1a149d0cc60b02e86209387958f4028567dd366;p=lilypond.git diff --git a/Documentation/snippets/displaying-grob-ancestry.ly b/Documentation/snippets/displaying-grob-ancestry.ly index a13e955230..dc55c346f2 100644 --- a/Documentation/snippets/displaying-grob-ancestry.ly +++ b/Documentation/snippets/displaying-grob-ancestry.ly @@ -1,109 +1,33 @@ -% Do not edit this file; it is automatically -% generated from Documentation/snippets/new -% This file is in the public domain. -%% Note: this file works from version 2.13.10 -\version "2.13.31" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { -%% Translation of GIT committish: 0b55335aeca1de539bf1125b717e0c21bb6fa31b - - texidoces = " -Al trabajar con los callbacks de un grob, puede ser de mucha ayuda -entender el @qq{árbol genealógico} de un grob. La mayor parte de los -grobs tienen @qq{padres} que influyen en el posicionamiento del grob. -los padres X e Y influyen en las posiciones horizontal y vertical del -grob, respectivamente. Además, cada pade puede tener padres a su vez. - - -Por desgracia, existen varios aspectos de la genealogía de un grob que -pueden llevar a confusión: - - -@itemize - -@item Los tipos de padre que tiene un grob pueden depender del -contexto. - -@item Para ciertos grobs, los padres X e Y son el mismo. - -@item Un @qq{ancestro} concreto puede estar relacionado con un grob de -mas de una manera. - -@item El concepto de @qq{generaciones} es engañoso. - -@end itemize - - -Por ejemplo, el grob @code{System} puede ser tanto un padre (sobre el -lado Y) como un abuelo (dos veces en el lado X) de un grob -@code{VerticalAlignment}. - - -Este macro imprime, en la consola, una representación textual de la -genealogía de un grob. - - -Cuando se llama de esta forma - -@example -@{ - \\once \\override NoteHead #'before-line-breaking = #display-ancestry - c4 -@} -@end example - - -Se genera la siguiente salida: - - -@example ------------------------------------- - -NoteHead X,Y: NoteColumn - X: PaperColumn - X,Y: System - Y: VerticalAxisGroup - X: NonMusicalPaperColumn - X,Y: System - Y: VerticalAlignment - X: NonMusicalPaperColumn - X,Y: System - Y: System -@end example - -" - - doctitlees = "Imprimir el árbol genealógico de un grob" - - lsrtags = "tweaks-and-overrides" + lsrtags = "devel, scheme-language, tweaks-and-overrides" texidoc = " When working with grob callbacks, it can be helpful to understand a -grob's @qq{ancestry}. Most grobs have @qq{parents} which influence the -positioning of the grob. X- and Y-parents influence the horizontal and -vertical positions for the grob, respectively. Additionally, each +grob’s ancestry. Most grobs have parents which influence the +positioning of the grob. X- and Y-parents influence the horizontal and +vertical positions for the grob, respectively. Additionally, each parent may have parents of its own. -Unfortunately, there are several aspects of a grob's ancestry that can +Unfortunately, there are several aspects of a grob’s ancestry that can lead to confusion: -@itemize - -@item -The types of parents a grob has may depend on context. - -@item -For some grobs, the X- and Y-parents are the same. +* The types of parents a grob has may depend on context. -@item -A particular @qq{ancestor} may be related to a grob in multiple ways. +* For some grobs, the X- and Y-parents are the same. -@item -The concept of @qq{generations} is misleading. +* A particular “ancestor” may be related to a grob in multiple ways. -@end itemize +* The concept of “generations” is misleading. For example, the @code{System} grob can be both parent (on the Y-side) @@ -111,55 +35,46 @@ and grandparent (twice on the X-side) to a @code{VerticalAlignment} grob. -This macro prints (to the console) a textual representation of a grob's +This macro prints (to the console) a textual representation of a grob’s ancestry. +When called this way: -When called this way - -@example -@{ - \\once \\override NoteHead #'before-line-breaking = #display-ancestry - c4 -@} -@end example - +@code{@{ \\once \\override NoteHead.before-line-breaking = +#display-ancestry c @}} The following output is generated: -@example ------------------------------------- - -NoteHead X,Y: NoteColumn - X: PaperColumn - X,Y: System - Y: VerticalAxisGroup - X: NonMusicalPaperColumn - X,Y: System - Y: VerticalAlignment - X: NonMusicalPaperColumn - X,Y: System - Y: System -@end example - +@code{NoteHead X,Y: NoteColumn + X: PaperColumn + X,Y: System + Y: VerticalAxisGroup + X: NonMusicalPaperColumn + X,Y: System + Y: VerticalAlignment + X: NonMusicalPaperColumn + X,Y: System + Y: System} " doctitle = "Displaying grob ancestry" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=622 +%% see also http://www.lilypond.org/doc/v2.18/Documentation/snippets/tweaks-and-overrides#tweaks-and-overrides-displaying-grob-ancestry -#(define (grob-name grob) - (if (ly:grob? grob) - (assoc-ref (ly:grob-property grob 'meta) 'name) - #f)) +%% Remark: +%% grob::name is in the source since 2.19.x could be deleted during next LSR-upgrade +#(define (grob::name grob) + (assq-ref (ly:grob-property grob 'meta) 'name)) #(define (get-ancestry grob) - (if (not (null? (ly:grob-parent grob X))) - (list (grob-name grob) - (get-ancestry (ly:grob-parent grob X)) - (get-ancestry (ly:grob-parent grob Y))) - (grob-name grob))) + (if (not (null? (ly:grob-parent grob X))) + (list (grob::name grob) + (get-ancestry (ly:grob-parent grob X)) + (get-ancestry (ly:grob-parent grob Y))) + (grob::name grob))) #(define (format-ancestry lst padding) (string-append @@ -192,16 +107,17 @@ NoteHead X,Y: NoteColumn (format #f "~&"))) #(define (display-ancestry grob) - (display - (string-append - (format #f "~3&~a~2%" (make-string 36 #\-)) - (format-ancestry (get-ancestry grob) 0) - (format #f "~2&")))) + (format (current-error-port) + "~3&~a~2%~a~&" + (make-string 36 #\-) + (if (ly:grob? grob) + (format-ancestry (get-ancestry grob) 0) + (format #f "~a is not a grob" grob)))) \relative c' { - \once \override NoteHead #'before-line-breaking = #display-ancestry + \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 Accidental.before-line-breaking = #display-ancestry + \once \override Arpeggio.before-line-breaking = #display-ancestry 4\arpeggio }