A.2.6 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’.
Fractions
Fractions as used by LilyPond are again stored as pairs, this
time of unsigned integers. While Scheme can represent rational numbers
as a native type, musically ‘2/4’ and ‘1/2’ are not the same,
and we need to be able to distinguish between them. Similarly there are
no negative ‘fractions’ in LilyPond’s mind. So 2/4
in LilyPond
means (2 . 4)
in Scheme, and #2/4
in LilyPond means
1/2
in Scheme.
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, deutsch, français.
Acerca de la selección automática del idioma.