Las matemáticas son el terreno natural de LaTeX, pero ¿qué ocurre con las partituras? Hay tres caminos reales: MusiXTeX compone partituras dentro de TeX; LilyPond, un grabador independiente de alta calidad, puede incorporarse con lilypond-book; y la compacta notación ABC puede incrustarse con el paquete abc. Esta página explica cómo funciona cada opción y cuándo conviene usarla.
MusiXTeX - grabar dentro de TeX
MusiXTeX es un sistema de composición musical construido solo con macros de TeX. Es el sucesor del antiguo MusicTeX y dibuja pentagramas, cabezas de nota, barras y ligaduras dentro del propio marco de TeX. Como no depende de un programa gráfico externo, resulta adecuado cuando quieres mantener toda la cadena de herramientas dentro de TeX.
Su modelo de proceso es distintivo. Para optimizar el espaciado entre notas, MusiXTeX trabaja en tres pasadas. Primero TeX, en la práctica e-TeX, procesa el archivo y escribe .mx1; el script Lua incluido musixflx lo lee, calcula el espaciado de cada pulso y emite .mx2; después TeX se ejecuta una última vez para producir la salida. Un script envoltorio llamado musixtex coordina las tres ejecuciones y llama a preprocesadores, como los frontales pmx y M-Tx de abajo, cuando hace falta.
musixtex score.tex # runs e-TeX → musixflx → e-TeX, then makes the PDFLas macros MusiXTeX sin procesar son reconocidamente difíciles de escribir a mano, así que casi nadie lo hace. Se usa en su lugar un frontal de nivel superior. pmx es un preprocesador que compila un lenguaje de entrada mucho más sencillo a macros de MusiXTeX. Para música vocal con letra, M-Tx se coloca una etapa antes y alimenta a pmx, formando la cadena M-Tx -> pmx -> MusiXTeX. Abajo hay un esqueleto mínimo de MusiXTeX; en la práctica será más realista escribir entrada pmx.
\input musixtex
\begin{music}
\instrumentnumber{1}
\setclef{1}{\treble}
\startextract
\Notes \qa{cdef} \en
\Notes \ha{g} \en
\endextract
\end{music}
\endLilyPond y lilypond-book - incorporar un motor separado
LilyPond es un grabador de partituras dedicado con su propio lenguaje de entrada. Es un programa separado de TeX y se considera ampliamente capaz de producir grabado musical de máxima calidad. Su entrada no se parece a la de MusiXTeX, pero una notación sencilla produce resultados igual o más pulidos. La forma habitual de combinarlo con un documento LaTeX es lilypond-book.
La idea es esta: en un archivo con extensión .lytex, mezclas texto LaTeX con fragmentos de LilyPond. Los fragmentos breves van en \lilypond{...}, los más largos en un entorno lilypond, y los archivos externos mediante \lilypondfile{...}. Al ejecutar lilypond-book, cada fragmento se renderiza con LilyPond como imagen o PDF y se escribe un archivo .tex normal donde los fragmentos quedan reemplazados por comandos de inclusión gráfica. Luego lo compilas como siempre y la partitura se integra en el documento.
% --- score.lytex ---
\documentclass{article}
\begin{document}
Here is a short phrase:
\begin{lilypond}[quote,fragment,staffsize=26]
c'4 d' e' f' g'2 g'
\end{lilypond}
\end{document}La construcción tiene dos etapas. Primero ejecuta lilypond-book sobre el archivo .lytex (con --pdf para incrustar fragmentos como PDF) y después compila el .tex generado con pdflatex o similar. El ancho de línea de la música se ajusta automáticamente leyendo el ancho del texto desde el preámbulo.
lilypond-book --pdf score.lytex # renders snippets, writes score.tex
pdflatex score.tex # compile the generated documentUna opción más moderna es el paquete lyluatex. Diseñado para LuaLaTeX, omite el preprocesado de lilypond-book y llama directamente a LilyPond durante la compilación para generar e incluir las partituras. Escribes música en un entorno lily o con \lilypond, y simplemente ejecutas lualatex con --shell-escape. Se plantea como un superconjunto reemplazable de lilypond-book.
El paquete abc - notación ABC sencilla
El paquete abc incrusta en LaTeX la notación ABC, un formato musical de texto muy compacto. ABC está pensado ante todo para que las personas lo lean y escriban con facilidad, y se usa mucho para registrar melodías populares y lead sheets de una sola línea melódica de tradiciones de Europa occidental, como la irlandesa, inglesa o escocesa.
Como lilypond-book, depende de un conversor externo. La música escrita en un entorno abc se entrega, mediante \write18 (ejecución de shell), a abcm2ps, que la renderiza como imagen de partitura y después se incluye en el documento. Como usa ejecución de shell, hay que compilar con -shell-escape. También existe la herramienta clásica abc2mtex, que convierte ABC ASCII en entrada para MusicTeX/MusiXTeX y puede usarse como preprocesador.
\documentclass{article}
\usepackage{abc}
\begin{document}
\begin{abc}
X:1
T:Simple Tune
M:4/4
L:1/8
K:C
CDEF|GABc|
\end{abc}
\end{document}pdflatex -shell-escape tune.tex # abc calls abcm2ps via \write18Cuál elegir
Como guía aproximada: si quieres mantener la cadena de herramientas dentro de TeX y hacer grabado elaborado sin salir de él, usa MusiXTeX, en la práctica mediante pmx / M-Tx. Si la calidad es lo primero para partituras serias, incorpora LilyPond con lilypond-book, o lyluatex si usas LuaLaTeX. Si solo necesitas melodías populares o líneas melódicas breves rápidamente, recurre al paquete abc.
| Enfoque | Cómo funciona | Ideal para |
|---|---|---|
MusiXTeX | Grabado con macros TeX (3 pasadas + pmx / M-Tx) | Permanecer en TeX; grabado elaborado |
LilyPond (lilypond-book) | Renderizado por motor externo -> imagen/PDF incluida | Partituras serias de máxima calidad |
lyluatex | LuaLaTeX llama a LilyPond durante la compilación | LilyPond fácil bajo LuaLaTeX |
abc | Notación ABC convertida con abcm2ps e incrustada | Melodías populares y lead sheets monódicas |
Todas estas opciones están en CTAN y se distribuyen con sistemas principales como TeX Live. LilyPond en sí, y por tanto lilypond-book, puede requerir una instalación separada. Ten en cuenta que abc y lyluatex, al llamar a programas externos, requieren -shell-escape para permitir la ejecución de shell.