summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/liederbuch/liederbuch-documentation.tex
blob: 852d6d3b432480b54ba2d82c61d2491a1756eb31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
\documentclass[12pt,a4paper]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[dvipsnames]{xcolor}
\usepackage{multicol}
\usepackage{tipa}
\usepackage{tikz}
\usepackage{longtable}
\usepackage[parfill]{parskip} 	% no indendation, though proper paragraph spacing
\usepackage{varioref}
\usepackage[hidelinks,colorlinks=false,bookmarks=false,
  pdftitle={The Liederbuch-Package},
  pdfsubject={LaTeX},
  pdfkeywords={music,score,scores,notation,notes},
  pdfauthor={Gabriel Ruprecht},
  urlcolor=blue,
  pdfstartview=Fit
  ]{hyperref}
\usepackage{listings}
\lstset
{ %Formatting for code in appendix
    language=TeX,
    numbers=left,
    stepnumber=1,
    showstringspaces=false,
    tabsize=1,
    breaklines=true,
    breakatwhitespace=false,
    basicstyle=\ttfamily}
%\DeclareUnicodeCharacter{017F}{s}

\begin{document}
{
\def\vfill{\vskip 0pt plus 300pt minus 30pt \relax}
\begin{center}
\pagenumbering{gobble}
\mbox{}\vskip 50pt\relax
\textsf{\textbf{\huge The Liederbuch-Package}}
\vskip 12pt \relax
\textipa{\textbf{\large[D@ li:d\textturna bu:x-p\ae kIdZ]}}
\vfill\mbox{}
\vfill\mbox{}
{\Large Gabriel Ruprecht}
\vfill\mbox{}
\normalsize{created with a lot of help from \LaTeX .SX and the German lilypond-forum}
\vfill\mbox{}
\vfill\mbox{}
{\Large \today}
\vfill\mbox{}
\vfill\mbox{}
\vfill\mbox{}
\fbox{\includegraphics[height=0.42\paperheight , page=1]{DemoProjekt/DemoProjekt}}
\vskip 40pt\relax
Version 1.0
\mbox{}\vskip -80pt\relax
\mbox{}
\end{center}
\newpage
\pagenumbering{arabic}
\setcounter{page}{2}
}



%ſſſ

\tableofcontents


\chapter{Introduction}
\label{Introduction}
The Liederbuch-Package originated in the search for a standardized, simple and fast way, to produce small songbooks for my fraternity\footnote{It is a German fraternity and therefore quite different from american ones.}. The idea was to provide a few commands to make a songbook. It should also include some designs and be easily usable by \mbox{non-\TeX -safe} people.

It became very clear during the project, that it would be usefull to divide this into several parts: Mainly the Liederbuch-Package, the Liederheft-Package and the Fill-Pages-Package. Later the Real-Page-Package package came in addition. The first one provides commands and designs referring the songs, the second one provides commands and desings referring the songbook. Therefore the Liederbuch-Package can be used as well i.e. in a book about the history of folk songs. The Fill-Pages-Package and the Real-Page-Package become their own entity in CTAN (at least, that's the plan).

\newpage
The sample on the title page uses just the following commands:
\begin{lstlisting}[breaklines,numbers=left]
\documentclass[a5paper, 11pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{scrlayer-scrpage}

\usepackage{TestLiederbuch}


\LBHead{%
{\Large \textbf{\print{title}}}\hfill\mbox{}\vspace*{5pt}\\
\makebox[32pt]{Musik:\hfill} \print{composer} \\\makebox[32pt]{Text:\hfill} \print{lyricist}\vspace*{3pt}

}
\LBFoot{Herausgabedatum: \print{date}\hfill\mbox{}}

\setSpaceBeforeStropheValue{15pt plus 5pt}
\setSpaceAfterStropheValue{0pt plus 5pt}
\setSpaceBeforeHeadValue{15pt plus 10pt minus 5pt}
\setSpaceBeforeFootValue{15pt plus 10pt minus 5pt}

\begin{document}

\LBsong{TestLiederbuch}{1}{nt}

\end{document}
\end{lstlisting}

As you see, inside begin-end-document, there is only one line, which inserts the whole song of the songbook. The previous statements are just for the appearance of all songs. To access the songbook, here \glqq TestLiederbuch\grqq , you have to include it in the first place, via \verb+\usepackage{ }+ with the songbook name.

\newlength\tempheight
\tempheight=\textheight
\textheight=1.05\textheight
\newpage
\textheight=\tempheight

The songbook looks like the following. The \verb+\ns+, stands for new syllable (German: neue Silbe). The star just adds a dash between the syllables:
\begin{lstlisting}[breaklines,numbers=left]
\ProvidesPackage{TestLiederbuch}
\RequirePackage{liederbuch}

\begin{liederbuch}[
titleOfLargerWork = Test-Liederbuch &
date = 2017 &
seriesTitle = Demoprojekt
]{TestLiederbuch}

\begin{lied}[title=Hänschen klein & lyricist=Volkslied \& überliefert & composer = Volkslied]{nt}{1}
{%
\notenzeile{\includegraphics[width=\linewidth,page=1]{./TestLiederbuchSnippets/haenschenKlein.pdf}}%
{\nspace{5pt} Häns \ns* chen  \ns klein, \ns \ns ging \ns all \ns* ein \ns \ns in \ns die \ns wei \ns* te \nspace{4}}
\notenzeile{\includegraphics[width=\linewidth,page=2]{./TestLiederbuchSnippets/haenschenKlein.pdf}}%
{\nspace{12pt} Welt \ns hin \ns* ein. \ns \ns Stock \ns und \ns Hut \ns steht \ns ihm \ns gut, \nspace{5}}
\notenzeile{\includegraphics[width=\linewidth,page=3]{./TestLiederbuchSnippets/haenschenKlein.pdf}}%
{\nspace{6} ist \ns gar \ns wohl \ns* ge \ns* mut. \nspace{5} Ab \ns* er \ns Mut \ns* ter \nspace{3} }
\notenzeile{\includegraphics[width=\linewidth,page=4]{./TestLiederbuchSnippets/haenschenKlein.pdf}}%
{\nspace{4} wein \ns* et \ns sehr, \ns hat \ns ja \ns wohl \ns kein \ns Häns \ns* chen \ns mehr. \nspace{2} }
\notenzeile{\includegraphics[width=\linewidth,page=5]{./TestLiederbuchSnippets/haenschenKlein.pdf}}%
{\nspace{5} Da \ns be \ns* sinnt \ns \ns sich \ns das \ns Kind, \ns \ns kehr \ns* et \ns heim \ns ge \ns* schwind \nspace{2} }
}
\end{Lied}

\end{liederbuch}
\end{lstlisting}


As you see, the big frame is the Liederbuch-environment (songbook), inside which several Lieder (songs) can be. Each garnished with some meta data. If you look back to the cover page, you can see, that this meta data can be used in the header and footer of the songs. Each \verb+\notenzeile+ command takes two arguments: The score image and the lyrics.


\chapter{General information}
\section{Terminology}
The following list is for understanding the structure of the commands.
\begin{enumerate}
\item \emph{GFM} are the tokens which precede every internal command of the package. They also precede some end-user commands. These are the first letters of all the first names of the original author (Gabriel Franz Maria). If some George Florian Michael in Oklahoma uses the same scheme, I'm really sorry, for the interference and incompability.
\item \emph{Lied/Lieder} is German and translates to song/songs.
\item \emph{Buch} translates to book
\item \emph{Heft} translates to notebook, booklet
\item \emph{Liederheft} translates to songbook. It describes a small songbook you use i.e. for weddings and is made out of a few printed pages, stapled together.
\item \emph{Liederbuch} translates to songbook also. But it describes the songbook, you copied the songs for the  i.e. wedding from.
\item \emph{Note(n)} means note(s) as in music.
\item \emph{Zeile} means line as in text line.
\item All the internal Commands follow the same rule of \\\verb+\GFM@CurrentPackageAbbreviation@CommandName+
\end{enumerate}




\newpage
\section{The Different Parts of the Liederbuch-Package}
The following subsections are short descriptions of the packages. The full description is provided in each corresponding chapter.
\subsection{Liederbuch} 
This (main) package provides commands and environments to create songbooks which can be used elsewhere. The features are:
\begin{itemize}
\item the font of the lyrics appear in the current \LaTeX -font (can be overridden in the songbooks)
\item customizeable spaces to change the appearance of the imported song. i.e. space before song head, space after song head etc. These spaces also allow the use of \verb+plus+ and \verb+minus+, the way they are used in skips.
\item use predefined head and foot styles for the songs or create your own styles.
\item use meta data in the headers and footers. i.e. song title, composer, copyright, etc.
\end{itemize}
This package is not used in the document but in the sty-file, which serves as the songbook. If you have your songbook defined in the preamble, you need to load the package in the document of course.


\subsection{Liederheft - unfinished, better do not use yet}
This is a class, which provides commands and environments to easily create small booklets. This includes several predefined designs. This package is not limited to songbooks. It can be used for anything which has the character of a stapled home made booklet for one time use.


\subsection{Print Liederbuch}
This allows you to list all content of a songbook (liederbuch), you created. It is much more comfortable than looking at the source code.


\chapter{Liederbuch-Package}
This package provides the commands to create the songbooks, aka databases, where you choose the songs from. 


\section{Basics}
On figure \vref{abb:LiBa1} you see the layout of each song. The head, notes, songtext and foot is grouped in boxes. These boxes are vertically aligned according to the spaces which can include \verb+plus minus+. Example:
\begin{lstlisting}[numbers=none]
   \setSpaceBeforeHead{30pt plus 1fil minus 2pt}
\end{lstlisting}
About the songtext and its alignment, we get into detail later.

\begin{figure}
\hskip 0pt plus 3pt minus 3pt\begin{tikzpicture}
\tikzset{inner sep=0pt, outer sep= 0pt}

%\node [above] at (0.5\textwidth, 0) {\parbox{\textwidth}{\texttt{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.}}};
%Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem.}};


