Левое выравнивание авторских прав в Lilypond

Можно ли в Lilypond выровнять информацию об авторских правах по левому краю вместо выравнивания по центру по умолчанию?

Привет РВР. Добро пожаловать на сайт. Пожалуйста, разместите соответствующую часть вашего кода.

Ответы (2)

Следуя этому ответу в списке рассылки lilypond-user, как насчет этого?

\version "2.20.0"

#(define-markup-command (forceLeft layout props content) (markup?)
   (interpret-markup layout props
     #{
       \markup \fill-line { #content \null }
     #}
     ))

\header {
  copyright = \markup \forceLeft "Left-aligned copyright"
  tagline = \markup \forceLeft "Left-aligned tagline"
}

\score {
  \new Staff <<
    c4
  >>
  \layout { }
}

Неясно, хотите ли вы, чтобы авторские права или слоган были выровнены по левому краю, но это может быть что угодно; просто предварите его, \markup \forceLeftи все будет хорошо.

Вот соответствующая часть в документации:

Пользовательский макет для верхних и нижних колонтитулов

To customize the placement of the text fields, use
either or both of the following \paper variables:

  - oddHeaderMarkup
  - evenHeaderMarkup
  - oddFooterMarkup
  - evenFooterMarkup

Начиная с версии 2.22.0, строка 172показывает ./usr/share/lilypond/current/ly/titling-init.ly, где определено поле авторских прав:

oddFooterMarkup = \markup {
  \column {
    \fill-line {
      %% Copyright header field only on first page in each bookpart.
      \on-the-fly #part-first-page \fromproperty #'header:copyright
    }
    \fill-line {
      %% Tagline header field only on last page in the book.
      \on-the-fly #last-page \fromproperty #'header:tagline
    }
  }
}

Это контролируется приведенными \markupздесь инструкциями, которые заключаются в том, чтобы напечатать один столбец с двумя полями, одно над другим: авторское право и слоган. Оба получают указание \fill-line, то есть равномерно распределяться по странице (или другой определенной области) .

Вы хотели бы изменить инструкцию об авторских правах, чтобы не использовать \fill-line; как это происходит, удаляя окружение \fill-line {и }автоматически перемещая его по левому краю на странице.

Если вы не хотите переопределять глобальные значения программы по умолчанию, скопируйте и вставьте это oddFooterMarkupопределение в \paper {}блок файла, который вы компилируете, и внесите в него указанные выше изменения.

Таким образом, вы получите:

\header {
  copyright = "This is left-aligned"
}
\paper {
  oddFooterMarkup = \markup {
    \column {
        %% Copyright header field only on first page in each bookpart.
        \on-the-fly #part-first-page \fromproperty #'header:copyright
      \fill-line {
        %% Tagline header field only on last page in the book.
        \on-the-fly #last-page \fromproperty #'header:tagline
      }
    }
  }
}
music = { d'1 }
\score {
  \new Staff \music
}