如何创建一个函数来自动创建 header?

How to create a function to automate header creation?

我要使用 lilypond 进行一些转录。 它由几首歌曲组成,都是相同的 composer/poet,但以后可能还会有更多。 我已经在每个乐谱中包含了一些辅助函数,但我想要一个函数来自动创建 header,我可以这样调用:

\mkheader "my song"

或类似的东西。

这样可以避免写

\header {
  composer = "the composer of all the songs"
  title = "my song"
}

在每首歌中。

从两天前开始,我一直在(重新)阅读 lilypond 文档,但我无法让它工作。有什么想法吗?

您可能需要 Include files

目录结构:

.
├── my_include.ly
├── my_main.ly

my_include.ly

\header {
  composer = "the composer of all the songs"
  title = "my song"
} 

my_main.ly

\version "2.20.0"

\include "my_include.ly"

melody = \relative c {
  \key c \major
  \time 4/4
  c c c c |
}

\score {
  <<
    \new Staff { \melody }
  >>
}

你可能想稍后在主 lilypond 文件中添加额外的信息,在这种情况下你只需添加另一个 header 块 my_main.ly

\version "2.20.0"

\include "./my_include.ly"

\header {
 subtitle = "my_subtitle"
 subsubtitle = "my_subsubtitle"
}

melody = \relative c'' {
  \key c \major
  \time 4/4
  c c c c |
}

\score {
  <<
    \new Staff { \melody }
  >>
}