Hallo Michael,
ich hab auch gerade noch ein bisschen mit deiner Datei Psalm-148-v3 herumprobiert...
Die vielen ähnlichen \markup-Blöcke könnte man durch Funktionen ersetzen. Damit wird der Code vielleicht etwas übersichtlicher:
% Hello emacs, this is -*- coding:utf-8 -*-
\version "2.18.2"
\include "anglican-chant.ily"
\include "overlay-markup.ily"
\paper {
print-all-headers = ##t
print-page-number = ##f
}
\header {
% The following fields are centered
% dedication = "Day 27, Evening"
title = "Psalm 148"
% subtitle = "Subtitle"
% subsubtitle = "In convertendo"
% The following fields are evenly spread on one line
% the field "instrument" also appears on following pages
% instrument = \markup \with-color #green "Instrument"
poet = "20"
composer = \markup "Matthew Camidge (1758–1844)"
% The following fields are placed at opposite ends of the same line
% meter = "Meter"
% arranger = "TD 2007"
% The following fields are centered at the bottom
tagline = ##f
% tagline = "tagline goes at the bottom of the last page"
% copyright = "copyright goes at the bottom of the first page"
% The following fields are placed at opposite ends of the same line
% piece = "PRAELUDIUM I"
% opus = "BWV 248"
}
%}
keyTime = {
\key es \major
\time 2/2
}
SopranoMusic = \relative g' {
\mark \markup { \circle 1 }
g1 | as2 g | f1 | \bar "||"
\mark \markup { \circle 2 }
es1 | c'2 d | es as, | g f | \bar "||"
\mark \markup { \circle 3 }
bes1 | d2 bes | es1 | \bar "||"
\mark \markup { \circle 4 }
c1 | bes2 g | f f | es1 | \bar "|."
}
AltoMusic = \relative es' {
es1 | f2 es | d1 |
es1 | es2 as | g f | es d |
f1 | f2 f | es1 |
es1 | f2 es | es d | es1 |
}
TenorMusic = \relative bes {
bes1 | bes2 bes | bes1 |
g1 | as2 as | bes c | bes1 |
d1 | bes2 bes | bes1 |
as1 | f2 bes | c bes | g1 |
}
BassMusic = \relative es {
es1 | d2 es | bes1 |
c1 | as2 f' | g as | bes1 |
bes1 | as2 as | g1 |
as1 | d,2 es | as, bes | es1 |
}
% Use markup to center the chant on the page
\markup {
\fill-line {
\score {
% centered
%\transpose e es
<<
\new ChoirStaff <<
\new Staff <<
\keyTime
\clef "treble"
\new Voice = "Soprano" <<
\voiceOne
\SopranoMusic
>>
\new Voice = "Alto" <<
\voiceTwo
\AltoMusic
>>
>>
\new Staff <<
\clef "bass"
\keyTime
\new Voice = "Tenor" <<
\voiceOne
\TenorMusic
>>
\new Voice = "Bass" <<
\voiceTwo
\BassMusic
>>
>>
>>
>>
\layout {
\context {
\Score
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/2)
}
\context {
\Staff
\remove "Time_signature_engraver"
}
\context {
\Voice
\consists "Horizontal_bracket_engraver"
}
}
} % End score
}
} % End markup
\markup {
\fill-line {
\column {
\center-align { \null \null \line \caps { Psalm 148 } \vspace #0.8 }
}
} % \fill-line
} % \markup
#(define YPos 0)
#(define YOffset 3.2)
%#(define YSpace 4.4)
%#(define YOffset 0.7)
#(define YSpace 1.13)
#(define alignColOne CENTER)
#(define alignColTwo RIGHT)
#(define alignColThree RIGHT)
#(define alignColFour LEFT)
#(define XColOne 0)
#(define XColTwo 11)
#(define XColThree 16)
#(define XColFour 18)
#(define XColFourb 21.5)
#(define XColCont 28)
#(define-markup-command (TwoLines layout props argOne argTwo argThree argFour argFourb)
(markup? markup? markup? markup? markup?)
(interpret-markup layout props
#{
\markup {
%\fontsize #-2
\overlay {
%% das folgende \translate #'(x . y) \overlay { <tabelle> } definiert den Abstand der von
%% \overlay eingeschlossenen Tabelle vom linken Papierrand und der vorherigen Überschrift
\translate #'(11 . -2) \overlay {
%% verse 1
\translate #(cons XColOne YPos) \halign #alignColOne $argOne
\translate #(cons XColTwo YPos) \halign #alignColTwo \italic $argTwo
\translate #(cons XColThree YPos) \halign #alignColThree $argThree
\translate #(cons XColFour YPos) \halign #alignColFour $argFour
\translate #(cons XColFourb (- YPos YOffset)) \halign #alignColFour $argFourb
\vspace #YSpace
}
}
}
#}))
#(define-markup-command (ThreeLines layout props argOne argTwo argThree argFour argFourb argCont)
(markup? markup? markup? markup? markup? markup?)
(interpret-markup layout props
#{
\markup {
%\fontsize #-2
\overlay {
%% das folgende \translate #'(x . y) \overlay { <tabelle> } definiert den Abstand der von
%% \overlay eingeschlossenen Tabelle vom linken Papierrand und der vorherigen Überschrift
\translate #'(11 . -2) \overlay {
%% verse 1
\translate #(cons XColOne YPos) \halign #alignColOne $argOne
\translate #(cons XColTwo YPos) \halign #alignColTwo \italic $argTwo
\translate #(cons XColThree YPos) \halign #alignColThree $argThree
\translate #(cons XColFour YPos) \halign #alignColFour $argFour
\translate #(cons XColFourb (- YPos YOffset)) \halign #alignColFour $argFourb
\translate #(cons XColCont (- YPos (* 2 YOffset))) \halign #alignColFour $argCont
\vspace #YSpace
}
}
}
#}))
#(define-markup-command (FourLines layout props argOne argTwo argThree argFour argCont argFourb argContII)
(markup? markup? markup? markup? markup? markup? markup?)
(interpret-markup layout props
#{
\markup {
%\fontsize #-2
\overlay {
%% das folgende \translate #'(x . y) \overlay { <tabelle> } definiert den Abstand der von
%% \overlay eingeschlossenen Tabelle vom linken Papierrand und der vorherigen Überschrift
\translate #'(11 . -2) \overlay {
%% verse 1
\translate #(cons XColOne YPos) \halign #alignColOne $argOne
\translate #(cons XColTwo YPos) \halign #alignColTwo \italic $argTwo
\translate #(cons XColThree YPos) \halign #alignColThree $argThree
\translate #(cons XColFour YPos) \halign #alignColFour $argFour
\translate #(cons XColCont (- YPos YOffset)) \halign #alignColFour $argCont
\translate #(cons XColFourb (- YPos (* 2 YOffset))) \halign #alignColFour $argFourb
\translate #(cons XColCont (- YPos (* 3 YOffset))) \halign #alignColFour $argContII
\vspace #YSpace
}
}
}
#}))
\markup \TwoLines "" "Full" "1"
\line { O praise the | Lord \emphasize #"*o*f" \vertSep heav'n : }
\line { praise \vertSep ― him \vertSep \emphasize #"*i*n th*e*" \vertSep height. }
\markup \TwoLines "" "Full" "2"
\line { Praise him, all ye \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { angels \dot of } \vertSep his : }
\line { praise \vertSep ― him \vertSep all his \vertSep host. }
\markup \TwoLines "" "Full" "3"
\line { Praise him, \vertSep sun \emphasize #"*a*nd" \vertSep moon : }
\line { praise him, \vertSep all ye \vertSep stars \emphasize #"*a*nd" \vertSep light. }
\markup \TwoLines "" "Full" "4"
\line { Praise him, \vertSep all ye \vertSep heav'ns : }
\line { and ye wáters that \vertSep are a- \vertSep bove \emphasize #"th*e*" \vertSep heav'ns. }
\markup \ThreeLines "" "" "5"
\line { Let them praise the \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { Name of \dot the } \vertSep Lord : }
\line { for he spake the word and they were made, * he com- \vertSep }
\line { \single-hbracket \fontsize #-3 \italic " 3 " \line { manded \dot and } \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { they were \dot cre- } \vertSep ated. }
\markup \TwoLines "" "" "6"
\line { He hath made them fást for \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { ever \dot and } \vertSep ever : }
\line { he hath given them a \vertSep law which \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { shall not \dot be } \vertSep broken. }
\markup \TwoLines "" "" "7"
\line { Praise the \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { Lord up-on } \vertSep earth : }
\line { \emphasize #"y*e*" \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { dragons \dot and } \vertSep all ― \vertSep deeps ; }
\markup \TwoLines "" "" "8"
\line { Fire and hail, \vertSep snow \emphasize #"*a*nd" \vertSep vapours : }
\line { wind and \vertSep storm ful- \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { filling \dot his } \vertSep word ; }
\markup \TwoLines "" "" "9"
\line { Mountains \emphasize #"*a*nd" \vertSep all ― \vertSep hills : }
\line { fruitful \vertSep trees \emphasize #"*a*nd" \vertSep all ― \vertSep cedars ; }
\markup \TwoLines "" "" "10"
\line { Beasts \emphasize #"*a*nd" \vertSep all ― \vertSep cattle : }
\line { worms \vertSep ― \emphasize #"*a*nd" \vertSep feath-er'd \vertSep fowls ; }
\markup \TwoLines "" "" "11"
\line { Kings of the earth \emphasize #"*a*nd" \vertSep all ― \vertSep people : }
\line { princes and all \vertSep \emphasize #"judg-*e*s" \vertSep \emphasize #"*o*f th*e*" \vertSep world ; }
\markup \FourLines "" "" "12"
\line { Young men and maidens, old men and children, * praise the \vertSep }
\line { \single-hbracket \fontsize #-3 \italic " 3 " \line { Name of \dot the } \vertSep Lord : }
\line { for his Name only is excellent, * and his \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { praise a-bove } \vertSep }
\line { heav'n \emphasize #"*a*nd" \vertSep earth. \hspace #4 \bold {[ \concat{2 \super nd} part ➛ ]} }
\markup \TwoLines "" \line { \italic {\concat{2 \super nd} part } } "13"
\line { He shall exalt the horn of his people, * all his \vertSep saints shall \vertSep praise him : }
\line { even the children of Israel, \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { even \dot the } \vertSep \single-hbracket \fontsize #-3 \italic " 3 " \line { people \dot that } \vertSep serveth him. }
\markup \TwoLines "" "" ""
\line \italic { Glory \vertSep be \dot to the \vertSep father : }
\line { and to the Son, \vertSep and \dot to the \vertSep Ho-ly \vertSep Ghost ; }
\markup \TwoLines "" "" ""
\line { As it was in the beginning, * is now, and \vertSep ever \dot shall \vertSep be : }
\line { world without \vertSep end, A- \vertSepDot ― \vertSepDot men. }
Viele Grüße,
Klaus