@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
- Translation of GIT committish: d43f0a2575409659fbdd21b9b17b5f8440cc7268
+ Translation of GIT committish: eba67a0bc70f38a7847de75c640d7ad19c6fd804
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.12.0"
+@c \version "2.19.21"
@c Note: keep this node named so that `info lilypond-book' brings you here.
@node lilypond-book
Es un programa distinto a @command{lilypond} propiamente dicho, y se
ejecuta sobre la línea de órdenes; para ver más información, consulte
-@ref{Utilización desde la línea de órdenes}. Si tiene MacOS 10.3 o
-10.4 y experimenta algún problema al ejecutar @code{lilypond-book},
-consulte @rweb{MacOS X}.
+@ref{Utilización desde la línea de órdenes}. Si experimenta algún
+problema al ejecutar @code{lilypond-book} sobre Windows o Mac OS X
+utilizando la línea de órdenes, consulte @rweb{Windows} o @rweb{MacOS X}.
Este procedimiento se puede aplicar a documentos de @LaTeX{}, HTML,
Texinfo o DocBook.
@cindex texinfo
-@cindex latex
+@cindex LaTex
@cindex texinfo
@cindex texi
-@cindex html
+@cindex HTML
@cindex docbook
@cindex documentos, insertar música en
-@cindex HTML, música dentro de
-@cindex Texinfo, música dentro de
-@cindex DocBook, música dentro de
-@cindex @LaTeX{}, música dentro de
+@cindex HTML, insertar música en
+@cindex Texinfo, insertar música en
+@cindex DocBook, insertar música en
+@cindex LaTeX, insertar música en
@menu
* Un ejemplo de documento musicológico::
* Invocar lilypond-book::
* Extensiones de nombres de archivo::
* Plantillas de lilypond-book::
+* Compartir el índice general::
* Métodos alternativos para mezclar texto y música::
@end menu
música y texto. Por ejemplo:
\begin{lilypond}
-\relative c' {
- c2 g'2 \times 2/3 { f8 e d } c'2 g4
+\relative {
+ c'2 e2 \tuplet 3/2 { f8 a b } a2 e4
}
\end{lilypond}
Los ejemplos grandes se pueden grabar en archivos separados e
introducirse con \verb+\lilypondfile+.
-\lilypondfile[quote,noindent]{screech-boink.ly}
+\lilypondfile[quote,noindent]{screech-and-boink.ly}
-(Si es necesario, sustituya screech-boink.ly por cualquier archivo .ly
+(Si es necesario, sustituya @file{screech-and-boink.ly}
+por cualquier archivo @file{.ly}
situado en el mismo directorio que este archivo.)
\end{document}
lilypond-book --output=out --pdf lilybook.lytex
@emph{lilypond-book (GNU LilyPond) @version{} }
@emph{Leyendo lilybook.lytex...}
-@emph{..montañas de mensajes suprimidos..}
-@emph{Compilando lilybook.tex...}
+@emph{@dots{}montañas de mensajes suprimidos@dots{}}
+@emph{Compilando lilybook.tex@dots{}}
cd out
pdflatex lilybook
-@emph{..montañas de mensajes suprimidos..}
+@emph{@dots{}montañas de mensajes suprimidos@dots{}}
xpdf lilybook
@emph{(sustituya @command{xpdf} por su visor de PDF favorito)}
@end example
La ejecución de @command{lilypond-book} y @command{latex} crea un gran
número de archivos temporales, que podrían abarrotar el directorio de
trabajo. Para poner remedio a esto utilice la opción
-@code{--output=@var{directorio}}. Creará los archivos en un
+@option{--output=@var{directorio}}. Creará los archivos en un
subdirectorio aparte @file{directorio}.
Finalmente el resultado del ejemplo de @LaTeX{} que acabamos de
música y texto. Por ejemplo:
@lilypond
-\relative c' {
- c2 g'2 \times 2/3 { f8 e d } c'2 g4
+\relative {
+ c'2 e2 \tuplet 3/2 { f8 a b } a2 e4
}
@end lilypond
Los ejemplos grandes se pueden grabar en archivos separados e
introducirse con @code{\lilypondfile}.
-@lilypondfile[quote,noindent]{screech-boink.ly}
+@lilypondfile[quote,noindent]{screech-and-boink.ly}
+Si se requiere un campo @code{tagline}, ya sea predeterminado o
+personalizado, entonces el fragmento completo se debe incluir dentro
+de una construcción @code{\book @{ @}}.
+
+@c KEEP LY
+@lilypond[papersize=a8,verbatim]
+\book{
+ \header{
+ title = "Una escala en LilyPond"
+ }
+
+ \relative {
+ c' d e f g a b c
+ }
+}
+@end lilypond
@page
@emph{The Not So Short Introduction to @LaTeX{}}} (Introducción no tan
breve a @LaTeX{}) para ver una panorámica sobre cómo usar @LaTeX{}.
-La música se introduce usando
+@code{lilypond-book} aporta las instrucciones y entornos siguientes
+para incluir música dentro de archivos de @LaTeX{}:
+
+@itemize
+
+@item
+la instrucción @code{\lilypond@{@dots{}@}}, donde podemos escribir directamente fragmentos cortos de código de LilyPond
+
+@item
+el entorno @code{\begin@{lilypond@}@dots{}\end@{lilypond@}}, donde podemos
+introducir directamente bloques más largos de código de LilyPond
+
+@item
+la instrucción @code{\lilypondfile@{@dots{}@}} para insertar un archivo de LilyPond
+
+@item
+la instrucción @code{\musicxmlfile@{@dots{}@}} para insertar un archivo de
+MusicXML, que se procesa por parte de @code{musicxml2ly} y
+@code{lilypond}.
+
+@end itemize
+
+En el archivo de entrada, se especifica la música con cualquiera de
+las instrucciones siguientes:
@example
\begin@{lilypond@}[las,opciones,van,aquí]
EL CÓDIGO DE LILYPOND
\end@{lilypond@}
-@end example
-@noindent
-o bien
+\lilypond[las,opciones,van,aquí]@{ EL CÓDIGO DE LILYPOND @}
-@example
\lilypondfile[las,opciones,van,aquí]@{@var{archivo}@}
+
+\musicxmlfile[las,opciones,van,aquí]@{@var{archivo}@}
@end example
-@noindent
-o bien
-@example
-\lilypond[las,opciones,van,aquí]@{ EL CÓDIGO DE LILYPOND @}
-@end example
+@noindent
De forma adicional, @code{\lilypondversion} imprime la versión actual
de lilypond.
@example
\def\betweenLilyPondSystem#1@{
- \ifnum##1<2\else\expandafter\endinput\fi
+ \ifnum#1<2\else\expandafter\endinput\fi
@}
@end example
@example
\onlyFirstNSystems@{3@}
-\begin@{lilypond@}...\end@{lilypond@}
+\begin@{lilypond@}@dots{}\end@{lilypond@}
\onlyFirstNSystems@{1@}
-\begin@{lilypond@}...\end@{lilypond@}
+\begin@{lilypond@}@dots{}\end@{lilypond@}
@end example
Este mismo manual es un ejemplo de documento Texinfo. Las versiones
HTML, PDF e Info del manual se hacen a partir del documento Texinfo.
+@code{lilypond-book} aporta las siguientes instrucciones y entornos
+para incluir música dentro de archivos de Texinfo:
+
+@itemize
-En el archivo de entrada, la música se especifica con
+@item
+la instrucción @code{@@lilypond@{@dots{}@}}, donde podemos introducir
+directamente fragmentos cortos de código de LilyPond
+
+@item
+el entorno @code{@@lilypond@dots{}@@end lilypond}, donde podemos escribir
+directamente bloques más extensos de código de LilyPond
+
+@item
+la instrucción @code{@@lilypondfile@{@dots{}@}} para insertar un archivo
+de LilyPond
+
+@item
+la instrucción @code{@@musicxmlfile@{@dots{}@}} para insertar un archivo
+de MusicXML, que se procesa después por parte de @code{musicxml2ly} y
+de @code{lilypond}.
+
+@end itemize
+
+En el archivo de entrada, la música se especifica con cualquiera de
+las instrucciones siguientes:
@example
@@lilypond[las,opciones,van,aquí]
EL CÓDIGO DE LILYPOND
@@end lilypond
-@end example
-@noindent
-o bien
-
-@example
@@lilypond[las,opciones,van,aquí]@{ EL CÓDIGO DE LILYPOND @}
-@end example
-
-@noindent
-o bien
-@example
@@lilypondfile[las,opciones,van,aquí]@{@var{archivo}@}
+
+@@musicxmlfile[las,opciones,van,aquí]@{@var{archivo}@}
@end example
De forma adicional, @code{@@lilypondversion} imprime la versión actual
@lilypond[fragment,staffsize=11]{<c' e' g'>}
-No como @LaTeX{}, @code{@@lilypond@{...@}} no genera una imagen en
+A diferencia de @LaTeX{}, @code{@@lilypond@{@dots{}@}} no genera una imagen en
línea. Siempre consiste en un párrafo para ella sola.
@subsection HTML
@translationof HTML
-La música se introduce usando
+@code{lilypond-book} aporta las siguientes instrucciones y entornos
+para incluir música dentro de archivos HTML:
+
+@itemize
+@item
+la instrucción @code{<lilypond @dots{} />}, donde podemos introducir
+directamente fragmentos cortos de código de LilyPond
+
+@item
+el entorno @code{<lilyond>@dots{}</lilypond>}, donde podemos escribir
+directamente bloques más extensos de código de LilyPond
+
+@item
+la instrucción @code{<lilypondfile>@dots{}</lilypondfile>} para insertar
+un archivo de LilyPond
+
+@item
+la instrucción @code{<musicxmlfile>@dots{}</musicxmlfile>} para insertar
+un archivo de MusicXML, que se procesa después por parte de
+@code{musicxml2ly} y de @code{lilypond}.
+
+@end itemize
+
+En el archivo de entrada, la música se especifica con cualquiera de
+las instrucciones siguientes:
+
+@example
+<lilypond las opciones van aquí>
+ EL CÓDIGO DE LILYPOND
+</lilypond>
+
+<lilypond las opciones van aquí: EL CÓDIGO DE LILYPOND />
+
+<lilypondfile las opciones van aquí>@var{archivo}</lilypondfile>
+
+<musicxmlfile las opciones van aquí>@var{archivo}</musicxmlfile>
+@end example
+
+Por ejemplo, podemos escribr
@example
<lilypond fragment relative=2>
\key c \minor c4 es g2
\key c \minor c4 es g2
@end lilypond
-Para imágenes en línea, utilice @code{<lilypond ... />}, donde las
+Para imágenes en línea, utilice @code{<lilypond @dots{} />}, donde las
opciones están separadas de la música por el símbolo de dos puntos,
por ejemplo
Para incluir archivos externos, escriba
@example
-<lilypondfile @var{opción1} @var{opción2} ...>@var{archivo}</lilypondfile>
+<lilypondfile @var{opción1} @var{opción2} @dots{}>@var{archivo}</lilypondfile>
@end example
+@code{<musicxmlfile>} usa la misma sintaxis que @code{<lilypondfile>},
+pero sencillamente referencia un archivo de MusicXML en lugar de un
+archivo de LilyPond.
+
+Para ver una lista de las opciones que utilizar con las etiquetas
+@code{lilypond} o @code{lilypondfile}, véase
+@ref{Opciones de fragmentos de música}.
+
De forma adicional, @code{<lilypondversion/>} imprime la versión
actual de lilypond.
<textobject>
<programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
\context Staff \with @{
- \remove Time_signature_engraver
- \remove Clef_engraver@}
+ \remove "Time_signature_engraver"
+ \remove "Clef_engraver"@}
@{ c4( fis) @}
</programlisting>
</textobject>
@item ragged-right
Producir líneas no justificadas por la derecha y con espaciado
natural, es decir, se añade @code{ragged-right = ##t} al fragmento de
-LilyPond. Esta es la opción predeterminada para la instrucción
-@code{\lilypond@{@}} si no está presente la opción @code{line-width}.
-También es la opción predeterminada para el entorno @code{lilypond} si
-está establecida la opción @code{fragment}, y no se especifica la
-anchura de la línea explícitamente.
+LilyPond. Los fragmentos de una sola línea siempre se tipografían de
+forma predeterminada sin justificación por la derecha, a no ser que se
+use explícitamente la opción @code{noragged-right}.
@item noragged-right
Para fragmentos de una sola línea, permitir que la longitud del
trata de adivinar un valor predeterminado para los entornos
@code{lilypond} que no usan la opción @code{ragged-right}.
+@item papersize=@var{cadena}
+Donde @var{cadena} es un tamaño del papel definido en el archivo
+@file{scm/paper.scm}, es decir, @code{a5}, @code{quarto},
+@code{11x17}, etc.
+
+Los valores no definidos en el archivo @file{scm/paper.scm} se
+ignoran, se emite una advertencia y el fragmento se imprime utilizando
+el tamaño predeterminado @code{a4}.
+
@item notime
No imprimir la indicación de compás, y desactivar las indicaciones
temporales de la música (indicación del compás y líneas divisorias).
@code{relative}, es decir
@example
-\relative c' @{ % begin verbatim
- c4 e2 g4
+\relative @{ % begin verbatim
+ c'4 e2 g4
f2 e % end verbatim
@}
@end example
@noindent
-se imprimirá como un bloque preformateado como
+se imprime como un bloque preformateado como
@example
c4 e2 g4
@item texidoc
(Sólo para la salida de Texinfo.) Si se llama a @command{lilypond}
con la opción @option{--header=@/texidoc}, y el archivo que se procesa
-se llama @file{fulanito@/.ly}, crea un archivo
-@file{fulanito@/.texidoc} si existe un campo @code{texidoc} dentro del
-bloque @code{\header} de cabecera. La opción @code{texidoc} hace que
-@command{lilypond-book} incluya estos archivos, añadiendo su contenido
-como un bloque de documentación inmediatamente antes del fragmento
-musical.
+se llama @file{fulanito.ly}, crea un archivo @file{fulanito.texidoc}
+si existe un campo @code{texidoc} dentro del bloque @code{\header} de
+cabecera. La opción @code{texidoc} hace que @command{lilypond-book}
+incluya estos archivos, añadiendo su contenido como un bloque de
+documentación inmediatamente antes del fragmento musical (pero fuera
+del entorno @code{example} generado por la opción @code{quote}).
-Suponiendo que el archivo @file{fulanito@/.ly} contiene
+Suponiendo que el archivo @file{fulanito.ly} contiene
@example
\header @{
Por motivos de localización de idioma, si el documento de Texinfo
contiene @code{@@documentlanguage @var{LANG}} y la cabecera de
-@file{loquesea@/.ly} contiene un campo @code{texidoc@var{LANG}}, y
+@file{loquesea.ly} contiene un campo @code{texidoc@var{LANG}}, y
@command{lilypond} se ejecuta con
@option{--header=@/texidoc@var{LANG}}, entonces se incluirá
-@file{loquesea@/.texidoc@var{LANG}} en lugar de
-@file{loquesea@/.texidoc}.
-
-@item lilyquote
-(Sólo para la salida de Texinfo.) Esta opción es similar a quote,
-pero se pone dentro del bloque de cita solamente el fragmento de
-música (y el bloque preformateado que se da en la opción
-@code{verbatim}). Esta opción es útil si queremos citar
-(@code{quote}) el fragmento musical pero no el bloque de documentación
-@code{texidoc}.
+@file{loquesea.texidoc@var{LANG}} en lugar de
+@file{loquesea.texidoc}.
@item doctitle
(Sólo para la salida de Texinfo.) Esta opción funciona de forma
parecida a la opción @code{texidoc}: si @command{lilypond} se llama
con la opción @option{--header=@/doctitle}, y el archivo que procesar
-se llama @file{loquesea@/.ly} y contiene un campo @code{doctitle} en
-el bloque @code{\header}, crea un archivo @file{loquesea@/.doctitle}.
+se llama @file{loquesea.ly} y contiene un campo @code{doctitle} en
+el bloque @code{\header}, crea un archivo @file{loquesea.doctitle}.
Cuando se usa la opción @code{doctitle}, el contenido de
-@file{loquesea@/.doctitle}, que debería ser una línea única de
+@file{loquesea.doctitle}, que debería ser una línea única de
@var{texto}, se inserta en el documento de Texinfo como
@code{@@lydoctitle @var{texto}}. @code{@@lydoctitle} debe ser un
macro definido en el documento de Texinfo. La misma indicación
@LaTeX{}, y es por lo que explicamos las dos formas.}, y cualquiera
que sea el método que utilice, podrá convertir fácilmente entre
PostScript y PDF con herramientas como @command{ps2pdf} y
-@command{pdf2ps} que vienen incluidas con GhostScript.
+@command{pdf2ps} que vienen incluidas con Ghostscript.
Para producir un archivo PDF por medio de PDF@LaTeX{}, utilice
La ejecución de @command{dvips} puede dar como resultado algunas
advertencias sobre las fuentes tipográficas; son inocuas y se pueden
ignorar. Si está ejecutando @command{latex} en modo de dos columnas,
-recuerde añadir @code{-t landscape} a las opciones de @command{dvips}.
+recuerde añadir @option{-t landscape} a las opciones de @command{dvips}.
+
+@knownissues
+La instrucción @code{\pageBreak} no funciona dentro de un entorno
+@code{\begin@{lilypond@} @dots{} \end@{lilypond@}}.
+
+Muchas variables del bloque @code{\paper} tampoco funcionan dentro de
+un entorno @code{\begin@{lilypond@} @dots{} \end@{lilypond@}}. Use
+@code{\newcommand} con @code{\betweenLilyPondSystem} en el preámbulo:
+
+@example
+\newcommand@{\betweenLilyPondSystem@}[1]@{\vspace@{36mm@}\linebreak@}
+@end example
+
@subsubheading Texinfo
la ruta de inclusión, y no los vuelve a escribir en el directorio de
salida, así que en ciertos casos es necesario invocar instrucciones de
procesado posteriores como @command{makeinfo} o @command{latex} con
-las mismas opciones @code{-I @var{directorio}}.
+las mismas opciones @option{-I @var{directorio}}.
+
+@item -l @var{nivel_de_registro}
+@itemx --loglevel=@var{nivel_de_registro}
+Fijar el nivel en que la salida es prolija, al valor
+@var{nivel_de_registro}. Los valores posibles son @code{NONE} (nada),
+@code{ERROR} (errores), @code{WARNING} (advertencias), @code{PROGRESS}
+(avance; predeterminado) y @code{DEBUG} (depuración). Si esta opción
+no se utiliza, y la variable de entorno @code{LILYPOND_BOOK_LOGLEVEL}
+está establecida, se usa su valor como el nivel de registro.
@item -o @var{directorio}
@itemx --output=@var{directorio}
@example
lilypond-book --output=out miarchivo.lytex
cd out
-...
+@dots{}
@end example
-@itemx --skip-lily-check
+@item --skip-lily-check
Evitar el fracaso si no se encuentra ninguna salida de lilypond. Se
usa para la documentación de LilyPond en formato Info sin imágenes.
-@itemx --skip-png-check
+@item --skip-png-check
Evitar el fracaso si no se encuentran las imágenes PNG de los archivos
EPS. Se usa para la documentación de LilyPond en formato Info sin
imágenes.
-@itemx --lily-output-dir=@var{directorio}
+@item --lily-output-dir=@var{directorio}
Escribir archivos lily-XXX en el directorio @var{directorio}, enlazar
-en el directorio de @code{--output}. Use esta opción para ahorrar
+en el directorio de @option{--output}. Use esta opción para ahorrar
tiempo de construcción para documentos de distintos directorios que
comparten muchos fragmentos idénticos de código.
-@itemx --info-images-dir=@var{directorio}
+@item --lily-loglevel=@var{nivel_de_registro}
+Fijar el nivel en que la salida es prolija para las llamadas de la
+instrucción invocada @command{lilypond}, al valor
+@var{nivel_de_registro}. Los valores posibles son @code{NONE} (nada),
+@code{ERROR} (errores), @code{WARNING} (advertencias),
+@code{BASIC_PROGRESS} (avance básico), @code{PROGRESS} (avance),
+@code{INFO} (información; predeterminado) y @code{DEBUG}
+(depuración). Si no se utiliza esta opción y la variable de entorno
+@code{LILYPOND_LOGLEVEL} está establecida, su valor se usa como nivel
+de registro.
+
+
+@item --info-images-dir=@var{directorio}
Dar formato a la salida de Texinfo de manera que Info busque las
imágenes de música en @var{directorio}.
-@itemx --latex-program=@var{prog}
+@item --latex-program=@var{prog}
Ejecutar el programa @command{prog} en vez de @command{latex}. Esto
es útil si nuestro documento se procesa con @command{xelatex}, por
ejemplo.
-@itemx --left-padding=@var{cantidad}
+@item --left-padding=@var{cantidad}
Rellenar las cajas EPS en esta medida, alrededor. @var{cantidad} se
mide en milímetros, y es 3.0 como valor predeterminado. Esta opción
se debe usar si las líneas de música están muy pegadas al margen
instrumento. Esta opción acorta todas las líneas y las mueve a la
derecha en la misma medida.
-
@item -P @var{instrucción}
@itemx --process=@var{instrucción}
Procesar los fragmentos de LilyPond utilizando @var{instrucción}. La
instrucción predeterminada es @code{lilypond}. @code{lilypond-book}
-no obedecerá a @code{--filter} y a @code{--process} al mismo tiempo.
+no obedecerá a @option{--filter} y a @option{--process} al mismo tiempo.
@item --pdf
Crear archivos PDF para su uso con PDF@LaTeX{}.
-@itemx --use-source-file-names
+@item --redirect-lilypond-output
+De forma predeterminada, la salida se imprime por la consola. Esta
+opción redirecciona toda la salida hacia archivos de registro situados
+en el mismo directorio que los archivos fuente.
+
+@item --use-source-file-names
Escribir los archivos de salida de los fragmentos de música con el
mismo nombre de base que su archivo fuente. Esta opción sólo funciona
para fragmentos incluidos con @code{lilypondfile} y sólo si los
-directorios determinados por las opciones @code{--output-dir} y
-@code{--lily-output-dir} son distintos.
+directorios determinados por las opciones @option{--output-dir} y
+@option{--lily-output-dir} son distintos.
@item -V
@itemx --verbose
-Ser prolijo.
+Ser prolijo. Equivale a @code{--loglevel=DEBUG}.
@item -v
@itemx --version
@item @strong{extensión} @tab @strong{formato de salida}
@item
@item @file{.html} @tab HTML
+@item @file{.htmly} @tab HTML
@item @file{.itely} @tab Texinfo
@item @file{.latex} @tab @LaTeX{}
@item @file{.lytex} @tab @LaTeX{}
Si usa la misma extensión para el archivo de entrada que la que usa
@command{lilypond-book} para el archivo de salida, y si el archivo de
entrada está en el mismo directorio que el directorio de trabajo de
-@command{lilypond-book}, debe usar la opción @code{--output} para que
+@command{lilypond-book}, debe usar la opción @option{--output} para que
funcione @command{lilypond-book}, pues en caso contrario saldrá con un
mensaje de error como @qq{La salida sobreescribirá al archivo de
entrada}.
+
@node Plantillas de lilypond-book
@section Plantillas de lilypond-book
@translationof lilypond-book templates
Texto normal en LaTeX.
\begin@{lilypond@}
-\relative c'' @{
- a4 b c d
+\relative @{
+ a'4 b c d
@}
\end@{lilypond@}
Texto en Texinfo
@@lilypond
-\relative c' @{
+\relative @{
a4 b c d
@}
@@end lilypond
Los documentos para lilypond-book pueden mezclar música y texto libremente. Por
ejemplo,
<lilypond>
-\relative c'' @{
- a4 b c d
+\relative @{
+ a'4 b c d
<p>
Otro poco de lilypond, esta vez con opciones:
@end verbatim
+@node Compartir el índice general
+@section Compartir el índice general
+@translationof Sharing the table of contents
+
+Estas funciones ya existen en el paquete OrchestralLily:
+
+@example
+@url{http://repo.or.cz/w/orchestrallily.git}
+@end example
+
+Para conseguir más flexibilidad en el manejo del texto, algunos
+usuarios prefieren exportar la el índice general o tabla de contenidos
+desde lilypond y leerla dentro de @LaTeX{}.
+
+@subsubheading Exportación del índice general desde LilyPond
+
+Esto supone que nuestra partitura tiene varios movimientos dentor del
+mismo archivo de salida de lilypond.
+
+@smallexample
+#(define (oly:create-toc-file layout pages)
+ (let* ((label-table (ly:output-def-lookup layout 'label-page-table)))
+ (if (not (null? label-table))
+ (let* ((format-line (lambda (toc-item)
+ (let* ((label (car toc-item))
+ (text (caddr toc-item))
+ (label-page (and (list? label-table)
+ (assoc label label-table)))
+ (page (and label-page (cdr label-page))))
+ (format #f "~a, section, 1, @{~a@}, ~a" page text label))))
+ (formatted-toc-items (map format-line (toc-items)))
+ (whole-string (string-join formatted-toc-items ",\n"))
+ (output-name (ly:parser-output-name parser))
+ (outfilename (format "~a.toc" output-name))
+ (outfile (open-output-file outfilename)))
+ (if (output-port? outfile)
+ (display whole-string outfile)
+ (ly:warning (_ "Unable to open output file ~a for the TOC information") outfilename))
+ (close-output-port outfile)))))
+
+\paper @{
+ #(define (page-post-process layout pages) (oly:create-toc-file layout pages))
+@}
+@end smallexample
+
+@subsubheading Importación del índice general dentro de LaTeX
+
+En LaTeX, la cabecera debe incluir lo siguiente:
+
+@c no, this doesn't require the smallexample, but since the other
+@c two blocks on this page use it, I figured I might as well
+@c user it here as well, for consistency. -gp
+@smallexample
+\usepackage@{pdfpages@}
+\includescore@{nombredelapartitura@}
+@end smallexample
+
+@noindent
+donde @code{\includescore} está definido como:
+
+@smallexample
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \includescore@{PossibleExtension@}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Leer las entradas del índice general para un archivo PDF
+% a partir del archivo .toc correspondeiente.
+% Esto requiere bastantes trucos de latex, porque leer cosas de un archivo
+% e insertarlo dentro de los argumentos de un macro no es posible
+% fácilmente.
+
+% Solución de Patrick Fimml en el canal #latex el 18 de abril de 2009:
+% \readfile@{filename@}@{\variable@}
+% lee el contenido del archivo en \variable (no definida si el
+% archivo no existe)
+\newread\readfile@@f
+\def\readfile@@line#1@{%
+@{\catcode`\^^M=10\global\read\readfile@@f to \readfile@@tmp@}%
+\edef\do@{\noexpand\g@@addto@@macro@{\noexpand#1@}@{\readfile@@tmp@}@}\do%
+\ifeof\readfile@@f\else%
+\readfile@@line@{#1@}%
+\fi%
+@}
+\def\readfile#1#2@{%
+\openin\readfile@@f=#1 %
+\ifeof\readfile@@f%
+\typeout@{No TOC file #1 available!@}%
+\else%
+\gdef#2@{@}%
+\readfile@@line@{#2@}%
+\fi
+\closein\readfile@@f%
+@}%
+
+
+\newcommand@{\includescore@}[1]@{
+\def\oly@@fname@{\oly@@basename\@@ifmtarg@{#1@}@{@}@{_#1@}@}
+\let\oly@@addtotoc\undefined
+\readfile@{\oly@@xxxxxxxxx@}@{\oly@@addtotoc@}
+\ifx\oly@@addtotoc\undefined
+\includepdf[pages=-]@{\oly@@fname@}
+\else
+\edef\includeit@{\noexpand\includepdf[pages=-,addtotoc=@{\oly@@addtotoc@}]
+@{\oly@@fname@}@}\includeit
+\fi
+@}
+@end smallexample
+
+
@node Métodos alternativos para mezclar texto y música
@section Métodos alternativos para mezclar texto y música
@translationof Alternate methods of mixing text and music