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.

LilyPond — Extender