| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Integrating music and text
Aquí vamos a explicar cómo integrar LilyPond con algunos otros formatos de salida.
| 3.2.1 LaTeX | ||
| 3.2.2 Texinfo | ||
| 3.2.3 HTML | ||
| 3.2.4 DocBook |
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof LaTeX
LaTeX es el estándar de facto para la publicación en el mundo de las ciencias exactas. Está construido encima del motor de composición tipográfica TeX, proporcionando la tipografía de mejor calidad que existe.
Consulte The Not So Short Introduction to LaTeX (Introducción no tan breve a LaTeX) para ver una panorámica sobre cómo usar LaTeX.
lilypond-book aporta las instrucciones y entornos
siguientes para incluir música dentro de archivos de LaTeX:
\lilypond{…}, donde podemos escribir
directamente fragmentos cortos de código de LilyPond
\begin{lilypond}…\end{lilypond}, donde
podemos introducir directamente bloques más largos de código de
LilyPond
\lilypondfile{…} para insertar un
archivo de LilyPond
\musicxmlfile{…} para insertar un
archivo de MusicXML, que se procesa por parte de
musicxml2ly y lilypond.
En el archivo de entrada, se especifica la música con cualquiera de las instrucciones siguientes:
\begin{lilypond}[las,opciones,van,aquí]
EL CÓDIGO DE LILYPOND
\end{lilypond}
\lilypond[las,opciones,van,aquí]{ EL CÓDIGO DE LILYPOND }
\lilypondfile[las,opciones,van,aquí]{archivo}
\musicxmlfile[las,opciones,van,aquí]{archivo}
|
De forma adicional, \lilypondversion imprime la versión
actual de lilypond.
La ejecución de lilypond-book deja como resultado un
archivo que se puede procesar posteriormente con LaTeX.
A continuación mostramos algunos ejemplos. El entorno
lilypond
\begin{lilypond}[quote,fragment,staffsize=26]
c' d' e' f' g'2 g'2
\end{lilypond}
|
produce
La versión corta
\lilypond[quote,fragment,staffsize=11]{<c' e' g'>}
|
produce
Por el momento no es posible incluir llaves { o }
dentro de \lilypond{}, así que esta instrucción solamente
es útil con la opción fragment.
El ancho predeterminado de las líneas de música se ajusta mediante
el examen de las instrucciones del preámbulo del documento, la
parte del documento que está antes de \begin{document}.
La instrucción lilypond-book los envía a LaTeX para
averiguar la anchura del texto. El ancho de la línea para los
fragmentos de música se ajusta entonces al ancho del texto.
Observe que este algoritmo heurístico puede fácilmente fallar; en
estos casos es necesario usar la opción line-width del
fragmento de música.
Cada fragmento ejecutará los macros siguientes si han sido definidos por el usuario:
\preLilyPondExample que se llama antes de la música,
\postLilyPondExample que se llama después de la música,
\betweenLilyPondSystem[1] se llama entre los sistemas si
lilypond-book ha dividido el fragmento en varios archivos
PostScript. Se debe definir de forma que tome un parámetro y
recibirá el número de archivos ya incluidos dentro del fragmento
actual. La acción predeterminada es simplemente insertar un
\linebreak.
A veces es útil mostrar elementos de música (como ligaduras) como si continuasen más allá del final del fragmento. Esto se puede hacer dividiendo el pentagrama y suprimiendo la inclusión del resto de la salida de LilyPond.
En LaTeX, defina \betweenLilyPondSystem de tal forma que
la la inclusión de otros sistemas se dé por terminada una vez que
se ha alcanzado el número deseado de sistemas requeridos. Puesto
que \betweenLilyPondSystem se llama en primer lugar
después del primer sistema, incluir solamente el primer
sistema es algo trivial.
\def\betweenLilyPondSystem#1{\endinput}
\begin[fragment]{lilypond}
c'1\( e'( c'~ \break c' d) e f\)
\end{lilypond}
|
Si se necesita un mayor número de sistemas, se tiene que usar un
condicional de TeX antes del \endinput. En este
ejemplo, sustituya el ‘2’ por el número de sistemas que quiere
en la salida:
\def\betweenLilyPondSystem#1{
\ifnum#1<2\else\expandafter\endinput\fi
}
|
(Dado que \endinput detiene inmediatamente el procesado del
archivo de entrada actual, necesitamos \expandafter para
posponer la llamada de \endinput después de ejecutar
\fi de manera que la cláusula \if-\fi esté
equilibrada.)
Recuerde que la definición de \betweenLilyPondSystem es
efectiva hasta que TeX abandona el grupo actual (como el
entorno LaTeX) o se sobreescribe por otra definición (lo que
casi siempre es por el resto del documento). Para reponer la
definición, escriba
\let\betweenLilyPondSystem\undefined |
dentro de la fuente de LaTeX.
Se puede simplificar esto definiendo un macro de TeX:
\def\onlyFirstNSystems#1{
\def\betweenLilyPondSystem##1{\ifnum##1<#1\else\endinput\fi}
}
|
y luego diciendo solamente cuántos sistemas quiere antes de cada fragmento:
\onlyFirstNSystems{3}
\begin{lilypond}…\end{lilypond}
\onlyFirstNSystems{1}
\begin{lilypond}…\end{lilypond}
|
Hay opciones de línea de órdenes específicas de
lilypond-book y otros detalles que conocer para procesar
documentos deLaTeX véase Invocar lilypond-book.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof Texinfo
Texinfo es el formato estándar para la documentación del proyecto GNU. Este mismo manual es un ejemplo de documento Texinfo. Las versiones HTML, PDF e Info del manual se hacen a partir del documento Texinfo.
lilypond-book aporta las siguientes instrucciones y
entornos para incluir música dentro de archivos de Texinfo:
@lilypond{…}, donde podemos
introducir directamente fragmentos cortos de código de LilyPond
@lilypond…@end lilypond, donde podemos
escribir directamente bloques más extensos de código de LilyPond
@lilypondfile{…} para insertar un
archivo de LilyPond
@musicxmlfile{…} para insertar un
archivo de MusicXML, que se procesa después por parte de
musicxml2ly y de lilypond.
En el archivo de entrada, la música se especifica con cualquiera de las instrucciones siguientes:
@lilypond[las,opciones,van,aquí]
EL CÓDIGO DE LILYPOND
@end lilypond
@lilypond[las,opciones,van,aquí]{ EL CÓDIGO DE LILYPOND }
@lilypondfile[las,opciones,van,aquí]{archivo}
@musicxmlfile[las,opciones,van,aquí]{archivo}
|
De forma adicional, @lilypondversion imprime la versión
actual de lilypond.
Cuando se ejecuta lilypond-book sobre el archivo, se
obtiene como resultado un archivo Texinfo (con la extensión
‘.texi’) que contiene etiquetas @image para el HTML,
Info y la salida impresa. lilypond-book genera imágenes
de la música en formatos EPS y PDF para usarlos en la salida
impresa, y en formato PNG para usarlos en las salidas HTML e Info.
Aquí podemos ver dos ejemplos sencillos. Un entorno
lilypond
@lilypond[fragment] c' d' e' f' g'2 g' @end lilypond |
produce
La versión corta
@lilypond[fragment,staffsize=11]{<c' e' g'>}
|
produce
A diferencia de LaTeX, @lilypond{…} no genera
una imagen en línea. Siempre consiste en un párrafo para ella
sola.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof HTML
lilypond-book aporta las siguientes instrucciones y
entornos para incluir música dentro de archivos HTML:
<lilypond … />, donde podemos
introducir directamente fragmentos cortos de código de LilyPond
<lilyond>…</lilypond>, donde podemos
escribir directamente bloques más extensos de código de LilyPond
<lilypondfile>…</lilypondfile> para
insertar un archivo de LilyPond
<musicxmlfile>…</musicxmlfile> para
insertar un archivo de MusicXML, que se procesa después por parte
de musicxml2ly y de lilypond.
En el archivo de entrada, la música se especifica con cualquiera de las instrucciones siguientes:
<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í>archivo</lilypondfile> <musicxmlfile las opciones van aquí>archivo</musicxmlfile> |
Por ejemplo, podemos escribr
<lilypond fragment relative=2> \key c \minor c4 es g2 </lilypond> |
lilypond-book entonces produce un archivo HTML con las
etiquetas de imagen adecuadas para los fragmentos de música:
Para imágenes en línea, utilice <lilypond … />, donde
las opciones están separadas de la música por el símbolo de dos
puntos, por ejemplo
Algo de música dentro de <lilypond relative=2: a b c/> una línea de texto. |
Para incluir archivos externos, escriba
<lilypondfile opción1 opción2 …>archivo</lilypondfile> |
<musicxmlfile> usa la misma sintaxis que
<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
lilypond o lilypondfile, véase Opciones de fragmentos de música.
De forma adicional, <lilypondversion/> imprime la versión
actual de lilypond.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] | [Arriba] | [Índice general] | [Índice] | [ ? ] |
@translationof DocBook
Para insertar fragmentos de LilyPond es bueno tratar de mantener la conformidad del documento de DocBook, permitiendo así el uso de editores de DocBook, validación, etc. Así pues, no usamos etiquetas personalizadas, sólo especificamos una convención basada en los elementos estándar de DocBook.
Para insertar toda clase de fragmentos utilizamos los elementos
mediaobject y inlinemediaobject, de forma que
nuestros fragmentos puedan ser formateados en línea o no en línea.
Las opciones de formateo del fragmento se escriben siempre dentro
de la propiedad role del elemento más interno (véanse las
secciones siguientes). Las etiquetas se eligen de forma que
permitan a los editores de DocBook formatear el contenido
satisfactoriamente. Los archivos de DocBook que se van a procesar
con lilypond-book deben tener la extensión
‘.lyxml’.
Este es el caso más sencillo. Debemos usar la extensión
‘.ly’ para el archivo incluido, e insertarlo como un
imageobject estándar, con la estructura siguiente:
<mediaobject>
<imageobject>
<imagedata fileref="music1.ly" role="printfilename" />
</imageobject>
</mediaobject>
|
Observe que puede usar mediaobject o inlinemediaobject como el elemento más externo, a elección suya.
Se puede incluir código de LilyPond mediante la utilización de un
elemento programlisting, en que el lenguaje se establece
como lilypond con la estructura siguiente:
<inlinemediaobject>
<textobject>
<programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
\context Staff \with {
\remove "Time_signature_engraver"
\remove "Clef_engraver"}
{ c4( fis) }
</programlisting>
</textobject>
</inlinemediaobject>
|
Como puede ver, el elemento más externo es un mediaobject o
un inlinemediaobject, y hay un elemento textobject
que lleva el programlisting en su interior.
Al ejecutar lilypond-book sobre el archivo ‘.lyxml’
se creará un documento de DocBook válido que se puede procesar
posteriormente con la extensión ‘.xml’. Si usa
dblatex, creará un
archivo PDF a partir de este documento automáticamente. Para la
generación de HTML (HTML Help, JavaHelp, etc.) puede usar las
hojas de estilo oficiales XSL de DocBook, aunque es posible que
tenga que aplicarles algún tipo de personalización.
| [ < ] | [ > ] | [ << ] | [ Subir ] | [ >> ] |
Este documento ha sido generado por gub el el 13 julio 2020 utilizando texi2html 1.82.
Otros idiomas: English, català, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.