Manual d'aprenentatge del GNU LilyPond: 5.6.1 Moviment d'objectes

### 5.6.1 Moviment d’objectes

Tot i que us pugui sorprendre, el LilyPond no és perfecte. Certs elements de notació es poden superposar, cosa que és una llàstima, però en realitat és força poc freqüent. Normalment la necessitat de moure objectes és fa per claredat o per raons estètiques: l’aspecte és millor amb una mica més o una mica menys d’espai de separació.

Hi ha tres enfocaments principals que porten a la resolució de superposicions en la notació. S’han de considerar a l’ordre següent:

1. La direcció d’un dels objectes que se superposen es pot canviar usant les ordres predefinides que es relacionen a dalt per als objectes dins-del-pentagrama (vegeu Objectes interiors al pentagrama). Es poden recol·locar fàcilment les pliques, lligadures d’expressió i d’unió, barres de corxera, indicacions dinàmiques, text i grups de valoració especial d’aquesta forma. La limitació és que sols teniu la possibilitat d’escollir entre dues posicions, i podria ser que cap d’elles sigui l’adequada.
2. Les propietats de l’objecte, que el LilyPond fa servir quan està col·locant els objectes de presentació, es poden modificar usant l’ordre de sobreescriptura `\override`. Els avantatges de fer canvis a aquest tipus de propietat són: a) que algun altre objecte es mourà automàticament si és necessari, per deixar-li lloc, i b) una única sobreescriptura es pot aplicar a totes les instàncies del mateix tipus d’objecte. Entre aquestes propietats es troben:
   - `direction` (direcció)

     Ja s’ha estudiat amb cert detall: vegeu Objectes interiors al pentagrama.

   - `padding` (farciment), `right-padding` (farciment per la dreta), `staff-padding` (farciment de pentagrama)

     Segons quin objecte s’està col·locant, el valor de la seva propietat de farciment `padding` especifica l’espai intermedi que s’ha de deixar entre l’objecte i el límit més pròxim de l’objecte contra el qual s’esta col·locant. Observeu que és el valor de `padding` de l’objecte que s’està col·locant el que s’ignora. Els espais intermedis especificats mitjançant `padding` es poden aplicar a tots els objectes que contemplen la interfície `side-position-interface`.

     En comptes de fer-lo amb `padding`, la col·locació dels grups d’alteracions es controla amb `right-padding`. Aquest propietat es troba a l’objecte `AccidentalPlacement` que, observeu, viu dins el context de Staff. Durant el procés tipogràfic, els caps de les notes es componen tipogràficament en primer lloc, i després les alteracions, si hi ha, s’afegeixen a l’esquerre dels caps utilitzant la propietat de farciment per la dreta `right-padding` per determinar la separació entre l’alteració i el cap, i de les alteracions entre sí. Així doncs, sols la propietat de farciment per la dreta `right-padding` de l’objecte `AccidentalPlacement` té efecte sobre les col·locacions de les alteracions.

     La propietat `staff-padding` està estretament relacionada amb la propietat `padding`: `padding` controla la separació mínima entre qualsevol objecte que contempli la interfície `side-position-interface` i l’objecte més proper (generalment la nota o les línies del pentagrama); `staff-padding` s’aplica sols als objecte que sempre se situen fora del pentagrama: controla la separació mínima entre aquest objecte i el pentagrama. Observeu que `staff-padding` no té cap efecte sobre objectes que se posicionen respecte a la nota en comptes de fer-lo respecte al pentagrama, fins i tot malgrat pot ser sobreescrit sense error per aquests objectes: simplement s’ignora.

     Per descobrir quina propietat de farciment cal per a l’objecte que es vol recol·locar, heu de tornar al manual de RFI i buscar les propietats de l’objecte. Aneu amb cura perquè les propietats de farciment podrien no estar a l’objecte més obvi, així que busqueu als objectes que puguin tenir alguna relació amb ell.

     Tots els valors de farciment es mesuren en espais del pentagrama. Per a la major part dels objectes el valor s’estableix de forma predeterminada en aproximadament 1.0 o menys (varia amb cada objecte). Es pot sobreescriure si cal una separació intermèdia més gran (o més petita).

   - `self-alignment-X` (Auto-alineament a l’eix X)

     Aquesta propietat es pot usar per alinear l’objecte a l’esquerra, a l adreta, o centrar-lo amb respecte al punt de referència de l’objecte «pare». Es pot usar amb tot els objectes que respecten la interfície `self-alignment-interface`. En general són objectes que contenen text. Els valors són `LEFT`, `RIGHT` o `CENTER`. De forma alternativa es pot especificar un valor numèric entre `-1` i `+1`, no `-1` s’alinea per l’esquerra, `+1` s’alinea per la dreta, i els números intermedis mouen el text progressivament des d’alineat per l’esquerra fins a alineat per la dreta. Es poden especificar valors numèrics majors de `1` per moure el text fins i tot més lluny cap a l’esquerra, o menys de `-1` per allunyar-lo més cap a la dreta. Un canvi a `1` en el valor correspon a un moviment de la meitat de la longitud total del propi text.

   - `extra-spacing-width` (amplitud de separació addicional)

     Aquesta propietat està disponible per a tots els objectes que respecten la interfície `item-interface`. Agafa dos números, el primer se suma al límit esquerre i el segon se suma al limit dret. Els números negatius desplacen el límit a l’esquerre i els positius a la dreta, per la qual cosa per eixamplar un objecte el primer número ha de ser negatiu i el segon positiu. Observeu que no tots els objectes ostenten els dos números. Per exemple, l’objecte `Accidental` (alteració) sols té en compte el primer número (la vora esquerra).

   - `staff-position` (posició de pentagrama)

     `staff-position` és una propietat de la interfície `staff-symbol-referencer-interface`, que respecten els objectes que es col·loquen amb relació al pentagrama. Especifica la posició vertical de l’objecte amb relació a la tercera línia del pentagrama en mitjos espais de pentagrama. És útil a la resolució de col·lisions entre objectes de presentació com silencis multi-compàs, lligadures d’unió i notes a veus diferents.

   - `horizontal-shift`

     Dins d’una veu, totes les notes que es produeixen al mateix moment s’agrupen a una columna de notes, i es crea un objecte `NoteColumn` per controlar el posicionament horitzontal d’aquest grup de notes (vegeu “Columnes de nota” a Veus explícites). Si i sols si dos o més columnes de nota dins d’un sol context de pauta, les dues amb pliques en la mateixa direcció, apareixen al mateix moment musical, els valors de les seves propietats `horizontal-shift` s’usen per assignar-los una puntuació i les columnes amb puntuacions més altes es desplacen progressivament per evitar les col·lisions entre els caps de les notes. Aquesta propietat s’estableix amb les ordres `\voiceXXX` i es poden sobreescriure directament amb una ordre `\override` o, de forma més comuna amb les ordres `\shiftOn`. Observeu que aquesta propietat s’usa per qualificar les columnes de nota o per aplicar desplaçaments: no especifica la magnitud del desplaçament, que es va incrementant progressivament en passos basant-se en l’amplitud dels caps de nota per a cada puntuació. Els passos són normalment de la meitat de l’amplitud d’un cap de nota, però pot ser l’amplitud completa del cap d’una nota quan està implicat un grup de notes molt atapeït.

   - `force-hshift` (forçar desplaçament horitzontal)

     La propietat `force-hshift` és una propietat d’una `NoteColumn` (realment ho és de la interfície `note-column-interface`). Modificar-lo permet moure una columna de notes en situacions on les columnes de notes se superposen. Observeu que no té efecte sobre les columnes de nota que no se superposen. S’especifica en unitats adequades a una columna de notes, per exemple l’amplitud del cap de la nota de la primera veu. S’ha d’usar en situacions complexes on les ordres `\shiftOn` normals (véase Veus explícites) no resolen el conflicte entre les notes de forma satisfactòria. És preferible a la propietat `extra-offset` per a aquest propòsit, perquè no cal esbrinar la distància en espais de pentagrama, i moure les notes dins o fora d’una `NoteColumn` afecta a d’altres accions, com ara a la fusió entre caps de nota.

