
Estoy escribiendo algunos ejercicios musicales usando lilypond dentro de TeX. El código simple parece funcionar bien, pero tengo mucho código que se reutiliza, así que intenté configurar variables. Las variables parecen retomarse pero no ampliarse.
MWE:
% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = LilyPond-Book
% !LILYPOND tex = xelatex
\documentclass{memoir}
\begin{document}
\begin{lilypond}
{
\include "lilypond-variables.ly"
\time 2/4
\grace { g''32 } g'4 \Ggrace a'4 \Ggrace b'4 \Ggrace c''4
\Ggrace d''4 \Ggrace e''4 \Ggrace f''4 g''4
a''2 g''4 f''4 \Ggrace e''4
\Ggrace d''4 \Ggrace c''4 \Ggrace b'4 \Ggrace a'4
\Ggrace g'4
\bar "||"
}
\end{lilypond}
\end{document}
Archivo incluido lilypond-variables.ly
:
Ggrace = { \grace { g''32 } }
Producción:
Como puede ver, la nota de adorno g 'codificada' está bien, pero las que deberían producirse \Ggrace
simplemente no aparecen.
Lo intenté \include
(con comillas como se especifica en la documentación de Lilypond) y \input
(comillas como arriba y llaves), y antes de esto probé el estándar \newcommand
s dentro del código TeX pero el resultado fue el mismo.
Como tengo muchísimas combinaciones de notas de adorno, este es un problema bastante grande. Originalmente los tenía todos codificados y pensé que haría que la codificación futura fuera menos dolorosa y propensa a errores.
Usando macOS Sierra 10.12.5 (16F73) y TL 2016.
Respuesta1
Resulta que si se \include
mueve fuera de las llaves, el código funciona bien, de la siguiente manera:
% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = LilyPond-Book
% !LILYPOND tex = xelatex
\documentclass{memoir}
\begin{document}
\begin{lilypond}
\include "lilypond-variables.ly"
{
\time 2/4
\grace { g''32 } g'4 \Ggrace a'4 \Ggrace b'4 \Ggrace c''4
\Ggrace d''4 \Ggrace e''4 \Ggrace f''4 g''4
a''2 g''4 f''4 \Ggrace e''4
\Ggrace d''4 \Ggrace c''4 \Ggrace b'4 \Ggrace a'4
\Ggrace g'4
\bar "||"
}
\end{lilypond}
\end{document}
Producción:
De hecho, fue un problema de Lilypond como lo sugirió @egreg (con agradecimiento y al colega de la lista de Lilypond que señaló la solución).