[ << Modifica dell’output ] | [Top][Contents][Index] | [ Modelli >> ] |
[ < Oggetti esterni al rigo ] | [ Up : Oggetti esterni al rigo ] | [ Il comando \textLengthOn > ] |
La proprietà outside-staff-priority
Gli oggetti dai valori più bassi per la proprietà
outside-staff-priority
vengono posizionati più vicino al rigo,
mentre gli altri oggetti esterni al rigo vengono distanziati quanto
basta per evitare collisioni. La proprietà outside-staff-priority
è
definita nell’interfaccia grob-interface
ed è quindi una proprietà di
tutti gli oggetti di formattazione. Il valore predefinito è #f
per
tutti gli oggetti interni al rigo e un valore numerico appropriato, determinato
al momento della creazione dell’oggetto, per ogni oggetto esterno al rigo.
Si veda la tabella dettagliata in Valori prefefiniti di outside-staff-priority.
Si notino i nomi insoliti di alcuni oggetti: gli oggetti estensori (spanner)
sono creati automaticamente per controllare la disposizione verticale dei
grob che (potrebbero) iniziare e finire in diversi momenti musicali, quindi
la modifica della proprietà outside-staff-priority
del grob sottostante
non produrrebbe alcun effetto. Ad esempio, la modifica di
outside-staff-priority
dell’oggetto Hairpin
non avrà alcun
effetto sulla disposizione verticale delle forcelle. Occorre invece modificare
la proprietà outside-staff-priority
dell’oggetto associato
DynamicLineSpanner
. Questa sovrascrittura deve essere posta
all’inizio dell’estensore, che potrebbe includere più forcelle e indicazioni dinamiche
tra loro collegate.
Ecco un esempio che mostra il posizionamento predefinito di alcuni di questi oggetti.
% Imposta i dettagli per l'estensore del testo seguente \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Posiziona le dinamiche sopra il rigo \dynamicUp % Inizia la parentesi dell'ottava \ottava #1 c''4 \startTextSpan % Aggiunge il testo della dinamica e la forcella c''4\pp\< c''4 % Aggiunge la scritta testuale c''4^Text | c''4 c'' % Aggiunge il testo della dinamica e termina la forcella c''4\ff c'' \stopTextSpan | % Chiude la parentesi dell'ottava \ottava #0 c'4 c' c' c' |
Questo esempio mostra anche come creare gli estensori (spanner) del testo,
ovvero testo con delle linee che si estendono sopra una sezione musicale.
L’estensore si allunga dal comando \startTextSpan
fino al comando
\stopTextSpan
e il formato del testo è definito dal comando
\override TextSpanner
. Per maggiori dettagli si veda Estensori del testo.
Mostra anche come si creano le estensioni del segno d’ottava.
Se i valori predefiniti di outside-staff-priority
non producono
il posizionamento desiderato, è possibile sovrascrivere la priorità di
qualsiasi oggetto. Immaginiamo di voler posizionare l’estensione del segno d’ottava
sotto l’estensore del testo nell’esempio precedente. Basta controllare la
priorità dell’oggetto OttavaBracket
nella tabella in
Valori predefiniti di outside-staff-priority o nella Guida al
funzionamento interno e ridurla a un valore inferiore a quello di un
oggetto TextSpanner
, ricordando che OttavaBracket
è creato
nel contesto Staff
:
% Imposta i dettagli per l'estensore del testo seguente \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Posiziona le dinamiche sopra il rigo \dynamicUp % Inizia la parentesi dell'ottava \ottava #1 c''4 \startTextSpan % Aggiunge il testo della dinamica e la forcella c''4\pp\< c''4 % Aggiunge la scritta testuale c''4^Text | c''4 c'' % Aggiunge il testo della dinamica e termina la forcella c''4\ff c'' \stopTextSpan | % Chiude la parentesi dell'ottava \ottava #0 c'4 c' c' c' |
Si noti che alcuni di questi oggetti, in particolare i numeri di
battuta, i segni di metronomo e i numeri di chiamata, si trovano nel
contesto Score
; dunque, assicurati di richiamare il contesto
giusto per sovrascriverli.
Le legature di portamento sono classificate come oggetti interni al rigo, anche
se spesso sono poste sopra il rigo, se le note alle quali sono collegate si
trovano nella parte superiore del pentagramma. Questo può far sì che gli oggetti esterni al rigo,
come le articolazioni, siano spinti troppo in alto, dato che la legatura viene
posizionata prima. La proprietà avoid-slur
dell’articolazione
può essere impostata su 'inside
per portare l’articolazione
dentro la legatura, ma la proprietà avoid-slur
funziona solo se anche
outside-staff-priority
è impostata su #f
.
Altrimenti, si può impostare la proprietà outside-staff-priority
della
legatura di portamento su un valore numerico, in modo che sia posizionata
insieme ad altri oggetti esterni al rigo in base a quel valore. Ecco un
esempio che mostra l’effetto dei due metodi:
\relative c'' { c4( c^\markup { \tiny \sharp } d4.) c8 | c4( \once \override TextScript.avoid-slur = #'inside \once \override TextScript.outside-staff-priority = ##f c4^\markup { \tiny \sharp } d4.) c8 | \once \override Slur.outside-staff-priority = #500 c4( c^\markup { \tiny \sharp } d4.) c8 | }
Attraverso la proprietà outside-staff-priority
si può
regolare anche la disposizone verticale di singoli oggetti;
i risultati potrebbero tuttavia risultare non sempre ottimali. Supponiamo
di voler posizionare “Testo3” sopra “Testo4” nell’esempio
precedente (si veda Comportamento automatico).
Basta andare a cercare la priorità di TextScript
nella
guida al Funzionamento interno o nelle tabelle precedenti e
aumentare la priorità di “Testo3” assegnando un valore più alto:
c''2^"Testo1" c''2^"Testo2" | \once \override TextScript.outside-staff-priority = #500 c''2^"Testo3" c''2^"Testo4" |
Questo ovviamente pone “Testo3” sopra “Testo4”, ma anche
sopra “Testo2”, mentre “Testo4” si sposta più in basso. Forse questo
risultato non ci soddisfa: vorremmo piuttosto collocare
tutti i testi alla stessa distanza dal rigo. Per riuscirci,
naturalmente, dobbiamo creare più spazio orizzontale tra le note per
far posto al testo. Lo si può ottenere con il comando
textLengthOn
.
[ << Modifica dell’output ] | [Top][Contents][Index] | [ Modelli >> ] |
[ < Oggetti esterni al rigo ] | [ Up : Oggetti esterni al rigo ] | [ Il comando \textLengthOn > ] |