Можно ли в Lilypond выровнять информацию об авторских правах по левому краю вместо выравнивания по центру по умолчанию?
Следуя этому ответу в списке рассылки 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
}
Аарон