Показаны сообщения с ярлыком lilypond. Показать все сообщения
Показаны сообщения с ярлыком lilypond. Показать все сообщения

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.

12 дек. 2009 г.

Иллюстрация текста нотами

Продемонстрирую метод включения в текстовый документ нотных вставок на примере файла example.lytex следующего содержания:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\begin{document}
\title{Короткий документ, демонстрирующий совместное использование 
LilyPond и \LaTeX{}}
\date{}
\maketitle

При необходимости, можно иллюстрировать нотами тексты, подготовленые в \LaTeX{}:

\begin[fragment]{lilypond}
\relative c'' { \time 2/2 a2 g16 a g f d8 f a4 c a c}
\end{lilypond}

Существует более компактный, но менее наглядный и функциональный вариант
синтаксиса:

\lilypond[fragment]{\time 2/2 a'2 g'16 a' g' f' d'8 f' a'4 c'' a' c''}

Описываемый метод позволяет включать в текст большие блоки нотной записи,
причем разбивка на строки происходит автоматически:

\lilypondfile{example.ly}

У метода есть проблема, решения которой я пока не нашел "--- \LaTeX{}
подавляет русские буквы, используемые LilyPond (в частности, для отображения
текстов песен).
\end{document}

Как видите, к этому файлу подключен файл example.ly для пакета LilyPond, содержимое которого я тоже приведу:

\version "2.10.33"
\score { \relative c'' {
\time 2/2 a2 g16 a g f d8 f a4 c a c
          a2 g16 a g f d8 f a4 d a d
          ais4 e16 g ais d e4 g,16 a cis e f4. d16 f d2
          ais4 e16 g ais d e4 cis d2 \bar "|."
} }

Одним из результатов запуска команды
$ lilypond-book --pdf example.lytex
будет файл example.tex, который можно обрабатывать обычным образом:
$ pdflatex example.tex

Результат (example.pdf) соответствует ожиданиям:


Существует документация (на английском) к LilyPond вообще и его интеграции с LaTeX в частности.

UPD: Похоже, $ aptitude install cm-super решает проблему подавления pdflatex-ом русских букв, используемых lilypond-ом.