3. Finalment, quant tota la resta falla, els objectes es poden tornar a posicionar manualment amb relació a la tercera línia del pentagrama verticalment, o desplaçant-los una certa distància a una nova posició. Els desavantatges són que els valors correctes per al nou posicionament s’han d’esbrinar, sovint per prova i error, per a cada objecte individual i, atès que el moviment es fa després que el LilyPond ha col·locat tota la resta d’objectes, l’usuari és responsable d’evitar cap col·lisió que pogués produir-se. Però la dificultat principal podria haver de tornar a calcular la posició si la música es modifica més tard. Les propietats que es poden suar per a aquest tipus de posicionament manual són:
   `extra-offset (desplaçament addicional)`

     Aquesta propietat s’aplica a qualsevol objecte de presentació que respecti el `grob-interface`. Agafa una parella de números que especifiquen el desplaçament addicional a les direccions horitzontal i vertical. Els nombres negatius mouen l’objecte a l’esquerra o cap avall. Les unitats són espais de pentagrama. El desplaçament addicional es fa després que la composició tipogràfica dels objectes ha acabat, així que un objecte pot ser tornat a posicionar a qualsevol lloc sense afectar cap altra cosa.

   `positions (posicions)`

     Aquesta propietat és de la major utilitat per ajustar manualment la inclinació i l’alçada de les barres de corxera, lligadures d’expressió i claus de grups de valoració especial. Agafa una parella de números que donen la posició dels extrems esquerre i dret de la barra, lligadura, etc. amb relació a la tercera línia del pentagrama. Les unitats són espais de pentagrama. Observeu, però, que les lligadures d’expressió i de fraseig no es poden tornar a posicionar en quantitats arbitràriament grans. El LilyPond en primer lloc genera una llista de posicions possibles per a la lligadura i de forma predeterminada troba la lligadura que té “millor aspecte”. Si la propietat `positions` s’ha sobreescrit, la lligadura que està més a prop de les posicions que s’han sol·licitat se selecciona de la llista.

Un objecte en particular podria no tenir totes aquestes propietats. Cal anar al manual RFI per buscar quines propietats estan disponibles per a l’objecte en qüestió.

Aquí presentem una llista dels objectes que és més probable que estiguin implicats en col·lisions, amb el nom de l’objecte que s’hauria de buscar al RFI per descobrir quines propietats s’han d’usar per a moure’ls.

Tipus d’objecte | Nom de l’objecte
--- | ---
Articulacions | `Script`
Barres | `Beam`
Dinàmica (verticalment) | `DynamicLineSpanner`
Dinàmica (horitzontalment) | `DynamicText`
Digitacions | `Fingering`
Marques d’assaig i textuals | `RehearsalMark`
Lligadures de expressió | `Slur`
Text, per exemple `^"text"` | `TextScript`
Lligadures d’unió | `Tie`
Grups de valoració especial | `TupletBracket`

#### LilyPond — Manual d’aprenentatge v2.24.4 (branca estable).