| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Advanced tweaks
Aquesta secció tracta sobre diferents enfocaments per a la realització d’ajustaments fins a l’aparença de la partitura impresa.
Manual d’aprenentatge: (learning)Ajustament de la sortida section ‘Ajustament de la sortida’ in Manual d’aprenentatge, (learning)Altres fonts d’informació section ‘Altres fonts d'informació’ in Manual d’aprenentatge.
Referència de la notació: Explicació del Manual de referència de funcionament intern, Modificació de les propietats.
Manual de extensió: (extending)Interfaces for programmers section ‘Interfícies per a programadors’ in Extensions.
Fitxers d’inici: ‘scm/define-grobs.scm’.
Fragments de codi: (snippets)Tweaks and overrides section ‘Tweaks and overrides’ in Fragments de codi.
Referència de funcionament intern: (internals)All layout objects section ‘All layout objects’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Aligning objects
Els objectes gràfics que donen suport a la interfície
self-alignment-interface i/o la interfície
side-position-interface es poden alinear contra un objecte
col·locat prèviament, de diverses maneres. Per veure una llista
d’aquests objectes, consulteu
(internals)self-alignment-interface section ‘self-alignment-interface’ in Referència de funcionament intern i
(internals)side-position-interface section ‘side-position-interface’ in Referència de funcionament intern.
Tots els objectes gràfics tenen un punt de referència, una extensió horitzontal i una extensió vertical. L’extensió horitzontal és una parella de nombres que són els desplaçament a partir del punt de referència de les vores esquerra i dreta, sent negatius els desplaçament cap a l’esquerra. L’extensió vertical és una parella de nombre que donen el desplaçament a partir del punt de refereǹcia fins les vores inferior i superior, sent negatius els desplaçaments cap avall.
La posició d’un objecte sobre el pentagrama ve donada pels valors
de les propietats X-offset i Y-offset. El valor de
X-offset dóna el desplaçament des de la coordenada X del
punt de referència de l’objecte pare, i el valor de
Y-offset dóna el desplaçament a partir de la línia central
del pentagrama. Els valors de X-offset i Y-offset
es poden establir directament o es pot deixar que es calculin per
part de procediments per aconseguir una alineació amb l’objecte pare.
Nota: Molts objectes tenen consideracions de posicionament
especials que fan que s’ignori o es modifiqui qualsevol ajustament
realitzat a X-offset o a Y-offset, malgrat que
l’objecte contempli la interfície self-alignment-interface.
La sobreescriptura de les propietats X-offset ó
Y-offset a un valor fix fa que es descarti la respectiva
propietat self-alignment.
Per exemple, una alteració accidental es pot tornar a posicionar
verticalment establint Y-offset però els canvis a
X-offset no tenen cap efecte.
Les lletres d’assaig es poden alinear amb objectes divisibles com
línies divisòries, claus, armadures i indicacions de compàs. Hi ha
propietats especials, que es troben a
break-aligned-interface per al posicionament de les lletres
d’assaig sobre aquests objectes.
Referència de la notació:
Ús de la break-alignable-interface.
Manual d’extensió: (extending)Callback functions section ‘Funcions de callback’ in Extensions.
Establiment directede X-offset i Y-offset | ||
Ús de la side-position-interface | ||
Ús de la self-alignment-interface | ||
Ús de la break-alignable-interface |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
X-offset i Y-offset@translationof Setting X-offset and Y-offset directly
Es poden donar valors numèrics a les propietats X-offset i
Y-offset de molts objectes. L’exemple següent mostra tres
notes amb una digitació en la seva posició predeterminada i amb
els valors X-offset i Y-offset modificats.
a'-3 a' -\tweak X-offset #0 -\tweak Y-offset #0 -3 a' -\tweak X-offset #-1 -\tweak Y-offset #1 -3
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
side-position-interface@translationof Using the side-position-interface
Un objecte que doni suport a la side-position-interface es
pot col·locar junt a un objecte pare de forma que els bords
especificats dels dos objects es toquin. L’objecte es pot situar
a sobre, a sota, a la dreta o a l’esquerra de l’objecte pare. EL
pare no es pot especificar; ve determinat per l’ordre dels
elements al flux d’entrada. Gairebé tots els objectes tenen el
cap de la nota associada com a pare.
Els valors de les propietats side-axis i direction
determinen on col·locar l’objecte, com segueix:
side-axis | direction | |
|---|---|---|
| propiedad | propiedad | col·locació |
0 | -1 | esquerra |
0 | 1 | dreta |
1 | -1 | a sota |
1 | 1 | a sobre |
Si side-axis és 0, X-offset s’ha d’establir
al procediment ly:side-position-interface::x-aligned-side.
Aquest procediment retorna el calor correcte de X-offset
per situar l’objecte al costat esquerre o dret del pare d’acord
amb el valor de direction.
Si side-axis és 1, Y-offset s’ha d’establir
al procediment ly:side-position-interface::y-aligned-side.
Aquest procediment retorna el valor correcte de Y-offset
per situar l’objecte a sobre o a sota del pare d’acord amb el
valor de direction.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
self-alignment-interface@translationof Using the self-alignment-interface
L’alineació horitzontal d’un objecte que dona suport a la interfície
self-alignment-interface està controlada pel valor de la
propietat self-alignment-X, sempre i quan la propietat
X-offset d’aquest objecte està establerta a
ly:self-alignment-interface::x-aligned-on-self. Se li pot
donar a self-alignment-X qualsevol valor real, en unitats
de la meitat de l’extensió X tal de l’objecte. Els valors
negatius mouen l’objecte a la dreta, els positius cap a
l’esquerra. Un valor de 0 centra l’objecte sobre el punt
de referència del seu pare, un valor de -1 alinear la
vora esquerra de l’objecte sobre el punt de referència del seu
pare, i un valor de 1 alinea la vora dreta de l’objecte
sobre el punt de referència del seu pare. Es poden usar els
símbols LEFT, CENTER i RIGHT en substitució
dels valors -1, 0 i 1, respectivament.
Normalment s’usaria l’ordre \override per modificar el
valor de self-alignment-X, però es pot usar l’ordre
\tweak per alinear diverses anotacions per separat sobre
una sola nota:
a' -\tweak self-alignment-X #-1 ^"left-aligned" -\tweak self-alignment-X #0 ^"center-aligned" -\tweak self-alignment-X #RIGHT ^"right-aligned" -\tweak self-alignment-X #-2.5 ^"aligned further to the right"
Els objectes es poden alinear verticalment en una forma anàloga a
la alineació horitzontal si la propietat Y-offset està
establerta a
ly:self-alignment-interface::y-aligned-on-self. Malgra
això, sovint es troben implicats altres mecanismes en l’alineació
vertical: el valor de Y-offset és tan sols una variable que
es té compte. Això pot fer que ajustar el valor de certes
objectes sigui un tasca dificultosa. Les unitats son sols la
meitat de les dimensions verticals de l’objecte, que sols ser
força petit, per la qual cosa poden requerir-se nombres força
grans. Un valor de -1 alinea la vora inferior de
l’objecte amb el punt de referència de l’objecte pare, un valor de
0 alinea el centre de l’objecte amb el punt de referència
del pare, i un valor de 1 alinear la vora superior de
l’objecte amb el punt de referència del pare. Es poden usar els
símbols DOWN, CENTER, UP en substitució de
-1, 0 i 1, respectivament.
Auto-alineació d’objectes en las dues direccions
Establint tant X-offset com Y-offset, es pot alinear
un objecte en les dues direccions simultàniament.
L’exemple següent mostra com ajustar una digitació de forme que s’apropi al cap de la nota:
a' -\tweak self-alignment-X #0.5 % mou horitzontalment cap a l'esquerra -\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self -\tweak self-alignment-Y #-1 % mou amunt verticalment -3 % tercer dit
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
break-alignable-interface@translationof Using the break-alignable-interface
Les lletres d’assaig es poden alinear amb objectes de notació
diferents a les barres de compàs. Aquests objectes són
ambitus, breathing-sign, clef, custos,
staff-bar, left-edge, key-cancellation,
key-signature i time-signature.
Cada tipus d’objecte té el seu propi punt de referència predeterminat, amb el que s’alineen les marques d’assaig:
% La marca d'assaig s'alinearà amb la vora dreta de la clau \override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e'1 % La marca d'assaig s'alinearà amb la vora esquerra de la indicació de temps \override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble \time 3/4 \mark "↓" e'2. % La marca d'assaig se centrarà sobre la marca de respiració \override Score.RehearsalMark.break-align-symbols = #'(breathing-sign) \key a \major \clef treble \time 4/4 e'1 \breathe \mark "↓"
Es pot identificar una llista de possibles objectes per a
l’alineació. Si alguns dels objectes són invisibles en aquest
punt a causa del valor de break-visibility o de valors de
visibilitat explícits per a les armadures i les claus, la lletra
d’assaig o número de compàs s’alineen amb el primer objecte de la
llista que sigui visible. Si cap objecte de la llista és visible,
l’objecte s’alinea amb la línia divisòria. Si la línia divisòria
és invisible, l’objecte s’alinea amb el punt en el qual es
trobaria la línia divisòria.
% La marca d'assaig s'alinearà amb la vora dreta de l'armadura \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1 % La marca d'assaig s'alinearà amb la vora dreta de la clau \set Staff.explicitKeySignatureVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef bass \mark "↓" gis,1 % La marca d'assaig se centrarà sobre la línia de compàs \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.explicitClefVisibility = #all-invisible \override Score.RehearsalMark.break-align-symbols = #'(key-signature clef) \key a \major \clef treble \mark "↓" e'1
L’alineació de la lletra d’assaig amb relació a l’objecte de notació es pot canviar, som es veu a l’exemple següent. En aquesta partitura amb diversos pentagrames, aquest ajustament s’ha de fer per a tots els pentagrames.
% La marca d'assaig s'alinearà amb la vora dreta de l'armadura \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \key a \major \clef treble \time 4/4 \mark "↓" e'1 % La marca d'assaig se centrarà sobre l'armadura \once \override Score.KeySignature.break-align-anchor-alignment = #CENTER \mark "↓" \key a \major e'1 % La marca d'assaig s'alinearà amb la vora esquerra de l'armadura \once \override Score.KeySignature.break-align-anchor-alignment = #LEFT \key a \major \mark "↓" e'1
La lletra d’assaig també es pot desplaçar a la vora dreta o esquerra en una mesura arbitrària. Les unitats són espais de pentagrama:
% La marca d'assaig s'alinearà amb la vora esquerra de l'armadura % i després es desplaçarà 3.5 espais de pentagrama a la dreta % and then shifted right by 3.5 staff-spaces \override Score.RehearsalMark.break-align-symbols = #'(key-signature) \once \override Score.KeySignature.break-align-anchor = #3.5 \key a \major \mark "↓" e'1 % La marca d'assaig s'alinearà amb la vora esquerra de l'armadura % i després es desplaçarà 2 espais de pentagrama a l'esquerra \once \override Score.KeySignature.break-align-anchor = #-2 \key a \major \mark "↓" e'1
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Vertical grouping of grobs
Els grobs (objectes gràfics) VerticalAlignment i
VerticalAxisGroup treballen de manera coordinada.
VerticalAxisGroup agrupa diversos grobs com Staff,
Lyrics, etc. Després, VerticalAlignment alinea els
diferents grobs agrupats prèviament per
VerticalAxisGroup. Normalment sols existeix un
VerticalAlignment per cada partitura, però cada
Staff, Lyrics, etc. té el seu propi
VerticalAxisGroup.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Modifying stencils
Tots els objectes de presentació tenen una propietat
stencil que és part del grob-interface. De forma
predeterminada, aquesta propietat sol estar establerta a una
funció específica de l’objecte que està feta a mida per disposar
del símbol que el representa a la sortida. Per exemple,
l’ajustament estàndard per a la propietat stencil de l’objecte
MultiMeasureRest és ly:multi-measure-rest::print.
El símbol estàndard de qualsevol objecte es pot substituir
modificant la propietat stencil perquè faci referència a un
procediment diferent escrit especialment. Això requereix un alt
nivell de coneixement del funcionament intern del LilyPond, però
hi ha una forma més fàcil que sovint pot donar resultats adequats.
El procediment consisteix a establir la propietat stencil
al procediment que imprimeix text
(ly:text-interface::print) i afegir una propietat
text a l’objecte ajustada perquè contingui el text de
marcatge que produeix el símbol requerit. A causa de la
flexibilitat del marcatge, es poden aconseguir moltes coses: en
particular, consulteu
Notació gràfica dins d’elements de marcatge.
L’exemple següent mostra això canviant el símbol del cap de la nota a unes aspes dins d’una circumferència:
XinO = { \once \override NoteHead.stencil = #ly:text-interface::print \once \override NoteHead.text = \markup { \combine \halign #-0.7 \draw-circle #0.85 #0.2 ##f \musicglyph "noteheads.s2cross" } } \relative { a' a \XinO a a }
Qualssevol dels glifs de Feta usats al tipus de lletra El tipus de lletra Emmentaler.
Es poden inserir en línia tant imatges en forma ‘EPS’ com
ordres de Postscrip usant les ordres de marcatge \epsfile i
\postscript respectivament; vegeu
(notation)Graphic section ‘Grafisme’ in Referència de la notació.
Referencia de la notación: Notació gràfica dins d’elements de marcatge, Donar format al text, Ordres de marcatge de text, El tipus de lletra Emmentaler, (notation)Graphic section ‘Grafisme’ in Referència de la notació.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Modifying shapes
| Modificació de lligadures d’unió i d’expressió |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Modifying ties and slurs
Les lligadures d’unió (Ties), d’expressió (Slurs),
de fraseig (PhrasingSlurs), de deixar vibrar
(LaissezVibrerTies) i de repetició (RepeatTies) es
tracen com corbes de Bézier de tercer ordre. Si la forma de la
ligadur calculada automàticament no resulta òptima, es pot
modificar la seva forma manualment de dues formes:
A continuació s’expliquen ambdós mètodes. El primer mètode és més adequat quan sols calen lleugers ajustaments de la corba; el segon pot ser millor per crear corbes que tenen relació amb una única nota.
Les corbes Bézier de tercer ordre o cúbiques estan definides per quatre punts de control. El primer i quart punts de control són exactament els punts extrems de començament i de final de la corba. Els dos punts de control intermedis defineixen la forma. Es poden trobar a la web animacions que mostren com es traça la corba, però la descripció següent pot ser d’ajuda. La corba comença a partir del primer punt de control dirigint-se directament cap al segon, corbant-se progressivament per dirigir-se cap al tercer i continuant la corba cap al quart, arribant a aquest punt en viatge directe des del tercer punt de control. La corba està continguda enterament dins del quadrilàter definit pels quatre punts de control. Totes les translacions, rotacions i escalats dels punts de control produeixen exactament les mateixes operacions sobre la corba.
En aquest exemple, la col·locació automàtica de la lligadura no
resulta òptima, i \tieDown no és la solució.
<< { e'1~ 1 } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
Els ajustaments dels punts de control de la lligadura mitjançant
l’ordre \shape permet evitar les col·lisions.
La sintaxi de \shape és:
[-]\shape desplaçament element |
Aquesta ordre recol·loca els punts de control d’element en
les quantitats donades per desplaçaments. L’argument
desplazamientos és una llista de parelles de nombres o una
llista d’aquestes llistes. Cada element d’una parella representa
el desplaçament d’una de les coordenades d’un punt de control.
Si l’element és una cadena de caràcter. el resultat és
\once\override per al tipus de grob especificat. Si
elemento és una expressió musical, el resultat és la mateixa
expressió musical amb la consegüent modificació aplicada.
En altres paraules, la funció \shape pot actuar com una
ordre \once\override o com una ordre \tweak depenent
de si l’argument element és el nom d’un grob, com “Slur”,
o una expressió musical, com “(”. L’argument
desplaçaments especifica els desplaçaments dels quatre punts
de control com una llista de quatre parelles de valors (dx . dy)
en unitats d’espais de pentagrama (o una llista d’aquestes llistes
si la corba té més d’un segment).
El guió precedent s’exigeix si, i sols si, s’usa la forma
\tweak.
Així, usant el mateix exemple anterior i la forma
\once\override de l’ordre \shape, el següent té
l’efecte d’elevar la lligadura d’unió en la meitat d’un espai de
pentagrama:
<< { \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie e'1~ 1 } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
Aquest posicionament de la lligadura d’unió és millor, però potser
hauria d’elevar-se més a la part central. L’exemple següent fa
això, aquest cop usant la forma alternativa \tweak:
<< { e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e' } \\ \relative { r4 <g' c,> <g c,> <g c,> } >>
Els canvis en les posicions horitzontals dels punts de control es poden fer de la mateixa forma, i dues corbes diferents que comencen al mateix moment musical també es poden conformar:
\relative { c''8(\( a) a'4 e c\) \shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur \shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur c8(\( a) a'4 e c\) }
La funció \shape també pot desplaçar els punts de control
de les corbes que s’estenen travessant salts de línia. Cada peça
de la corba dividida pot rebre la seva pròpia llista de
desplaçaments. Si no cal fer canvis a un dels segments en
particular, es pot usar una llista buida contenidor. En aquest
exemple, el salt de línia fa que l’única lligadura d’expressió
aparegui com si fossin dos:
\relative { c'4( f g c \break d,4 c' f, c) }
Els canvis en la forma de les dues meitats de la lligadura d’expressió deixa més clar que la lligadura continua més enllà del salt de línia:
% () es pot usar com a abreviatura per a ((0 . 0) (0 . 0) (0 . 0) (0 . 0)) % si no cal canviar algun dels segments \relative c' { \shape #'( (( 0 . 0) (0 . 0) (0 . 0) (0 . 1)) ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5)) ) Slur c4( f g c \break d,4 c' f, c) }
En una corba en forma d’«S» sempre cal ajustar manualment els punts de control: el Lilypond mai no escull aquestes formes automàticament.
\relative c'' { c8( e b-> f d' a e-> g) \shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur c8\( e b-> f d' a e-> g\) }
Les coordenades dels punts de control de Bézier s’especifiquen en unitats d’espais de pentagrama. La coordenada X és relativa al punt de referència al qual s’adjunta la lligadura, i la coordenada Y és relativa a la línia central del pentagrama. Les coordenades s’especifiquen com una llista de quatre parelles de nombres decimals (reals). Un enfocament consisteix a estimar les coordenades dels dos extrems, i després endevinar els dos punts intermedis. Els valores òptims es troben després per prova i error. Tingueu en compte que aquests valors podrien requerir un ajustament manual si es fa posteriorment qualsevol canvi manual a la música o a la disposició.
Una situació en la qual és preferible especificar els punts de control explícitament a especificar els desplaçaments és quan cal especificar-los de forma relativa a una nota única. A continuació presentem un exemple d’això. Mostra una forma d’indicar una lligadura que s’estén cap a l’interior de les caselles de primera i segona veu d’una repetició.
\relative { c''1 \repeat volta 3 { c4 d( e f } \alternative { { g2) d } { g2 % crea una lligadura d'expressió i mou-la a una nova posició % <> és simplement un acord buit per portar el final de la lligadura d'unió -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> ) f, } { e'2 % create a slur and move it to a new position -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> ) f, } } }
No és possible modificar la forma de les lligadures d’unió o
d’expressió canviant la propietat control-points si hi ha
més d’una en el mateix moment musical, ni tan sols usant l’ordre
\tweak. Malgrat això, es pot sobreescriure la propietat
tie-configuration de TieColumn per fixar la línia
d’inici i la direcció segons es requereixi.
Referència de funcionament intern: (internals)TieColumn section ‘TieColumn’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Modifying broken spanners
Ús d’\alterBroken |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\alterBroken@translationof Using alterBroken
Quan un “spanner” o objecte extens travessa un o diversos salts
de línia, cada fragment hereva els atributs de l’objecte
d’extensió original. Així, l’ajustament ordinari d’un objecte
dividit aplica les mateixes modificacions a tots i cada un dels
seus segments. A l’exemple que apareix a continuació, la
sobreescriptura de thickness (gruix) afecta a la lligadura
a ambdós costats del salt de línia.
\relative c'' { r2 \once\override Slur.thickness = 10 c8( d e f \break g8 f e d) r2 }
És possible modificar de forma independent l’aspecte dels
fragments individuals d’un objecte d’extensió dividit, amb l’ordre
\alterBroken. Aquesta ordre pot produir un
\override o bé un \tweak d’una propietat de
l’objecte d’extensió.
La sintaxi d’\alterBroken és
[-]\alterBroken propietat valors element |
L’argument valors és una llista de valors, un per a cada
fragment. Si element és el nom d’un grob com ara
Slur o Staff.PianoPedalBracket, el resultat és una
ordre de sobreescriptura \override del tipus de grob
especificat. Si element és una expressio musical com
“(” o “[” el resultat és la mateixa expressió musical amb el
corresponent ajustament aplicat.
El guió inicial s’ha d’utilitzar amb la forma d’ajustament,
\tweak. No ho escriviu quan utilitzeu \alterBroken
com una operació de sobreescriptura, \override.
En el seu ús com \override, \alterBroken pot anar
precedit de \once o \temporary i ser revertit amb
\revert amb l’argument propietat.
El codi següent aplica un \override independent a cada un
dels fragments de la lligadura de l’exemple anterior:
\relative c'' { r2 \alterBroken thickness #'(10 1) Slur c8( d e f \break g8 f e d) r2 }
L’ordre \alterBroken es pot usar amb qualsevol objecte
d’extensió, inclosos Tie, PhrasingSlur,
Beam i TextSpanner. Per exemple, un editor que està
preparant una edició acadèmica podria desitjar indicar l’absència
de part d’una lligadura de fraseig a un codi font fent discontinu
sols el segment que s’ha afegit. El següent exemple il·lustra de
quina manera es pot fer això, en aquest cas usant la forma
\tweak de l’ordre:
% La llista buida s'usa convenientment a sota, atès que és la % configuració predeterminada de línia, una línia sòlida \relative { c''2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e \break g2 e\) }
És important comprendre que \alterBroken estableix cada
peça de l’objecte fragmentat al valor corresponent dins de
l’argument valors. Quan hi ha menys valors que peces,
qualsevol fragment addicional rep l’assignació de la llista
buida. Això pot portar a resultats no desitjats si la propietat
de disposició no està establerta a la llista buida de forma
predeterminada. En aquests casos, s’ha d’assignar a cada segment
un valor adequat.
Els salts de línia poden ocórrer en diferents llocs segons canvia
la disposició de la música. Els ajustaments escollits per a
\alterBroken podrien no ser adequats per a un objecte
d’extensió que no està dividit o que es fragmenta en més peces que
abans. L’ús explícit (manual) de salts de línia mitjançant
\break pot prevenir aquest tipus de situacions.
L’ordre \alterBroken no és efectiva per a propietats dels
objectes extensos accedides abans del salt de línia, com
direction.
Extender LilyPond: (extending)Difficult tweaks section ‘Ajustaments difícils’ in Extensions.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Unpure-pure containers
Els contenidors ‘unpure-pure’ (purs i no purs) són útils per a
la sobreescriptura dels càlculs de l’espaiat a l’eix Y
(concretament Y-offset i Y-extent) amb una funció de
l’Scheme en comptes d’un literal, és a dir, un nombre o una
parella de nombres.
Per certs objectes gràfics, les dimensions Y-extent estan
basades en la propietat stencil, la sobreescriptura de la
propietat de segell d’aquests objectes gràfics requereix una
sobreescriptura addicional de Y-extent amb un contenidor
unpure-pure. Quan una funció sobreescriu una dimensió
Y-offset i/o Y-extent se suposa que això dispara els
càlculs dels salts de línia prematurament durant la compilació.
Així doncs, la funció no s’avalua en absolut (retornant en general
un valor de ‘0’ o ‘'(0 . 0)’) cosa que pot ocasionar
col·lisions. Una funció ‘pura’ no afecta a les propietats,
objectes o suicidis de grobs, i per això els seus valors
relacionats amb l’eix Y sempre s’avaluen correctament.
Actualment hi ha unes treinta funcions que ja es consideren ‘puras’ i els contenidors Unpure-pure són una manera d’establir funcions que no estan a la llista com ‘pures’. La funció ‘pura’ s’avalua abans de qualsevol salt de línia i així l’espaiat horitzontal es pot ajustar ‘a temps’. La funció ‘impura’ s’avalua aleshores després del salt de línia.
Nota: Donat que és difícil saber sempre quines funcions estan
en aquesta llista, recomanem que qualsevol funció ‘pura’ que
estem creant no utilitzeu els grobs Beam o
VerticalAlignment.
Un contenidor ‘unpure-pure’ es construeix de la manera següent:
(ly:make-unpure-pure-container f0 f1)
on f0 és una funció que agafa n arguments (n >=
1) i el primer argument sempre ha de ser el grob. Aquesta és
la funció que dóna el resultat real. f1 és la funció que
s’etiqueta com a ‘pura’ que agafa n + 2 arguments. Un
altre cop, el primer argument ha de ser sempre el grob però els
arguments segon i tercer són arguments d’‘inici’ i de ‘final’.
inici i final són, a tots els efectes, valors muts que
sols tenen importància per als objectes d'extensió (o
sigui: Hairpin, regulador, o Beam, barra), que poden
retornar diferents estimacions d’altura basades en una columna
d’inici i una de final.
La resta són els altres arguments per a la primera funció (que pot no ser cap si n = 1).
El resultat de la segona funció s’usa com una aproximació del valor necessari, que s’usa aleshores per la primera funció per obtenir el valor real que s’usa a continuació per a l’ajustament de precisió molt més tardà durant el procés d’espaiat.
#(define (square-line-circle-space grob) (let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch)) (notename (ly:pitch-notename pitch))) (if (= 0 (modulo notename 2)) (make-circle-stencil 0.5 0.0 #t) (make-filled-box-stencil '(0 . 1.0) '(-0.5 . 0.5))))) squareLineCircleSpace = { \override NoteHead.stencil = #square-line-circle-space } smartSquareLineCircleSpace = { \squareLineCircleSpace \override NoteHead.Y-extent = #(ly:make-unpure-pure-container ly:grob::stencil-height (lambda (grob start end) (ly:grob::stencil-height grob))) } \new Voice \with { \remove "Stem_engraver" } \relative c'' { \squareLineCircleSpace cis4 ces disis d \smartSquareLineCircleSpace cis4 ces disis d }
En el primer compàs, sense el contenidor unpure-pure, el motor d’espaiat no coneix l’amplada del cap de la nota i permet que col·lisioni amb les alteracions accidentals. En el segon compàs, el motor d’espaiat coneix l’amplada dels caps de les notes i evita la col·lisió mitjançant l’allargament de la línia en la mesura adequada.
Normalment, per als càlculs simples es poden usar funcions gairebé
idèntiques tant per a les parts ‘no pura’ i ‘pura’, simplement
canviant el nombre d’arguments que es passen a, i l’àmbit de la
funció. Aquest cas d’utilització és prou suficient com perquè
ly:make-unpure-pure-container construeixi aquesta segona
funció de forma predeterminada quan es crida amb sols un argument
de funció.
Nota: Si una funció està caracteritzada com a ‘pura’ i resulta que no ho és, el resultat pot ser inesperat.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] |
This document was generated by gub on Juliol 13, 2020 using texi2html 1.82.
Altres idiomes: English, deutsch, español, français, italiano, 日本語.
Quant a la selecció automàtica de la llengua.