Extender LilyPond: A.2.5 Variables de LilyPond compuestas

### 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, deutsch.

#### LilyPond — Extender