Variáveis ​​\include-ed em ambientes lilypond-book não se expandem

Variáveis ​​\include-ed em ambientes lilypond-book não se expandem

Estou compondo alguns exercícios musicais usando lilypond no TeX. O código simples parece funcionar bem, mas tenho muito código que é reutilizado, então tentei configurar variáveis. As variáveis ​​parecem ser captadas, mas não expandidas.

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}

Arquivo incluído lilypond-variables.ly:

Ggrace = { \grace { g''32 } }

Saída:

insira a descrição da imagem aqui

Como você pode ver, a nota de cortesia g 'codificada' é boa, mas aquelas que devem ser produzidas por\Ggrace simplesmente não aparecem.

Eu tentei \include(com aspas conforme especificado na documentação do Lilypond) e \input(aspas acima e colchetes), e antes disso tentei o padrão\newcommand s dentro do código TeX, mas o resultado foi o mesmo.

Como tenho muitas, muitas combinações de notas de graça, isso é um grande problema. Eu tinha todos eles codificados originalmente e pensei em tornar a codificação futura menos dolorosa e propensa a erros.

Usando macOS Sierra 10.12.5 (16F73) e TL 2016.

Responder1

Acontece que se \includefor movido para fora das chaves, o código funciona perfeitamente, da seguinte maneira:

% !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}

Saída:

insira a descrição da imagem aqui

Portanto, era na verdade um problema da Lilypond, conforme sugerido por @egreg (com agradecimentos e ao colega da lista da Lilypond que apontou a solução).

informação relacionada