%\draw [dotted,thin] (\textwidth,0) -- (\textwidth,-19);
%\draw [dotted,thin] (0,0) -- (0,-19);

\draw [dashed,very thick] (0,1.5) -- (\textwidth,1.5);
\draw [very thick] (0,1.5) -- (0,0) -- (\textwidth,0) -- (\textwidth,1.5);
\node at (0.5\textwidth, 0.75){\verb+some running text+};


\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceBeforeHead+};

\tikzset{shift={(0,-0.6)}}

\draw [very thick] (0,0) rectangle (\textwidth,0.6);
\node at (0.5\textwidth, 0.3){\verb+head+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceAfterHead+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceBeforeNotes+};

\tikzset{shift={(0,-0.6)}}

\draw [very thick] (0,0) rectangle (\textwidth,0.6);
\node at (0.5\textwidth, 0.3){\verb+notes+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceAfterNotes+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceBeforeSongLyrics+};

\tikzset{shift={(0,0)}}

\draw [very thick] (0,0) rectangle (\textwidth,-2.5);
\node at (0.5\textwidth, -0.5){\verb+songtext below notes+};

\draw [<->, very thick] (0,-2) -- (2, -2);
\node at (1, -1.5){\verb+\nspace+};

\node at (2.5, -2){\verb+word+};

\draw [<->, very thick] (3,-2) -- (5, -2);
\node at (4, -1.5){\verb+\ns+};

\node at (5.5, -2){\verb+word+};

\draw [<->, very thick] (6,-2) -- (8, -2);
\node at (7, -1.5){\verb+\ns+};

\node at (9, -2){\verb+syllable+};

\draw [<->, very thick] (10,-2) -- (10.8, -2);
\node at (11, -1.2){\verb+\ns*+};

\draw [thick](10,-1.85) [out=90, in= -90] to (11,-1.5) [out=-90, in= 90] to (12, -1.85); 
\node at (11, -2){\verb+-+};

\draw [<->, very thick] (11.2,-2) -- (12, -2);

\node at (13, -2){\verb+syllable+};

\draw [<->, very thick] (14,-2) -- (15.75, -2);
\node at (14.875, -1.5){\verb+\nspace+};

\tikzset{shift={(0,-3.5)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceAfterSongLyrics+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceBeforeNotes+};

\tikzset{shift={(0,-0.6)}}

\draw [very thick] (0,0) rectangle (\textwidth,0.6);
\node at (0.5\textwidth, 0.3){\verb+notes+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceAfterNotes+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceBeforeSongLyrics+};

\tikzset{shift={(0,-1.5)}}

\draw [very thick] (0,0) rectangle (\textwidth,1.5);
\node at (0.5\textwidth, 1.0){\verb+songtext below notes+};
\node at (0.5\textwidth, 0.4){\verb+like  above+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceAfterSongLyrics+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceBeforeFoot+};

\tikzset{shift={(0,-0.6)}}

\draw [very thick] (0,0) rectangle (\textwidth,0.6);
\node at (0.5\textwidth, 0.3){\verb+foot+};

\tikzset{shift={(0,-1)}}

\draw [<->, very thick] (0.35\textwidth, 0) -- (0.35\textwidth, 1);
\node [right] at (0.37\textwidth, 0.5){\verb+\spaceAfterFoot+};

\tikzset{shift={(0,-1.5)}}

%\node [below] at (0.5\textwidth, 0) {\parbox{\textwidth}{\texttt{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.}}};
%Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque.}};
%Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem.}};

\draw [dashed,very thick] (0,0) -- (\textwidth,0);
\draw [very thick] (0,0) -- (0,1.5) -- (\textwidth,1.5) -- (\textwidth,0);
\node at (0.5\textwidth, 0.75){\verb+some running text+};

\end{tikzpicture}\hskip 0pt plus 3pt minus 3pt
\vskip 10pt plus 10pt minus 10pt
\caption{layout and spacing of a page with several musical lines\hskip 0pt plus 1filll\mbox{}}
\label{abb:LiBa1}
\vskip -14pt
\end{figure}

%%In \varioref{}
%
%\begin{figure}
%\begin{tikzpicture}
%\draw [very thick] (0,0) -- (0,1) -- (\textwidth,1) -- (\textwidth,0);
%\node at (0.5\textwidth, 0.5){music staff with notes, loaded from image};
%
%\tikzset{shift={(0,-1.5)}}
%
%\draw [very thick] (0,0) rectangle (\textwidth,1.5);
%
%\draw [<->, very thick] (0.0\textwidth, 0.5) -- (0.2\textwidth, 0.5);
%\node at (0.1\textwidth, 1){\verb+\nspace{x pt}+};
%
%\draw [very thick] (0.2\textwidth,0.25) rectangle (0.3\textwidth,0.75);
%\node at (0.25\textwidth, 0.5){Word};
%
%\draw [<->, very thick] (0.3\textwidth, 0.5) -- (0.4\textwidth, 0.5);
%\node at (0.35\textwidth, 1){\verb+\ns+};
%
%\draw [very thick] (0.4\textwidth,0.25) rectangle (0.45\textwidth,0.75);
%\node at (0.425\textwidth, 0.5){Syl};
%
%\draw [<-, very thick] (0.45\textwidth, 0.5) -- (0.49\textwidth, 0.5);
%\node at (0.5\textwidth, 1){\verb+\ns*+};
%\draw [very thick] (0.49\textwidth, 0.35) rectangle (0.51\textwidth, 0.65);
%\node at (0.5\textwidth, 0.5){-};
%\draw [->, very thick] (0.51\textwidth, 0.5) -- (0.55\textwidth, 0.5);
%
%
%\draw [very thick] (0.55\textwidth,0.25) rectangle (0.6\textwidth,0.75);
%\node at (0.575\textwidth, 0.5){la};
%
%\draw [<-, very thick] (0.6\textwidth, 0.5) -- (0.64\textwidth, 0.5);
%\node at (0.65\textwidth, 1){\verb+\ns*+};
%\draw [very thick] (0.64\textwidth, 0.35) rectangle (0.66\textwidth, 0.65);
%\node at (0.65\textwidth, 0.5){-};
%\draw [->, very thick] (0.66\textwidth, 0.5) -- (0.7\textwidth, 0.5);
%
%
%\draw [very thick] (0.7\textwidth,0.25) rectangle (0.75\textwidth,0.75);
%\node at (0.725\textwidth, 0.5){bies};
%
%\draw [<->, very thick] (0.75\textwidth, 0.5) -- (1.0\textwidth, 0.5);
%\node at (0.875\textwidth, 1){\verb+\nspace{y pt}+};
%
%
%\end{tikzpicture}
%\caption{layout and spacing of one musical line $\backslash$notezeile\{notes\}\{text\}\hskip 0pt plus 1filll\mbox{}}
%\label{abb:LiBa}
%\end{figure}

%\LBsong{Test}{1}{nt}

