Skip to content
Snippets Groups Projects
Commit ec207af3 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Properly implement configurable headers/footers

parent c01d1c4e
Branches
No related tags found
No related merge requests found
......@@ -139,8 +139,8 @@
\newcommand{\scorenumber}[1]{\gdef\@scorenumber{#1}}
\let\@ismn\@empty
\newcommand{\ismn}[1]{\gdef\@ismn{#1}}
\let\@year\@empty
\renewcommand{\year}[1]{\gdef\@year{#1}}
\let\@yearpublished\@empty
\newcommand{\yearpublished}[1]{\gdef\@yearpublished{#1}}
\let\@todos\@empty
\newcommand{\todos}[1]{\gdef\@todos{#1}}
......@@ -278,20 +278,27 @@
\let\oldmaketitle\maketitle
% \def\@printdate{\footnotesize \@date \par\vspace{1em}}
% \def\@printdate{\footnotesize[] \today[] \par[]\vspace{1em}}
\def\@printdate{\footnotesize \the\year \par\vspace{1em}}
\renewcommand\maketitle{\thispagestyle{empty}{\begin{titlepage}%
\renewcommand\maketitle{\thispagestyle{empty}%
\begin{titlepage}%
\fontfamily{pbk}\selectfont
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
% \let\footnote\thanks
\fontsize{16pt}{18pt}\selectfont
\begin{center}
\null\vfill
{\footnotesize \@date \par}
\vspace{0.5em}
\ifx\@composer\@empty%
\else
{\fontsize{22pt}{25pt}\selectfont\textbf{\@composer}\ifx\@composerdate\empty\else{} \relax \@composerdate\fi}%
......@@ -351,8 +358,8 @@
\vfill
\@publisher\ifx\@year\@empty%
\else, \@year%
\@publisher\ifx\@yearpublished\@empty%
\else, \@yearpublished%
\fi\\
\@scorenumber%
% \vfill\null
......@@ -360,7 +367,7 @@
\end{center}
\end{titlepage}%
}
\setcounter{footnote}{0}%
\global\let\maketitle\relax
\setcounter{page}{2}
......
......@@ -1406,80 +1406,77 @@ titleScoreMarkup = \markup \piece-title \fromproperty #'header:piece
(interpret-markup layout props arg)
empty-stencil)))
#(define no-header-table '())
thisPageNoHeader = #(define-music-function (parser location) ()
(let* ((label (gensym "header")))
(set! no-header-table (cons label no-header-table))
(make-music 'Music
'page-marker #t
'page-label label)))
#(define no-header-table '(1))
addNoHeaderPage = #(define-music-function (parser location nr) (number?)
(set! no-header-table (cons nr no-header-table))
(make-music 'Music 'void #t))
setNoHeaderPages = #(define-music-function (parser location pages) (list?)
(set! no-header-table pages)
(make-music 'Music 'void #t))
% TODO: Use the no-header-table!
#(define (is-header-page layout props arg)
(let* ((page-number (chain-assoc-get 'page:page-number props -1))
)
;(if (and (> page-number 2) (!= page-number 7))
(if (> page-number 1)
(let* ((page-number (chain-assoc-get 'page:page-number props -1)))
(if (not (member page-number no-header-table))
(interpret-markup layout props arg)
empty-stencil)))
#(define no-footer-table '())
thisPageNoFooter = #(define-music-function (parser location) ()
(let* ((label (gensym "footer")))
(set! no-footer-table (cons label no-footer-table))
(make-music 'Music
'page-marker #t
'page-label label)))
#(define no-footer-table '(1))
addNoFooterPage = #(define-music-function (parser location nr) (number?)
(set! no-footer-table (cons nr no-footer-table))
(make-music 'Music 'void #t))
setNoFooterPages = #(define-music-function (parser location pages) (list?)
(set! no-footer-table pages)
(make-music 'Music 'void #t))
% TODO: Use the no-footer-table!
#(define (is-footer-page layout props arg)
(let* ((page-number (chain-assoc-get 'page:page-number props -1))
;(label 'first-score-page)
;(table (ly:output-def-lookup layout 'label-page-table))
;(label-page (and (list? table) (assoc label table)))
;(page-number (and label-page (cdr label-page)))
)
(if (and (> page-number 1))
(let* ((page-number (chain-assoc-get 'page:page-number props -1)))
(if (not (member page-number no-footer-table))
(interpret-markup layout props arg)
empty-stencil)))
#(define copyright-footer-table '())
thisPageCopyrightFooter = #(define-music-function (parser location) ()
(let* ((label (gensym "copyrightfooter")))
(set! copyright-footer-table (cons label copyright-footer-table))
(make-music 'Music
'page-marker #t
'page-label label)))
#(define copyright-pg 1)
#(define (set-copyright-page page)
(set! copyright-pg page)
)
% TODO: Use the copyright-footer-table!
#(define (copyright-page layout props arg)
(if (= (chain-assoc-get 'page:page-number props -1) copyright-pg)
#(define copyright-pages-table '(1))
addCopyrightPage = #(define-music-function (parser location nr) (number?)
(set! copyright-pages-table (cons nr copyright-pages-table))
(make-music 'Music 'void #t))
setCopyrightPages = #(define-music-function (parser location pages) (list?)
(set! copyright-pages-table pages)
(make-music 'Music 'void #t))
#(define (is-copyright-page layout props arg)
(let* ((page-number (chain-assoc-get 'page:page-number props -1)))
(if (member page-number copyright-pages-table)
(interpret-markup layout props arg)
empty-stencil))
empty-stencil)))
\paper {
oddHeaderMarkup = \markup \fill-line {
olyStdOddHeaderMarkup = \markup \fill-line {
%% force the header to take some space, otherwise the
%% page layout becomes a complete mess.
" "
\on-the-fly #is-header-page \fromproperty #'header:title
\on-the-fly #is-header-page \fromproperty #'page:page-number-string
}
evenHeaderMarkup = \markup \fill-line {
olyStdEvenHeaderMarkup = \markup \fill-line {
\on-the-fly #is-header-page \fromproperty #'page:page-number-string
\on-the-fly #is-header-page \fromproperty #'header:composer
" "
}
olyInstrumentOddHeaderMarkup = \markup \fill-line {
" "
\on-the-fly #is-header-page \concat { \fromproperty #'header:instrument }
\on-the-fly #is-header-page \fromproperty #'page:page-number-string
}
olyInstrumentEvenHeaderMarkup = \markup \fill-line {
\on-the-fly #is-header-page \fromproperty #'page:page-number-string
\on-the-fly #is-header-page \concat { \fromproperty #'header:composer ": " \fromproperty #'header:title }
" "
}
oddHeaderMarkup = \olyStdOddHeaderMarkup
evenHeaderMarkup = \olyStdEvenHeaderMarkup
oddFooterMarkup = \markup {
olyStdOddFooterMarkup = \markup {
\column {
\fill-line {
%% publisher header field only on title page.
......@@ -1487,8 +1484,8 @@ thisPageCopyrightFooter = #(define-music-function (parser location) ()
}
\fill-line {
%% copyright on the first real score page
\on-the-fly #copyright-page \fromproperty #'header:copyright
\on-the-fly #copyright-page \null
\on-the-fly #is-copyright-page \fromproperty #'header:copyright
\on-the-fly #is-copyright-page \null
}
\fill-line {
%% All other pages get the number of the edition centered
......@@ -1496,7 +1493,20 @@ thisPageCopyrightFooter = #(define-music-function (parser location) ()
}
}
}
olyInstrumentOddFooterMarkup = \markup {
\column {
\fill-line {
%% copyright on the first real score page
\on-the-fly #is-copyright-page \fromproperty #'header:copyright
\on-the-fly #is-copyright-page \null
}
\fill-line {
%% All other pages get the number of the edition centered
\on-the-fly #is-footer-page \fromproperty #'header:scorenumber
}
}
}
oddFooterMarkup = \olyStdOddFooterMarkup
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment