LilyPond - опускать первый номер страницы при нумерации, отформатированной с помощью разметки

Я использую этот фрагмент для переформатирования нумерации страниц LilyPond :

pagenumcol = \markup {
  \column {
    \vspace #0.5
    \fromproperty #'page:page-number-string
  }
}

copyrightcol = \markup {
  \fill-line {
    \box \fontsize #-4
    \column {
      \line { "Educational copying welcome." }
    }
  }
}

\paper {
  oddHeaderMarkup = \markup \null
  evenHeaderMarkup = \markup \null
  oddFooterMarkup = \markup { \copyrightcol \pagenumcol }
  evenFooterMarkup = \markup { \pagenumcol \copyrightcol }
}

При использовании этого примера печатается номер первой страницы. Кто-нибудь здесь знает, как я могу опустить это?

Я пытался добавить print-first-page-number = ##f, но в этом сценарии это не имеет никакого эффекта.

Ответы (1)

По умолчанию номер страницы не печатается на первой странице, поэтому добавление print-first-page-number = ##fне изменит настройку по умолчанию.

Вместо этого вам сначала нужно проверить, будет ли LilyPond по умолчанию печатать номер страницы на соответствующей странице. Это можно сделать с помощью \on-the-fly #print-page-number-check-first(см. также соответствующий раздел в документации LilyPond о настраиваемых нижних и верхних колонтитулах ).

Таким образом, вы повторно активируете поведение по умолчанию, когда номер страницы не печатается на первой странице, которое вы переопределили, определив свой собственный нижний колонтитул.

Следующие настройки должны работать:

pagenumcol = \markup {
  \column {
    \vspace #0.5
    \fromproperty #'page:page-number-string
  }
}

copyrightcol = \markup {
  \fill-line {
    \box \fontsize #-4
    \column {
      \line { "Educational copying welcome." }
    }
  }
}

\paper {
  oddHeaderMarkup = \markup \null
  evenHeaderMarkup = \markup \null
  oddFooterMarkup = \markup { \copyrightcol \on-the-fly #print-page-number-check-first \pagenumcol }
  evenFooterMarkup = \markup { \on-the-fly #print-page-number-check-first \pagenumcol \copyrightcol }
}