\section{What the packages uses}
The package makes use of the following packages. This is just for your information and has almost no practical use. It is mostly internals:
\begin{itemize}
\item xparse\\
Used for commands with more than one optional arguments and use of the * for multiple variants for commands.
\item graphicx\\
Not explicitely necessary, but necessary in most cases. Includes the note-snippets.
\item etoolbox\\
Used for creating command sequences
\item environ\\
Used for creating the Environments for the Liederbuch-package
\item pgfmath\\
Needed for using length in relation to the linewidth. If you do not use any unit for \verb+\nspace{<some value>}+, it is read as percent of linewidth. This is very usefull, as the target linewidth might change a bit, and the alignment of the syllables wouldn't fit to the notes.
\end{itemize}

\section{User Commands}

\subsection{Building a Songbook}
Every songbook consists of at least one sty-file. You can also put the songbook into the preamble like in GFM-Setzhilfe\footnote{This file can be downloaded from the git repo of the package: \href{https://bitbucket.org/maestro-glanz/liederbuch-package/src/master/}{bitbucket--liederbuch-package}} (typesetting helper), but the intended use is to have a separate file. This file contains the actual database (and may call other databases/songbooks itself). Furthermore, there may be score snippets for adding notes to the lyrics, pixel graphics from scans and other resources.

If you create and package a songbook, it should follow certain rules concerning the folder structure:
\begin{lstlisting}[numbers=none]
A new folder for all the content:
./this_is_an_example

And in this folder the sty-file and pdf-snippets (or png-graphics for example):
./this_is_an_example/this_is_an_example_songbook.sty
./this_is_an_example/01_song_snippet.ly
./this_is_an_example/01_song_snippet.pdf
./this_is_an_example/02_another_song_snippet.ly
./this_is_an_example/02_another_song_snippet.pdf
./this_is_an_example/03_summertime_(gershwin).ly
./this_is_an_example/03_summertime_(gershwin).pdf
./this_is_an_example/04_On_the_Road_Again_Version-A.ly
./this_is_an_example/04_On_the_Road_Again_Version-A.pdf
./this_is_an_example/04_On_the_Road_Again_Version-B.ly
./this_is_an_example/04_On_the_Road_Again_Version-B.pdf
\end{lstlisting}

If you have a songbook made by someone else, you are fine. If you haven't, you need to build it yourself. The preamble of the sty-file contains the following lines:
\begin{lstlisting}
   \ProvidesPackage{name of the songbook}
   \RequirePackage{liederbuch}
\end{lstlisting}
You may add some of your own packages you want to use in the songbook. For example if you typeset the scores with musixtex, you can add this package. If you want to use tikz instead, you are free to go. Most likely, you will use the graphicx-package, as using pdf-snippets is the imho best way, to use this package.

To start a songbook, you must first write these lines:
\begin{lstlisting}[numbers=left,firstnumber=5]
   \begin{liederbuch}[<meta data>]{<name of the songbook>}
       % the songs (Lieder-environments) go here
       [...]
       [...]
\end{lstlisting}\vskip -13pt\relax
\begin{lstlisting}[numbers=left,firstnumber=78]
       [...]
   \end{liederbuch}
\end{lstlisting}
This must contain all songs. This environment is provided by \textit{liederbuch}. What the meta data does, we will come to at a later point. After you created a songbook, you can create songs inside it. Every song number can be included multiple times in different variants. If two songs have the same number and the same variant tag, the later overwrites the first:
\begin{lstlisting}[numbers=left,firstnumber=14]
   \begin{lied}[<meta data>]{<variant>}{<song number>}
       <the song content>
   \end{lied}
\end{lstlisting}
The song number identifies the songs. If you have to different kinds of song number 123 (i.e. piano score and choir score), you can make two different variants. i.e. \verb+ps+ and \verb+cs+. The way, you name the variants, is up to you. At can be anything beside the \verb+\empty+-command-sequence.

Neither song number, nor variant has to be an actual number. You can write ''One'' instead of ''1''. It will work, but you should be at least consistent over the whole song boook. And writing eight-hundred-sixty-one instead of a numeral is highly depreciated.


\noindent\rule{\textwidth}{1pt}

{\Large \textbf{Example}}

\noindent Assuming you have the following songbook created:
\begin{lstlisting}[numbers=left,firstnumber=30]
   \begin{liederbuch}{testSongbook}
   \begin{lied}[%
     meta data=this is just a test &%
     otherData = it really is]%
   {var1}{144000}
   No notes and text yet.
   \end{lied}
   \end{liederbuch}
\end{lstlisting}
If you call the song with
\begin{lstlisting}[numbers=left,firstnumber=72]
   \LBsong{testSongbook}{144000}{var1}
\end{lstlisting}
the ouput will be
\begin{lstlisting}[numbers=none]
   No notes and text yet.
\end{lstlisting}
The meta data elements are not used yet, but can be used later.\vspace*{-2ex}

\noindent\rule{\textwidth}{1pt}

The output should be an actual song of course. To typeset these, there are several commands inside(!) the Lied-environment available.\vspace*{-30pt}

\newpage
\noindent\rule{\textwidth}{1pt}

{\Large \textbf{Extended example}}

You start of course with the Liederbuch environment first:
\begin{lstlisting}[firstnumber=7]
   \begin{liederbuch}[%
   songbook=Old Irish Folk Songs &%
   author = Travis O'Connor]
   
   \begin{lied}[
   title = What shall we do with a drunken saylor &
   composer = Traditional &
   lyricist = Probably a drunken saylor]
   %The notenzeile command goes here
   \end{lied}
   
   \begin{lied}[
   title = My lad got beaten up in the pub &
   composer = Johnny O'Neeye %
   lyricist = Jimmy Jailedup
   ]
   %The notenzeile commands goes here
   \end{lied}
   
   \end{liederbuch}
\end{lstlisting}

For every combination of notes and text, you use one notenzeile command. If your song score has 5 lines of notes, you need the notenzeile command 5 times, if it is 3 lines, you need it 3 times. The notenzeile command is smart enough to show several strophes of text for one line, if needed:
\begin{lstlisting}[firstnumber=15]
   \notenzeile[linewidth of the line | default:\linewidth]
   {the part with the notes from the score}%
   {the text of strophe 1}%
   [the text of strophe 2]%
   [the text of strophe 3]%
   [the text of strophe 4]%
   [the text of strophe 5]%
   [the text of strophe 6]%
   \notenzeile{\includegraphics[width=\linewidth,page=2]{somePath}}%
   {\nspace{5} This \ns is \ns the \ns line \ns two \nspace{3}}
   \notenzeile{\includegraphics[width=\linewidth,page=3]{somePath}}%
   {\nspace{3em} and \ns three \ns of \ns the \ns do \ns* cu \ns* ment \ns of do cu ments\nspace{7pt}}
\end{lstlisting}

As you see, the strophe numbers 2 and above are optional arguments. Standard case should be one line of text for one line of notes, but you can add more. If you need more than 6 strophes below one line of notes, you do something, which you shouldn't do. If you want more, you can hack the source code.

Inside of the notenzeile command, there are several commands available:
\begin{lstlisting}[numbers=none]
   \songLyrics{}
   % This in an internal command, but you can use it.  It creates a makebox, with the \ns, \ns* and \nspace commands available inside.
   
   \ns[space correction]
   % This divides two words. You can optionally add an offset to the command, which shifts the next syllable (positive = right, negative = left). You can use standard length units. If you don't use any unit, percent-linewidth is used.
   
   \ns*[space correction]
   % It is exactly like \ns, but it adds a dash in between. It is meant to divide syllables of one word.
   
   \nspace{length}
   % This does exactly the same as hspace*, but this command also accepts no unit (just a number without an unit), which is interpreted as percent-linewidth.
   
   \multiline{0.5\linewidth}{text for strophe 1}{text for str 2}[str. 3][4][5][6]
   % This is usefull, if your song switches to refrain within one line or only some section of one song line has two text lines. It creates several stacked lines within one line.
\end{lstlisting}

So far, this creates all the notes and text together. Normally, songs are typeset, that only the first strophe is below the notes, the other strophes are printed as text blocks.

These text blocks are built by the strophe environment:
\begin{lstlisting}[numbers=none]
   \begin{strophe}[strophe number]
   Some text in any format.
   \end{strophe}
\end{lstlisting}
Normally, the strophe numbers are automatically counted up for every use of the strophe environment. So, the first time, you use this environment in each song, you should override this with the optional parameter strophe number. I.e. if the first usage is number 2, then you write \verb+\begin{strophe}[2]+. The next strophe will then be automatically~3.

\subsection{Using a Songbook}
\label{LiUsUs}
Using a songbook is pretty easy. You must include the songbooks with
\begin{lstlisting}[numbers=none]
   \usepackage{nameOfSongbook}
\end{lstlisting}

and call the desired song with
\begin{lstlisting}[numbers=none]
   \LBsong{songbook}{number}{variant}
\end{lstlisting}
Note: The name of the package you use needn't be the same name of the songbook. You can define the songbook \verb+abc+ inside a sty-file called \verb+alphabet+. But it is highly discouraged.

There are several versions of each songnumber possible. Due to the variant, you can store the piano version of a song in the same songbook as the choir music version.
If you use \verb+\LBsong{paradiseSongs}{42}{4voice}+ for example, you get the song number 42 out of the paradiseSongs-songbook in the version for four voices (which of course you must have defined beforehand).

If some meta data is incorrect and you can not or shouldn't change the source songbook, you can edit the meta data with the 
\begin{lstlisting}[numbers=none]
   \tweakMetaData{songbook}{song number}{song variant}{meta data element}
\end{lstlisting}
command. It just overwrites the meta data element, that was created for that specific song at load time. The principle is the same as in \verb+\GFM@LB@unpackage+.

\newpage
\subsection{Creating a Theme}

The appearance of the songs consist mainly of three things:
\begin{itemize}
\item Header
\item Footer
\item Spacing
\end{itemize}
Changing the background of the songs isn't supported yet and might never be.

The header and footer can be edited via
\begin{lstlisting}[numbers=none]
   \LBHead{Definition}
\end{lstlisting}
and
\begin{lstlisting}[numbers=none]
   \LBFoot{Definition}
\end{lstlisting}

Here you can use the meta data-values given in the song. As you might remember, the songs are defined as i.e.

\begin{lstlisting}
   \begin{liederbuch}[
   titleOfLargerWork = Test-Liederbuch &
   date = 2017 &
   seriesTitle = Demoprojekt
   ]{TestLiederbuch}
   
   \begin{lied}[title=Hänschen klein & lyricist=Volkslied \& Überliefert & composer = Volkslied]{nt}{1}
   ... something ...
   \end{lied}
   \end{liederbuch}
\end{lstlisting}

An example header and footer would look like this:
\label{LiUsCrEx}
\begin{lstlisting}
   \LBHead{\Large\print{title}\\
   \normalsize Taken from \print{titleOfLargerWork}\hspace{30pt}\print{composer}}
   
   \LBFoot{\print{date}\hfill\print{seriesTitle}}
\end{lstlisting}

As you see, the print-command prints any meta data, which had been defined before. If it is undefined, the print-command prints nothing. This example is of course not the peak of human art work, but it showcases the concept. It is possible to include almost anything (no limitations known yet). For the naming of the meta data refer to section \ref{LiUsMe} \vnameref{LiUsMe}.

For adjusting the spaces, you can use the following commands. They work with \verb+\vskips+ and can optionally take \verb+plus+ and \verb+minus+. These are the commands to edit the spaces with some example values:
\begin{lstlisting}[numbers=none]
   \setSpaceBeforeHeadValue{3pt plus 0pt minus 1.5pt}
   \setSpaceAfterHeadValue{-1pt plus 4pt}
   \setSpaceBeforeNotesValue{2pt minus 1pt}
   \setSpaceAfterNotesValue{4pt}
   \setSpaceBeforeStropheValue{3em plus 1pt minus 0.2in}
   \setSpaceAfterStropheValue{0pt}
   \setSpaceBeforeSongLyricsValue{0pt}
   \setSpaceAfterSongLyricsValue{0pt}
   \setSpaceBeforeFootValue{0pt}
   \setSpaceAfterFootValue{0pt}
\end{lstlisting}

\subsection{Using printliederbuch}
If you want to have a catalogue of all your songs in a songbook, you can use \verb+printliederbuch+. You just need a simple document like this:
\begin{lstlisting}
   \documentclass[a5paper, 11pt]{scrartcl}
   \usepackage[ngerman]{babel}
   \usepackage[utf8]{inputenc}
   \usepackage{printliederbuch}
   \usepackage{TestLiederbuch}
   
   \begin{document}
   
   \printLiederbuch{TestLiederbuch}
   
   \end{document}
\end{lstlisting}
You need a \verb+documentclass+ of your liking, add some packages of your liking and then you need first, the printliederbuch package and second, the songbook, you want to have a catalogue of. The order is important. Your document needs only one command, the \verb+\printLiederbuch+ command. 

\newpage
\subsection{Tips and tricks}
\subsubsection{First the outer spacing, then the syllable spacing}
Start by doing the outer spacing first. If these are your lyrics
\begin{lstlisting}[numbers=none]
{Hänschen klein ging allein in die weite}
\end{lstlisting}
you start by adding the outer space and separating all syllables
\begin{lstlisting}[numbers=none]
{\nspace{7} Häns \ns* chen \ns klein \ns ging \ns all \ns* ein \ns in \ns die \ns wei \ns* te \nspace{4}}
\end{lstlisting}
Once the first and last syllable looks good, you can proceed with the adjustment of the space between the syllable  (see next sections).

\subsubsection{Replacing $\backslash ns*$ with $\backslash ns - \backslash ns$}
If \verb*+ \ns* + separates two long syllables like ''Schne-cken'', \verb*+ \ns* + will to its job. But if the syllables are short like ''O-lé'' or the notes are long, you better replace it with \verb*+ \ns - \ns +. If this is a little bit too long, you can use \verb*+\ns -\ns+ instead.

\subsubsection{Double $\backslash ns$ and $\backslash nspace\{ x\}$}
Normally in songs, note lengths tend to be only two different lengths per line. i.e. if your shortest length is a quarter note, the second length is a half note. If the shortest is an eighth, the second one is a quarter. It is rather rare, that a third length occurs. Maybe a dotted note. Most notation software makes the space after a longer note a little bit longer.

Best practice has been to make one \verb+\ns+ after each shortest note duration and two \verb+\ns+ after. For longer notes it is better to use a \verb+\nspace{x}+ inline (with x=3 for example).

\includegraphics[width=\linewidth,page=1]{DemoProjekt/TestLiederbuchSnippets/haenschenKlein}
gets this song text:
\begin{lstlisting}[numbers=none]
\nspace{7} Häns \ns* chen\ns klein \ns ging \ns all \ns* ein \ns \nspace{4} in \ns \ns die \ns \ns wei \ns* te \nspace{4}
\end{lstlisting}
7\% linewidth space on the left, 4\% on the right. The syllable ''-chen'' is very long. Therefore, a second \verb+\ns+ isn't needed, though the corresponding note is a half note. ''in'' and ''die'' are very short syllables, a second \verb+\ns+ does the trick. After ''\verb+\ns*+ ein'' two \verb+\ns+ isn't enough, therefore a \verb+\nspace{4}+ does the trick.

\subsubsection{Omitting a space here and there}
You might have noticed in the previous example, that after ''-chen'' there is no space. Normally it is \verb*+ \ns + and normally it should be. But in this case, the syllable is already pretty long and we need to get rid of a bit of space. Therefore, the space before is omitted and it is \verb*+\ns + instead. You can only omit the space before \verb+\ns+ not after.

\subsubsection{Hard spaces (\char`~ ) for short syllables}
In die following example

\includegraphics[width=\linewidth,page=3]{DemoProjekt/TestLiederbuchSnippets/haenschenKlein}
the text is like this:
\begin{lstlisting}[numbers=none]
\nspace{6} ist \ns gar \ns wohl \ns* ge\ns -\ns mut. \nspace{6} Ab \ns* er~ \ns Mut \ns* ter \nspace{3.5}
\end{lstlisting}
The syllable ''\verb+\ns*+ er'' is very short. The spacing will work better, if it is a little bit longer, so we add a hard space (\char`~ ) to the syllable to make it longer.

\newpage
\subsection{Meta Data}
\label{LiUsMe}

The Sheet Music Consortium has created a list of tags for their sheet music to make it easy to find in the database. This seems to be a sensible scheme and is therefore partially reused for the meta data (see \url{https://digital.library.ucla.edu/sheetmusic/aboutProject.html#NameforSMCmetadata-NameMetadata}). The scheme here is mostly taken from there. Another scheme is \url{https://www.dlib.indiana.edu/smcmigrator/fieldnamehelp.php}. A website which doesn't exist any more. There are also some parts taken from there. All the tags in these schemes had been unified and consolidated in this list here. Therefore it is kind of a third deviating scheme taking from both of them and trying to have as least dicrepancies to them as possible. This scheme here also ommits a few parts, which seemed to duplicate others or seemed totally over the top. This section is already totally over the top and awfully perfectionist.

\vskip 15pt\relax
%\newpage

\textbf{Subsections:}\vspace{10pt}\\
\hspace*{40pt}%
\parbox{0.8\linewidth}{%
\begin{multicols}{2}%
{%
\setcounter{secnumdepth}{3}%
\begin{itemize}
\item[\ref{LiUsMeTi}] \nameref{LiUsMeTi}
\item[\ref{LiUsMeNa}] \nameref{LiUsMeNa}
\item[\ref{LiUsMeSu}] \nameref{LiUsMeSu}
\item[\ref{LiUsMeId}] \nameref{LiUsMeId}
\item[\ref{LiUsMeRe}] \nameref{LiUsMeRe}
\item[\ref{LiUsMeNotedescription}] \nameref{LiUsMeNotedescription}
\item[\ref{LiUsMeDa}] \nameref{LiUsMeDa}
\item[\ref{LiUsMeLa}] \nameref{LiUsMeLa}
\item[\ref{LiUsMeTy}] \nameref{LiUsMeTy}
\item[\ref{LiUsMeOr}] \nameref{LiUsMeOr}
\item[\ref{LiUsMePh}] \nameref{LiUsMePh}
\item[\ref{LiUsMeAb}] \nameref{LiUsMeAb}
\item[\ref{LiUsMeTa}] \nameref{LiUsMeTa}
\item[\ref{LiUsMeIn}] \nameref{LiUsMeIn}
\item[\ref{LiUsMeCa}] \nameref{LiUsMeCa}
\item[\ref{LiUsMeCl}] \nameref{LiUsMeCl}
\item[\ref{LiUsMeLo}] \nameref{LiUsMeLo}
\end{itemize}%
}%
\end{multicols}
}%parbox

\newpage
\subsubsection{Titles}
\label{LiUsMeTi}
\newcommand*\Tag[3]{{\ttfamily #1} & {\ttfamily =} & {\ttfamily #2} & #3}

Each resource should have at least one title element associated with it. The following fields can be used to describe titles:

\renewcommand{\arraystretch}{1.5}

\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{title}{Gaudeamus igitur}{A word or phrase that names the resource being described.}\\
\Tag{subtitle}{iuvenes dum sumus}{Secondary word or phrase that names the resource being described.}\\
\Tag{alternativeTitle}{De brevitate vitae}{The "alternative title" data is used for other titles not covered elsewhere in the meta data record.}\\
\Tag{firstLine}{Gaudeamus igitur, iuvenes dum sumus}{The "First Line" data is a direct transcription of the first line of lyrics appearing in the song.}\\
\Tag{firstLineofChorus}{no chorus}{The "first line of chorus" data is a direct transcription of the first line of the chorus (refrain) appearing in the song.}\\
\Tag{titleOfLargerWork}{Allgemeines deutsches Kommersbuch}{The "title of larger work" data is used when the item being cataloged is known to be one part of a larger work with a known title.}\\
\Tag{seriesTitle}{German student song books}{The "series title" data is used to record a named series to which the item being cataloged belongs.}\\
\Tag{uniformTitle}{no idea, sorry}{A Uniform Title (also known as a Work Title) is a specific cataloger-created title as prescribed by the rules in AACR2. It is used to indicate clearly the musical work represented in a piece of sheet music.}\\
\end{tabular}

\newpage
\subsubsection{Names}
\label{LiUsMeNa}
\begin{longtable}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{composer}{traditional}{"Composer" meta data is used to record the name of individuals or corporate bodies responsible for creating the musical content of the work being cataloged.}\\
\Tag{arranger}{I don't know}{"Arranger" meta data is used to record the name of individuals or corporate bodies responsible for the transforming the musical content of the work being cataloged from its original form, genre, instrumentation, etc., to another for publication. In an arrangement the musical substance remains essentially unchanged.}\\
\Tag{lyricist}{some guy of the 19th century}{"Lyricist" meta data is used to record the name of an individual or corporate body responsible for creating the lyrics or text of the work being cataloged.}\\
\Tag{performer}{The "hohe Kneipcorona"}{"Performer" meta data is used to record the name of an individual or corporate body indicated on the item being cataloged as a known performer of the work.}\\
\Tag{dedicatee}{Not for Elise}{"Dedicatee" meta data is used to record the name of an individual or corporate body to whom the work or publication is dedicated. Do not us record information about handwritten dedications printed on an item after publication; use "Note" for this purpose instead.}\\
\Tag{otherName}{Unter Mitwirkung der Lindenwirtin entstanden}{"Other name" meta data is used to record the name of an individual or corporate body responsible for the creation of the item being cataloged that is deemed important but not appropriate for use in any other "Name" or "Publication" data. Do not record individuals or corporate bodies named in lyrics; use "Name as Subject" for this purpose instead.}\\
\Tag{engraver}{Gabriel Ruprecht}{The person or organisation, who engraved the sheet music. Commonly with the help of a program like lilypond.}\\
\Tag{lithographer}{Heidenhain 600}{The person or company producing the printing plates of the sheet music, if deviating from "publisherName".}\\
\Tag{coverEngraver}{Andy Warhol's wife}{"Engraver" meta data is used to record the name of an individual or corporate body responsible for the cover engraving on the publication being cataloged, if deviating from "engraver"}\\
\Tag{coverLithographer}{The gremlin in Andy Warhol's basement}{Use "Lithographer" to record the name of an individual or corporate body responsible for the cover lithography on the publication being cataloged, if deviating from "lithographer"}\\
\Tag{coverArtist}{Andy Warhol himself}{"Artist" meta data is used to record the name of an individual or corporate body responsible for the cover art on the publication being cataloged.}\\
\end{longtable}

\newpage
\subsubsection{Subject}
\label{LiUsMeSu}
\begin{longtable}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{topicalSubject}{Drinking beer}{In a song with lyrics "Topical Subject" is used to record what topics occur in the song's lyrics.}\\
\Tag{nameAsSubject}{Professor Ubisunt Quiantenos}{"Name as Subject" is used to record a personal or corporate name that is the subject of a song's lyrics.}\\
\Tag{formGenreStyle}{Student songs}{"Form/Genre/Style" may be used to record the class or category of music, including the musical style(s) of a work. Form is often described as the organizing element in music, or the historically or functionally specific kind of material.}\\
\Tag{temporalSubject}{Romantic period}{The "Temporal Subject" meta data is used to record a named time period relevant to the item being cataloged.}\\
\Tag{instrumentation}{Vocal}{A listing of the performing forces called for by a particular piece of sheet music, including both voices and external instruments.}\\
\Tag{\hspace*{-40pt}\hfill placeNameSubject}{Germany}{"Place Name Subject" is used to record named countries, states, provinces, counties, and cities associated with the music and lyrics of the item being cataloged.}\\
\Tag{\hspace*{-40pt}\hfill otherGeographicSubject}{D-A-CH-Region}{The optional "Other Geographic Subject" meta data is used to record named geographic places that are not countries, states, provinces, counties, or cities associated with the music and lyrics of the item being cataloged.}\\
\Tag{localSubject}{University}{"Local Subject" is used to record subject terms meaningful to the holding institution.}\\
\Tag{coverSubject}{Loreley in a sleeping dress}{"Cover Subject" is used to record the topical content of the image depicted on the cover of the item being cataloged.}\\
\end{longtable}


%
%    Subject/Topic
%        In a song with lyrics, Subject/Topic is used to record what topics occur in the song's lyrics.
%    Temporal Coverage
%        The Temporal Coverage meta data is used to record a named time period relevant to the item being cataloged.
%    Geographical Coverage
%        The Geographical Coverage element is used for general terms that describe geographical coverage.
%    Geographic Code
%        Geographic Code refers to a geographic area code associated with the resource. The code should represent the same entity as a term described by the Geographic field.
%    Referenced Title
%        The Referenced Title is the title of another printed material that occurs in the lyrics.
%    Subject Genre
%        The Subject Genre refers to a genre or form used as part of a subject string when the subject authority distinguishes parts of the subject string (e.g. LCSH).
%    Referenced Name
%        Referenced Name is used to record a personal or corporate name that is the subject of a song's lyrics.
%    Subject Occupation
%        Subject Occupation is used to record the occupation of the name referenced in the lyrics.
%    Hierarchical Geographic
%        The following elements describe geographic information in a hierarchical form:
%
%        Continent
%            Continent describes the continent on which a named place in the lyrics is located.
%        Country
%            Country describes the country in which a named place in the lyrics is located.
%        Province
%            Province describes the province in which a named place in the lyrics is located.
%        Region
%            Region describes the region in which a named place in the lyrics is located.
%        State
%            State describes the state in which a named place in the lyrics is located.
%        Territory
%            Territory describes the territory in which a named place in the lyrics is located.
%        County
%            County describes the county in which a named place in the lyrics is located.
%        City
%            City describes the city in which a named place in the lyrics is located.
%        Island
%            Island describes the island on which a named place in the lyrics is located.
%        Area
%            Area describes the area in which a named place in the lyrics is located.


%\newpage
\subsubsection{Identification Numbers}
\label{LiUsMeId}
\begin{longtable}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{plateNumber}{I have no clue.}{The Sheet Music Consortium adopts the AACR2 definition of a sheet music plate number, as distinct from the publisher number: "A numbering designation assigned to an item by a music publisher, usually printed at the bottom of each page, and sometimes appearing also on the title page. It may include initials, abbreviations, or words identifying a publisher and is sometimes followed by a number corresponding to the number of pages or plates."}\\
\Tag{publisherNumber}{Still no clue}{The Sheet Music Consortium adopts the AACR2 definition of a sheet music publisher number, as distinct from the plate number: "A numbering designation assigned to an item by a music publisher, appearing normally only on the title page, the cover, and/or the first page of music. It may include initials, abbreviations, or words identifying the publisher."}\\
\Tag{catalogNumber}{BWV31029}{An identifying number for a musical composition assigned by the composer, publisher or researcher. Bach-Werksverzeichnis for example.}\\
\Tag{callNumber}{No clue again}{An institution's local identifier indicating the physical location of the item within the collection.}\\
\Tag{otherIdentifier}{Dunno, 1234 maybe?}{Any numbering/naming designation used to identify an item within a collection that is distinct from plate number, publisher number, catalog number, or call number.}\\
\end{longtable}

%\newpage
\subsubsection{Relational Identifier}
\label{LiUsMeRe}
\begin{longtable}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{precedingItem}{ADKB-34}{Identifier for a related item that is the immediate predecessor of the resource in a chronological relationship. Normally used for continuing resources such as serial publications.}\\
\Tag{suceedingItem}{ADKB-36}{Identifier for a related item that is the immediate successor of the resource in a chronological relationship. Normally used for continuing resources such as serial publications.}\\
\Tag{originalItem}{ADKB-35}{Identifier for the original item from which the resource was derived.}\\
\Tag{hostItem}{ADKB}{Identifier of the host item for the constituent unit in a vertical relationship. This information allows users to locate the physical piece that contains the component part described in the record.}\\
\Tag{constitutentItem}{no clue}{Identifier of a constituent part that has been described separately. This information allows users to located a related unit of the resource, particularly when it has been physically separated from the item of which it is considered a part.}\\
\Tag{\hspace*{-10pt}\hfill otherVersionOfItem}{CVLB-68}{Identifier of a related version of the resource described in the record, such as translation in another language.}\\
\Tag{\hspace*{-10pt}\hfill otherFormatOfItem}{ADKB-35--4-voices}{Identifier of a different format of the resource described in the record, such as a microform reproduction.}\\
\end{longtable}


\subsubsection{Notes/Description}
\label{LiUsMeNotedescription}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{notes}{There exist contradicting orders for the strophes 2 and 3. This version sticks to the one published in Riedingers Gesangsbuch; Line three contains a typo, that was in the original.}{Any notes, that don't fit anywhere else. The "Notes" meta data is used to record information that supplements information in the rest of the meta data record.}\\
\Tag{description}{A song about friendship, beer and wanderlust.}{A general description.}\\
\end{tabular}


\subsubsection{Date Information}
\label{LiUsMeDa}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{date}{1631}{"Date" meta data holds the date an item was copyrighted or published. }\\
\Tag{dateOfWork}{1630-12-31}{The "Date of Work" records the date the piece of music was written.}\\
\end{tabular}

\subsubsection{Language}
\label{LiUsMeLa}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{language}{deu}{Use "Language" to record the language of the lyrics of the item being cataloged. Either i.e. German oder the ISO 639-3 code.}\\
\end{tabular}



\subsubsection{Type of Resource}
\label{LiUsMeTy}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{typeOfResource}{notated music}{There seems to be a definition in the AACR2. But it is not open. So I can't provide other values here.}\\
\end{tabular}


\subsubsection{Publication Meta Data - Origin Info}
\label{LiUsMeOr}
\begin{longtable}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{publisherName}{Guthenbergs Kommersbuchdruckerei}{Those responsible for the physical production and dissemination, of the resource.}\\
\Tag{publisherPlace}{Heidelberg}{The name of the place where a resource has been published.}\\
\Tag{placePublished}{Leipzig}{Where it had been published. i.e. Leipziger Buchmesse $\rightarrow$ Leipzig}\\
\Tag{publisher}{Verlag Arnold Schönberg - Weimar}{Name of the publisher.}\\
\Tag{placePublisher}{Weimar}{Where the publisher is located.}\\
\Tag{dateIssued}{1841-08-01}{When it had been published.}\\
\Tag{copyrightDate}{1841}{The year relevant for copyright and its expiration.}\\
\Tag{dateCreated}{1840-04-03}{When the work had been made. This must be some date prior to publishing.}\\
\Tag{dateModified}{1842-10-03, 1848-06-02}{If a work underwent some modifications like fixing typos.}\\
\Tag{dateValid}{1947}{Works with limited validity. i.e. phone books, pharamceutical drug lists. Can be for example also the expiration of the copyright.}\\
\Tag{otherDate}{1848, 1870-09-02}{Other relevant dates, which may be mentioned in a work or where the work has been used in a notable way}\\
\Tag{edition}{3}{In cases of reprints, it specifies, which edition this had been taken from.}\\
\end{longtable}









\subsubsection{Physical Description}
\label{LiUsMePh}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{formMedium}{book}{In what medium had this been published in. Book, leaflet, brochure, single page;}\\
%\Tag{extent}{no clue}{Beschreibung}\\
%\Tag{internetMediaType}{traditional}{Beschreibung}\\
\Tag{\hspace*{-45pt}\hfill physicalDescriptionNote}{Original lost in fire}{Can be any useful information about the original copy.}\\
\end{tabular}


\subsubsection{Abstract}
\label{LiUsMeAb}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{abstract}{This is a famous folksong, written down in 1843 by Hans Eicher. It gained popularity during the 1848 revolution and in the 1870/71 war.}{An abstract, if needed or wished.}\\
\end{tabular}

\subsubsection{Table of Contents}
\label{LiUsMeTa}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{tableOfContents}{%
\begin{enumerate}
\item Intro
\item Sailor songs
\item Hiking songs
\item Drinking songs
\item Hooligan songs
\item Wedding songs
\begin{enumerate}
\item If the bride is beautiful
\item If the bridesmaids are beautiful
\end{enumerate}
\item Again drinking songs
\end{enumerate}
}{The table of contents}\\
\end{tabular}

\subsubsection{Instrumentation}
\label{LiUsMeIn}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{instrumentation}{chamber orchestra}{A meaningful and well established value about the instrumentation of the piece.}\\
\end{tabular}


\subsubsection{Cartographics}
\label{LiUsMeCa}
This part is only for completeness. The original ressource, where this is from isn't available any more. Therefor a complete citation is not possible.

\begin{longtable}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{scale}{1:200000}{Scale is used to capture the ratio between actual size and a representation of size.}\\
\Tag{projection}{Merkaartor}{Projection describes the method of representing the surface of a sphere or other shape on a plane.}\\
\Tag{coordinates}{45.123,-30.543,48.321,-29.345}{The Coordinates element refers to the geographical coordinates of the bounding box covered by the resource.}\\
\end{longtable}


\subsubsection{Classification}
\label{LiUsMeCl}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{\hspace*{-40pt}\hfill classificationSchema}{\LaTeX -Liederbuch-Schema}{Classification is used to document the class number for the resource, according to a standard scheme like RDA, MARC 21, LCC, LCSH or DDC.}\\
\end{tabular}






\subsubsection{Location Info}
\label{LiUsMeLo}
\begin{tabular}{p{0.22\textwidth} c p{0.28\textwidth} p{0.40\textwidth}}
Tag & & value examples & description\\
\hline
\Tag{url}{\url{https://de.wikisource.org/wiki/Allgemeines_Deutsches_Kommersbuch:122}}{The URL field contains a URL that can be used to access the resource.}\\
\Tag{\hspace*{-40pt}\hfill bibliographicCitation}{Gaudeamus igitur; Allgemeines Deutsches Kommersbuch, Seite 270; Friedrich Silcher, Friedrich Erk; Moritz Schauenburg; 1858; Lahr}{The Bibliographic Citation field contains the bibliographic citation for the resource.}\\
\Tag{shelfLocation}{3AC/F-K}{Shelf Location is used to record the shelf designation number for the resource.}\\
\Tag{physicalLocation}{Heimatmuseum, Kudamm~31, Berlin; Building~3/A; 3.~Floor}{Physical Location refers to the institution or repository where the resource is held.}\\
\end{tabular}










%\subsubsection{?Access Condition}
%\label{LiUsMeAc}
%Access Condition is used to record information about restrictions on who may use the resource.
%
%Record Info
%
%The following fields can be used to capture information necessary for managing the meta data associated with the resource:
%
%
%Record Content Source
%
%Record Content Source identifies the name of the organization/person who created the resource record.
%
%
%Record Identifier
%
%The Record Identifier is used to record the identification number for the record.
%
%
%Record Description Standard
%
%The Record Description Standard is used to identify the content standard to which the record conforms.

\newpage
\subsection{How it works}
\begin{itemize}
\item[] \ref{LiHoBu} \nameref{LiHoBu}
\item[] \ref{LiHoUs} \nameref{LiHoUs}
\item[] \ref{LiHoTh} \nameref{LiHoTh}
\end{itemize}

\subsubsection{Building a Songbook}
\label{LiHoBu}
The first part contains only a some constants. Currently only the \verb+\repeatleft+ and \verb+\repeatright+, which contain the repeat sign meant to be used in strophes:
\begin{lstlisting}[numbers=none]
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% Special music characters %%%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   [...]
	
    
\end{lstlisting}

Handling of meta data:
\begin{lstlisting}[numbers=none]
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% Handling of the meta data %%%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   \def\GFM@LB@unpackage...
\end{lstlisting}
This command stores the meta data to command sequences. The meta data items can be given as an argument in the Lied environment. \verb+\GFM@LB@unpackage+ loops over the meta data argument of the \verb+Lied+- and \verb+Liederbuch+-environment. For every pair of variable name and value, \verb+\GFM@LB@unpackage+ creates a \LaTeX variable with the value content. Each meta data ist stored to a command sequence in the format:
\begin{lstlisting}[numbers=none]
   \GFM@LB@lied@<songbook>@<song variant>@<song number>@<meta data name>
\end{lstlisting}
For the songbook ''Folksongs'', songnumber ''5'', variant ''choral'' and variable name ''composer'', the \LaTeX variable would look like this:
\begin{lstlisting}[numbers=none]
   \GFM@LB@lied@Folksongs@choral@5@composer
\end{lstlisting}
It could expand to ''Frederic McCormick'' (assuming this is the composer). This mechanism is only internally relevant. To use this variable fine and easily, there is the \verb+\print{<variable name>}+ command (see farther down).

Since the equals sign is not available in the meta data, it is made available again with the \verb+\equals+ command, which just expands to an equals sign.

If a song has wrong meta data, an entry is missing or any other reason, you can edit specific meta data entries. The better option is to edit the song book. But if this may not be possible for whatever reason, you can use this command:
\begin{lstlisting}[numbers=none]
   \tweakMetadata{<songbook>}{<song number>}{<variant>}{<meta data}
\end{lstlisting}

One of the most important core parts of the package is the arrangement of syllables below the notes:
\begin{lstlisting}[numbers=none]
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% Environment and commands for        %%%
   %%% notes + lyrics in native LaTeX font %%%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   [...Constants...]

   \def\songLyrics[<length> default = \linewdith]{
      [...]
      \def\nspace[*]{<some length or number>}
      \def\ns[*][<some length or number>]
      [...]
   }%
\end{lstlisting}
\verb+\songLyrics+ creates a \verb+\makebox[<length>]{notes}+ with two commands inside: \verb+\ns[*]+ and \verb+\nspace[*]+. \verb+\nspace[*]+ behaves exactly the same as \verb+\hspace[*]+ with the option for starred command, but unlike \verb+\hspace+ it also accepts no dimension unit. If no unit is given, it is translated to percent \verb+\linewidth+. \verb+\ns+ behaves like \verb+\hfill+ and is able to shift the next sillable by an optional offset. The star inserts a dash between the sillables. i.e. \verb+\ns*[-3]+ separates two sillables with a dash in between und shifts the second sillable \verb+0.03\linewidth+ to the left:
\begin{lstlisting}[numbers=none]
   {See \ns here \ns the \ns be \ns* gin \ns* ning}
\end{lstlisting}\vskip -8pt\relax
\verb+   +\parbox{0.8\linewidth}{%
\vskip -3pt\relax
becomes
\vskip 5pt\relax
\fbox{\makebox[0.4\linewidth]{%
See\hfill ~\hfill here\hfill ~\hfill the\hfill ~\hfill be\hfill -\hfill gin\hfill -\hfill ning%
}%makebox
}%fbox
}%parbox

\verb+\notenzeile+ is a user command and combines the score image (notation) and the song lyrics. It takes two arguments. One graphic (the notes) and text below the notes. The text below simply calls \verb+\GFM@LB@songLyrics+. As there are songs, that have more than one strophe below the notes, up to 6 are optional. It is 6 times the same. To hold everything together, the whole \verb+\notenzeile+ is inside a minipage:
\begin{lstlisting}[numbers=none]
   \notenzeile{O{\linewidth} m m O{\empty} O{\empty} O{\empty} O{\empty} O{\empty}}{%
\end{lstlisting}

\begin{lstlisting}[numbers=none, breaklines=false]
   \multiline}{m m m O{\empty} O{\empty} O{\empty} O{\empty}}{%
\end{lstlisting}
\verb+\multiline+ can fit more than one line into one line. It is used, if only a part of a line has more than one text line. It is basically a few \verb+\makebox+es stacked above each other inside a parbox.

Force page break is a very usefull function and pretty simple. It defines a list of numbers, if the current stave line / strophe equals one of the numbers a page break is added:
\begin{lstlisting}[numbers=none]
   \forcePageBreakAfterStaveLine{<number>}[<n.>][<n.>][<n.>][<n.>][<n.>]
\end{lstlisting}
\begin{lstlisting}[numbers=none]
   \forcePageBreakAfterStrophe{<number>}[<n.>][<n.>][<n.>][<n.>][<n.>]
\end{lstlisting}
Up to 6 page breaks within one song are possible. That should be enough as it is highly unlikely, that a song spans over more than 6 pages. If it does, please open an issue and show me. I'm highly interested.

Strophe is a simple environment that provides a numbering at the beginning based on a \verb+\stepcounter+. It groups mostly the spacing and holds the strophes together:
\begin{lstlisting}[numbers=none]
   \begin{strophe}[<set strophe number to x>]
   This is the strophe text.
   Sing sing sing.
   Line breaks disappear.
   I want to create an option for that.
   \end{strophe}
\end{lstlisting}

The spacing constists of set-commands, stored values and the use commands (no prefix/suffix):
\begin{lstlisting}[numbers=none]
  %%%%%%%%%%%%%%%
  %%% Spacing %%%
  %%%%%%%%%%%%%%%

  %%% Head
  \def\setSpaceBeforeHeadValue#1{\def\spaceBeforeHeadValue{#1}}
  \def\setSpaceAfterHeadValue#1{\def\spaceAfterHeadValue{#1}}

  %%% Notes
  \def\setSpaceBeforeNotesValue#1{\def\spaceBeforeNotesValue{#1}}
  \def\setSpaceAfterNotesValue#1{\def\spaceAfterNotesValue{#1}}

  %%% Strophes
  \def\setSpaceBeforeStropheValue#1{\def\spaceBeforeStropheValue{#1}}
  \def\setSpaceAfterStropheValue#1{\def\spaceAfterStropheValue{#1}}

  %%% Song lyrics
  \def\setSpaceBeforeSongLyricsValue#1{\def\spaceBeforeSongLyricsValue{#1}}
  \def\setSpaceBetweenSongLyricsValue#1{\def\spaceBetweenSongLyricsValue{#1}}
  \def\setSpaceAfterSongLyricsValue#1{\def\spaceAfterSongLyricsValue{#1}}

  %%% Foot
  \def\setSpaceBeforeFootValue#1{\def\spaceBeforeFootValue{#1}}
  \def\setSpaceAfterFootValue#1{\def\spaceAfterFootValue{#1}}


\end{lstlisting}

\begin{lstlisting}[numbers=none]
   %%% Horizontal spacing
   \def\setSpaceStropheIndentValue#1{\def\spaceStropheIndentValue{#1}}
   \def\setSpaceHeadIndentValue#1{\def\spaceHeadIndentValue{#1}}
   \def\setSpaceFootIndentValue#1{\def\spaceFootIndentValue{#1}}
\end{lstlisting}

Convert the space values into skips:
\begin{lstlisting}[numbers=none]
   %%% Arranging the space values
   \def\spaceBeforeHead{\vskip\spaceBeforeHeadValue\relax\noindent\mbox{}\hskip\spaceHeadIndentValue\mbox{}}

   \def\spaceAfterHead{\relax\vskip\spaceAfterHeadValue\relax}

   \def\spaceBeforeNotes{\relax\vskip\spaceBeforeNotesValue\relax}

   [...rest works analogously...]
\end{lstlisting}

\newpage
These commands save the definition of the header and footer for each song. They also implicitly arrange the spacing in the header and footer:
\begin{lstlisting}[numbers=none]
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% Styling of header and footer %%%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   \newcommand{\LBHead}[1]{%
   \long\def\GFM@LB@Head{\spaceBeforeHead #1\relax\spaceAfterHead\mbox{}}%
   }%

   \newcommand{\LBFoot}[1]{%
   \long\def\GFM@LB@Foot{\spaceBeforeFoot #1\relax\spaceAfterFoot}%
   }%
\end{lstlisting}

\verb+Liederbuch+ and \verb+Lied+ are the environments that create the songbooks and store each song in a command sequence. Every song is stored this way in Latex:
\begin{lstlisting}[numbers=none]
   \liedBody;<songbook>;<song variant>;<number>
\end{lstlisting}\vskip -5pt\relax
The \verb+Lied+ environment also stores each meta data value in an command sequence by calling the \verb+\GFM@LB@unpackage+ command:
\begin{lstlisting}[numbers=none]
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% Environments for creating  %%%
   %%% the songbooks (liederbuch) %%% 
   %%% and the songs (lied)       %%%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   %Liederbuch environment
   \NewEnviron{liederbuch}[2][]{%
   \def\GFM@LB@LiederbuchNameTmp{#2}%
   %%Lied environment %cslet
   \NewEnviron{lied}[3][]{% 
   %##1=meta data ##2=variant ##3=nummer
   \def\GFM@LB@LiederbuchVariantTmp{##2}%
   \def\GFM@LB@LiederbuchNumberTmp{##3}%
   \GFM@LB@unpackage{##1}%
   \GFM@LB@unpackage{#1}%
   \global\cslet{liedBody;\GFM@LB@LiederbuchNameTmp;##2;##3}\BODY%
   }%
   \BODY% Without this, the command sequences inside the environment won't be defined. That means, the whole content of the songbook (Liederbuch) is thrown away.
   }
\end{lstlisting}


\subsubsection{Using a Songbook}
\label{LiHoUs}
With the command
\begin{lstlisting}[numbers=none]
   \usepackage{../path/to/songbook.sty}
\end{lstlisting}
you include a songbook. This automatically stores the content of the songs at loading time as described in the previous section. Now every song body is stored in a \LaTeX\ macro. Each meta data element is also stored in a \LaTeX\ macro. We need this later. When you call a song with the command:
\begin{lstlisting}[numbers=none]
   \LBsong{<songbook name>}{<song number>}{<variant>}
\end{lstlisting}
i.e.
\begin{lstlisting}[numbers=none]
   \LBsong{exampleSongs}{23}{nt}
\end{lstlisting}
It calls itself a series of macros:
\begin{lstlisting}[numbers=none]
   %<setting some values>
   \NewDocumentCommand{\print}{O{\empty} m}{%
       [...]
   }%
   \GFM@LB@Head%
   %<setting some values>
   %%%%%%%%%%%%%%%%%%%%%%%%%%
   \csuse{liedBody;#2;#1;#3}%
   %=\liedBody;<songbook>;<song variant>;<number>
   %%%%%%%%%%%%%%%%%%%%%%%%%%
   %<setting some values>
   \GFM@LB@Foot
\end{lstlisting}
As you see, it basically puts together head, body and foot. \verb+\GFM@LB@Head+ and \verb+\GFM@LB@Foot+ only contain the format of the head and foot. Inside these commands, the parameters songbook, song variant and number are available, therefore the correct meta data, like the correct title, author, etc. is automatically selected, when the \verb+\print+ command is used (see the example on page \pageref{LiUsCrEx} and also \ref{LiHoTh} \nameref{LiHoTh} \vpageref{LiHoTh})

\newpage
\subsubsection{Themes}
\label{LiHoTh}
For creating a theme, you can currently only define the style of the head and the foot of a song.

The principle is very simple. In 
\begin{lstlisting}[numbers=none]
   \LBHead
\end{lstlisting}
and
\begin{lstlisting}[numbers=none]
   \LBFoot
\end{lstlisting}
a format for the head is defined and stored (with some spacing) into
\begin{lstlisting}[numbers=none]
   \GFM@LB@Head
\end{lstlisting}
For the foot it is stored into
\begin{lstlisting}[numbers=none]
   \GFM@LB@Foot
\end{lstlisting}

Inside them the \verb+\print{<meta data name>}+ is used. It is not defined there and expanding it would result in an undefined-error. But it is defined inside \verb+\LBsong+, where \verb+\GFM@LB@Head+ and \verb+\GFM@LB@Foot+ are called. There it is expanded. Inside the \verb+\LBsong+ songbook, song variant and song number are available and put together to the command sequence, that expands to the correct meta data value (see section \ref{LiHoUs} \nameref{LiHoUs}). The rest of the head and foot definitions are usual \TeX commands. 

For the future, there shall be a marker, if a song had been broken inside the notes or inside the strophas. Depending on the marker, background images can be selected. But this is only an idea yet.

\subsubsection{printliederbuch}
The principle of this package is very simple. Before the songbook is loaded, the environments \verb+Liederbuch+ and \verb+Lied+ are redefined. The whole meta data is put into a table, the content of the songbooks is just put into a command sequence, which is called in the document.


\chapter{Liederheft-Class}
This is hardly finished yet. It shall be based on the koma-book class, provide a class itself, but I think, this is a bad idea anyway and I will ditch it. The plan exists, let's see, for how long.

\section{Basics}
No text yet. Just guess it.

\section{What The Package Uses}
\begin{itemize}
\item scrbook\\
This is the class, which the Liederheft is based on.
\item[]
\end{itemize}

\section{User Commands}
Just read the manual. Oh, this is the manual. How unfortunate.

\section{How it works}
Not at all yet. Maybe it never will.






\chapter{Known bugs and problems}
\section{Undefined control sequence $\backslash OT$}
undefined control sequence \verb+\OT+ maybe caused by ß in meta data. A simple workaround is to use \verb+\def\OT#11{}+ in the preamble.

\section{Spacing}
If there is used plus and/or minus in spacing, this (might) result in extra space. The origin is unknown yet.

\chapter{Bug reports}
Nothing to say here. Post an email to \mbox{text\color{white}.\color{black}\hspace*{-7.5pt} inkerer.1904$@$gmail.com}, if you find one. Note:~Copying the mail address will result in a wrong address. This is for spam precautions. You have to type it off your screen. This is a good memory exercise to keep your mind vital a flexible.


\section{Revision History}
\noindent
\begin{tabular}{l l}
2017-11-01:& v0.1\\
2024-12-22:& v1.0
\end{tabular}


\end{document}

\section{Milestones for Version 1.0}

Liederbuch auf liederbuch ändern
Lied auf lied ändern

\section{Milestones for Version 1.1}

- multilines und mehrfach-Notentext anpassen, dass hier die Abstände zwischen den Strophenzeilen angepasst werden können.

Backgrounds for songs. 4 divisions (fix, stretch, stretch, fix height).
List may be expanded


\section{Before upload}

Pfade aus packages entfernen
  - Demoprojekt
  - Test-Liederbuch

  
Revisionsdatum anpassen


\section{Milestones for Version 1.2}
Remove any references to fill pages and real page

\verse command - Option für page break in Strophen

\subsection{3 Standard designs}
%\useLiederbuchStyle{}

%\useLiederbuchColor{}
analog to moderncv


\chapter*{Todo}

Fix relative paths. Reference to the containing package.


AtBeginDocument isn't executed. This results in the fillPages to not work.

Create custom list listOfSongs

Switch the skips, so fills are allowed. -> Test it

fix bug insertfillpages. There's always at least one page. Why?

IfBoolean instead of ifx for stared command in DeclareDocumentCommand

integrate /@car and /@cdr

/extraSpaceBeforeStrophe{Strophennummer}{pt}

/forcePagebreakBeforeStrophe{Strophennummer}

meta data: what breaks in an edef, is only possible with a triple unexpanded.


\section{Compability improvement with different fonts and languages}
I have plans here. But nothing too specific yet.