14 мар. 2010 г.

Заголовки партитур в LilyPond

Сформировать заголовок партитуры в LilyPond можно следующим образом:
\version "2.12.1"
\pointAndClickOff
\book{
  \paper {indent = 0}
  \header {
      dedication  = "Посвящение"
      title       = "Название"
      subtitle    = "Подзаголовок"
      subsubtitle = "Подподзаголовок"
      poet        = "Имя ПОЭТА"
      instrument  = "Название инструмента"
        %Центрируется под подподзаголовком. Кроме того, центрируется вверху 
        %каждой последующей после первой страницы.
      composer    = "Имя КОМПОЗИТОРА"
      meter       = "Meter string"
        %Выравнивается по левому краю под именем поэта.
      arranger    = "Имя АРАНЖИРОВЩИКА"
      piece       = "Название пьесы"      %Эти два параметра отображаются для
      opus        = "Название сочинения"  %каждого \score{}, если там не указаны
                                          %собственные значения.
      %breakbefore      = This forces the title to start on a new page 
      %(set to ##t or ##f).
      copyright        = "© Уведомление об авторском праве"
      %Центрируется внизу первой страницы.
      tagline           = "Подзаголовок"
      %Центрируется внизу последней страницы.
  }
  \score {
    \relative c'' {
      \tempo "Slowly and tenderly" 4.=54 
      c4
    }
    \header {
      %piece = "Название пьесы 1"      %Эти два параметра подавляют аналоги из 
      opus  = "Название сочинения 1"  %главного блока \header{} если заданы здесь.
        % Остальные параметры будут подавлены в любом случае.
    }
  }
  \markup {
      Необязательный текстовый блок
  }
  \score {
    {\tempo "Allegro" 4=120 
      c'4
    }
    \header {
      piece = "Название пьесы 2"      %Эти два параметра подавляют аналоги из 
      %opus  = "Название сочинения 2"  %главного блока \header{} если заданы здесь.
        % Остальные параметры будут подавлены в любом случае.
    }
  }
}
После компиляции этого кода получится следующий результат:
Обычное заполнение полей заголовков
В случае, когда пользователю необходимо отображение, отличное от предоставляемого (например, сведения о композиторе необходимо отобразить в несколько строк), он может воспользоваться более сложным синтаксисом:
\version "2.12.1"
\pointAndClickOff
\book{
  \paper {indent = 0} % Убираем "красную строку" во всем документе.
  \header {
      dedication  = \markup \fill-line {"Посвящение" "Еще одно посвящение"}
      title       = \markup \column \center-align {"Название произведения" "в несколько строк"}
      subtitle    = \markup \fill-line {" " "Подзаголовок"}
      subsubtitle    = \markup \fill-line {"Подподзаголовок" " "}
      poet        = \markup \left-align \center-column {"Город" "Имя ПОЭТА" "Год"}
      instrument  = "Название инструмента"
      composer    = \markup \right-align \center-column {"Город" "Имя КОМПОЗИТОРА" "Год"}
      meter      = \markup {Slowly and tenderly (\teeny \note #"4." #1 = 54) }
      arranger    = \markup \right-column {"Город" "Имя АРАНЖИРОВЩИКА" "Год"}
%     tagline     = ##f %Если не указать tagline выводится значение по умолчанию: 
%                         "Music engraving by LilyPond 2.12.1—www.lilypond.org"
  }
  \score { \relative c'' { c4 } }
}
После компиляции этого кода получится следующий результат:
Необычное заполнение полей заголовков
В принципе, штатное использование полей заголовка не обязательно. Здесь находится соответствующая страница официального руководства пользователя LilyPond.