A.2.5 Variables de LilyPond compuestas
Desplazamientos
Los desplazamientos bidimensionales (coordenadas X e Y) se almacenan
como parejas
. El car
del desplazamiento es la
coordenada X, y el cdr
es la coordenada Y.
\override TextScript #'extra-offset = #'(1 . 2)
Esto asigna la pareja (1 . 2)
a la propiedad
extra-offset
del objeto TextScript. Estos números se miden en
espacios de pentagrama, y así esta instrucción mueve el objeto un
espacio de pentagrama a la derecha, y dos espacios hacia arriba.
Los procedimientos para trabajar con desplazamientos están en ‘scm/lily-library.scm’.
Dimensiones
Las parejas se usan también para almacenar intervalos, que representan
un rango de números desde el mínimo (el car
) hasta el máximo
(el cdr
). Los intervalos se usan para almacenar las
dimensiones en X y en Y de los objetos imprimibles. Para dimensiones
en X, el car
es la coordenada X de la parte izquierda, y el
cdr
es la coordenada X de la parte derecha. Para las
dimensiones en Y, el car
es la coordenada inferior, y el
cdr
es la coordenada superior.
Los procedimientos para trabajar con intervalos están en ‘scm/lily-library.scm’. Se deben usar estos procedimientos siempre que sea posible, para asegurar la consistencia del código.
Listas-A de propiedades
Una lista-A de propiedades es una estructura de datos de LilyPond que es una lista-A cuyas claves son propiedades y cuyos valores son expresiones de Scheme que dan el valor deseado de la propiedad.
Las propiedades de LilyPond son símbolos de Scheme, como por ejemplo
'thickness
.
Cadenas de listas-A
Una cadena de listas-A es una lista que contiene listas-A de propiedades.
El conjunto de todas las propiedades que se aplican a un grob se almacena por lo general como una cadena de listas-A. Para poder encontrar el valor de una propiedad determinada que debería tener un grob, se busca por todas las listas-A de la cadena, una a una, tratando de encontrar una entrada que contenga la clave de la propiedad. Se devuelve la primera entrada de lista-A que se encuentre, y el valor es el valor de la propiedad.
El procedimiento de Scheme chain-assoc-get
se usa normalmente
para obtener los valores de propiedades.
Otros idiomas: English.