3.1.5 Estructura del archivo
Un archivo ‘.ly’ puede contener cualquier número de expresiones del nivel superior, donde una expresión del nivel superior es una de las siguientes posibilidades:
-
Una definición de salida, como
\paper
,\midi
y\layout
. Tal definición en el nivel más alto cambia los ajustes predeterminados para todo el libro. Si se introduce más de una de estas definiciones del mismo tipo en el nivel más alto, las definiciones se combinan, pero en situaciones de conflicto las definiciones más tardías tienen preferencia. Para ver los detalles sobre cómo afecta al bloque\layout
, consulte El bloque\layout
. -
Una expresión directa de Scheme, como
#(set-default-paper-size "a7" 'landscape)
o#(ly:set-option 'point-and-click #f)
. -
Un bloque
\header
. Esto establece el bloque de encabezamiento global (es decir, al principio del archivo). Es el bloque que contiene los ajustes predeterminados de los campos de encabezamientos como el compositor, título, etc. para todos los libros que están dentro del archivo (véase Explicación de los títulos). -
Un bloque
\score
. Esta partitura se reúne con otras partituras del nivel superior, y se combina con ellas formando un\book
(libro) único. Este comportamiento se puede cambiar estableciendo el valor de la variabletoplevel-score-handler
en el nivel superior (el handler predeterminado se define en el archivo ‘../scm/lily-library.scm’ y su valor se establece en el archivo ‘../ly/declarations-init.ly’.) -
Un bloque
\book
combina lógicamente varios movimientos (es decir, varios bloques\score
) en un solo documento. Si hay varias partituras\score
, se crea un solo archivo de salida para cada bloque\book
, en el que se concatenan todos los movimientos correspondientes. La única razón para especificar explícitamente bloques\book
en un archivo de entrada ‘.ly’ es si queremos crear varios archivos de salida a partir de un único archivo de entrada. Una excepción se da dentro de los documentos de lilypond-book, en los que tenemos que escribir explícitamente un bloque\book
si queremos tener más de una única partitura\score
o marcado\markup
en el mismo ejemplo. Se puede cambiar este comportamiento estableciendo el valor de la variabletoplevel-book-handler
en el nivel superior. El handler predeterminado se define en el archivo de inicio ‘../scm/lily.scm’. -
Un bloque
\bookpart
. Un libro puede dividirse en varias partes, utilizando bloques\bookpart
, con objeto de facilitar la inserción de saltos de página o usar distintos ajustes de\paper
en las distintas partes. -
Una expresión musical compuesta, como
{ c'4 d' e'2 }
Esto añade la pieza al
\score
y la conforma dentro de un libro único junto a todas las demás partituras\score
y expresiones musicales del nivel superior. En otras palabras, un archivo que contiene sólo la expresión musical anterior se traduce a\book { \score { \new Staff { \new Voice { { c'4 d' e'2 } } } \layout { } } \paper { } \header { } }
Se puede cambiar este comportamiento estableciendo el valor de la variable
toplevel-music-handler
en el nivel más alto. El handler predeterminado se define en el archivo de inicio ‘../scm/lily.scm’. -
Un texto de marcado, por ejemplo una estrofa
\markup { 2. Estrofa dos, línea uno }
Los textos de marcado se colocan encima, en medio o debajo de las partituras o expresiones musicales, según donde aparezcan escritos.
-
Una variable, como
fulano = { c4 d e d }
Esto se puede utilizar más tarde en el archivo escribiendo
\fulano
. El nombre de las variables ha de ser exclusivamente alfabético; sin números, guiones ni barras bajas.
El ejemplo siguiente muestra tres cosas que se pueden introducir en el nivel superior:
\layout { % No justificar la salida ragged-right = ##t } \header { title = "Do-re-mi" } { c'4 d' e2 }
En cualquier punto del archivo se pueden introducir cualquiera de las instrucciones léxicas siguientes:
-
\version
-
\include
-
\sourcefilename
-
\sourcefileline
- Un comentario de una línea, determinado por un símbolo
%
al principio. -
Un comentario de varias líneas, delimitado por
%{ … %}
.
Por lo general se ignoran los espacios entre elementos del flujo de entrada, y se pueden omitir o aumentar tranquilamente para mejorar la legibilidad. Sin embargo, los espacios se deben utilizar siempre para evitar errores, en las siguientes situaciones:
- Alrededor de todas y cada una de las llaves curvas de apertura y cierre.
- A continuación de las instrucciones y variables, es decir,
todos los elementos que comienzan con un signo
\
de barra invertida. - A continuación de todo elemento que se deba interpretar
como expresión de Scheme, es decir, todo elemento que comience
por un signo
#
. - Para separar los elementos de una expresión de Scheme.
- Dentro de
lyricmode
antes y después de las instrucciones\set
y\override
.
Véase también
Manual de aprendizaje: Cómo funcionan los archivos de entrada de LilyPond.
Referencia de la notación:
Explicación de los títulos,
El bloque \layout
.