This commit is contained in:
2024-11-09 10:22:21 +01:00
parent ed6a1fb612
commit 02557ee6bc
13 changed files with 28 additions and 18 deletions
+13
View File
@@ -0,0 +1,13 @@
build_dir = ../build
library_dir = ../library
propers_dir = ../propers
config_dir = ../config
tex_deps = *.tt $(library_dir)/*/*/*.tt $(config_dir)/song_choices.csv $(propers_dir)/*.tt
songsheet.tex: songsheet.tt $(tex_deps) header.tt head.tt footer.tt
tpage $< > $(build_dir)/$@
musician_scores.tex: musician_scores.tt $(tex_deps)
tpage $< > $(build_dir)/$@
leadsheet_collection.tex: musician_scores.tt $(tex_deps)
tpage --define parts=band $< > $(build_dir)/$@
choir_scores.tex: musician_scores.tt $(tex_deps)
tpage --define parts=SATB $< > $(build_dir)/$@
+3
View File
@@ -0,0 +1,3 @@
[% IF parts == '' -%]
\newpage\null\thispagestyle{empty}\newpage
[% END -%]
+27
View File
@@ -0,0 +1,27 @@
\vspace*{\fill}
[% USE qr_codes = datafile("${config_dir}/qr_codes.csv", delim='|') %]
[% FOREACH qr_code = qr_codes -%]
[% IF small_footer -%]
\begin{minipage}{0.8\textwidth}
\begin{vplace}[1]
\textit{[% qr_code.description %]}
\end{vplace}
\end{minipage}\hfill%
\begin{minipage}{0.2\textwidth}
\hfill\qrcode[width=\textwidth]{[% qr_code.url %]}
\end{minipage}\par
[% ELSE -%]
\begin{minipage}{0.7\textwidth}
\begin{vplace}[1]
\textit{[% qr_code.description %]}
\end{vplace}
\end{minipage}\hfill%
\begin{minipage}{0.25\textwidth}
\hfill\qrcode[width=\textwidth]{[% qr_code.url %]}
\end{minipage}\par
[% END -%]
[% END -%]
+4
View File
@@ -0,0 +1,4 @@
\section*{[% title %]}
[% IF meditations -%]
\textit{[% subtitle %]}
[% END -%]
+118
View File
@@ -0,0 +1,118 @@
\documentclass[a6paper,10pt]{memoir}
\usepackage[ngerman]{babel}
\usepackage{enumitem}
\usepackage{fontspec}
\usepackage[left=5mm, right=5mm, top=5mm, bottom=5mm]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{ifthen}
\usepackage[utf8]{inputenc}
\usepackage{ltxtable}
\usepackage{lyluatex}
\usepackage{multirow}
\usepackage[ngerman]{selnolig}
\usepackage{svg}
\usepackage[explicit]{titlesec}
\usepackage{wrapfig}
\usepackage{qrcode}
\usepackage{xcolor}
%For tables with multiline cells
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
%For tables that could span pagebreaks, pass a
%file path to this macro
\newcommand{\mytable}[1]{\LTXtable{\textwidth}{#1}}
\definecolor{hope_blue}{RGB}{54,95,145}
\definecolor{hope_purple}{HTML}{7a3691}
\definecolor{hope_pink}{HTML}{ca70c6}
\definecolor{hope_gold}{HTML}{916836}
\definecolor{hope_white}{HTML}{916836}
\definecolor{hope_green}{HTML}{36913a}
\definecolor{hope_red}{HTML}{91363b}
\newcommand{\raisedrulefill}[2][0ex]{\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill}
\setmainfont[
Path = ../fonts/EBGaramond12/fonts/ttf/,
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Numbers = {OldStyle, Proportional},
RawFeature = {+ss06}
]{EBGaramond}
\newfontfamily\headingfont[
Path=../fonts/dosis-vf/fonts/ttf/,
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold
]{Dosis}
\titleformat{\section}{\headingfont\color{hope_[% color %]}\bfseries\huge}{\thesection. }{0em}{#1}
\titleformat{\subsection}{\headingfont\Large}{\thesubsection. }{0em}{\color{black}#1\,\color{hope_[% color %]}\raisedrulefill[0.0ex]{2pt}}
\newcommand{\song}[3]{%
\ifthenelse{\equal{#1}{}}
{\subsection*{#2}\par{#3}\par}
{\subsection*{\textbf{#1} {#2}}\par{#3}\par}}
\newcommand{\gradualverse}[2]{
\leavevmode\par
\begin{center}
\begin{minipage}{.9\textwidth}
{%
#1\unskip\nobreak\hfil\penalty50
\hskip2em\hbox{}\nobreak\hfil\textit{#2}%
\parfillskip=0pt \finalhyphendemerits=0 \par}
\end{minipage}
\end{center}\leavevmode\par
}
\newcommand{\ordinarium}[1]{%
\leavevmode\par
\begin{center}
\begin{minipage}{.9\textwidth}
\input{#1}
\end{minipage}
\end{center}\leavevmode\par
}
\newcommand{\original}[1]{{
\footnotesize Originaltitel: #1}}
\newcommand{\TM}[1]{{
\footnotesize T \& M: #1}}
\newcommand{\arrangement}[1]{{
\footnotesize S: #1}}
\newcommand{\lyrics}[1]{{
\footnotesize T: #1}}
\newcommand{\melody}[1]{{
\footnotesize M: #1}}
\newcommand{\translation}[1]{{
\footnotesize Ü: #1}}
%Music macros
\newcommand{\Chorus}[2][]{\par\ifthenelse{\equal {#1} {} }{\textit{Ref.} {#2}}{\textit{Ref. {#1}.} {#2}}}
\newcommand{\VA}[1]{\par\textit{V/A:} {#1}}
\newcommand{\V}[1]{\textit{V:} {#1}}
\newcommand{\A}[1]{\textit{A:} {#1}}
\newcommand{\Ant}[1]{\par\textit{Ant:} {#1}}
\newcommand{\Bridge}[2][]{\par\ifthenelse{\equal {#1} {} }{\textit{Bridge.} {#2}}{\textit{Bridge {#1}.} {#2}}}
\newcommand{\Pre}[1]{\par\textit{Pre.} {#1}}
\newcommand{\Outro}[1]{\par\textit{Outro} {#1}}
\newcommand{\St}[2]{\par\textit{{#1}.} {#2}}
\setluaoption{ly}{staffsize}{14}
\setlength\parindent{0pt}
\setlength\parskip{2mm plus 1mm minus 1.5mm}
\setlist[itemize]{noitemsep}
\setlength{\droptitle}{-1.875cm}
\setlength{\droptitle}{-1.875cm}
%Gregorian chant settings
[% IF gregorian != '0' %]
\usepackage[autocompile]{gregoriotex}
\grechangestaffsize{10}
\grechangedim{baselineskip}{12mm plus 0mm minus 0mm}{scalable}
\grechangestyle{firstword}{\scshape}
\grechangedim{spacelinestext}{4mm}{fixed}
[% END %]
+93
View File
@@ -0,0 +1,93 @@
[% PROCESS variables.tt -%]
\documentclass[a4paper,12pt]{article}
\usepackage[ngerman]{babel}
\usepackage{enumitem}
\usepackage{fontspec}
\usepackage[margin=2cm]{geometry}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{ifthen}
\usepackage[utf8]{inputenc}
\usepackage{ltxtable}
\usepackage[pass-fonts=true]{lyluatex}
\usepackage{multirow}
\usepackage{svg}
\usepackage[explicit]{titlesec}
\usepackage{wrapfig}
\usepackage{xcolor}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\newcommand{\mytable}[1]{\LTXtable{\textwidth}{#1}}
\newcommand{\raisedrulefill}[2][0ex]{\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill}
\setmainfont[
Path = ../fonts/EBGaramond12/fonts/ttf/,
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
Numbers = {OldStyle, Proportional},
RawFeature = {+ss06}
]{EBGaramond}
%\titleformat{\subsection}{\normalfont\Large}{\thesubsection. }{0em}{#1}
\newcommand{\song}[3]{\ifthenelse{\equal{#1}{}}
{\subsection*{#2}\par{#3}\par}
{\subsection*{\textit{#1} {#2}}\par{#3}\par}}
\newcommand{\gradualverse}[2]{#1\hfill\textit{#2}}
\newcommand{\ordinarium}[1]{\input{#1}}
\newcommand{\original}[1]{{
Originaltitel: #1}}
\newcommand{\TM}[1]{
T \& M: #1}
\newcommand{\arrangement}[1]{
S: #1}
\newcommand{\lyrics}[1]{
T: #1}
\newcommand{\melody}[1]{
M: #1}
\newcommand{\translation}[1]{
Ü: #1}
\newcommand{\Chorus}[2][]{\ifthenelse{\equal {#1} {} }{\textit{Ref.} {#2}\par}{\textit{Ref. {#1}.} {#2}\par}}
\newcommand{\VA}[1]{\textit{V/A:} {#1}\par}
\newcommand{\V}[1]{\textit{V:} {#1}\par}
\newcommand{\A}[1]{\textit{A:} {#1}\par}
\newcommand{\Ant}[1]{\textit{Ant:} {#1}\par}
\newcommand{\Bridge}[2][]{\ifthenelse{\equal {#1} {} }{\textit{Bridge.} {#2}\par}{\textit{Bridge {#1}.} {#2}\par}}
\newcommand{\Pre}[1]{\textit{Pre.} {#1}\par}
\newcommand{\Outro}[1]{\textit{Outro} {#1}\par}
\newcommand{\St}[2]{\textit{{#1}.} {#2}\par}
\setlength\parindent{0pt}
\setlength\parskip{2mm plus 1mm minus 1.5mm}
\setlist[itemize]{noitemsep}
[% IF gregorian -%]
\usepackage[autocompile]{gregoriotex}
\grechangestyle{firstword}{\scshape}
[% END -%]
\begin{document}
\section*{[% title %]}
\begin{centering}
[% subtitle %]
\end{centering}
[% USE song_choices = datafile("${config_dir}/song_choices.csv", delim='|') %]
[% IF parts == 0 -%]
parts = ensemble
[% END -%]
[% FOREACH song = song_choices %]
\newpage
[% template = song.template == '' ? "song_template.tt" : song.template -%]
[% INCLUDE "$template"
purpose = song.purpose
title = song.title
content = song.content
variables = song.variables ? "${song.variables}/assignments.tt" : ''
%]
[% END %]
\end{document}
+28
View File
@@ -0,0 +1,28 @@
[% IF purpose == 'introitus';
purpose_print = purpose_print ? purpose_print : 'Eröffnung';
meditation = introitus;
ELSIF purpose == 'confiteor';
purpose_print = purpose_print ? purpose_print : 'Schuldbekenntnis';
ELSIF purpose == 'kyrie';
purpose_print = purpose_print ? purpose_print : 'Kyrie';
ELSIF purpose == 'gloria';
purpose_print = purpose_print ? purpose_print : 'Gloria';
ELSIF purpose == 'graduale';
purpose_print = 'Antwortpsalm-Kehrvers';
ELSIF purpose == 'tractus';
purpose_print = passion ? 'Ruf vor der Passion' : lent ? 'Ruf vor dem Evangelium' : 'Halleluja';
ELSIF purpose == 'credo';
purpose_print = 'Glaubensbekenntnis';
ELSIF purpose == 'offertorium';
purpose_print = 'Zur Gabenbereitung';
meditation = offertorium;
ELSIF purpose == 'sanctus';
purpose_print = purpose_print ? purpose_print : 'Sanctus';
ELSIF purpose == 'agnus';
purpose_print = purpose_print ? purpose_print : 'Agnus Dei';
ELSIF purpose == 'communio';
purpose_print = 'Zur Kommunion';
meditation = communio;
ELSIF purpose == 'BMV';
purpose_print = 'Marianische Antiphon';
END -%]
+54
View File
@@ -0,0 +1,54 @@
[% PROCESS purpose_processing.tt;
IF variables;
PROCESS "$variables";
END;
-%]
\song{[% purpose_print ? purpose_print : purpose %]}{[% song_title -%]}{
[% before_song -%]
\begin{samepage}
[% IF scores -%]
[% IF scores.gregorian AND (gregorian OR NOT scores.congregation) -%]
[% IF NOT gregorian -%]
\textbf{\LARGE{Activate gregorian}}
[% ELSE -%]
\gregorioscore{[% library_dir %]/[% scores.gregorian %]}
[% END -%]
[% ELSE -%]
\lilypondfile{[% IF parts;
IF parts == 'band';
IF scores.leadsheet;
GET "${library_dir}/${scores.leadsheet}";
ELSE;
GET "${library_dir}/${scores.SATB}";
END;
ELSIF parts == 'SATB';
IF scores.SATB;
GET "${library_dir}/${scores.SATB}";
ELSE;
GET "${library_dir}/${scores.leadsheet}";
END;
END;
ELSE;
GET "${library_dir}/${scores.congregation}";
END; %]}
[% END -%]
[% ELSIF lyrics -%]
[% lyrics %]
[% END -%]
[% IF credits -%]
\leavevmode\\*
[% FOREACH key = credits.keys -%]
\[% key %]{[% credits.$key %]}
[% END -%]
[% END -%]
\end{samepage}
[% content -%]
[% IF (meditation && meditations) || (parts && meditation) -%]
\leavevmode\par\smallskip
[% meditation %]
[% END -%]
[% IF after_song -%]
\leavevmode\par\smallskip
[% after_song %]
[% END -%]
}
+20
View File
@@ -0,0 +1,20 @@
[% PROCESS variables.tt -%]
[% parts = 0 -%]
[% INCLUDE header.tt -%]
\begin{document}
[% INCLUDE head.tt %]
[% USE song_choices = datafile("${config_dir}/song_choices.csv", delim='|') %]
[% FOREACH song = song_choices %]
[% template = song.template == '' ? "song_template.tt" : song.template -%]
[% INCLUDE "$template"
purpose = song.purpose
content = song.content
variables = song.variables ? "${song.variables}/assignments.tt" : ''
%]
[% END %]
[% INCLUDE footer.tt %]
\end{document}
+14
View File
@@ -0,0 +1,14 @@
[% DEFAULT
color = 'blue'
title = 'Sonntag'
subtitle = ''
credo = 'library/gebete/credo/apostolisch_de.tex'
gregorian = 0
small_head = 0
small_footer = 0
lent = 0
meditations = 0
config_dir = '../config'
library_dir = '../library'
-%]
[%# PROCESS propers/per_annum_XIII.tt -%]