lilypond-book 环境中的 \include-ed 变量不会扩展

lilypond-book 环境中的 \include-ed 变量不会扩展

我正在使用 TeX 中的 lilypond 排版一些音乐练习。纯代码似乎工作正常,但我有很多重复使用的代码,所以我尝试设置变量。变量似乎被拾取但没有扩展。

梅威瑟:

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

包含的文件lilypond-variables.ly

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

输出:

在此处输入图片描述

正如您所见,“硬编码”的 g 花音很好,但是应该产生的花音\Ggrace根本没有出现。

我已经尝试过\include(使用 Lilypond 文档中指定的引号)和\input(使用上述引号和括号),在此之前,我还尝试过\newcommandTeX 代码中的标准,但结果是一样的。

由于我有许多花音组合,所以这是一个很大的问题。我最初将它们全部硬编码,并认为这样可以让将来的编码不那么痛苦和容易出错。

使用 macOS Sierra 10.12.5 (16F73) 和 TL 2016。

答案1

事实证明,如果\include将 移到括号外面,代码就可以正常工作,如下所示:

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

输出:

在此处输入图片描述

因此,这实际上是@egreg 所建议的 Lilypond 问题(感谢 Lilypond 列表中指出解决方案的同事)。

相关内容