summaryrefslogtreecommitdiff
path: root/macros/mtex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/mtex
Initial commit
Diffstat (limited to 'macros/mtex')
-rw-r--r--macros/mtex/README65
-rw-r--r--macros/mtex/documentation/mdoc.tex75
-rw-r--r--macros/mtex/documentation/mdoc1.tex897
-rw-r--r--macros/mtex/documentation/mdoc10.tex205
-rw-r--r--macros/mtex/documentation/mdoc11.tex283
-rw-r--r--macros/mtex/documentation/mdoc12.tex89
-rw-r--r--macros/mtex/documentation/mdoc13.tex95
-rw-r--r--macros/mtex/documentation/mdoc2.tex1206
-rw-r--r--macros/mtex/documentation/mdoc3.tex811
-rw-r--r--macros/mtex/documentation/mdoc4.tex288
-rw-r--r--macros/mtex/documentation/mdoc5.tex1123
-rw-r--r--macros/mtex/documentation/mdoc6.tex527
-rw-r--r--macros/mtex/documentation/mdoc7.tex398
-rw-r--r--macros/mtex/documentation/mdoc8.tex617
-rw-r--r--macros/mtex/documentation/mdoc9.tex1135
-rw-r--r--macros/mtex/documentation/mdocabst.tex73
-rw-r--r--macros/mtex/documentation/mdocams.tex261
-rw-r--r--macros/mtex/documentation/mdocanha.tex670
-rw-r--r--macros/mtex/documentation/mdocanhb.tex49
-rw-r--r--macros/mtex/documentation/mdocanhc.tex204
-rw-r--r--macros/mtex/documentation/mdocanhd.tex220
-rw-r--r--macros/mtex/documentation/mdocdef.tex258
-rw-r--r--macros/mtex/documentation/mdocdef2.tex60
-rw-r--r--macros/mtex/documentation/mdoceinl.tex207
-rw-r--r--macros/mtex/documentation/mdocinh.tex91
-rw-r--r--macros/mtex/documentation/mdocpic1.tex34
-rw-r--r--macros/mtex/documentation/mdocpic2.tex45
-rw-r--r--macros/mtex/documentation/mdocpic3.tex46
-rw-r--r--macros/mtex/documentation/mdocpic4.tex24
-rw-r--r--macros/mtex/documentation/mdoctit.tex15
-rw-r--r--macros/mtex/documentation/mdoctrns.tex1201
-rw-r--r--macros/mtex/documentation/mdocverb.tex40
-rw-r--r--macros/mtex/documentation/webmac.tex201
-rw-r--r--macros/mtex/macros/mtex.tex1976
-rw-r--r--macros/mtex/macros/mtexdemo.tex299
-rw-r--r--macros/mtex/macros/mtexinfo.tex468
-rw-r--r--macros/mtex/metafont/acc16.mf142
-rw-r--r--macros/mtex/metafont/beam16.mf79
-rw-r--r--macros/mtex/metafont/music16.mf12
-rw-r--r--macros/mtex/metafont/musicdef.mf71
-rw-r--r--macros/mtex/metafont/noten16.mf292
-rw-r--r--macros/mtex/metafont/pause16.mf184
-rw-r--r--macros/mtex/metafont/slur16.mf229
-rw-r--r--macros/mtex/metafont/slurdd16.mf41
-rw-r--r--macros/mtex/metafont/slurdu16.mf42
-rw-r--r--macros/mtex/metafont/slurud16.mf40
-rw-r--r--macros/mtex/metafont/sluruu16.mf39
-rw-r--r--macros/mtex/metafont/sonder16.mf112
-rw-r--r--macros/mtex/metafont/vio16.mf195
49 files changed, 15734 insertions, 0 deletions
diff --git a/macros/mtex/README b/macros/mtex/README
new file mode 100644
index 0000000000..391d1f0832
--- /dev/null
+++ b/macros/mtex/README
@@ -0,0 +1,65 @@
+Dieser Zoo-File enthaelt die komplette Version der MTEX-Makros zum
+automatisierten Notensatz mit TeX, inkl. Dokumentation.
+Diese Makros bzw. Fonts sind im Rahmen der Diplomarbeiten von
+Frau Steinbach und Frau Schofer in Bonn entstanden. Die Dokumentation
+ist eine Kombination aus diesen beiden Arbeiten.
+Die Files im einzelnen:
+
+README diese Datei
+mdoc.tex Dokumentation zu MTEX, Plain TeX
+mdoc1.tex Teil der Dokumentation
+mdoc10.tex ""
+mdoc11.tex ""
+mdoc12.tex ""
+mdoc13.tex ""
+mdoc2.tex ""
+mdoc3.tex ""
+mdoc4.tex ""
+mdoc5.tex ""
+mdoc6.tex ""
+mdoc7.tex ""
+mdoc8.tex ""
+mdoc9.tex ""
+mdocabst.tex ""
+mdocams.tex ""
+mdocanha.tex ""
+mdocanhb.tex ""
+mdocanhc.tex ""
+mdocanhd.tex ""
+mdocdef.tex ""
+mdocdef2.tex ""
+mdoceinl.tex ""
+mdocinh.tex ""
+mdocpic1.tex "" (Bilder)
+mdocpic2.tex ""
+mdocpic3.tex ""
+mdocpic4.tex ""
+mdoctit.tex ""
+mdoctrns.tex ""
+mdocverb.tex ""
+mtex.tex Mtex-Makros
+mtexdemo.tex Demo zu Mtex (benoetigt ein 'grosses' TeX)
+mtexinfo.tex Kurz-Dokumentation zu den Makros
+webmac.tex Makros zu WEB (fuer Listing des Preprozessors)
+music16.mf Metafont-Source der Notensymbole
+beam16.mf ""
+slur16.mf ""
+slurdd16.mf ""
+slurdu16.mf ""
+slurud16.mf ""
+sluruu16.mf ""
+sonder16.mf Metafont-Include-Datei
+musicdef.mf ""
+noten16.mf ""
+pause16.mf ""
+vio16.mf ""
+acc16.mf ""
+
+Zum Uebersetzen der Dokumentation wird nur ein Plain TeX mit german.tex
+vorausgesetzt. Die Fonts muessen natuerlich vorher erstellt werden.
+
+ Dr. P. Janssen
+ Inst. f. angew. Mathematik
+ Universitaet Bonn
+ Wegelerstr. 6
+ 5300 Bonn 1
diff --git a/macros/mtex/documentation/mdoc.tex b/macros/mtex/documentation/mdoc.tex
new file mode 100644
index 0000000000..9c466500f5
--- /dev/null
+++ b/macros/mtex/documentation/mdoc.tex
@@ -0,0 +1,75 @@
+%format plaing % PLAIN + GERMAN
+%%format mtexg % PLAIN + GERMAN + MTeX
+
+\input pictex % there are some figures (in MDOCPIC*.TEX)
+\input mtex % we dont use preloaded mtex
+\input mdocverb % verbatim mode
+\input mdocams % because we now use PLAIN, not OLDAMS base format.
+\input mdocdef % defdipl + dipldef
+\input german
+\verbatimon
+
+
+\input mdoctit
+
+{\advance \hsize -2cm
+\openup-3pt
+\advance\hoffset1.0cm
+\ninerm
+\input mdocabst
+}
+
+
+\chap=-2
+\input mdocinh
+
+
+\pageno=1
+\input mdoceinl
+
+{
+\verbatimoff
+\input mdocdef2 % hier NUR fuer MDOC1,2,3! deshalb Klammerung!
+
+\input mdoc1
+
+\input mdoc2
+
+\input mdoc3
+}
+\chap=3
+
+\input mdoc4
+
+\input mdoc5
+
+\input mdoc6
+
+\input mdoc7
+
+\input mdoc8
+
+\input mdoc9
+
+\input mdoc10
+
+\input mdoc11
+
+\input mdoc12
+
+\input mdoc13
+
+%\chap=13\pageno=107
+\input mdocanha
+
+{
+\verbatimoff
+\input mdocdef2 % hier NUR fuer MDOCANHB,C,D! deshalb Klammerung!
+
+\input mdocanhb % benoetigt noch WEBMAC.TEX
+
+\input mdocanhc
+
+\input mdocanhd
+}
+\bye
diff --git a/macros/mtex/documentation/mdoc1.tex b/macros/mtex/documentation/mdoc1.tex
new file mode 100644
index 0000000000..bc080b00cb
--- /dev/null
+++ b/macros/mtex/documentation/mdoc1.tex
@@ -0,0 +1,897 @@
+\heading{Noteneingabesprachen
+ im Zusammenhang mit dem automatisierten Notensatz}
+\centerline{\bigrm 1.\quad Noteneingabesprachen}\smallskip
+\centerline{\bigrm im Zusammenhang mit dem automatisierten Notensatz}
+\bigskip
+Bevor auf die Automatisierung des Notensatzes eingegangen wird, soll
+zuerst die her\-k"ommliche Notationsweise von Musikst"ucken, die
+Notenschrift, erl"autert werden, denn aufgrund
+ihrer Gestalt ist
+die Automatisierung des Notensatzes relativ schwer.
+\abs
+Das Ziel einer schriftlichen Aufzeichnung der Musik mu\3 es sein,
+den Klang graphisch darzustellen und den zeitlichen Ablauf der Musik
+festzuhalten.
+Die heute gebr"auchliche abendl"andische Notenschrift ist seit dem
+11. Jahrhundert st"andig weiterentwickelt worden.
+Dabei hat sie einen hohen Grad der Vollkommenheit erreicht.
+\abs
+In der Notenschrift werden
+die Tonh"ohe durch die Stellung der Noten im
+Liniensystem, die relative Dauer der Einzelt"one durch die Notengestalt,
+die rhythmische Gruppierung und die Akzentlage durch Taktvorzeichen
+und Taktstriche und das Tempo durch allgemeine Angaben
+oder Metronom--Zahlen
+wiedergegeben. Differenzierungen der Tonst"arke, Verzierungen,
+Artikulationen oder "ahnliche Zus"atze werden durch schriftliche
+Anweisungen oder besondere Zeichen ausgedr"uckt. Die Notenschrift bedient
+sich eines zweidimensionalen Systems, in dem die Noten vertikal
+und horizontal angeordnet werden. Die vertikale Richtung stellt die
+Tonh"ohe und die horizontale
+die zeitliche Aufeinanderfolge der T"one dar.
+Auf diese Art kann die musikalische Struktur einer Partitur bis in
+Einzelheiten visuell veranschaulicht werden.
+\abs
+Im folgenden soll auf die Problematik des automatisierten Notensatzes
+eingegangen
+und die Unterschiede zum automatisierten Schriftsatz deutlich gemacht
+werden. Zus"atzlich zu den Schwierigkeiten bei der
+Entwicklung einer Eingabesprache werden auch kurz die
+Probleme der Notenschriftausgabe angesprochen, weil manche dieser
+Probleme aus der Eingabe resultieren.
+\abschnitt\abschnitt
+\centerline{\bf 1.1 Problematik des automatisierten Notensatzes}
+\abschnitt
+Die "ubliche Aufzeichnung
+von Musikst"ucken ist die oben beschriebene
+Niederschrift in Noten. Ihr besonderes
+Merkmal ist die Anordnung sehr unterschiedlicher Zeichen in einem
+zweidimensionalen System, dem Notenliniensystem. Die Zeichen der
+Notenschrift, die in der Gr"o\3e stark variieren, treten nicht nur
+einzeln sondern auch miteinander kombiniert auf.
+Zeichen bzw. Zeichengruppen m"ussen in dem
+Notenliniensystem sehr genau plaziert werden.
+Es spielt also nicht nur die
+horizontale Ausrichtung und Anordnung eine wichtige Rolle, sondern auch
+die vertikale. Beide, horizontale wie vertikale Plazierung der Zeichen,
+sind f"ur das Verst"andnis eines Musikst"ucks gleichbedeutend und
+liefern entscheidende Informationen.\abs
+Die Aufgabe der Eingabesprache f"ur den Computer besteht nun
+einerseits darin, Ausk"unfte "uber die Plazierung der Zeichen
+im Notenliniensystem zu geben. Andererseits sollen
+zus"atzliche Informationen, die durch die
+zweidimensionale Schreibweise vermittelt werden, genau erfa\3t und
+wiedergegeben werden.
+Bei der Entwicklung einer Eingabesprache, die diese Aufgabe l"ost,
+ist die Umsetzung der zweidimensionalen Notenschrift in eine
+lineare Schreibweise die gr"o\3te Schwierigkeit. Diese
+"Ubertragung ist erforderlich, weil f"ur den Computer eine
+Noteneingabe vorliegen mu\3, bei der die Zeichen ausschlie\3lich
+aufeinanderfolgen. Das bedeutet aber auch, da\3 die Zeichen
+der Notenschrift durch ein Zeichensystem ersetzt werden m"ussen,
+das einem Standardzeichensatz f"ur den Computer angeh"ort.
+Bei diesem Umsetzungsschritt sollen die Informationen der Notenschrift
+erhalten bleiben, das hei\3t, die "Ubertragung sollte ohne Verf"alschung
+und ohne Verlust von Informationen stattfinden.
+Der andere Teil der Aufgabe einer Eingabesprache betrifft die
+"Ubermittlung von Informationen zur Plazierung der Zeichen bzw.
+Zeichengruppen. Ziel sollte es dabei sein, da\3 der Benutzer
+nicht die Position der Zeichen in dem zweidimensionalen System,
+sondern ihre Funktion und Bedeutung angeben mu\3. Es
+sollte bei der Dateneingabe auch nicht n"otig sein, das Ende
+einer Notenzeile bzw. einer Seite explizit anzugeben,
+da der Endpunkt einer
+Zeile bzw. Seite innerhalb eines Musikst"ucks ohne Bedeutung ist.
+\abs
+Mit diesen Ausf"uhrungen ist ein
+wesentlicher Unterschied zum normalen
+Schriftsatz herausgestellt worden. Dort
+kommt es nur auf die horizontale Anordnung und Aufeinanderfolge der
+Schriftzeichen an, die Elemente eines Standardzeichensatzes
+f"ur den Computer sind. Damit entf"allt bei der
+Automatisierung des Schriftsatzes das Problem, die "ubliche
+Niederschrift des Textmaterials bzw. das Zeichensystem
+codieren zu m"ussen.
+Eine Ausnahme bildet \zB der Satz mathematischer
+oder chemischer
+Texte, denn f"ur die Notierung mathematischer bzw. chemischer Formeln
+wird ebenfalls eine zweidimensionale Schreibweise verwandt.
+Es werden dabei auch sehr unterschiedliche Zeichen horizontal wie
+vertikal angeordnet.
+F"ur diese Art von Texten mu\3 es demnach wie bei einer Noteneingabe
+eine Codierungsvorschrift geben, die die zweidimensionale
+Notationsform in eine lineare "ubertr"agt.
+\abs
+Da die Eingabedaten Grundlagen f"ur einen Ausgabealgorithmus
+sind, wird dieser von der Art der Eingabe beeinflu\3t.
+In unserem Fall bedeutet das, da\3 die
+Positionsermittlung der Zeichen im Notenliniensystem
+Aufgabe des Ausgabeverfahrens ist.
+Au\3erdem mu\3 ein Algorithmus gefunden werden, der den
+Seiten-- bzw. Zeilenumbruch selbst"andig vornimmt,
+weil das Ende einer Zeile bzw. Seite nicht angegeben zu werden braucht.
+An diesen Algorithmus wird die Forderung gestellt,
+da\3 er die f"ur einen Umbruch g"unstigsten Stellen findet. G"unstige
+Umbruchpunkte sind dabei solche, die das Notenbild und die Bedeutung des
+Musikst"ucks nicht beeintr"achtigen.
+Ein Umbruchalgorithmus f"ur den Notensatz mu\3 auch vertikale
+Zusammengeh"origkeiten ber"ucksichtigen.
+Dies ist \zB bei Orchesterpartituren
+notwendig, bei denen die Takte der verschiedenen Stimmen exakt
+untereinander stehen m"ussen. Der Algorithmus sollte
+also f"ur jede Stimme
+g"unstige Umbruchpunkte suchen und dann einen f"ur das gesamte System
+bestimmen, der f"ur alle Stimmen m"oglichst gut ist.
+Solche Umbruchalgorithmen werden auch beim automatisierten
+Schriftsatz benutzt. Allerdings m"ussen dort in den meisten F"allen
+keine vertikalen Zusammengeh"origkeiten beachtet werden.
+\abs
+Zus"atzlich zur Ein-- und Ausgabe mu\3 eine weitere Voraussetzung
+angesprochen werden, die notwendigen Zeichens"atze.
+F"ur den Notensatz werden eine Vielzahl von Schriftelementen
+ben"otigt, die sich oft nur geringf"ugig unterscheiden. Als Beispiel
+seien dabei die Balken erw"ahnt, die mehrere Noten miteinander
+verbinden. Sie unterscheiden sich haupts"achlich in ihrer L"ange bzw.
+Steigung. W"unschenswert ist daher
+ein zus"atzliches Programmpaket, das beliebige
+Zeichens"atze mit m"oglichst geringem manuellem Aufwand erstellt.
+\abs
+Die angef"uhrten Themen werden in den n"achsten
+Kapiteln n"aher erl"autert und Probleml"osungen angegeben.
+Die Umsetzung der
+zweidimensionalen Notation in eine eindimensionale wird im
+zweiten Kapitel, die Zeichensatzerstellung in
+Anhang D behandelt.
+%
+Algorithmen, die den \SZ\ optimieren bzw. die Zeichen im
+Notenliniensystem genau plazieren, werden in der Arbeit von
+A. Steinbach beschrieben.
+%
+%
+%
+\abschnitt\abschnitt
+\centerline{\bf 1.2 Einsatz des Textsatzsystems \TeX\
+f"ur den Notensatz}
+\abschnitt
+In diesem Abschnitt soll gezeigt werden, aus welchen Gr"unden
+das schon mehrfach erw"ahnte \Tss\ \TeX\ f"ur den
+automatisierten Notensatz verwandt werden kann.
+Zuerst wird eine zusammenfassende Beschreibung der Arbeitsweise
+mit dem \Tss\ gegeben.
+\abs
+Mit \TeX\ k"onnen alle Arten von Schrifttexten verarbeitet werden,
+auch mathematische und chemische Formeln.
+F"ur die Textverarbeitung mit \TeX\ wird eine gew"ohnliche
+sequentielle Eingeabedatei erstellt, die den zu setzenden Text enth"alt.
+Zusammen mit dem Text werden Steuerbefehle eingegeben, die angeben,
+auf welche Art der Text verarbeitet wird. Diese
+Steuerbefehle k"onnen Einflu\3 auf die Formatierung nehmen oder
+Sonderzeichen ansprechen, wie sie \zB
+f"ur mathematische Formeln ben"otigt
+werden.
+Aus dieser Eingabedatei erzeugt \TeX\ eine Datei, die Angaben
+"uber die Art der Zeichen und ihre Position auf einer Manuskriptseite
+enth"alt. Diese Datei ist vom m"oglichen Ausgabeger"at v"ollig
+unabh"angig.
+Mit einem ger"ateabh"angigen Programm wird nun aus dieser Datei
+das tats"achliche lesbare Dokument erstellt.
+Bemerkenswert ist dabei vor allem, da\3 keinerlei Informationen
+"uber Position der Schriftzeichen
+oder Umbruchpunkte in der Eingabe n"otig sind, um
+eine lesbare Ausgabe zu erhalten.
+Damit bietet \TeX\ auch dem Benutzer, der keine oder nur geringe
+Kenntnisse von Satzregeln besitzt, die M"oglichkeit, eine
+gut formatierte Ausgabe zu erzielen. Andererseits stellt \TeX\
+Mittel bereit, die es zulassen, da\3 der Benutzer den Text genau
+nach seinen Vorstellungen formatieren kann.
+Zu dem \Tss\ \TeX\ geh"ort das Programmpaket \mf\ \lit{\Knuthmf}, das
+f"ur den Textsatz notwendige Zeichens"atze generieren kann.
+\abs
+Im folgenden werden die Gr"unde dargelegt, die
+f"ur eine Anwendung des \Tss s \TeX\
+beim automatisierten Notensatz sprechen.
+Einige Aspekte werden beim Vergleich der Anwendungsbereiche und
+der Arbeitsweise von \TeX\ mit den speziellen Fragestellungen des
+Notensatzes deutlich. Bei der Entwicklung der
+Ein-- bzw. Ausgabeverfahren f"ur dieses Textsatzsystem mu\3ten
+"ahnliche Probleme gel"ost werden. Die Gemeinsamkeiten dieser
+Probleme betreffen vor allem
+\item{---} die Umsetzung der zweidimensionalen in eine
+lineare Notation,
+\item{---} die Formatierung des Textes,
+\item{---} die M"oglichkeit, verschiedenartige Texte miteinander
+zu verarbeiten und
+\item{---} die Wahl der Ausgabeger"ate.
+\abs
+Die aufgef"uhrten Punkte werden nun n"aher erl"autert und
+in Verbindung mit dem Notensatz gebracht.
+\abs
+\item{1.}
+Einer der entscheidenden
+Gr"unde, die eine Anwendung des Textsatzsystems \TeX\ bei der
+Automatisierung des Notensatzes rechtfertigen,
+ist sicherlich,
+da\3 es alle M"oglichkeiten bietet, um auch
+mathematische Texte zu setzen.
+Bisher mu\3ten mathematische
+Manuskripte genau wie musikalische ausschlie\3lich von
+ausgebildeten Schriftsetzern gesetzt werden. Der Einsatz des Satzsystems
+\TeX\ macht es m"oglich, da\3 auch Laien mathematische Texte setzen
+k"onnen.
+F"ur den Notensatz ist das insofern von Bedeutung, weil
+der Satz mathematischer und \m er Manuskripte
+Gemeinsamkeiten aufweist, die sich vor allem darin begr"unden, da\3 in
+beiden F"allen die Zeichen innerhalb eines zweidimensionalen Systems
+angeordnet werden.
+F"ur die Eingabe mathematischer Texte mu\3 ebenfalls
+-- "ahnlich wie f"ur die Notenschrifteingabe --
+eine Methode gefunden werden,
+die die oft zweidimensionale Notationsweise f"ur mathematische Formeln
+in eine eindimensionale
+"ubertr"agt. Knuth ist dies mit seinem \Tss\ auf eine f"ur den Benutzer
+relativ leicht zu handhabende Weise gelungen, ohne da\3 das System die
+M"oglichkeiten des Benutzers einschr"ankt oder Strukturen
+der "ublichen Notation verf"alscht.
+Mathematische Texte weisen eine
+"ahnliche Blockstruktur wie Musikst"ucke auf. Mit \TeX\ werden die
+vorkommenden Bl"ocke in der Eingabe auch
+als solche kenntlich gemacht. Die Blockstruktur von Musikst"ucken
+zeigt sich in der Zusammenfassung von Notenschriftzeichen
+zu Gruppen wie Akkorde,
+Verbalkungen, Takte oder im
+Zusammenschlu\3 mehrerer Systeme zu einer Partitur.
+\item{2.}
+Mit dem Satzsystem von Knuth erfolgt auch dann eine gut formatierte
+Ausgabe,
+wenn der Benutzer keine
+oder nur geringe Kenntnisse von Satzregeln besitzt.
+Gleichzeitig weist das System
+so viel Flexibilit"at auf, da\3
+es die Umsetzung fester Vorstellungen vom
+Layout des gesetzten Textes zul"a\3t. Beide M"oglichkeiten sollen auch
+f"ur den Notensatz verwirklicht werden. Das bedeutet, da\3
+mit Hilfe einer vorgegebenen Formatierung ein Benutzer, der mit den
+Satzregeln
+nicht vertraut ist, Partituren eingeben kann und
+eine publikationsf"ahige Notenausgabe
+erh"alt. Die W"unsche des Benutzers bez"uglich der Formatierung k"onnen
+aber mittels Steuerbefehlen ebenfalls ber"ucksichtigt werden.
+Des weiteren soll es auch f"ur eine vom Benutzer gew"ahlte
+Formatierung nicht n"otig sein,
+das Ende einer Zeile bzw. Seite einzugeben. Diese
+Endpunkte sollen mittels eines Umbruchalgorithmus gesucht werden.
+F"ur das \Tss\ \TeX\ wurde
+ein Algorithmus entwickelt, der den \SZ\ optimiert und auf
+diese Weise die Formatierung erleichtert.
+\item{3.}
+Mit Hilfe des Satzsystems von Knuth k"onnen Texte gemeinsam verarbeitet
+werden, obwohl sie sich in ihrer Struktur unterscheiden. Beispiele
+daf"ur sind mathematische bzw. chemische Formeln oder anderssprachige
+Manuskripte, die andere Schriftzeichen verwenden. Dadurch scheint die
+M"oglichkeit gegeben zu sein, auch musikalische St"ucke zusammen mit
+anderem Textmaterial verarbeiten zu k"onnen. Erleichtert wird das noch
+durch die Tatsache, da\3 die Verarbeitung mathematischer und
+musikalischer Manuskripte "ahnliche Fragen aufwirft und diese f"ur
+mathematische Texte gel"ost wurden.
+\item{}
+Die Kombination des Notensatzes mit
+einem \Tss\ macht es au\3erdem "uberfl"ussig, Zeichens"atze zu
+generieren, die die Schriftzeichen f"ur Texte, die innerhalb eines
+Musikst"ucks vorkommen, enthalten. Die Zeichs"atze f"ur die
+Notenschriftzeichen k"onnen mit dem Programmpaket \mf, das ebenfalls von
+Knuth entwik\-kelt wurde, erzeugt werden. Mit \mf\ werden Zeichens"atze
+verh"altnism"a\3ig schnell und ohne gro\3en Arbeitsaufwand des Benutzers
+erstellt.
+\item{4.}
+Eine weitere Eigenschaft
+des \Tss\ \TeX\ besteht darin, da\3 es maschinen-- und
+ausgabeger"ateunabh"angig arbeitet.
+Eine Ausgabe wird nicht nur mit einem bestimmten
+Ausgabeger"at erreicht, sondern
+jede \TeX--Eingabedatei kann durch geeignete
+Programme so aufbereitet werden, da\3 die Ausgabe mit verschiedenen
+Ausgabeger"aten m"oglich ist.
+Dies ist in der heutigen Zeit nicht
+unwesentlich, da es eine Vielzahl verschiedener Ger"ate zur
+Datenverarbeitung gibt.
+Allerdings h"angt die Qualit"at der Ausgabe vom benutzten
+Ausgabeger"at ab.
+\abs
+Aufgrund dieser Gesichtspunkte
+sollte im Zusammenhang mit der Automatisierung
+des Notensatzes versucht werden, eine Notenausgabe mit Hilfe des \Tss s
+\TeX\ zu
+erzielen. Dazu ist es notwendig, zus"atzlich zu der Noteneingabesprache
+ein "Ubersetzungsprogramm zu entwickeln, das die Eingabedatei
+in eine Form "ubertr"agt, auf die \TeX\
+angewandt werden kann. Dieses Programm wird in
+Anhang B beschrieben.
+\abschnitt
+Bevor eine Sprache zur Notenschrifteingabe entwickelt werden kann,
+m"ussen die Grunds"atze, auf denen ein
+solches Verfahren basieren soll, erarbeitet werden.
+Dabei mu\3 vor allem beachtet werden, da\3 eine Noteneingabesprache
+nicht speziell f"ur eine Anwendungsm"oglichkeit entwickelt werden soll,
+sondern es soll jede Weiterverarbeitung m"oglich werden.
+Nat"urlich ist
+es dann notwendig, spezielle Programme, die die Eingabe nach
+Wunsch aufbereiten, zu erstellen. "Anderungen am Eingabematerial sollten
+allerdings unn"otig sein, \dh die Erstellung einer einzigen
+Eingabedatei sollte ausreichen.
+Denkbare Anwendungsbereiche k"onnten neben der Automatisierung
+des Notensatzes die Analyse von Musikst"ucken, die Kopie einzelner
+Stimmen zur Katalogisierung oder Transponieren der Stimmen sein.
+\abs
+Es werden nun
+zun"achst die
+Bedingungen gestellt, die eine Eingabemethode erf"ullen sollte.
+Dabei wird die allgemeine Anwendbarkeit der Sprache
+beachtet, obwohl haupts"achlich auf den Notensatz eingegangen wird.
+\abschnitt\abschnitt
+\centerline{\bf 1.3 Grundlegende Anforderungen an eine Sprache zur
+Notenschrifteingabe}\abschnitt
+F"ur die \A\ des Notensatzes ist eine sinnvolle
+Methode zur Eingabe des musikalischen Materials von gro\3er Bedeutung,
+weil sie -- zusammen mit der maschineninternen
+Behandlung der eingegebenen Daten -- Auswirkungen auf die
+Notenschriftausgabe hat. Eine Eingabesprache, die das Klangbild
+musikalischer Werke nicht exakt erfassen kann,
+f"uhrt dazu, da\3
+Musikst"ucke
+unabh"angig von der
+Beschaffenheit des Ausgabeverfahrens
+verf"alscht oder fehlerhaft wiedergegeben werden.
+Aus diesem Grund resultieren einige der Bedingungen aus
+"Uberlegungen, die zur Ausgabe gemacht wurden. Die wichtigsten
+Forderungen beziehen sich auf die Darstellung der Eingabedaten
+und die
+Einsatzm"oglichkeiten f"ur den Benutzer.
+\abs
+Es wurde schon zu Anfang dieses Kapitels erw"ahnt,
+da\3 mit der Notenschrift das
+Klangbild einer Partitur bis in Einzelheiten
+erfa\3t werden kann. Das liegt daran,
+da\3 zus"atzlich zu den Angaben zu jedem einzelnen Ton diese Darstellung
+auch den Bezug jedes Tons zur Gesamtstruktur des Musikst"ucks in seinem
+horizontalen
+wie vertikalen Aufbau erkennen l"a\3t.
+Das Ziel bei der Entwicklung einer Eingabesprache
+mu\3 also sein, diese Informationsvielfalt der gebr"auchlichen
+Notation wiederzugeben.
+Aufgrund
+der Komplexit"at der Musik und ihrer
+Notationsform ist es nicht einfach, das mit einer linearen
+Eingabemethode zu verwirklichen.
+Zus"atzlich wird das noch durch die Tatsache erschwert,
+da\3 eine lineare Notation ein anderes Zeichensystem als
+Grundlage hat. Aus der Vielschichtigkeit der
+Notenschrift lassen sich Bedingungen f"ur die
+Eingabemethode in Textform ableiten.
+\item{1.}
+Die lineare Darstellung der Musik sollte die gleiche
+"Ubersichtlichkeit aufweisen wie die "ubliche Notation. Das bedeutet,
+da\3 die Art der Musik und
+das Klangbild der Partitur deutlich werden mu\3 und unmittelbar
+erkennbar sein sollte.
+Dies wird
+gew"ahrleistet, wenn die Eingabedatei haupts"achlich Daten zur
+Funktion und Bedeutung eines Zeichens innerhalb des \m en Werks
+enth"alt.
+Die Alternative w"are, die Position der Zeichen anzugeben.
+Dazu w"are es notwendig, das
+Notenliniensystem mit einer Skalierung zu versehen und dann als
+Koordinatensystem zu betrachten.
+Allerdings
+w"urde dabei
+die geforderte "Uberschaubarkeit nicht vorhanden sein, weil
+jedes Zeichen f"ur sich ohne Ber"ucksichtigung seiner Umgebung
+eingegeben werden m"u\3te.
+\abs
+Da die Funktion und nicht die Position der Zeichen f"ur die
+Eingabe relevant sein soll, kann die folgende Bedingung gestellt
+werden.
+\item{2.}
+Die Eingabe soll nicht
+zeilenweise erfolgen. Das Ende einer Zeile bzw. Seite
+innerhalb eines
+Musikst"ucks braucht deshalb bei der linearen \Em\
+nicht gekennzeichnet werden. Der Grund daf"ur liegt darin, da\3
+im Fall einer zeilenweise Eingabe
+der Zusammenhang und die "Uber\-schau\-barkeit des Musikst"ucks
+verloren geht.
+Beispielsweise m"u\3ten bei
+dieser Art der Eingabe die verschiedenen Instrumentenstimmen einer
+Orchesterpartitur zerst"uckelt eingegeben werden.
+\abs
+Die weiteren Anforderungen betreffen die Kenntnisse, die ein
+Benutzer haben sollte, der die Methode zur Noteneingabe benutzen
+will.
+\item{3.}
+Ein \Ev\ sollte
+schnell erlernbar und einfach zu handhaben sein. Diese
+Forderung kann erf"ullt werden, wenn die
+Angaben, die eingegeben werden m"ussen,
+dem \m en Sprachgebrauch angepa\3t
+sind. Das spricht wiederum daf"ur, auf Positionsangaben zu verzichten.
+\item{4.}
+Die Noteneingabesprache sollte so beschaffen
+sein, da\3 auch Laien sie benutzen k"onnen.
+Der Benutzer sollte weder
+Programmierkenntnisse ben"otigen
+noch Notensatzregeln beherrschen m"ussen.
+Fertigkeiten im Notenlesen sollten ausreichen, um eine Eingabe f"ur den
+Computer erstellen zu k"onnen.
+\absatz
+Anhand dieser Bedingungen soll im n"achsten Kapitel eine Eingabesprache
+entwickelt werden. Dabei wird aufgrund der Themenstellung dieser Arbeit
+vor allem die Automatisierung des Notensatzes ber"ucksichtigt.
+Zuvor werden einige andere Noteneingabeverfahren vorgestellt, die
+aus verschiedenen Motiven entwickelt wurden.
+\abschnitt\abschnitt
+\centerline{\bf 1.4 Er"orterung und Vergleich
+vorhandener Eingabeverfahren}
+\abschnitt
+Schon seit einiger Zeit werden
+einige Methoden zur Noteneingabe, die f"ur den Computer geeignet
+sind, ver"offentlicht. Der Nachteil der meisten dieser Eingabeverfahren
+besteht darin, da\3 sie nicht sehr flexibel und in ihrer Verwendbarkeit
+eingeschr"ankt sind. Die Mehrzahl erf"ullt nur einen
+Teil der oben genannten Bedingungen. Um einen ungef"ahren "Uberblick
+"uber die bereits ver"offentlichten Arbeiten zu diesem Thema zu
+erhalten, werden im folgenden einige davon beschrieben. Ein
+Gesichtspunkt der Untersuchung dieser Eingabemethoden wird dabei sein,
+ob die obigen Anforderungen erf"ullt werden. Daran kann erkannt werden,
+wie geeignet die Methode f"ur die verschiedenen Aufgaben ist. \abs
+Allerdings k"onnen an dieser Stelle nicht alle vorhandenen Methoden zur
+computergerechten Noteneingabe erfa\3t werden. Genauso wenig ist es
+m"oglich, die Eingabeverfahren vollst"andig zu beschreiben und auf jede
+Codierungsvorschrift einzugehen. Doch ein "Uberblick "uber die
+zug"anglichen Publikationen wird trotzdem vermittelt, und einige
+grundlegende Unterschiede der einzelnen Methoden werden ersichtlich.
+\abs
+Die Eingabemethoden, die beschrieben werden, stehen
+jeweils stellvertretend f"ur eine Gruppe
+"ahnlicher Verfahren. Mit deren Hilfe werden typische Unterschiede
+zwischen den Methoden deutlich. Die Vorstellung der \Ev\ erfolgt
+anhand einer knappen Zusammenfassung der Regeln und einiger
+Mustercodierungen.
+\abschnitt\abschnitt
+\subheading{1.4.1 Plaine and Easy Code \lit{\Brook}}
+Den Angaben der Autoren zufolge ist diese Methode
+nicht entwickelt worden, um vollst"andige Partituren einzugeben. Ihre
+Absicht bestand darin, eine M"oglichkeit zu schaffen, Ausz"uge aus
+Partituren -- vor allem den Anfang der Musikst"ucke -- speichern zu
+k"onnen. Dies wird ben"otigt f"ur Bibliothekskarteien zur
+Katologisierung und
+schnellen
+Identifizierung \m er Werke, f"ur Kataloge, f"ur Musikbeispiele in
+Artikeln und B"uchern, bei der Aufstellung von Karteien mit den
+wichtigsten Merkmalen eines Musikst"ucks.
+\abs
+Um den Aufbau der Eingabesprache von Brook und Gould trotz einer
+knappen Beschreibung deutlich werden zu lassen, wird zun"achst ein
+Beispiel f"ur ihre Eingabe vorgestellt.
+%
+%
+%
+$$\hbox{(All bBEAm 34) ,4G / C E G / 2C 4E / 2D ,4xF / 2.G
+ $\us$ / G /}$$
+\par\vskip-0.7cm
+{\hsize13.5cm\parindent3cm
+\nointerlineskip
+\beginsong\bass\Es\^n{Allegro}{\meter3/4}\v0\|\v3\v5\v7\|%
+\h{10}\v{12}\|\h{11}\x6\v6\|\group{\\{\h7\.1}\\{\|}\\{\h7\.1}}
+{\\{7}\\{8}\\{7}}\uslur13\go\hfill\endsong}
+\vskip-1cm\abs
+%Beispiel Brook S.142 oben
+%
+%
+Da es vor allem darum
+geht, den Anfang eines Musikst"ucks f"ur eine Klassifizierung
+computergerecht aufzubereiten, haben Brook und Gould die \Em\ in zwei
+Teile aufgegliedert.
+\abs
+Der erste Teil enth"alt die Angaben zu Tempo,
+Notenschl"ussel, Vorzeichnung und Taktart. Zus"atzlich k"onnen Aussagen
+"uber Instrumente bzw. Stimmen, Satznummern und "ahnliches notiert
+werden. Die Eingabe des Tempos und der Instrumente bzw. Stimmen erfolgt
+durch eine Abk"urzung ihres Namens; die Taktart wird mit Hilfe zweier
+Zahlen, die durch einen Schr"agstrich getrennt werden k"onnen,
+notiert; f"ur die
+Vorzeichnung wird die Art der Vorzeichen durch einen Buchstaben
+eingegeben, auf den die Notennamen der Noten folgen, vor denen das
+Vorzeichen steht; und der Notenschl"ussel wird durch ein Codewort
+angegeben.
+\abs
+Der zweite Teil der Eingabe enth"alt ein St"uck des Melodieverlaufs.
+Dabei werden die Notennamen durch Gro\3buchstaben angegeben. Vor den
+Notennamen m"ussen zus"atzliche Angaben wie Tondauer, Oktave,
+Versetzungszeichen und Punktierungen stehen. Diese werden gem"a\3 ihrem
+Sprachgebrauch codiert: die Tondauer als Ziffer, Versetzungszeichen als
+Buchstabe, Punktierungen durch die entsprechende Anzahl von Punkten und
+Oktaven durch eine Anzahl von Kommata, die der Oktavlage entspricht.
+\abs
+Einzelne Noten werden durch Leerstellen voneinander getrennt, die
+Takte werden mit einem Schr"agstrich abgeschlossen.
+\abs
+F"ur
+die Verbindung einzelner Noten mit einem Bogen
+wird von den Autoren unterschieden, ob zwei oder mehr
+Noten mit einem Bogen verbunden werden. F"ur mehrere Noten wird der
+Bogenanfang durch den Buchstaben `y', das Bogenende mit `z' markiert.
+Falls nur zwei Noten miteinander verbunden werden, so reicht es aus,
+dies mit einem Querstrich zwischen den beiden Noten zu kennzeichnen.
+%
+$$\bunch\hbox{($\sharp$FC 44) `4.D 8D 4E - / 4.F 8F F y ,8B E G z /}\\
+\hbox{G$\us$4F 8E D E y 4F$\us$ / 8F 6E D z 4E 2F //}\endbunch$$
+\par\vskip-0.7cm
+{\hsize15cm
+\def\beamlist{\\{1-\the\N,}}
+\nointerlineskip\beginsong
+\vio\D\meter4/4%
+\v6\.1\a6\v7\pv\|\v8\.1\group{\\{\a8}\\{\a8}}{\\{8}\\{8}}\lbeam12\go
+\group{\\{\a4}\\{\a7}\\{\a9}}{\\{4}\\{7}\\{9}}\lbeam13\uslur13\go\|%
+\group{\\{\a9}\\{\v8}}{\\{9}\\{8}}\uslur12\go\a7%
+\group{\\{\a6}\\{\a7}}{\\{6}\\{7}}\lbeam12\go%
+\def\beamlist{\\{3-5,}\\{4-5,}}
+\group{\\{\v8}\\{\|}\\{\a8}\\{\s7}\\{\s6}}{\\{8}\\{8}\\{8}\\{7}\\{6}}\lbeam35%
+\uslur13\uslur15\go\v7\h8\doublebarline
+\endsong}
+%Smith S. 303, aber mit verbundenen Achtel-Noten
+\vskip-1cm\abs
+%
+%
+%
+Andere Arten von Notengruppen wie Triolen werden mit einer erkl"arenden,
+codierten Bemerkung in runde Klammer eingefa\3t.
+Auf Verbalkungen von Noten wird nicht n"aher eingegangen, da
+vorausgesetzt wird, da\3 Balken immer dort gezeichnet werden,
+wo zwei oder mehr aufeinanderfolgende Noten mindestens ein F"ahnchen
+haben.
+\abs
+Die Erfassung der Notenschrift durch
+diese Eingabemethode ist unkompliziert und leicht verst"andlich, schon
+allein dadurch, da\3 versucht wurde, die normalerweise gebr"auchliche
+\m e Ausdrucksweise zu simulieren.
+Weiterhin leistet dieses Verfahren
+genau das, wof"ur es von Brook und Gould
+entwickelt wurde:
+es erleichtert die Katalogisierung von Instrumentenstimmen, Themen,
+charakteristischen Tonfolgen und "ahnliche Ausz"uge mit deren Hilfe eine
+Partitur klassifiziert werden kann.
+\abs
+Damit sind die Anwendungsm"oglichkeiten
+dieser Eingabesprache aber schon weitgehend ersch"opft.
+Es werden von den Autoren keine Mittel bereitgestellt, um Partituren
+oder andere mehrstimmige Musikst"ucke und Vokalmusik zu erfassen. Auch
+f"ur die Notation kompletter einstimmiger Systeme ist das Verfahren in
+der vorgestellten Form nicht geeignet, da f"ur viele in der Notenschrift
+benutzten Zeichen und Symbole keine Synonyme in der linearen
+Eingabemethode angegeben wurden, \zB f"ur Tonst"arkegrade wie crescendo,
+descrescendo, Artikulationen oder Wiederholungen.
+Es fehlen auch Angaben, ob
+mehrzeilige Eingaben m"oglich sind und ob diese zeilenweise oder an
+einem St"uck eingegeben werden m"ussen. Zumindest wurden dar"uber in den
+Ver"offentlichungen der beiden Autoren keine Angaben gefunden.
+Insgesamt l"a\3t der einfache Aufbau dieses Eingabeverfahrens aber
+eine
+Erweiterung zu, so da\3 es auch f"ur anderweitige Anwendungen benutzt
+werden kann.
+\abschnitt\abschnitt
+Eine ganz andere Vorgehensweise benutzt Leland Smith \lit{\Smith} bei
+dem von ihm entwickelten \Ev.
+\abschnitt
+\subheading{1.4.2 Verfahren zur Noteneingabe von L. Smith}
+Smith besch"aftigt sich in seiner Arbeit mit dem automatisierten
+Notensatz. Deshalb beschreibt er neben einer \Em\ auch die
+Weiterverarbeitung der eingegebenen Daten und wie eine Ausgabe
+angefertigt werden und aussehen kann.
+\abs
+Um eine Vorstellung "uber die Art des \Ev s zu gewinnen, wird vor der
+Beschreibung wieder ein Beispiel, das aus der Computer--Eingabe und der
+entsprechenden Notation in Notenschrift besteht, angegeben.
+Die dargestellte Notenschrift entspricht allerdings nicht der Ausgabe
+von Smith, sondern wurde mit dem Verfahren von A. Steinbach \lit{\Steinb}
+erstellt.
+\eject
+%
+%
+%\abs
+$$\bunch
+\hbox{TR/K2S/4 4/D5//E/R/M/F///B4/E5/G/M/G/F/E/D/E/F/M/F/E/D/E/
+F/M/$*$}\\
+\hbox{4./8/4//4./8 x 6/4/8///4/8/16//4/2$*$}\\
+\hbox{7 9/ 16 18$*$}\\
+\hbox{7 9 2/ 10 11 1/ 15 16 1/ 15 18 2$*$}\endbunch$$
+\vskip-0.5cm
+\par
+{\hsize15cm
+\parindent0pt
+\beginsong
+\vio\D\meter4/4%
+\v6\.1\a6\v7\pv\|\v8\.1\a8\a8%
+\group{\\{\a4}\\{\a7}\\{\a9}}{\\{4}\\{7}\\{9}}\lbeam13\uslur13\go\|%
+\group{\\{\a9}\\{\v8}}{\\{9}\\{8}}\uslur12\go\a7\a6\a7%
+\def\beamlist{\\{3-5,}\\{4-5,}}
+\group{\\{\v8}\\{\|}\\{\a8}\\{\s7}\\{\s6}}{\\{8}\\{8}\\{8}\\{7}\\{6}}\lbeam35%
+\uslur13\uslur15\go\v7\h8\doublebarline
+\endsong}
+\vskip -1.cm\abs
+%
+%Smith S. 303
+%
+An diesem Beispiel ist die Struktur der Eingabedatei erkennbar. Sie ist
+in verschiedene Abschnitte unterteilt, die jeweils andere Informationen
+zu den Zeichen der Notenschrift enthalten. Au\3erdem mu\3 die Eingabe
+zeilenweise erfolgen, \dh das Ende einer Notenzeile wird bei der Eingabe
+f"ur den Computer durch ein besonderes Zeichen, einen Stern,
+gekennzeichnet.
+Einzelne Informationen zu einem Zeichen, die zu einer Datengruppe
+geh"oren, sind bei der
+Computer--Eingabe durch Schr"agstriche voneinander getrennt. Falls eine
+Angabe zu einem Zeichen mit der vorhergehenden
+identisch ist, so kann diese weggelassen werden, der trennende
+Schr"agstrich mu\3 aber auf jeden Fall geschrieben werden.
+\abs
+Der erste Datenabschnitt enth"alt in codierter Form Angaben zum
+Notenschl"ussel, zur Ton-- und Taktart. Darauf folgen die zur Melodie
+geh"orenden Noten, angegeben durch ihren Namen (Buchstabe) und die
+Oktave (Zahl), die sich an der Klaviertastatur orientiert.
+Danach werden in einer neuen Zeile die Informationen "uber die zu den
+Noten geh"orenden Tondauern gegeben, indem die Dauer durch eine ganze
+Zahl und eventuell vorkommende Punktierungen durch Punkte dargestellt
+werden.
+\abs
+Im n"achsten Eingabeabschnitt werden die zu verbalkenden Noten
+angegeben. Dazu m"ussen die Noten einer Zeile durchnummeriert werden.
+Die Eingabe enth"alt dann f"ur jede Balkengruppe jeweils die Nummer der
+ersten und letzten Note, die zu der Gruppe geh"oren.
+\abs
+Als n"achstes k"onnen Angaben zu Akzentuierungen gemacht werden. Im
+obigem Beispiel kommen allerdings keine vor, deshalb entf"allt dort
+diese Zeile. Sie mu\3 aber nicht durch eine Leerzeile ersetzt werden.
+\abs
+Zuletzt werden genauso wie bei den Verbalkungen die Noten angegeben,
+die durch einen Bogen verbunden werden sollen. Jeder durch
+Schr"agstrich getrennte Informationsteil enth"alt au\3er der Nummer f"ur
+die erste und letzte Note noch eine Zahl, die die Kr"ummung des zu
+zeichnenden Bogens angibt.
+\abs
+Mit diesem \Ev\ k"onnen ebenfalls Partituren und Vokalmusik eingegeben
+werden. Zus"atzlich zu der Noteneingabe wird f"ur Vokalmusik
+der Liedtext zusammen mit Angaben zur
+Positionierung der Silben notiert.
+%
+%
+$$\bunch \hbox{KY/-/RI/-/E,/KY/-/RI/-/E . . . }\\
+\hbox{1/1.6/2/2.6/3/4/4.7/5/ ....}\endbunch$$
+\par\vskip-0.2cm
+{\hsize15cm
+\universal
+\nointerlineskip\beginsong
+\vio\D\meter4/4%
+\_{KY - }{\v6\.1}\_{RI - }{\a6}\_{E,}{\v7}\pv\|%
+\_{KY - }{\v8\.1}\_{RI - }{\a8}\_{E}{\a8}%
+\group{\\{\_{E}{\a4}}\\{\a7}\\{\_{-}{\a9}}}
+{\\{4}\\{7}\\{9}}\lbeam13\uslur13\go\|%
+\group{\\{\a9}\\{\v8}}
+{\\{9}\\{8}}\uslur12\_n{ LE - }\hskip20pt{\gluebrule}\go\_{I-}{\a7}%
+\_c{SON,}{\a6}\_{E - }{\a7}%
+\def\beamlist{\\{3-5,}\\{4-5,}}
+\group{\\{\v8}\\{\|}\\{\a8}\\{\s7}\\{\s6}}{\\{8}\\{8}\\{8}\\{7}\\{6}}\lbeam35%
+\uslur13\uslur15\_n{ LE\hskip10pt-\hskip10pt -}
+{\go}\_{I - }{\v7}\_c{SON.}{\h8}\doublebarline
+\endsong}
+\vskip -0.4cm\abs
+%smith S.305
+%
+%
+Unter Verwendung der beschriebenen Eingabe wird nun die
+genaue
+Position der Zeichen im Notenliniensystem festgelegt. Dazu wird das
+Liniensystem in horizontaler wie vertikaler Richtung mit einer Skala
+versehen. Die Positionsangaben m"ussen f"ur jedes Zeichen und Symbol,
+also f"ur Notenkopf, Notenhals, Punktierungen, Balken, Bogen,
+Akkorde, Liniensystem, Pausen usw., gesondert berechnet und
+gespeichert werden.
+\abs
+Mit dieser Methode wird eine optisch ansprechende Ausgabe erreicht, die
+Druckqualit"at hat. St"orend erscheint dabei aber der benutzte
+Schrifttext, der im Gegensatz zur Notenschrift nicht gut aussieht.
+\abs
+Das Verfahren von L. Smith kann zur Eingabe aller Musikst"ucke in
+traditioneller Notation benutzt werden: f"ur einstimmige und
+mehrstimmige Systeme, Partituren und Vokalmusik. Die Art der Eingabe
+ist schnell erlernt und einfach, wird aber durch die Verwendung
+verschiedener Informationszeilen
+sehr aufwendig und umst"andlich.
+Ebenfalls negativ erscheint die Tatsache, da\3 eine zeilenweise
+Eingabe notwendig ist.
+Zus"atzlich werden an einigen Stellen (\zB bei Liedern mit Text) au\3er
+Angaben zur Funktion der Zeichen noch Positionsangaben f"ur die
+Eingabedatei ben"otigt. Durch diese Notationsform geht die
+"Ubersicht "uber die Gesamtstruktur des Musikst"ucks, die die
+Notenschrift besitzt, und die Lesbarkeit verloren.
+\abschnitt\abschnitt
+Ein Verfahren, in dem verschiedene Eingabedateien zur Festlegung der
+musikalischen Daten benutzt werden, wird in der Arbeit von R. Werner
+\lit{\Werner} dargestellt.
+Allerdings kann die dort beschriebene Methode nur in sehr groben
+Z"ugen charakterisiert werden, weil sie sehr aufwendig und vielschichtig
+ist. Eine genaue Beschreibung w"are deshalb an dieser Stelle zu
+umfangreich.
+\abschnitt
+\subheading{1.4.3 EDM}
+(Eingabemethode f"ur Daten der Musik)
+Diese \Em\ wurde mit dem Ziel entwickelt, eine umfangreiche und
+vollst"andige Musikanalyse aufgrund der Eingabedaten f"ur den Computer
+durchf"uhren zu k"onnen.
+Die vorgeschlagene Methode benutzt drei verschieden strukturierte
+Dateien, um die \m en Informationen abzuspeichern. Jede der drei Dateien
+entspricht einer Art, wie die notenbildliche Partitur gelesen werden
+kann.
+\abs
+Eine Datei gibt den horizontalen Verlauf der Musik wieder. Sie
+enth"alt Informationen zu allen Noten.
+In der n"achsten Datei werden die Daten der T"one, die zusammen
+erklingen, gespeichert, \dh sie repr"asentiert die vertikalen Ebene.
+Eine weitere Datei beinhaltet alle Strukturen des zeitlichen Ablaufs,
+die f"ur die beiden anderen Dateien ben"otigt werden.
+Mit diesen drei kurz beschriebenen Dateien wird eine Musikanalyse
+m"oglich, deren Vorgehensweise
+in der Arbeit von R. Werner beschrieben wird. Da eine n"ahere
+Erl"auterung den Rahmen einer Kurzbeschreibung sprengen w"urde, folgt
+nun eine Beispielcodierung. Daf"ur wird aus der Vielzahl der m"oglichen
+Dateien die ausgew"ahlt, die Informationen zu den Noten enth"alt.
+Zur Notation einer Partitur reicht dies aber nicht aus.
+%
+%
+$$\bunch\hbox{F4\T S\T F$*$B5$*<$4; $\sharp$F5\T A4\T\@ B5\T=;
+E6\T?1V2?A\T.; P\T A$*$H;}\endbunch$$
+\par\vskip-0.4cm
+{\hsize9.5cm\parindent5cm\nointerlineskip
+\loose%
+\beginsong\vio\C%
+\s1\x8\s8\s3\b{11}\s{11}\a{14}\pa\ph\hfill\hbox{}\endsong}
+%
+\vskip -0.6cm\abs
+Die \Em\ bietet die M"oglichkeit, Partituren, die
+in hergebrachter Notation
+vorliegen, vollst"an\-dig zu codieren und damit eine Vielfalt von
+Anwendungsm"oglichkeiten. Obwohl
+bei der Entwicklung einer geeigneten Codierung
+versucht wurde, diese weitgehend an den musikalischen
+Sprachgebrauch anzupassen,
+wird durch die Vielzahl der einzugebenden Daten und
+Einzelinformationen zu einem Zeichen die Noteneingabe erschwert.
+Au\3erdem geht durch die Aufgliederung in drei Dateien mit
+verschiedenen Informationsstrukturen die "Ubersicht "uber das
+Musikst"uck verloren.
+Diese Aussage ist schon anhand obigen Beispiels deutlich geworden.
+Um den Gesamtbezug wiederzugewinnen, m"u\3ten
+die Dateien parallel gelesen werden.
+\abschnitt\abschnitt
+Eine letzte Eingabemethode ist
+erst in j"ungster Zeit von John Gourlay in der Zeitschrift
+``Communications of the ACM''
+ver"offentlicht worden \lit{\Gourlay}.
+\abschnitt
+\subheading{1.4.4 Sprache zur Noteneingabe von J. Gourlay}
+Gourlay beabsichtigte wie L. Smith mit der Entwicklung einer
+Noteneingabesprache f"ur den Computer, eine M"oglichkeit zur
+Automatisierung des Notensatzes zu schaffen.
+\abs
+Bei der Verwirklichung dieser Absicht sind seiner Ansicht nach zwei
+Ziele im Auge zu behalten:
+das Computer--System soll Druckvorlagen in gleicher Qualit"at wie
+gestochene liefern, gleichzeitig auf jeden Computer "ubertragbar sein
+und nur ein Minimum an Hardware erfordern, um die Kosten
+gering zu halten
+und die Anwendungsm"oglichkeiten breit zu f"achern.
+\abs
+%
+%
+%
+Um dies zu erreichen, schl"agt Gourlay vor,
+die Eingabesprache mit Hilfe des von Knuth
+entwickelten \Tss s \TeX\
+und einiger zus"atzlicher
+Programmabschnitte zu verarbeiten.
+\abs
+F"ur die Eingabesprache von Gourlay
+existiert bisher nur eine Beschreibung der Syntax in
+Backus--Naur--Form. An diesem Syntaxdiagramm l"a\3t sich erkennen, da\3
+die Eingabesprache f"ur die Anwendung von \TeX\ in Frage kommen k"onnte.
+"Ahnlich wie bei \TeX\ werden
+Kontrollw"orter bzw. Klammern benutzt,
+um anzugeben, was mit dem folgenden
+Text geschehen soll bzw. um zusammengeh"orenden Text zu kennzeichnen.
+\abschnitt
+\leftskip35pt
+{\tt title} ``Beispiel'' {\tt system} ({\tt staff} one)
+\abs{\tt block}
+(voice ({\tt measure} ({\tt clef trebleclef key} 2{\tt sharps meter}4/4
+\abs
+(4.;D5) (8;D5) (4;E5) (4))\abs
+{\tt measure} ((4.;F5) (8;F5) (8;F5)
+{\tt beam slur} ((8;B4) (8;E5) (8;G5)))
+\abs
+{\tt measure} ({\tt slur} ((8;G5) (4;F5)) (8;E5) (8;D5) (8;E5)\abs
+{\tt begin} name1 ({\tt slur}) {\tt begin} name2 ({\tt tie})
+(4;F5))\abs
+{\tt measure} ({\tt beam} ((8;F5) {\tt end} name2 (16;E5) (16;D5)
+{\tt end} name1) (4;E5) (2;F5)\abs {\tt barline final})))
+%Smith S.303 mit verbundenen Achtel-Noten
+\par
+\leftskip0pt
+\par
+{\hsize15cm
+\parindent0pt
+\beginsong
+\vio\D\meter4/4%
+\v6\.1\a6\v7\pv\|\v8\.1\a8\a8%
+\group{\\{\a4}\\{\a7}\\{\a9}}{\\{4}\\{7}\\{9}}\lbeam13\uslur13\go\|%
+\group{\\{\a9}\\{\v8}}{\\{9}\\{8}}\uslur12\go\a7\a6\a7%
+\def\beamlist{\\{3-5,}\\{4-5,}}
+\group{\\{\v8}\\{\|}\\{\a8}\\{\s7}\\{\s6}}{\\{8}\\{8}\\{8}\\{7}\\{6}}\lbeam35%
+\uslur13\uslur15\go\v7\h8\doublebarline
+\endsong}
+\vskip-0.6cm\abs
+%
+Falls dieses System zur Anwendung kommt, k"onnen mit seiner
+Hilfe alle Arten von Musik in traditioneller Notation verarbeitet
+werden. Die Notenschrift wird mit dieser Eingabesprache fast
+vollst"andig
+codiert, fehlende Vorschriften k"onnten erg"anzt werden. Dadurch
+wird auch eine Vielzahl von Anwendungen au\3er dem automatisierten
+Notensatz m"oglich gemacht.
+\abs
+Der Aufbau der Sprache ist komplizierter als \zB bei Brook und
+Gould. Dies liegt
+daran, da\3 Brook und Gould nicht die gesamte
+Notenschrift in eine
+lineare Eingabe "ubertragen haben. Da die Eingabesprache von Gourlay dem
+Sprachgebrauch der Musiker angepa\3t wurde, ist sie nach kurzer Zeit
+trotzdem leicht zu handhaben und einpr"agsam. So deuten \zB die
+auftretenden Kontrollw"orter immer an, auf welche Art der folgende
+Text verarbeitet werden soll und welche Bedeutung dieser f"ur das
+Musikst"uck hat.
+\abs
+Gourlay kommt in seiner Arbeit der Vorstellung einer optimalen \Em\
+schon sehr nahe, allerdings hat er nicht ausgef"uhrt, wie er sich eine
+Weiterverarbeitung mit \TeX\
+vorstellt.
+Seine Methode beschreibt die bisher vollst"andigste und gleichzeitig
+eing"angigste
+Codierung. Falls eine Implementierung gelingen sollte, bietet sie im
+Vergleich mit den anderen \Ev\ die vielf"altigsten
+Verwendungsm"oglichkeiten.
+\abschnitt
+Der "Uberblick "uber die \Ev\ verschiedener Autoren, die jeweils eine
+andere Methode zur Darstellung der Eingabe verwendeten, zeigt, da\3
+jedes dieser
+Verfahren, das von Gourlay ausgenommen,
+in mindestens einem Punkt den Anspr"uche an eine
+Eingabesprache (siehe 1.3) nicht gen"ugen.
+\abs
+Im Prinzip h"atte diese Arbeit von der
+Eingabesprache von Gourlay ausgehen k"onnen.
+Dazu w"aren einige Erweiterungen bzw. Ab"anderungen notwendig
+gewesen. Allerdings
+erfolgte die Ver"offentlichung erst, als dieser
+Teil der Arbeit bereits ausgearbeitet und eine Implementierung
+der Noteneingabesprache erfolgt war.
+Da die anderen vorgestellten Eingabemethoden zu mangelhaft schienen,
+war es notwendig, ein neues Verfahren zu entwickeln, das diese
+Bedingungen erf"ullt und universell anwendbar ist. Dabei soll nat"urlich
+auch die Einbettung in das \Tss\ \TeX\ ber"ucksichtigt werden, denn das
+ist ein Teil der Aufgabenstellung der vorliegenden Arbeit.
+\absatz
+Die Aufgabe der anschlie\3enden Kapitel ist es, die entwickelte
+Eingabesprache exakt zu definieren. Dies geschieht in zwei Schritten:
+zuerst wird mit der Beschreibung der Syntax die "au\3ere Form
+pr"azisiert (Kapitel 2), danach wird auf die Semantik eingegangen und
+die Wirkungsweise und Bedeutung einzelner Kommandos n"aher
+erl"autert (Kapitel 3).
+\abschnitt
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc10.tex b/macros/mtex/documentation/mdoc10.tex
new file mode 100644
index 0000000000..65b0256017
--- /dev/null
+++ b/macros/mtex/documentation/mdoc10.tex
@@ -0,0 +1,205 @@
+\heading{Einf"ugen von Texten und Spielanweisungen}
+Neben den bisher behandelten Notenschriftelementen m"ussen Texte und
+einige andere Zeichen, wie Vortragsbezeichnungen,
+Artikulationsanweisungen und Dynamikangaben, in das Notenbild eingef"ugt
+werden.
+Satztechnisch sind dabei zu unterscheiden:
+\item{1)}\disp{Artikulations}zeichen an Noten,
+\item{2)} Texte unterhalb des Liniensystems und
+\item{3)}Texte oberhalb des Liniensystems.
+
+Die Artikulationszeichen betreffen die musikalische Ausf"uhrung einer
+einzelnen Note. Sie werden also direkt an einer Note angebracht.
+Texte unterhalb des Systems k"onnen Angaben zur \disp{Dynamik} sein,
+d.h. Tonst"arkegrade (laut, leise) oder "Ubergangsbezeichnungen
+(Crescendo, Decrescendo), aber auch Gesangstexte. Texte oberhalb des
+Systems geben meistens Vortragsbezeichnungen (Allegro, Moderato),
+Orientierungsziffern sowie
+Verzierungen einer Note (verschiedene Triller-Zeichen) an. Bei
+Vokalmusik werden oft auch Begleitakkorde oberhalb des Systems notiert.
+
+\subheading{Regeln f"ur das Einf"ugen von Texten}
+\item{T1)}Mit Ausnahme der Gesangstexte werden alle Texte so plaziert,
+da\3 sie keinen zus"atzlichen horizontalen Raum ben"otigen. Die Texte
+oberhalb werden im Abstand von \verbatimon|\nhh| von der Notenlinie
+gesetzt, falls dadurch keine "Uberschneidung mit schon gesetzten Noten
+auftritt. In diesem Fall wird der Text vertikal in den freien Raum
+"uber das Hindernis gesetzt. Ebenso werden die Dynamikangaben
+in den freien Raum unterhalb des Systems unter das Hindernis plaziert.
+\item{T2)}Gesangstexte m"ussen auf einer horizontalen Linie unterhalb
+des Systems ausgeschlossen werden. Da keine M"oglichkeit besteht,
+vertikal in Freiraum auszuweichen, kann es vorkommen, da\3 diese Texte
+zus"atzlich horizontalen Raum erfordern. Sie m"ussen daher "ahnlich wie
+Hunks behandelt werden. Der Text mu\3 so unter der Note plaziert werden,
+da\3 ein Erweitern des Raumes zwischen den Noten vermieden wird.
+\item{T3)}Alle Artikulationszeichen m"ussen, falls keine mehrstimmige
+Notation in einem System vorliegt, am Notenkopf und zwar bei aufw"arts
+gestielten Noten direkt unterhalb, bei abw"arts gestielten Noten direkt
+oberhalb des Notenkopfes angebracht werden. Dabei m"ussen die Zeichen so
+plaziert werden, da\3 sie deutlich erkennbar sind. M"ussen sie innerhalb
+des Liniensystems positioniert werden, so kann dies also nur in einem
+benachbarten Zwischenraum geschehen. In jedem Fall werden sie horizontal
+bzgl. des Notenkopfes zentriert.
+\item{}Bei mehrstimmiger Notation in einem
+System m"ussen die Artikulationszeichen der Oberstimme wie auch die
+Bogen immer oberhalb, die Artikulationszeichen der Unterstimme
+unterhalb der Noten (d.h. eventuell auch "uber bzw. unter dem Endpunkt
+des Notenhalses) angebracht werden.
+\Beispiel
+%Artikulationszeichen
+{\loose
+\hsize9cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C{\stac\h5}{\staccatissimo\h8}\tenuto\h1\h2
+\lchord\h5\h{-2}\endchord%
+\two{\group{\\{\a6}\\{\a6}}{\\{6}\\{6}}\ubeam12\go}
+{\group{\\{\a3}\\{\a3}}{\\{3}\\{3}}\lbeam12\go}%
+\=\endsong}
+\goodbreak
+\endBeispiel
+\subheading{Textunterlage}
+F"ur die genaue Positionierung der Gesangstexte unter einer Note oder
+einer Notengruppe gibt es keine Regeln. Sie ist im wesentlichen davon
+abh"angig, ob der jeweilige Text ein Teil eines mehrsilbigen
+oder eines einsilbigen Wortes ist. Die mehrsilbigen W"orter werden in der
+Regel so plaziert, da\3 das Wort nicht zu sehr auseinandergerissen wird.
+%
+Ziel ist es jedoch, da\3 der Text m"oglichst wenig das Notenbild st"ort.
+Das Erweitern des Raumes zwischen den Noten soll vermieden werden.
+
+Abh"angig vom zur Verf"ugung stehenden Raum kann der Text unter
+der Note (ohne Beachtung eventuell vorhandener Hunks) zentriert,
+linksb"undig oder auch rechtsb"undig unter der Note ausgeschlossen
+werden.
+Dazu wurde ein Algorithmus entwickelt, der die Textverteilung automatisch
+vornimmt. F"ur den Benutzer ist es jedoch m"oglich im Einzelfall auf
+den Ausschlu\3 einzuwirken und im Fall eines nicht akzeptablen
+automatischen Ausschlusses
+selbst zu bestimmen, wie der Text gesetzt werden
+soll.
+
+\def\wt{\ifmmode w_t\else$w_t$ \fi}
+\def\wn{\ifmmode w_n\else$w_n$ \fi}
+\def\wg{\ifmmode w_g\else$w_g$ \fi}
+Sei im folgenden \wt die Breite des zu unterlegenden Textes,
+\wn die Breite der Notenbox (ohne Glue und ohne Hunks)
+und \wg die nat"urliche
+Breite des zugeh"origen Glues.
+Dann gibt es folgende M"oglichkeiten:
+\medskip
+
+\def\vt#1{\vtop {\setbox0=\hbox{Parameter\quad}%
+ \advance\hsize-\wd0#1\par}}
+\halign{#\hfil&#\hfil\cr
+\strut Parameter\quad&Aktion\cr
+\noalign{\hrule}
+\strut n&\vt{\strut\wt wird nicht beachtet. Der
+Text wird linksb"undig unter der Note ausgeschlossen. Dies ist
+platzsparend. Es besteht jedoch die Gefahr der Text"uberlappung.}\cr
+\strut l&\vt{\wt bestimmt den Raum, den die
+Note(n) einnimmt (einnehmen).}\cr
+\strut c&\vt{der Text wird ohne Beachtung von \wt unter der Note
+zentriert.}\cr
+\strut r&\vt{der Text wird auf $\wt + \wg $ rechtsb"undig,
+links"uberlappend gesetzt, wobei nicht ber"ucksichtigt wird, ob der Text
+mit vorherigem Text "uberlappt.}\cr}
+\medskip
+
+Bei der automatischen Textverteilung wird
+\item{n}verwendet, falls $\wt - \wn \leq 0$,
+\item{c}verwendet, falls $0< \wt-\wn \leq \wg$,
+\item{r}verwendet, falls $\wg<\wt-\wn\leq 2\wg$,
+\item{l} in allen anderen F"allen.
+
+
+F"ur Text oberhalb der Notenzeile gelten f"ur den automatischen Satz
+die gleichen Regeln.
+Vertikal wird der Text, falls die H"ohe der Notenbox
+nicht gr"o\3er ist, |\nhh| oberhalb der 5. Notenlinie gesetzt, sonst
+oberhalb der Note. Der Text wird also nicht notwendig auf einer Linie
+ausgeschlossen, sondern kann vertikal verschoben werden, falls dies
+erforderlich sein sollte.
+Diese Variabilit"at ist auch f"ur die Dynamikangaben unterhalb
+der Notenlinien erforderlich. Durch Angabe des Parameters
+v wird der Text nicht auf der Textlinie ausgeschlossen, sondern direkt
+unterhalb der Grundlinie der Notenzeile, falls keine "Uberlappung
+mit der zugeh"origen Note auftritt.
+
+Der Gesangstext wird, falls nicht anders angegeben, in
+8-Punkt Schriftgr"o\3e gesetzt, da dies platzsparender ist.
+Die Schriftlinie befindet sich eine Rastralh"ohe
+unterhalb der Grundlinie.
+Der Abstand der Schriftlinie von der Grundlinie
+ist im Parameter |\textline| gespeichert.
+Da die verschiedenen Textsilben jeder Note einzeln angeheftet sind, kann
+ eine eventuelle "Uberschneidung mit anderen Notenschriftelementen nicht
+vermieden werden. In einem solchen Fall mu\3 der Wert des Parameters
+|\textline| erh"oht werden.
+Als Beispiel sei die in der Arbeit zur Noteneingabe \lit\Schofer
+\ oft verwendete Notenzeile angegeben \lit\smith.
+\par\vskip-0.5cm
+{\parindent=0.5\iindent
+\universal
+\beginsong
+\vio\D\meter4/4%
+\_{KY - }{\v6\.1}\_l{RI -}{\a4}\_{E,}{\v7}\pv\|%
+\_{KY - }{\v8\.1}\_l{RI -}{\a8}\_{E}{\a8}%
+\group{\\{\_{E}{\a4}}\\{\a7}\\{\_{-}{\a9}}}
+{\\{4}\\{7}\\{9}}\lbeam13\uslur13\go\|%
+\group{\\{\a9}\\{\v8}}
+{\\{9}\\{8}}\uslur12\_n{ LE - }{\gluebrule}\go\_l{I-}{\a7}%
+\_l{SON, }{\a6}\_{E - }{\a7}%
+\def\beamlist{\\{3-5,}\\{4-5,}}
+\group{\\{\v8}\\{\|}\\{\a8}\\{\s7}\\{\s6}}{\\{8}\\{8}\\{8}\\{7}\\{6}}\lbeam35%
+\uslur13\uslur15\_n{ LE\quad-\quad -}{\gluebrule}%
+{\go}\_{I - }{\v7}\_c{SON.}{\h8}\doublebarline
+\endsong}
+\vskip-1.2cm
+Beispiele f"ur die Textunterlage finden sich auch im Anhang A.
+\subheading{Positionierung der Artikulationszeichen}
+Neben Legatobogen unterscheidet man in der Artikulation \tex{tenuto}
+(gehalten), das durch einen langgezogenen Strich gekennzeichnet wird,
+von \tex{staccato} (getrennt), \tex{staccatissimo} (stark getrennt), das
+durch einen Punkt bzw. durch einen Keil gekennzeichnet wird, und
+\tex{portato} (getragen), das durch \tex{staccato} bzw.
+\tex{tenuto}-Zeichen zusammen mit Legatobogen dargestellt wird. Da die
+Artikulationsanweisung oft mehrere aufeinanderfolgende Noten betrifft,
+wurde f"ur die L"osung des Plazierungsproblems folgende Vorgehensweise
+gew"ahlt. Eine Box wird mit dem zu setzenden Zeichen belegt und, solange
+diese nicht durch eine leere Box ersetzt wird, den Notationsregeln
+entsprechend allen Noten angeheftet.
+Die Box wird nur durch eine leere Box ersetzt,
+falls
+dies ausdr"ucklich angegeben wird (durch Eingabe des Kommandos |\noaccent
+| oder wenn die Klammerebene, in der die
+Box belegt wurde, verlassen wird.
+\Beispiel
+\item{}Durch die Eingabe von
+\begindisplay
+|{\stac|\<Note>\<Note>|}|\<Note>
+\enddisplay
+oder durch
+\begindisplay
+|\stac|\<Note>\<Note>|\noaccent|\<Note>
+\enddisplay
+erh"alt man jeweils das gleiche Ergebnis:
+
+{\loose
+\hsize5cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong \vio \C {\stac\v5\v1}\v7\|\endsong}
+\vskip-1cm\
+\item{}
+Das Kommando |\stac| gilt also, obwohl nur einmal angegeben, f"ur
+die ersten beiden Noten. Dabei wird der Punkt "uber dem Notenkopf der
+ersten Note und unter dem Notenkopf der zweiten Note, den Notationsregeln
+entsprechend, plaziert.
+Vor dem Setzen der dritten Note wurde die Box, die
+den Punkt enth"alt, durch eine leere Box ersetzt. Diese Note erh"alt also
+keinen Staccato-Punkt.
+\endBeispiel
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc11.tex b/macros/mtex/documentation/mdoc11.tex
new file mode 100644
index 0000000000..f9ef11754d
--- /dev/null
+++ b/macros/mtex/documentation/mdoc11.tex
@@ -0,0 +1,283 @@
+\heading{Mehrstimmiger Notensatz}
+Abschlie\3end soll auf die Problematik mehrstimmiger Notation im
+automatischen Notensatz eingegangen werden.
+\subheading{Regeln f"ur die mehrstimmige Notation}
+Die Regeln hierzu sind im wesentlichen schon in den vorangegangenen
+Kapiteln aufgef"uhrt worden.
+Neben einigen Notationsvereinbarungen (siehe Kapitel \adchap{-3} N4d und
+N9b und Kapitel \adchap{-2} P2), gilt als grunds"atzliche Regel,
+da\3 alle T"one, die zur gleichen Zeit einsetzen, untereinander zu
+notieren sind. Einige Ausnahmen ergeben sich bei mehrstimmiger Notation
+in einem Zeilensystem. In diesem Fall kann es vorkommen, da\3 zur
+Verdeutlichung der Stimmf"uhrung einige Noten nach links oder rechts
+ausweichen m"ussen, wobei in einem solchen Fall der Ausschlu\3 vom
+vorgegebenen Schema abweicht.
+\Beispiel
+{\hsize5cm
+\parindent2\iindent\advance\hsize2\iindent
+\beginsong\vio\C\two{\group{\\{\hskip\seminhh
+\a1}\\{\advance\sk-\seminhh\a5}}{\\{1}\\{5}}\ubeam12\go}{%
+\group{\\{\a3}\\{\a5}}{\\{3}\\{5}}\lbeam12\go} {\rm oder}\two{\group{%
+\\{\a5}\\{\a5}\\{\a5}\\{\a5}}{\\{5}\\{5}\\{5}\\{5}}\ubeam14\go}{%
+\hskip1.5\nhw\h5}\|\endsong}
+\vskip-1cm
+\endBeispiel
+Da die Noten, abgesehen von den obigen Ausnahmen, untereinander notiert
+werden m"ussen, mu\3 der gleiche zus"atzliche Raum, der in einer Stimme
+f"ur Hunks ben"otigt wird (z.B. Versetzungszeichen), in den anderen
+Stimmen gleicherma\3en ber"ucksichtigt werden.
+
+F"ur den korrekten Ausschlu\3 mehrstimmiger Notenliteratur reichen die
+in Kapitel~\adchap{-4} angegebenen Aus\-schlu\3schemata
+im allgemeinen nicht aus, da diese gerade so gew"ahlt sind, da\3 keine
+Linearit"at bzgl. der Tondauer besteht.
+
+\Beispiel Der Raum, den eine Viertel Note einnimmt, ist im allgemeinen
+kleiner als der Raum, den zwei Achtel Noten einnehmen. Sollen diese
+Noten rhythmisch korrekt untereinander notiert werden, so ist also der
+Viertel Note ein gr"o\3erer Raum zuzuordnen.
+\par
+{\hsize = 4cm
+\parindent2\iindent\advance\hsize2\iindent
+\beginsong\vio\C\meter3/4\v1\a1\a1\v1\|\endsong
+\vskip -1cm
+\beginsong\vio\C\meter3/4\v1\v1\a1\a1\|\endsong
+}
+\vskip -1cm
+\item{}Dies ergibt in zweistimmiger
+Notation\par
+{\hsize = 5cm
+\parindent2\iindent\advance\hsize2\iindent
+\beginsong\vio\C\meter3/4\two{\v1}{\v1}\two{\a1\a1}{\v1}%
+\two{\v1}{\a1\a1}\|\endsong}
+\vskip -1cm
+\item{}Es ist also in zweistimmigen Fall
+mehr horizontaler Raum erforderlich,
+ obwohl im normalen Satz der insgesamt
+ben"otigte Raum im Einzelfall gleich ist.
+\endBeispiel
+
+\subheading{Vertikale Ausrichtung bei D.A. Gomberg}
+Als einziger gibt Gomberg (\lit{\gomb, S.70--78}) ein Verfahren
+f"ur eine rhythmische (d.h. vertikale) Ausrichtung der Noten an. Dabei
+werden sowohl unregelm"a\3ige Unterteilungen von Notenwerten (z.B.
+Triolen) als auch das Einf"ugen von Hunks ber"ucksichtigt. Dieses
+Verfahren ist kompliziert, jedoch anwendbar auf beliebig viele Stimmen
+in mehreren Systemen. Dabei wird eine weitere (imagin"are ) Stimme ---
+der sogenannte \disp{Spine} (R"uckgrat) --- konstruiert, die mit den
+einzuf"ugenden Hunks versehen ist, nach der alle "ubrigen Stimmen
+rhythmisch ausgerichtet werden k"onnen.
+
+\subsubheading{Konstruktion des Spine}
+F"ur Noten, die nicht unregelm"a\3ig unterteilt sind, wird der Spine wie
+folgt iterativ konstruiert.
+Zur Initialisierung wird eine Stimme als Spine ausgezeichnet. Dieser
+Spine wird nun jeweils mit einer weiteren Stimme verglichen und nach
+folgendem Verfahren ver"andert.
+Sei $m$ die Anzahl der Noten des Spine und \folgi {\bar q}im die
+Notenwerte dieser Noten, die im folgenden durch Br"uche
+dargestellt seien, d.h. $\folgi {\bar q}im \in \qz^+$.
+(Einer Viertel entspricht demnach der Wert $\frac14$,
+einer Viertel mit Wertpunkt $\frac38=\frac14+\frac18$.)
+Seien die Notenwerte der zu vergleichenden
+Stimme durch die Folge $\folgi qjn \in \qz^+$ gegeben.
+Dann lautet der Algorithmus:
+\item{I)}Initialisierung: $i:=1$, $j:=1$.
+\item{II)}Gilt $\bar q_i =q_j$, erh"ohe $i$ und $j$.
+\item{III)}Gilt $\bar q_i< q_j$, dann setze $q_j := q_j-\bar q_i$,
+iteriere $i$ und fahre mit V) fort.
+\item{IV)}Aufspaltung des Spine (\disp{splitting}): Gilt
+ $\bar q_i> q_j$, dann ersetze $\bar q_i $ durch die beiden
+Werte $Q_1=q_j$ und $Q_2=\bar q_i-q_j$,
+wobei der neue Spine nun $m+1$
+Elemente besitzt und das $i+1$-te Element gerade $Q_2$ ist.
+%Iteriere also $i$ und $j$.
+\item{V)} Gilt $j>n$ , dann HALT, sonst fahre mit II) fort.
+
+Es ergibt sich hierbei die Frage, ob garantiert ist, da\3 der oben
+beschriebene Proze\3 der Aufspaltung des Spine immer ``legale''
+Notenwerte ergibt, d.h. Notenwerte, die durch eine Note unter
+Zuhilfenahme von Wertpunkten dargestellt werden k"onnen.
+Diese Frage ist jedoch zu verneinen: ``legale'' Notenwerte sind
+nicht abgeschlossen unter Subtraktion.
+
+Gomberg f"uhrt dazu folgendes Beispiel an:
+
+
+\hbox to \hsize{%
+ \hfil
+ \vbox{%
+ \hbox{%
+ \hbox to 2cm{$\bar q:$\hfil}%
+ \vtop{\hsize=50mm%
+ \beginsong\vio\C
+ \hbox to 19mm{\s1\.2\hfil}%
+ \hbox to 4mm{\d1\hfil}%
+ \hbox to 15mm{\v1\.1\hfil}%
+ \endsong
+ }%
+ \hfil}%
+ \vskip-10mm%
+ \hbox{%
+ \hbox to 2cm{$ q:$\hfil}%
+ \vtop{\hsize=50mm%
+ \beginsong\vio\C
+ \hbox to 6mm{\z1\hfil}%
+ \hbox to 28mm{\a1\.2\hfil}%
+ \hbox to 4mm{\v1\hfil}%
+ \endsong
+ }%
+ \hfil}%
+ \vskip-10mm
+ \hbox{%
+ \hbox to 2cm{neues $\bar q:$\hfil}%
+ \vtop{\hsize=50mm%
+ \beginsong\vio\C
+ \hbox to 6mm{\z1\hfil}%
+ \hbox to 13mm{${\phantom{x}}^{\tenrm ?}$\hfil}%
+ \hbox to 4mm{\d1\hfil}%
+ \hbox to 11mm{\a1\hfil}%
+ \hbox to 4mm{\v1\hfil}%
+ \endsong
+ }%
+ \hfil}%
+ }%
+ \hfil
+}%
+\vskip -1cm
+
+
+Sei die erste Zeile als Spine ausgezeichnet, dann ist $\bar q =
+\frac7{64},\;\frac1{64},\;\frac{24}{64} $ und
+$q=\frac2{64},\;\frac{14}{64},\;\frac14$. F"ur den neuen Spine gilt
+nun nach dem Algorithmus: $\bar q_1 = \frac1{32} $,
+$\bar q_2=\frac{7}{64}-\frac2{64}=\frac5{64}$,
+$\bar q_3=\frac1{32}$, $ \bar q_4=\frac18$ und
+$\bar q_5=\frac14$.
+Dabei ist $\bar q_2$ kein legaler Notenwert, denn dieser Notenwert l"a\3t
+sich nur durch "Uberbindung einer Sechzehntel mit einer
+Vierundsechzigstel darstellen. In diesem Fall wird diese Note
+ausgeschlossen wie eine $\frac6{64}$, d.h. eine mit Wertpunkt versehene
+Sechzehntel.
+
+Anhand des Ausschlu\3schemas kann nun dem Spine der zugeh"orige
+Ausschlu\3 zugeordnet und die Noten darunter angeordnet werden.
+
+Zu bemerken ist, da\3 das oben geschilderte Verfahren
+nat"urlich unabh"angig von der Reihenfolge der anzugleichenden Stimmen
+ist.\vskip0.5cm
+\subsubheading{Unregelm"a\3ige Unterteilungen}
+Neben der zweiteiligen Untergliederung der Notenwerte
+({\def\beamlist{\\{1-2,}}%
+\universal\group{\\{\a0}\\{\a0}}{\\{0}\\{0}}\ubeam12\hskip-\nhh
+\go\global\sk=0pt}%
+\ ) gibt es
+\vadjust{\kern-4pt}%
+auch mehrteilige Untergliederungen, z.B. dreiteilige
+({\staffheight 3\nhh\small\def\beamlist{\\{1-3,}}%
+\group{\\{\a0}\\{\^{3}{\a0}}\\{\a0}}{\\{0}\\{0}\\{0}}\ubeam13\hskip-\nhh
+\go}%
+\global\sk=0pt\ ). Der
+Notenwert einer solchen Triolen-Note entspricht also dem dritten Teil
+der Dauer einer Viertel Note: $\frac1{12}$. Gekennzeichnet werden
+\vadjust{\kern-4pt}%
+unregelm"a\3ige Unterteilungen der Bezugsnote am Balken oder unter einer
+Klammer: {\small\setbox2=\hbox{\v0\v0\global\sk0pt}%
+\dimen1=\wd2\advance\dimen1 by-\nhh\setbox3\hbox to \dimen1{\vbox{\hrule
+\offinterlineskip\hbox to \dimen1{\vrule depth-2pt width0.5pt\hss
+\eightpoint 2\hss%
+\vrule depth-2pt width0.5pt}}}\vbox{\offinterlineskip
+\moveright\nhh\box3\box2}
+}. (N"aheres dazu siehe \lit{\ziegen,{\bf 79}f{}f}.)
+
+Die Unregelm"a\3igkeit wird auch durch einen etwas engeren Ausschlu\3
+verdeutlicht. Der Raum, den eine Achtel Triole einnimmt, unterscheidet
+sich also vom Raum, den drei Achtel Noten einnehmen.
+
+Gomberg verwendet als Ausschlu\3 unregelm"a\3iger Unterteilungen das
+n"achst kleinere Ausschlu\3schema, beispielsweise wird
+ bei ``universellem'' Ausschlu\3 also
+``enger'' Ausschlu\3 verwendet
+(s. \adchap{-4}.1.1). M"ussen mehrere verschiedene
+unregelm"a\3ige Unterteilungen auf einem Notenwert des Spines
+ausgeschlossen werden, so wird innerhalb einer solchen ``Nachbarschaft''
+der kleinste Notenwert $\bar a$ ausgew"ahlt und diesem der zugeh"orige
+Ausschlu\3 $A$ zugeordnet. F"ur die anderen Notenwerte $\bar a_i$ ergibt
+sich dann der Raum, der diesem Notenwert zugeordnet wird, aus der Formel:
+$ \Frac A{\bar a}*\bar a_i$.
+\subheading{Ausf"uhrung des zweistimmigen Setzens}
+Die obige von
+ D. A. Gomberg vorgeschlagene Vorgehensweise
+ist naheliegend
+und scheint eine gute M"oglichkeit zu sein, beliebige mehrstimmige
+Partituren korrekt zu setzen. Abgesehen von dem Problem, zu den
+eingegebenen Noten den passenden Spine zu konstruieren, ergibt sich
+jedoch bei der Verwirklichung mit \TeX\ ein weiteres Problem, das die
+Anwendung des Algorithmus erschwert.
+Mit einem gegebenen Spine k"onnten die einzelnen Noten der Stimmen mit
+einigem Aufwand in einer Tabelle plaziert werden. Um den Zeilenumbruch
+zu erm"oglichen, m"u\3te also f"ur jedes Spinelement eine Tabelle
+angelegt werden, da innerhalb einer gro\3en umfassenden Tabelle kein
+Zeilenumbruch m"oglich ist. Dies w"urde zun"achst den variablen Glue
+\disp{fest}legen; ein korrekter Ausschlu\3 w"are damit nicht mehr
+gew"ahrleistet. Au\3erdem ist eine Verbalkung und eine Plazierung der
+Bogen nicht mehr m"oglich, da die Listenverarbeitung in der
+vorgestellten Art nicht mehr durchf"uhrbar ist.
+
+Aus diesen Gr"unden wurde zun"achst nur eine M"oglichkeit
+bereitgestellt, einfachere zweistimmige Notenkonstellationen in einem
+Zeilensystem, die ohne Spine auskommen, zu setzen. Beispiele sind schon
+an einigen Stellen dieser Arbeit demonstriert worden.
+Ein mehrstimmiges Setzen von ganzen Nachbarschaften, die nur mit Hilfe
+eines Spines gesetzt werden k"onnen, ist noch nicht gegeben. Ohne
+zus"atzliches manuelles Eingreifen, d.h. Einf"ugen von weiterem
+Ausschlu\3material, erscheinen z.B. die
+unten aufgef"uhrten Einzelstimmen
+zweistimmig inkorrekt gesetzt:
+
+{\hsize=8cm
+\parindent2\iindent\advance\hsize2\iindent
+\beginsong\vio\C
+\group{\\{\s7}\\{\s8}\\{\s7}\\{\s9}}{\\{7}\\{8}\\{7}\\{9}}%
+\def\beamlist{\\{1-\the\N,}%
+\\{1-\the\N,}}\ubeam14\go\hskip20pt
+\def\beamlist{\\{1-\the\N,}}%
+\group{\\{\a3}\\{\a3}}{\\{3}\\{3}}\lbeam12\go\hskip40pt
+\two{\group{\\{\s7}\\{\s8}\\{\s7}\\{\s9}}{\\{7}\\{8}\\{7}\\{9}}%
+\def\beamlist{\\{1-\the\N,}%
+\\{1-\the\N,}}\ubeam14\go}{%
+\def\beamlist{\\{1-\the\N,}}%
+\group{\\{\a3}\\{\a3}}{\\{3}\\{3}}\lbeam12\go} \hfill\endsong
+}\vskip -1cm
+Im Anhang A wurde ein Beispiel eingef"ugt, das zeigt, da\3 das
+angegebene Verfahren f"ur viele Musikst"ucke gut anwendbar ist.
+
+Das zweistimmige Setzen erfolgt nach folgendem Verfahren. Beide
+Stimmen werden einzeln wie im einstimmigen Satz unter Ber"ucksichtigung
+der Notationsregeln ausgeschlossen. Dann werden die Stimmen linksb"undig
+ineinander geschoben. Dabei wird als neuer \verbatimon |\spaceskip| der
+aktuelle |\spaceskip| der Stimme gew"ahlt, die mehr horizontalen Raum
+erfordert. Zu beachten ist, da\3 eventuelle Versetzungszeichen vor der
+Notengruppe wie Vorzeichenakkorde gesetzt werden.
+\Beispiel
+\par\noindent\vbox{\hsize=8cm
+\loose
+\parindent2\iindent\advance\hsize2\iindent
+\beginsong\vio\C
+\group{\\{{\tr\a2}}\\{\x1\s1}\\{\s0}}
+{\\{2}\\{1}\\{0}}\def\beamlist{\\{1-3,}\\{2-3,}}%
+\ubeam13\lslur23\go
+\def\beamlist{\\{1-7,}\\{-2,3-7,}\\{6-7,}}
+\x{-5}\n{-1}\two{\group{\\{\s{-1}}\\{\n1\z1}\\{\z0}\\{\z{-1}}%
+\\{\z{-2}}\\{\d{-1}}\\{\d{-3}}}
+{\\{-1}\\{1}\\{0}\\{-1}\\{-2}\\{-1}\\{-3}}\ubeam17\lslur27\go}{\a{-5}}\|%
+\endsong}
+\vskip -1cm
+\endBeispiel
+Unregelm"a\3ige Unterteilungen wurden bisher noch nicht ber"ucksichtigt,
+da zum korrekten Setzen ein weiterer Zeichensatz f"ur die Klammerung
+eingef"uhrt werden mu\3. Das Setzen von Notengruppen dieser Art ergibt
+im einstimmigen Satz jedoch keine weiteren satztechnischen Probleme.
+\par
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc12.tex b/macros/mtex/documentation/mdoc12.tex
new file mode 100644
index 0000000000..8456673948
--- /dev/null
+++ b/macros/mtex/documentation/mdoc12.tex
@@ -0,0 +1,89 @@
+\def\ck{\discretionary{k-}{}{c}k}
+\heading{Zusammenfassung}
+
+Abschlie\3end sollen die Ergebnisse der beiden vorliegenden Arbeiten
+knapp zusammengefa\3t werden. \par
+Mit der in Teil 1
+beschriebenen Noteneingabesprache ist es gelungen, eine
+lineare Notation zu entwi\ck eln, mit der alle Arten konventioneller
+Musik dargestellt werden k"onnen.
+Bis auf wenige Ausnahmen wird der
+gesamte Umfang der Notenschrift erfa\3t.
+Die Eingabesprache k"onnte zum Beispiel noch um
+Befehle f"ur Vor-- und Nachschl"age, Oktavierungszeichen
+und verschiedene Triller erg"anzt werden.
+Gr"o\3ere Erweiterungen w"aren notwendig, um die Notation
+moderner Musik
+erfassen zu k"onnen, die sich in vielen F"allen
+von der herk"ommlichen Schreibweise
+unterscheidet.
+\parsep
+Die vorgestellte Eingabesprache orientiert sich am musikalischen
+Sprachgebrauch. Dadurch bleiben der
+Aufbau eines Musikst"ucks erkennbar
+und die Codierungsvorschriften einpr"agsam.
+\parsep
+Die Entwicklung der
+Sprache geschah haupts"achlich im Hinblick auf die
+Anwendung bei der
+Automatisierung des Notensatzes. Sie bietet hier
+nicht nur die
+M"oglichkeit, Texte zur Beschriftung der Musikst"ucke einzusetzen,
+sondern die codierten Partituren k"onnen auch in "ubliche
+Schrifttexte eingebettet werden.
+Ebenso k"onnen beliebige Befehle zur Formatsteuerung
+innerhalb der Noteneingabe eingef"ugt werden, die an nachfolgende
+Programme weitergegeben werden.
+Zus"atzlich zur Anwendung beim automatisierten Notensatz sind
+andere Weiterverarbeitungsm"oglichkeiten, zum Beispiel Musikanalysen
+oder Katalogisierungen, f"ur die Eingabedaten denkbar und mittels
+geeigneter Programme durchf"uhrbar.
+\par
+Nachdem es sich herausgestellt hatte, da\3 das verwendete
+Textsatzsystem \TeX\ f"ur den Notensatz erweiterbar ist (Teil 2
+der Arbeit), mu\3te eine M"oglichkeit geschaffen werden, das mit Hilfe
+der Eingabesprache codierte Musikst"uck in eine f"ur die
+Weiterverarbeitung mit \TeX\ geeignete Form zu bringen. Das wird von
+dem in Anhang B beschriebenen "Ubersetzungsprogramm geleistet, das
+die Eingabedaten in der gew"unschten Form bearbeitet.
+\par
+Um in Teil 2 der vorliegenden Arbeit zu zeigen, da\3 das verwendete
+Textsatzsystem f"ur den Notensatz erweitert werden kann,
+wurden zun"achst die Satz- und Notationsregeln systematisiert und die
+zugeh"origen Verfahren f"ur den automatisierten Notensatz entwickelt.
+Als Anwendung ist ein Satzsystem erstellt worden,
+das den eingangs erw"ahnten Erfordernissen hinsichtlich
+Ausgabequalit"at und Unabh"angigkeit vom Ausgabeger"at gen"ugt.
+
+Die Frage zu Beginn war,
+inwieweit die Datenstrukturen und Satzalgorithmen dieses
+Textsatzsystems den Anforderungen des Notensatzes angemessen sind.
+Es zeigt sich, da\3 die an jedes Notensatzsystem gestellten Anforderungen,
+die den korrekten Ausschlu\3 betreffen, einfach zu erf"ullen sind.
+Das Box-Glue-Konzept erm"oglicht das Einf"ugen von Hunks. Der vorhandene
+Zeilen- und Seitenumbruchalgorithmus kann erfolgreich eingesetzt werden.
+Die Darstellung der einzelnen Notenschriftelemente wird ebenfalls durch
+das Box-Glue-Konzept unterst"utzt. Weiterhin ist dadurch auch das
+Zusammensetzen der variablen Notenschriftelemente (Noten, Balken, Bogen)
+erm"oglicht worden.
+
+Die Grenzen des Textsatzsystems zeigen sich dort, wo die Plazierung
+eines einzelnen Notenschriftelementes vom zweidimensionalen Umfeld
+abh"angig ist, da die Datenstrukturen des
+Textsatzsystems in diesem Fall den Problemen nicht angemessen sind.
+
+Als Folgerung daraus ergibt sich, da\3 der Satz in mehreren Systemen
+problematisch ist.
+Wie alle bisher erschienenen Notensatzsysteme kann auch dieses
+in der augenblicklichen Form
+ nur
+einen Teilbereich der konventionellen Notenschrift abdecken.
+Es besitzt jedoch den Vorteil,
+ da\3 hier die Notenschrift, wie in dieser
+Arbeit demonstriert,
+ in laufenden Text
+eingebettet werden kann.
+Die weitergehenden Anforderungen k"onnen z.B.
+ durch die Losl"osung vom Textsatzsystem erf"ullt
+werden.
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc13.tex b/macros/mtex/documentation/mdoc13.tex
new file mode 100644
index 0000000000..15b64dfc8f
--- /dev/null
+++ b/macros/mtex/documentation/mdoc13.tex
@@ -0,0 +1,95 @@
+
+
+\heading{Literatur}
+
+\ref\keyy{\lit{\Brook}}
+\by B.S. Brook, M. Gould \paper
+Notating Music with Ordinary Typewriter Characters\jour
+Fontes Artis Musicae \vol XI\pages 142--159 \yr1964\endref
+\ref \keyy{\lit{\byrd}}
+\by D. Byrd \paper A system for music printing by computer
+\jour Computers and the
+Humanities \vol 8 \pages161--172 \yr 1974
+\endref
+\ref \keyy{\lit{\genzmeier}}
+\by F. Genzmer \book Das Buch des Setzers \publ Verlag Ullstein
+GmbH\publaddr Frankfurt/M.$\cdot$ Berlin \yr 1961
+\endref
+\ref\keyy{\lit{\gomb}}
+\by D.A. Gomberg \paper A computer--oriented system for music printing
+\jour Computers and the Humanities \vol 11 \pages 63--80 \yr 1978
+\endref
+\ref\keyy{\lit{\Gourlay}}
+\by J.S. Gourlay \paper A language for music printing
+\jour Communications
+of the ACM \vol 29 \yr 1986
+\endref
+\ref\keyy{\lit{\grabner}}
+\by H. Grabner \book Allgemeine Musiklehre
+\publ B"arenreiter Kassel \publaddr Basel$\cdot$%
+Paris$\cdot$London \yr 1970
+\endref
+\ref\keyy{\lit{\Hader}}
+\by K. Hader
+\book Aus der Werkstatt eines Notenstechers
+\publ Waldheim--Eberle Verlag \publaddr Wien \yr 1948
+\endref
+\ref\keyy{\lit{\Knuth}}
+\by D.E. Knuth, M.F. Plass
+\paper Breaking Paragraphs into Lines
+\jour Software,Practic \& Experience \vol11\yr1981 \pages1118--1184
+\endref
+\ref\keyy{\lit{\TeXbook}}
+\by D.E. Knuth \book The \TeX book \publ Addison--Wesley
+Publ. Comp. \yr 1984
+\endref
+\ref\keyy{\lit{\Knuthmf}}
+\by D.E. Knuth \book The \mf book \publ Addison-Wesley Publ. Comp.
+\yr1986\endref
+\ref\keyy{\lit{\Peters}}
+\by Peters \paper Informatik I und II
+\publ (Vorlesungsausarbeitung, Univ. Bonn)
+\yr WS 1978/79 und SS 1979\endref
+\ref\keyy{\lit{\Schofer}}
+\by A. Schofer \paper Automatisierter
+Notensatz mit \TeX\ -- Ein Verfahren zur Notenschrifteingabe
+\publ (Diplomarbeit, Univ. Bonn 1986)
+\endref
+\ref\keyy{\lit{\Smith}}
+\by L.C. Smith \paper Editing and printing music by computer
+\jour J. Music Theory \vol 17
+\issue 2 \pages 292--309 \yr1973
+\endref
+\ref\keyy{\lit{\Steinb}}
+\by A. Steinbach \paper Automatisierter
+Notensatz mit \TeX\ -- Verfahren zur Notenschriftausgabe
+\publ (Diplomarbeit, Univ. Bonn 1986)
+\endref
+\ref\keyy{\lit{\Werner}}
+\by R. Werner \paper EDM (EDV f"ur Musik) -- Modell
+ kommunikationstheoretisch begr"undeter Musikanalysen
+\publ (Dissertation,
+Univ. M"unster (Westf.) 1978)
+\endref
+\ref\keyy{\lit{\Wirth}}
+\by N. Wirth \book Compilerbau
+\publ Teubner Taschenbuch \publaddr Stuttgart \yr 1984\endref
+\ref\keyy{\lit{\Ziegen}}
+\by W. Ziegenr"ucker \book Allgemeine Musiklehre
+\publ Wilhelm Goldmann Verlag \publaddr
+Musikverlag, B. Schotts S"ohne \issue 6 \yr1983
+\endref
+\ref\keyy{\lit{\Zima}}
+\by H. Zima \book Compilerbau 1
+\publ BI Wissenschaftsverlag \publaddr Mannheim, Wien, Z"urich
+\yr 1982\endref
+\ref\keyy{\lit{\Zimat}}
+\by H. Zima \book Compilerbau 2
+\publ BI Wissenschaftsverlag \publaddr Mannheim, Wien, Z"urich
+\yr 1983
+\endref
+\vfill\eject
+
+
+
+
diff --git a/macros/mtex/documentation/mdoc2.tex b/macros/mtex/documentation/mdoc2.tex
new file mode 100644
index 0000000000..5cbcf78290
--- /dev/null
+++ b/macros/mtex/documentation/mdoc2.tex
@@ -0,0 +1,1206 @@
+\heading{Formale Darstellung der Noteneingabesprache}
+
+Eingabeverfahren, die f"ur den Computer geeignet sein sollen,
+m"ussen eine
+streng formalisierte
+"au\3ere Form haben, um Mehrdeutigkeiten bez"uglich der Bedeutung zu
+vermeiden.
+Solche \Ev\ geh"oren zur Klasse der formalen Sprachen, deren Syntax in
+den meisten F"allen mit Hilfe sogenannter Regelgrammatiken definiert
+werden kann.
+\abs
+Auch bei der hier entwickelten Noteneingabesprache kann die Theorie
+der formalen Sprachen zugrunde gelegt werden.
+Ihre Syntax wird durch die \BNF,
+mit der \kf e \G en beschrieben werden k"onnen, dargestellt. Doch
+bevor die Syntax der Eingabesprache definiert wird, sollen die
+theoretischen Grundlagen dieser Darstellungsweise geschaffen werden.
+Deshalb folgt eine kurze Einf"uhrung in formale Sprachen und \kf e \G
+en \lit{\Zima}, \lit{\Peters}.
+\abschnitt\abschnitt
+\centerline{\bf 2.1 Theoretische Grundlagen}
+\abschnitt\abschnitt
+\subheading{2.1.1 Formale Sprachen}
+Um den oben erw"ahnten Begriff der formalen Sprache zu
+er\-kl"a\-ren, sind
+zun"achst einige andere Definitionen n"otig.
+\absatz
+\subheading{Definition}
+Eine nichtleere endliche Menge
+$\Sigma=\{a_1,a_2,\ldots,a_n\}$, $n\ge 1$, hei\3t (endliches)
+\de{Alphabet} und die $a_i$,
+$1\le i\le n$ sind die Zeichen oder Symbole des Alphabets $\Sigma$.
+\absatz
+Diese Zeichen lassen sich nach folgender Vorschrift zu W"ortern
+zusammensetzen.
+\abs
+\subheading{Definition}
+Sei $\Sigma=\{a_1,\ldots,a_n\}$, $n\ge 1$. Dann hei\3t die endliche
+Folge
+$$x=a_{i_{\ssize 1}}\cdots a_{i_{\ssize r}}\;,
+\q r\ge 0\;,\q 1\le i_j\le n\;,
+\q j\in \lbrack 1,r\rbrack$$
+\de{Wort} "uber dem Alphabet $\Sigma$.
+Dabei ist $r$ die L"ange des Wortes und wird geschrieben als
+$|x|=r$.
+Falls $r=0$, so ist $x$ gleich dem leeren Wort $\epsilon$.
+Die Menge aller Worte "uber $\Sigma$ wird mit $\Sigma^*$ bezeichnet und
+$\Sigma^+=\Sigma^*\setminus \{\epsilon\}$
+ist die Menge aller Worte "uber dem Alphabet $\Sigma$ ohne das leere
+Wort.
+\absatz
+Auf der Menge aller W"orter ist eine Verkn"upfung, die
+Konkatenation, wie folgt definiert.
+\abs
+\subheading{Definition}
+Seien
+$x=a_{i_{\ssize 1}}\cdots a_{i_{\ssize r}}$ und
+$y=a_{k_{\ssize 1}}\cdots a_{k_{\ssize s}}$
+zwei Worte "uber dem Alphabet $\Sigma$. Dann
+wird das Wort $z=a_{i_{\ssize 1}}\cdots a_{i_{\ssize r}}a_{k_{\ssize 1}}
+\cdots a_{k_{\ssize s}}$
+als \de{Konkatenation} oder \de{Produkt}
+von $x$ und $y$ bezeichnet und $z$
+wird geschrieben als $z=xy$.
+\absatz
+Mit den definierten Begriffen k"onnen nun formale Sprachen eingef"uhrt
+werden.
+\abs
+\subheading{Definition}
+Eine
+\de{(formale) Sprache} "uber dem Alphabet
+$\Sigma$ ist eine beliebige Menge
+$L\subseteq \Sigma^*$.
+\abschnitt
+Es stellt sich die Frage, wie die Sprache $L$
+spezifiziert werden kann und wie die Elemente dieser Menge
+beschrieben werden k"onnen. Die
+Beantwortung h"angt davon ab, ob die Sprache $L$ endlich oder
+nicht endlich ist.
+Handelt es sich bei $L$ um eine endliche Wortmenge, so k"onnen die
+Elemente aufgez"ahlt werden.
+Falls $L$ jedoch nicht endlich ist, mu\3 eine endliche Beschreibung der
+Sprache gefunden werden. Bei dieser Beschreibung soll auf nat"urliche
+Sprachen verzichtet und formale Methoden angewandt werden, um
+Mehrdeutigkeiten zu vermeiden. Es gibt verschiedene Hilfsmittel, um
+solch eine Beschreibung zu erhalten.
+\abs
+Eine der gebr"auchlichsten Methoden zur Beschreibung formaler Sprachen
+sind die Regelgrammatiken, die je nach M"achtigkeit verschiedene Klassen
+formaler Sprachen definieren.
+Die geeignetste Regelgrammatik
+zur Darstellung von Eingabesprachen, wie sie bei der
+Aufgabenstellung dieser Arbeit vorkommen, sind die \kf en \G en. Sie
+erfassen weite Teile der Syntax dieser Eingabesprachen.
+\abschnitt\abschnitt
+\subheading{2.1.2 Kontext--freie Grammatiken}
+Es folgen nun einige Definitionen zu \kf en \G en und Sprachen.
+\absatz
+\subheading{Definition}
+Eine \de{\kf e \G\ } ist ein Quadrupel
+$G=(N,\Sigma,P,S)$,
+wobei
+$N$ die endliche Menge der \de{Nichtterminalsymbole} und
+$\Sigma$ die endliche Menge der \de{Terminalsymbole} ist. Es soll
+$N\cap\Sigma=\emptyset$ gelten.
+Die endliche Menge $\Gamma=N\cup \Sigma$ wird als \de{Gesamtalphabet}
+bezeichnet.
+$P\subseteq N\times\Gamma^*$ ist die Menge der Regeln oder
+\de{Produktionen}. $P$ ist eine endliche Menge. $(A,v)\in P$
+hei\3t eine Regel
+f"ur $A$ und wird in der Form
+$A\longrightarrow v$ geschrieben.
+$S\in N$ hei\3t \de{Startsymbol}.
+\absatz
+Produktionsregeln aus $P$ lassen sich hintereinander ausf"uhren.
+Dies f"uhrt zu folgender Definition
+\abs
+\subheading{Definition}
+Sei
+$G=(N,\Sigma,P,S)$ eine \kf e \G\ und
+$w,w_0\in \Gamma^*$. Dann hei\3t $w$ aus $w_0$
+\de{ableitbar} bez"uglich $P$, wenn es eine Folge
+$w_1,w_2,\ldots,w_m\in \Gamma^*$ gibt, mit
+$w_m=w$ und folgender Eigenschaft:\abs
+F"ur jedes $i=1,\ldots, m$ gibt es eine Regel
+$(A_i,v_i)\in P$ und W"orter
+$x_i, y_i\in\Gamma^*$, so da\3 gilt:
+$$w_{i-1}=x_iA_iy_i\qq\hbox{und}\qq w_i=x_iv_iy_i\;.$$
+Die Folge
+$w_i$, $i=0,\ldots, m$, hei\3t
+\de{Ableitung} der L"ange $m$ und wird in der Gestalt
+$$w_0\longrightarrow w_1\longrightarrow \ldots
+\longrightarrow w_m=w$$
+als solche angedeutet.
+Die Tatsache, da\3 es eine Ableitung von $w$ aus $w_0$ in $P$ gibt,
+wird durch $w_0\abl^P w$ notiert.
+\abs
+Mit einer \kf en \G\ lassen sich W"orter erzeugen. Ausgehend vom
+Startsymbol $S$ k"onnen nach Belieben Produktionsregeln der
+Grammatik angewandt werden. Eine Produktion ersetzt jeweils ein
+Nichtterminalsymbol durch ein Element aus der Menge $N\cup\Sigma$.
+Terminalsymbole k"onnen nicht ersetzt werden.
+Der Ableitungsvorgang terminiert sp"atestens dann, wenn das Wort nur
+noch Symbole aus dem Terminalalphabet enth"alt. Er endet auch,
+wenn f"ur ein
+Nichtterminalzeichen keine Produktion existiert.
+Die bei einer Ableitung entstandenen W"orter, die nur
+Terminalsymbole enthalten,
+hei\3en \de{Terminalw"orter} oder S"atze. Sie geh"oren zur Menge
+$\Sigma^*$. Die Menge aller von einer \kf en \G\ erzeugten
+Terminalw"orter bilden die zu der \G\ geh"orende \kf e Sprache.
+\absatz
+\subheading{Definition}
+Eine formale Sprache
+$L\subseteq \Sigma^*$ hei\3t \de{\kf} genau dann,
+wenn es eine \kf e \G\
+$G=(N,\Sigma,P,S)$ gibt, f"ur die
+$$L=L(G):=\{w\,\mid\,w\in\Sigma^*\hbox{ und }
+S\abl^P w\}$$
+gilt.
+\abs
+\subheading{Beispiel}
+Sei $G_1=(\{S,T\}, \{a,b\}, \{S\to aT|Ta|\epsilon, T\to Sb|bS\}, S)$
+eine kontext--freie Grammatik.
+Die verschiedenen Produktionen f"ur ein Nichtterminalsymbol
+werden "ublicherweise zu einer Regel zusammengefa\3t und durch
+einen senkrechten Strich getrennt. $T\to Sb|bS$ bedeutet also
+$T\to Sb$ oder $T\to bS$.
+Es gibt zum Beispiel folgende
+Ableitungen:
+$$S\longrightarrow aT\longrightarrow aSb\longrightarrow ab$$
+oder
+$$S\longrightarrow Ta\longrightarrow Sba\longrightarrow aTba
+\longrightarrow aSbba\longrightarrow abba\;.$$
+Die W"orter $ab$ bzw. $abba$ sind Terminalworte.
+\abschnitt
+Sei im folgenden
+$G=(N,\Sigma,P,S)$ eine \kf e \G,
+$w\in\Sigma^*$ und $L(G)$ die von $G$ erzeugte \kf e Sprache.
+\abs
+Im Zusammenhang mit \kf en \G en und Sprachen stellt sich
+die Frage, ob die Syntax der erzeugten Sprache korrekt ist.
+Deshalb sind drei Probleme, auf die im folgenden n"aher eingegangen
+wird,
+von besonderem Interesse:
+\item{---} "Aquivalenz von Grammatiken,
+\item{---}
+Entscheidbarkeit "uber die Zugeh"origkeit eines Wortes zu der von
+der Grammatik $G$ erzeugten Sprache $L(G)$,
+\item{---} Eindeutigkeit der Ableitung f"ur ein Wort
+$w\in L(G)$.
+\abs
+Auf diese drei Punkte wird nun n"aher eingegangen.
+\abschnitt\abschnitt
+\subheading{2.1.3 "Aquivalenz \kf er \G en}
+Es kann sein, da\3 eine
+\kf e \G\ in ihren Alphabeten Zeichen enth"alt,
+f"ur die es keine Ableitungen gibt oder die in den Terminalw"ortern der
+erzeugten
+Sprache nicht vorkommen. Auch die Menge der Produktionen kann nutzlose
+Regeln enthalten, die zur Erzeugung der Sprache, also der
+Terminalw"orter, nicht beitragen.
+\abs
+Es w"are sicherlich w"unschenswert, wenn diese redundanten
+beziehungsweise nutzlosen Zeichen
+und Regeln aus der \kf en \G\ entfernt werden k"onnten, ohne da\3 sich
+die \G\ wesentlich "andert.
+Dies geht, indem folgende Einschr"ankungen gemacht werden:
+(1) das Startsymbol kommt nur auf der linken Seite einer Ableitung auf,
+(2) keine Regel f"uhrt nur zum leeren Wort, (3) kein Nichtterminalsymbol
+wird in ein Nichtterminalsymbol abgeleitet und (4) jede Ableitung f"uhrt
+zu einem Terminalwort.
+Auf welche Art ein Grammatik dahingehend abge"andert werden kann, da\3
+sie diese Bedingungen erf"ullt, wird im Anschlu\3 an die Definition
+der "Aquivalenz geschildert.
+\absatz
+\subheading{Definition}
+Zwei \kf e \G en
+$G=(N,\Sigma,P,S)$ und
+$G'=(N',\Sigma',P',S')$ hei\3en
+\de{"aqui\-va\-lent} genau dann, wenn
+$L(G)=L(G')$; \dh, wenn die beiden \G en die gleiche Sprache
+erzeugen.
+\abschnitt
+Der folgende Algorithmus "uberf"uhrt die \kf e Grammatik $G$ in
+eine \kf e Grammatik $G'$, die
+die obigen Bedingungen erf"ullt und "aquivalent zu $G$ ist.
+Die Grammatik $G'$ wird \de{reduziert} genannt. F"ur eine
+ausf"uhrlichere
+Beschreibung des Algorithmus sei auf \lit{\Zima} oder \lit{\Peters}
+verwiesen.
+\abs
+Eine \kf e \G\
+$G=(N,\Sigma,P,S)$ kann durch folgende Schritte reduziert werden:
+\abs
+\item{1.}
+Das Startsymbol $S$ soll nicht auf der rechten Seite einer Ableitung
+vorkommen, \dh
+in
+$A\longrightarrow v$, $A\in N$, $v\in\Gamma^*$, tritt $S$ nicht in $v$
+auf. Diese Bedingung kann erf"ullt werden durch Einf"uhrung eines neuen
+Startsymbols $S'$ und der Hinzunahme der Regel $S'\longrightarrow S$.
+$N'$ ist dann
+$N\cup\{S'\}$.
+\item{2.}
+Die Produktionen sollen \de{$\epsilon$--frei} sein, \dh
+keine Regel soll die Form
+$C\longrightarrow \epsilon$, $C\in N$, haben.
+Sei $v\in\Gamma^*$ und das Nichtterminalsymbol $C$ kommt in $v$ vor.
+Dann kann zu jeder Regel
+$A\longrightarrow v$, $A\in N$,
+eine Produktion
+$A\longrightarrow w$, $w\in\Gamma^*$, hinzugef"ugt werden.
+Diese entsteht aus
+$A\longrightarrow v$, indem in $w$ alle $C$ durch
+$\epsilon$ ersetzt werden. Die Regel
+$C\longrightarrow \epsilon$ kann dann eliminiert werden.
+\item{3.}
+Die Menge der Produktionen enth"alt keine \de{single production},
+also keine Regel der Form
+$A\longrightarrow B$ mit $A,B\in N$. Dazu werden alle Produktionen
+$C\longrightarrow x$, $x\in\Sigma$ betrachtet. Nun wird
+f"ur alle $A$ mit
+$ A\longrightarrow B$ und alle
+$ C\longrightarrow x$ "uberpr"uft, ob eine Ableitung
+$A\abl^P C$ existiert. Falls es so eine Ableitung gibt, wird
+$A\longrightarrow x$ als neue Regel hinzugenommen und die Regel
+$A\longrightarrow B$ entfernt.
+\item{4.}
+Jede abgeschlossene Ableitung soll zu einem Terminalwort f"uhren.
+Das bedeutet, da\3 es
+immer eine Ableitung $S\abl^P vAw\abl^P vuw$ mit
+$v,w,u\in\Sigma^*$, $A\in N$, gibt. Dies kann erreicht werden, indem
+alle Nichtterminalzeichen aus dem Nichtterminalalphabet $N$ gestrichen
+werden, aus denen kein Terminalwort abgeleitet werden kann. Au\3erdem
+werden alle nichterreichbaren Symbole aus den Alphabeten gestrichen.
+\abs
+Die durch obigen Proze\3 entstandene \kf e \G\
+$G'=(N',\Sigma',P',S')$ ist "aquivalent zu der \kf en \G\ $G$, \dh
+$L(G')=L(G)$ (Beweis siehe \lit{\Zima}, \lit{\Peters}).
+Mit der \G\ $G'$ kann die Sprache $L$ ohne unn"otige bzw.
+redundante Ableitungen erzeugt werden.
+Au\3erdem wird mit jeder vollst"andigen
+Ableitung
+ein Terminalwort erreicht.
+Ein Ziel wird es demnach sein,
+zur Erzeugung einer Sprache eine reduzierte
+\kf e \G\ zu benutzen.
+\abschnitt
+Im folgenden sei die \kf e \G\
+$G=(N,\Sigma,P,S)$ laut obigen Vereinbarungen eine reduzierte Grammatik.
+\abschnitt\abschnitt
+\subheading{2.1.4 Entscheidbarkeit}
+Immer dann, wenn die Syntax einer Sprache "uberpr"uft werden soll,
+stellt sich
+die Frage nach der Zugeh"origkeit eines Wortes zu dieser
+Sprache.
+Eine syntaktisch korrekte Sprache enth"alt nur
+W"orter, die durch die zugeh"orige Grammatik erzeugt
+wurden. Deshalb ist es f"ur die Syntaxanalyse wichtig, entscheiden zu
+k"onnen, ob ein Wort zu der von einer Grammatik erzeugten Sprache
+geh"ort oder nicht. Falls diese Frage f"ur ein Wort entschieden werden
+kann, so mu\3 als
+n"achster Schritt eine Ableitung f"ur dieses Wort gefunden werden --
+vorausgesetzt, das Wort geh"ort zu der Sprache.
+Anhand der gefundenen Ableitung f"ur ein Wort $x$ kann seine syntaktische
+Struktur erkannt werden.
+\absatz
+\subheading{Definition}
+Eine Sprache
+$L\subseteq \Sigma^*$ mit der Eigenschaft, da\3 f"ur jedes Wort
+$v\in\Sigma^*$ entschieden werden kann, ob
+$v\in L$ oder $v\notin L$, hei\3t
+\de{entscheidbar}.
+\absatz
+Jede \kf e Sprache ist entscheidbar (siehe
+\lit{\Peters} oder \lit{\Zima}).
+Das bedeutet, da\3 in jedem Fall festgestellt werden
+kann, ob ein Wort durch die Grammatik erzeugt wird und damit zu
+der Sprache geh"ort.
+Im Zusammenhang mit der
+Entscheidbarkeit \kf er Sprachen werden
+Verfahren angegeben, mit denen eine Ableitung f"ur
+ein Terminalwort gefunden werden kann.
+Verfahren zum systematischen Aufsuchen einer Ableitung zu einer
+gegebenen Grammatik $G$ und einem gegebenen Wort
+$w\in \Sigma^*$ werden
+\de{Syntax--Anlayse--Verfahren} genannt.
+\abs
+Bei der Konstruktion einer zu $w$ geh"orenden Ableitung k"onnen zwei
+prinzipiell verschiedene Wege eingeschlagen werden:
+Einerseits kann von den Terminalzeichen, die das Wort $w$ bilden,
+ausgegangen und versucht werden, das Startsymbol $S$ zu erreichen
+(``bottom--up--Analyse''). Andererseits kann die Konstruktion einer
+Ableitung mit dem Startsymbol begonnen werden, um auf diesen Weg das
+Terminalwort $w$ zu erreichen (``top--down--Analyse'').
+\abs
+W"ahrend einer Analyse mu\3 h"aufig zwischen mehreren Regeln gew"ahlt
+werden, weil es f"ur ein Nichtterminalsymbol verschiedene Produktionen
+geben kann und es oft nicht absehbar ist, ob die eine oder die
+andere Regel zum gew"unschten Ergebnis f"uhrt.
+Dies zeigt das folgende Beispiel.
+\absatz
+\subheading{Beispiel}
+Sei $G$ eine \kf e \G\ mit $\Sigma=\{a,+,*,(,)\}$, $N=\{S\}$,
+\par
+$P=\{S\to S+S/S*S/(S)/a\}$ und dem Startsymbol $S$.
+Dann kann der Ausdruck $a+a*a$ mit verschiedenen Ableitungen
+erreicht werden:
+$$S\to S+S\to S+S*S\to a+S\to a+a*S\to a+a*a$$
+oder
+$$S\to S+S\to a+S\to a+S*S\to a+a*S\to a+a*a\,.$$
+\absatz
+Es kann auch sein, da\3 durch die Wahl einer ungeeigneten Regel
+die Anlayse vor Erreichen des Startsymbols $S$ bzw. des Terminalworts
+$w$ terminiert. Dann mu\3 die Ableitung bis zu der mehrdeutigen Stelle
+r"uckg"angig gemacht werden (``back--tracking'') und von dort aus wieder
+mit der Analyse begonnen werden. Allerdings werden die Bem"uhungen
+dahingehen, solche Sackgassen zu vermeiden und m"oglichst effiziente
+Analysealgorithmen zu verwenden.
+\abs
+Verfahren, die solche Analysealgorithmen f"ur \kf e Sprachen automatisch
+generieren, sind die
+$LL(1)$-- und die
+$LALR(1)$--Analyse. Die Besprechung dieser Analyseverfahren w"urde
+hier zu weit f"uhren, deshalb sei an dieser Stelle wiederum auf
+\lit{\Zima} verwiesen.
+\absatz
+Es ist noch zu sagen, da\3 diese Analysestrategien ausschlie\3lich auf
+eindeutige \G en anwendbar sind. Darum schlie\3t an dieser Stelle
+eine kurze
+Zusammenfassung "uber den Eindeutigkeitsbegriff \kf er \G en an.
+\abschnitt\abschnitt
+\subheading{2.1.5 Eindeutigkeit}
+Bevor Aussagen zur Eindeutigkeit einer \kf en \G\ gemacht werden
+k"onnen, m"ussen einige Vereinbarungen "uber Ableitungen getroffen
+werden.
+Um daf"ur einen anschaulichen Hintergrund zu haben, werden die
+Ableitungen durch sogenannte Ableitungsb"aume graphisch dargestellt.
+\absatz
+\subheading{Definition}
+Sei $G$ eine \kf e \G\ und
+$w\in L(G)\subseteq\Sigma^*$. Ein
+\de{Ableitungsbaum von $w$ in $G$} ist ein Baum mit
+den Eigenschaften:
+\item{---}
+Die Wurzel hat die Marke $S$.
+\item{---}
+Alle mit Nichtterminalzeichen $A$ markierten Knoten haben
+Nachfolger; sind f"ur einen mit $A$ markierten Knoten die Nachfolger mit
+$v_1,\ldots, v_n\in\Gamma$ markiert, dann enth"alt $G$ die Regel
+$A\longrightarrow v_1\cdots v_n$.
+\item{---}
+Die Marken der Bl"atter ergeben von links nach rechts gelesen das
+Wort $w$.
+\absatz
+Zu einer Ableitung
+$S\abl^P w$ mit
+$S\longrightarrow w_1\longrightarrow w_2\longrightarrow
+\cdots \longrightarrow w_m=w$,
+$w\in L(G)$, kann nach folgenden Regeln ein \de{Ableitungsbaum}
+zusammengef"ugt werden:
+\par
+\item{1.}
+Zu jeder Regel
+$A\longrightarrow v_1\cdots v_n\in P$ mit
+$v_i\in \Gamma$,
+$1\le i\le n$, wird der zugeh"orige \de{Regelbaum}
+\par
+%
+\input mdocpic1
+%
+\item{ } gebildet.
+\item{2.}
+Nun wird der Ableitungsbaum f"ur
+$S\abl^P w$ begonnen, indem der Regelbaum zur Regel
+$S\longrightarrow w_1$ erstellt wird.
+\item{3.}
+Sei $w_i=xAy$, $1\le i<m$, $x,y\in\Gamma^*$, $A\in N$ und
+$w_{i+1}=xvy$, $v\in \Gamma^*$. Der "Ubergang von $w_i$ nach
+$w_{i+1}$ wird durch die Anwendung der Regel
+$A\longrightarrow v$ bewirkt.
+Im Ableitungsbaum wird
+der Knoten $A\in N$ durch den Regelbaum f"ur die Regel
+$A\longrightarrow v$ ersetzt.
+Jeder Ableitungsschritt kann an den
+Bl"attern des Baumes von links nach rechts abgelesen werden.
+\abs
+Auf diese Weise kann f"ur jedes Wort $w$ ein Ableitungsbaum konstruiert
+werden.
+Der umgekehrte Vorgang ist ebenfalls m"oglich.
+Zu einem Ableitungsbaum eines Wortes $w$ k"onnen Ableitungen
+gefunden werden; dabei kann es sein, da\3 es zu einem Ableitungsbaum
+verschiedene Ableitungen gibt. Deswegen wird jedem Ableitungsbaum eine
+ausgezeichnete Ableitung zugeordnet.
+\absatz
+\subheading{Definition}
+Eine Ableitung
+$S\longrightarrow w_1\longrightarrow\cdots\longrightarrow w_m=w$ hei\3t
+\de{Linksableitung} genau dann, wenn bei jedem "Ubergang
+$w_{i}=xAy\longrightarrow xvy$ mit
+$w_i,y,v\in\Gamma^*$,
+$A\in N$, stets $x\in\Sigma^*$ gilt.
+Analog dazu kann auch die \de{Rechtsableitung} definiert werden.
+\abs
+Jeder Linksableitung von $w$ entspricht genau ein Ableitungsbaum und
+umgekehrt. Au\3erdem besitzt jedes Wort einer Sprache
+eine Linksableitung.
+\abs
+Es ist m"oglich, da\3 es zu einem Wort mehrere
+Linksableitungen gibt, also auch mehrere Ableitungsb"aume. Aus
+diesem Grund ist es sinnvoll, folgende Vereinbarung zu treffen:
+\absatz
+\subheading{Definition}
+Eine \kf e \G\ $G$ hei\3t \de{eindeutig} genau dann, wenn f"ur jedes
+$w\in L(G)$ nur eine Linksableitung existiert. Andernfalls hei\3t $G$
+\de{mehrdeutig}.
+\abs
+\subheading{Definition}
+Eine \kf e Sprache $L\subseteq \Sigma^*$ hei\3t \de{eindeutig} genau
+dann, wenn es eine eindeutige \kf e \G\
+f"ur $L$ gibt. Andernfalls hei\3t
+$L$ \de{mehrdeutig}.
+\abs
+Es liegt auf der Hand, da\3 Eingabesprachen f"ur den Computer eindeutig
+sein sollten, schon allein aus dem Grund, da\3 die semantische
+Eindeutigkeit sonst nicht gew"ahrleistet werden kann.
+\abschnitt
+Zum Abschlu\3 dieses Abschnitts sei darauf hingewiesen, da\3
+sich die praktische Anwendung der \kf en \G en von der Theorie
+unterscheidet.
+Mit \kf en \G en k"onnen weite Teile der Syntax von
+Eingabe-- oder Programmiersprachen erfa\3t werden. Allerdings
+m"ussen zus"atzlich zu den Regeln des Produk\-tionssystems $P$ noch
+weitere Vorschriften gemacht werden, bei denen es sich dann nicht
+mehr um \kf e Regeln handelt. Diese Zusatzregeln sind meist n"otig,
+um Eingaben zu vermeiden, die semantisch
+keinen Sinn ergeben, aber aus den
+Produktionsregeln der \G\ ableitbar sind.
+\abs
+Trotzdem kann mit \kf en \G en zun"achst die "au\3ere
+Struktur der Sprachen, die beschrieben werden m"ussen,
+festgelegt werden.
+Auch der Aufbau der hier erarbeiteten
+Eingabesprache f"ur Musikst"ucke, die
+zur Automatisierung des Notensatzes benutzt werden soll,
+kann mit Hilfe obiger Theorie behandelt werden.
+\abschnitt
+\abschnitt
+\goodbreak
+\centerline{\bf 2.2 Die Syntax der Noteneingabesprache in \BNF}
+\abschnitt
+In diesem Abschnitt soll die Syntax der Noteneingabesprache,
+die f"ur eine Anwendung mit dem Computer entwickelt worden ist und
+und deshalb zur Klasse der formalen Sprache geh"ort, dargestellt
+werden.
+Eine formale Sprache kann durch eine \kf e \G\ erzeugt werden, deren
+Produktionsregeln den syntaktischen Aufbau der Sprache
+beschreiben. Die entwickelte Noteneingabesprache kann ebenfalls
+durch eine \kf e \G\ generiert werden.
+Zur Beschreibung dieser \kf en \G\ wird aus mehreren Gr"unden
+die standardm"a\3ig benutzte
+\BNF\ gew"ahlt.
+Zum einen bietet die \BNF\ die M"oglichkeit,
+die Nichtterminalzeichen mnemotechnisch zu benennen, was die
+Erkennung ihrer Bedeutung innerhalb der Sprache und daher
+das Verst"andnis erleichtert. Au\3erdem k"onnen die Nichtterminal%-
+symbole in den Produktionsregeln von den Terminalsymbolen durch die
+die Art ihrer Darstellung unterschieden werden. Die Menge der
+Terminal-- bzw. Nichtterminalzeichen m"ussen demnach nicht gesondert
+aufgef"uhrt werden, was vor allem bei sehr umfangreichen \G en\
+von Vorteil ist.
+\abs
+Bevor der syntaktische Aufbau der Eingabesprache mit Hilfe der
+\BNF\ dargestellt wird, soll diese anhand
+eines Beispiels
+erl"autert werden.
+\abschnitt\abschnitt
+\subheading{2.2.1 Die \BNF}
+Zur Backus--Naur--Form
+geh"ort ein Qua\-dru\-pel
+$(N,\Sigma,P,S)$. Die Nichtterminalsymbole
+werden mnemotechnisch benannt
+und in spitze Klammern eingeschlossen. Statt dem Ableitungspfeil wird
+das Zeichen
+$::=$ zum Anschreiben der Produktionen benutzt.
+Bei Auftreten des Zeichens wird
+das Nichtterminalsymbol auf der linken Seite durch die rechte
+Seite genauer erkl"art. Wie bei Produktionsregeln von \G en "ublich,
+werden bei der \BNF\ die verschiedenen M"oglichkeiten einer
+Ableitung f"ur ein Nichtterminalzeichen durch einen senkrechten Strich
+voneinander getrennt.
+\abs
+Zum besseren Verst"andnis wird nun ein Beispiel f"ur eine
+\kf e \G\ in
+\BNF\ gegeben und nach ihren Regeln eine Ableitung konstruiert.
+\absatz
+\subheading{Beispiel}
+Sei
+$G=(N,\Sigma,P,S)$ eine \kf e \G\ mit\par
+$N=\{$\nl{name},\nl{letter},\nl{alphanum},\nl{numeral},$\}$,
+$\Sigma=\{\hbox{B,E,I,S,P,L,1,2,3}\}$,
+$S=$\nl{name} und $P$ enth"alt die Produktionen
+\item{ }
+\nl{name}::=\nl{alphanum}\T\nl{alphanum}\nl{name},
+\item{ }
+\nl{alphanum}::=\nl{letter}\T\nl{numeral},
+\item{ }
+\nl{letter}::=B\T E\T I\T S\T P\T L,
+\item{ }
+\nl{numeral}::=1\T2\T3.
+\abs
+W"orter der von $G$ erzeugten Sprache sind \zB BEISPIEL22, B11LE,
+1322 oder BSP1.
+Zur Veranschaulichung wird die Linksableitung, dargestellt als
+Ableitung und Ableitungsbaum, f"ur das Terminalwort BSP1 konstruiert.
+$$\align \nm{name}
+&=\nm{alphanum}\nm{name}\\
+&=\nm{letter}\nm{name}\\
+&={\bf B}\nm{name}\\
+&={\bf B}\nm{alphanum}\nm{name}\\
+&={\bf B}\nm{letter}\nm{name}\\
+&={\bf BS}\nm{name}\\
+&={\bf BS}\nm{alphanum}\nm{name}\\
+&={\bf BS}\nm{letter}\nm{name}\\
+&={\bf BSP}\nm{name}\\
+&={\bf BSP}\nm{alphanum}\\
+&={\bf BSP}\nm{numeral}\\
+&={\bf BSP1}\endalign$$
+Der Ableitungsbaum f"ur die Linksableitung hat folgende Gestalt:
+\par
+{
+\def\HB#1{\hbox to 3cm{\hfil$#1$\hfil}}
+\def\Hb#1{\hbox to 1.5cm{\hfil$#1$\hfil}}
+\centerline{ \HB{\nm{name}} }
+\centerline{ \Hb{\swarrow} \Hb{\searrow} }
+\centerline{ \HB{\nm{alphanum}} \HB{\nm{name}} }
+\centerline{ \Hb{\swarrow} \Hb{} \Hb{\swarrow} \Hb{\searrow} }
+\centerline{ \HB{\nm{letter}} \HB{\nm{alphanum}} \HB{\nm{name}} }
+\centerline{ \Hb{\swarrow} \Hb{} \Hb{\swarrow} \Hb{}
+ \Hb{\swarrow} \Hb{\searrow} }
+\centerline{ \HB{\bf B} \HB{\nm{letter}} \HB{\nm{alphanum}} \HB{\nm{name}} }
+\centerline{ \Hb{} \Hb{\swarrow} \Hb{} \Hb{\swarrow} \Hb{} \Hb{\swarrow} }
+\centerline{ \HB{\bf S} \HB{\nm{letter}} \HB{\nm{alphanum}} }
+\centerline{ \Hb{} \Hb{\swarrow} \Hb{} \Hb{\swarrow} }
+\centerline{ \HB{\bf P} \HB{\nm{numeral}} }
+\centerline{ \Hb{} \Hb{\swarrow} }
+\centerline{ \HB{\bf 1} }
+}
+
+Im Anschlu\3 daran kann nun
+mit Hilfe der \BNF\ die Syntax der Noteneingabesprache
+beschrieben werden. Diese wird
+zusammen mit
+Erl"auterungen zu den Pro\-duktions\-regeln und ihrer Bedeutung
+f"ur die Sprache
+im n"achsten Abschnitt geliefert.
+\abschnitt\abschnitt
+\subheading{2.2.2 Syntaxbeschreibung in \BNF}
+Die Grammatik, die die Syntax der Eingabesprache beschreibt, ist eine
+nach den Gesichtspunkten aus 2.1.3 reduzierte \G. Das bedeutet,
+da\3 sie $\epsilon$--frei ist, keine single production enth"alt und da\3
+das
+Startsymbol nur einmal vorkommt, und zwar auf der linken Seite. Des
+weiteren gibt es f"ur jedes Nichtterminalsymbol eine Ableitung, die
+zu einem Terminalwort f"uhrt und es gibt keine nicht\-erreichbaren
+Nichtterminal-- bzw. Terminalzeichen. Die Elemente der erzeugten Sprache,
+also die Terminalw"orter, sind Eingaben f"ur den Computer und
+beschreiben ein Musikst"uck.
+\absatz
+Die Grammatik wird haupts"achlich durch ihre Produktionsregeln
+charakterisiert. Dabei wird die Vereinbarung getroffen, da\3 die
+Nichtterminal-- und Terminalzeichen durch die Art der Notation in den
+Ableitungsregeln kenntlich gemacht werden.
+Es soll gelten:
+\item{---}
+$S=\nm{music input}$
+\item{---}
+$N$ enth"alt alle metalinguistischen Variablen, das sind die
+in spitzen Klammern eingeschlossenen Zeichenfolgen.
+\item{---}
+$\Sigma$ besteht aus allen fett gedruckten Symbolen. Das k"onnen
+auch Zeichenfolgen sein.\abs
+Die Menge $P$ der Produktionsregeln, die die Noteneingabesprache
+vollst"andig erzeugen, soll im folgenden erl"autert werden.
+Allerdings wird aus Gr"unden der besseren Lesbarkeit
+darauf verzichtet, die Vorschriften f"ur
+Linksableitungen genau zu befolgen.
+Bei aufeinanderfolgenden Regeln wird also nicht immer das am weitesten
+links stehende Nichtterminalsymbol der vorhergehenden Regel erkl"art.
+Stattdessen wird eine Vorgehensweise gew"ahlt, die den Kontext der
+einzelnen Produktionsregeln verdeutlichen soll. Dazu werden die Regeln
+zu verschiedenen Abschnitten zusammengefa\3t, wobei ein Abschnitt solche
+Produktionen f"ur Nichtterminalzeichen enth"alt, die sinngem"a\3
+zusammengeh"oren. Diese Methode f"uhrt zu einer Unterteilung in
+sechs Abschnitte, die in Anlehnung an die Notation von
+Musikst"ucken in Notenschrift entstanden sind.
+Bevor auf die Beschreibung der Produktionsregeln eingegangen wird,
+soll zun"achst zum Verst"andnis der gew"ahlten Unterteilung
+der Aufbau einer Partitur in groben Z"ugen dargestellt werden.
+\abs
+Zu Anfang eines Musikst"ucks
+stehen "ublicherweise Angaben zum Komponisten
+und dem Titel, bei Vokalmusik werden diese erg"anzt durch Informationen
+"uber den Dichter. Danach wird, der Art des zu notierenden Musikwerks
+entsprechend, die Anzahl der erforderlichen Notenliniensysteme
+festgelegt, in die der Melodieverlauf der einzelnen Stimmen der
+Partitur in Notenschrift geschrieben wird.
+Ein Notenliniensystem besteht
+aus f"unf Linien, in die die Notenschriftzeichen eingeordnet werden.
+Zur Niederschrift mehrstimmiger Musikst"ucke werden mehrere
+Notenliniensysteme benutzt, die untereinander geschrieben
+und durch eine geschweifte Klammer auf der linken Seite zu sogenannten
+Akkoladen zusammengefa\3t werden (siehe \lit{\Ziegen}).
+Im folgenden wird statt Notenliniensystem
+auch der Begriff System benutzt.
+\abs
+Ein einzelnes Notenliniensystem kann grob in zwei Teile gegliedert
+werden. Der erste Teil enth"alt die Angaben, die f"ur die gesamte
+Melodie des Systems G"ultigkeit haben und die zu Beginn jeder
+zu dem System geh"orenden Notenzeile stehen. Mit den einleitenden
+Angaben wird durch den Notenschl"ussel und die Tonart eine Aussage
+"uber die genaue Tonh"ohe der Melodie gemacht, der Rhythmus
+und eventuell Tempo und Tonst"arke festgelegt \lit{\Ziegen}.
+Der zweite Teil eines Systems beschreibt den Melodieverlauf, der
+haupts"achlich mit Hilfe von Noten, Versetzungszeichen, Pausen
+und Taktstrichen notiert wird. Zus"atzlich werden f"ur erl"auternde
+Angaben Sonderzeichen oder Text benutzt.
+In einem einzelnen System d"urfen entweder ein--
+oder zweistimmige St"ucke notiert werden, die
+f"ur Vokalmusik noch mit einem
+Liedtext versehen werden k"onnen.
+\par
+Bei der Notation des Melodieverlaufs bilden die ben"otigten
+Notenschriftzeichen in vielen F"allen wiederum Einheiten,
+die dadurch zustande kommen, da\3 die Notenschriftzeichen
+miteinander verbunden werden, wie \zB mit Balken oder B"ogen.
+Es kann also zwischen einzelnen und kombinierten Notenschriftzeichen
+unterschieden werden.
+\abs
+Die Produktionsregeln der \G\ werden nun entsprechend
+der von ihnen erzeugten Sprachelemente aufgegliedert, wobei die oben
+beschriebene Strukturierung zugrunde gelegt wird.
+Je nachdem, zu welchem Abschnitt sie geh"oren,
+beschreiben sie dann folgende Teile einer Partitur:
+\item{---}
+Eigenschaften, die eine Aussage "uber die Art
+des Musikwerks machen,
+\item{---}
+Melodieverlauf eines Systems,
+\item{---}
+einleitende Angaben, die f"ur ein
+System G"ultigkeit haben,
+\item{---}
+elementare Notenschriftzeichen,
+\item{---}
+Notengruppen, die von Notenschriftzeichen gebildet werden, und
+\item{---}
+sonstige Zeichen und Zeichenketten, wie sie f"ur schriftliche
+Anmerkungen ben"otigt werden.
+\abs
+Ausf"uhrliche Erkl"arungen zu den dort zusammengefa\3ten
+Produktionsregeln werden im folgenden gegeben.
+Doch zuvor noch eine allgemeine Erkl"arung. Manche Regeln der Eingabe%
+sprache legen die Reihenfolge, in der die Angaben gemacht werden
+m"ussen, nicht fest.
+Diese Daten k"onnen also beliebig aufeinanderfolgen,
+wie es zum Beispiel bei \nl{preliminary data} erlaubt ist
+(siehe 2.2.2, Abschnitt 1).
+In solchen F"allen wird das "Ubereinkommen getroffen, da\3 bei
+mehrfachen sich eventuell widersprechenden Angaben mit gleichem
+Informationsgehalt die zuletzt eingegeben gilt. F"ur Linksableitungen
+ist das die, die am weitesten rechts steht.
+\abschnitt
+\subheading{1) Beschreibung der Art der Partitur}\abs
+\def\T{\ |\ }
+Dieser Abschnitt enth"alt die Produktionsregeln,
+mit denen
+die Art des Musikst"ucks bestimmt werden kann und die die
+Notenliniensysteme erzeugen, in die anschlie\3end der Melodieverlauf
+eingetragen wird.
+Durch einige der hier aufgef"uhrten Regeln wird
+die Anzahl der zur Notation des Musikst"ucks ben"otigten Systeme
+und der Inhalt eines Systems
+festgelegt. Andere bieten die M"oglichkeit, die Angaben, die f"ur
+die Dauer eines Systems gelten und zu Beginn jeder Zeile des Systems
+notiert werden, zu erzeugen. Die Regeln, die zur Generierung der
+"Uberschriften einer Partitur ben"otigt werden, sind ebenfalls
+in diesem Abschnitt aufgef"uhrt.
+Anfang und Ende eines Musikst"ucks m"ussen besonders gekennzeichnet
+werden. Das ist vor allem deshalb n"otig, um
+eine Noteneingabe innerhalb einer normalen Texteingabe von dieser
+abzuheben. Damit k"onnen Partituren gemeinsam
+mit Texten eingegeben und verarbeitet werden.
+\abs
+{\tabskip0pt plus1fill
+\halign to\hsize{\hfill$#{}$%
+\tabskip0pt&$#$\hfill\tabskip0pt plus 1fill\cr
+\nm{music input} ::=& \nm{begin} \nm{piece} \nm{end}\cr
+\nm{begin} ::=& {\hbox{\bf!!}} \T \bs{\bf beginsong}\cr
+\nm{piece} ::=& \nm{several system} \T \nm{system} \T \nm{heading}
+\nm{piece}\cr
+\nm{several system} ::=& \bs{\bf system}
+ \lk\nm{system}\rk \T\cr
+&\bs{\bf system}
+ \lk\nm{system}\rk
+\nm{several system}\cr
+\nm{system} ::=& \nm{block} \T \nm{preliminary data} \nm{block}\cr
+\nm{block} ::=& \nm{melody} \T \nm{two} \T \nm{vocal}\cr
+\nm{two} ::=& \bs{\bf two}\lk\nm{melody}\rk \lk%
+ \nm{melody}\rk\cr
+\nm{vocal} ::=& \bs{\bf vocal}\lk\nm{melody}\rk \lk%
+ \nm{songtext}\rk \T
+\bs{\bf vocal}\lk\nm{two}\rk \lk%
+ \nm{songtext}\rk\cr
+\nm{preliminary data} ::=& \nm{voice} \T \nm{clef} \T \nm{signature} \T
+\nm{metre} \T
+ \nm{explanation} \T \cr
+&\nm{preliminary data} \nm{preliminary data}\cr
+\nm{heading} ::=& \bs{\bf title}\lk\nm{text}\rk \T
+ \bs{\bf poet}\lk\nm{text}\rk \T
+ \bs{\bf composer}\lk\nm{text}\rk\cr
+\nm{end} ::=& {\hbox{\bf!!}} \T \bs{\bf endsong}\cr
+}}
+\abs
+Die Eingabe eines Musikst"ucks beginnt und endet mit \nl{begin} bzw.
+\nl{end}, wobei entweder das Terminalzeichen {\bf!!} oder
+\bs{\bf beginsong} bzw. \bs{\bf endsong} benutzt werden kann.
+\par
+Mit \nl{piece} kann entschieden werden, ob ein System oder mehrere
+Systeme eingegeben werden sollen. Falls mehrere Systeme eingegeben
+werden, so werden diese hintereinander eingegeben. Dabei zeigt das
+Terminalwort \bs{\bf system} den Beginn eines weiteren Systems an.
+Zus"atzlich besteht mit \nl{heading} die M"oglichkeit, "Uberschriften
+einzugeben.\par
+In einem System \nl{system} k"onnen unterschiedliche St"ucke notiert
+werden. Diese Wahl findet mit \nl{block} statt.
+Einerseits kann es sich bei der Eingabe um eine einstimmige
+Melodie \nl{melody} handeln.
+Eine andere M"oglichkeit ist, da\3 zwei Stimmen in
+einem System dargestellt werden. Dazu wird \nl{two} benutzt. Die
+dritte M"oglichkeit, n"amlich die Eingabe eines Liedes, geschieht
+mit \nl{vocal}. \par
+Einem System k"onnen durch \nl{preliminary data} einleitende
+Angaben wie Instrumentenstimmen, Notenschl"ussel, Tonart, Taktart
+und Tempoangaben vorangestellt sein.
+\abschnitt
+\subheading{2) Beschreibung des Melodieverlaufs}
+\abs
+Die folgenden Produktionsregeln erzeugen den
+Melodieverlauf jeweils einer Stimme und den eventuell vorhandenen
+Liedtext.
+Die Melodie wird charakterisiert durch einfache Notenschriftzeichen wie
+Noten, Pausen,
+Vorzeichen und Taktunterteilungen. Die Regeln f"ur diese einfachen
+Zeichen werden in 4) erl"autert.
+Diese Zeichen k"onnen je nach Anordnung
+in Gruppen zusammengefa\3t werden, wie es in Abschnitt 5) beschrieben
+wird. Zus"atzlich kann eine Melodie
+schriftliche Erl"auterungen in Form eines Textes enthalten.
+\abs
+{\tabskip0pt plus1fill
+\halign to\hsize{\hfill$#{}$%
+\tabskip0pt&$#$\hfill\tabskip0pt plus 1fill\cr
+\nm{melody} ::=& \nm{primitives} \T \nm{group} \T \nm{change} \T
+ \nm{explanation}\cr
+\nm{primitives} ::=& \nm{note} \T \nm{rest} \T
+\nm{caesura} \T \nm{barline} \T\cr
+ & \nm{primitives} \nm{primitives}\cr
+\nm{group} ::=& \nm{simple nested group} \T
+ \nm{mismatched group} \T \cr
+ & \nm{articulation group} \T \nm{group} \nm{group}\cr
+\nm{change} ::=& \nm{clef} \T \nm{signature} \T \nm{metre} \T \nm{change}
+ \nm{change}\cr
+\nm{songtext} ::=& \nm{text} \T \nm{place}\nm{text} \T
+\nm{omission} \T
+\nm{songtext} \nm{songtext}\cr
+\nm{articulation group} ::=
+& \bs{\bf stac} \nm{melody} \bs{\bf noaccent} \T\cr
+& \bs{\bf staccatissimo} \nm{melody} \bs{\bf noaccent} \T\cr
+& \bs{\bf tenuto} \nm{melody} \bs{\bf noaccent}\cr
+}}
+\abs
+Der Melodieverlauf wird in \nl{melody} beschrieben. Die Melodie ist eine
+Anordnung von \nl{primitives}, \nl{group},
+\nl{change} und \nl{explanation}.
+\par
+Dabei handelt es sich bei \nl{primitives} um die Grundbausteine wie
+Noten, Pausen, Atemzeichen und Taktstriche.
+\par
+In \nl{group} werden alle Notengruppen beschrieben. Das sind
+\nl{primitives}, die mit Balken, Bogen oder Notenh"alse zu einer
+Einheit zusammengefa\3t werden. Unterschieden wird zwischen
+\nl{simple nested group}, \nl{mismatched group} und
+\nl{articulation group}.
+\nl{simple nested group}
+ist eine Gruppe, in der die \nl{primi\-tives} entweder
+mit einem Balken oder einem Bogen oder einem Notenhals verbunden sind.
+Gleichzeitig ist die
+M"oglichkeit gegeben, solche Gruppen ineinanderzuschachteln.
+\par
+Bei einer Noteneingabe kommt es sehr oft vor, da\3 solche Gruppen nicht
+``korrekt'' ineinandergeschachtelt sind, \dh es k"onnen
+"Uberschneidungen vorkommen.
+Eine Gruppe kann innerhalb
+einer anderen aufh"oren, obwohl sie au\3erhalb dieser Gruppe
+begonnen wurde. Dieser Fall ist mit \nl{mismatched group} abgedeckt.
+Auf diese beiden
+Notengruppen wird weiter unten in 5) genauer eingegangen.
+\par
+Mit \nl{articulation group} k"onnen Noten mit Akzentuierungen
+versehen werden. Dabei zeigen die Terminalw"orter
+\bs{\bf stac}, \bs{\bf staccatissimo} und \bs{\bf tenuto} jeweils
+den Beginn, das Terminalwort \bs{\bf noaccent} das Ende der
+Gruppe an. F"ur jede Note, die innerhalb dieser Gruppe vorkommt, gilt
+dann die Akzentuierung.
+\par
+Weiterhin kann w"ahrend des Melodieverlaufs ein Wechsel von
+Takt-- bzw. Tonart oder ein "Ubergang zu einem anderen Notenschl"ussel
+erfolgen. Dies wird mit \nl{change} bewerkstelligt.\par
+\nl{songtext} tritt in der Ableitung nur auf,
+wenn mit \nl{vocal} Vokalmusik
+eingegeben werden soll. Solch eine Textunterlage besteht aus W"ortern und
+dem Auslassungszeichen \nl{omission}. Dieses Zeichen ist n"otig,
+weil jeder Note eine Textsilbe zugeordnet werden soll. Das Auslassungs%
+zeichen wird benutzt, wenn es zu einer Note keinen Text gibt.
+Die Silben werden durch Leerzeichen voneinander getrennt und
+k"onnen mit einer Positionsangabe versehen werden,
+die allerdings nur f"ur
+die folgende Silbe gilt.
+Falls
+mehrere Noten f"ur eine Silbe ben"otigt werden, so m"ussen nach der
+Silbe entsprechend der Anzahl der Noten diese Auslassungszeichen
+eingef"ugt werden.\par
+\abschnitt
+\subheading{3) Beschreibung der einleitenden Angaben,
+zus"atzliche Anmerkungen}
+\abs
+Dieser Teil der Menge der Produktionsregeln erzeugt die
+oben erw"ahnten einleitenden Angaben, die f"ur
+das gesamte System gelten und zu Beginn jeder Zeile eines Systems
+stehen.
+Dazu geh"oren Instrumentenstimme,
+Notenschl"ussel, Vorzeichnung, Taktart, Tempo und Tonst"arke.
+\abs
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{\tabskip0pt plus1fill
+\halign to\hsize{\hfill$#{}$%
+\tabskip0pt&$#$\hfill\tabskip0pt plus 1fill\cr
+\nm{voice} ::=& \bs{\bf voice}\lk\nm{text}\rk\cr
+\nm{clef} ::=& \bs{\bf treble} \T \bs{\bf bass} \T \bs{\bf baritone} \T
+ \bs{\bf alto} \T \bs{\bf mezzo} \T \bs{\bf soprano} \T
+ \bs{\bf tenor} \cr
+\nm{signature} ::=& \bs{\bf signature}\lk\nm{several accid}\rk \T
+ \nm{sign}\cr
+\nm{several accid} ::=& \nm{accid} \T \nm{accid} \nm{several accid}\cr
+\nm{accid} ::=& \nm{accidental} \nm{simple note} \T
+\nm{octave} \nm{accidental}
+ \nm{simple note} \T \cr
+ &\nm{accidental} \nm{octave} \nm{simple note}\cr
+\nm{sign} ::=&
+\bs{\bf C} \T \bs{\bf G} \T \bs{\bf D} \T \bs{\bf A} \T \bs{\bf E}
+ \T \bs{\bf H} \T \bs{\bf Fis} \T
+ \bs{\bf Cis} \T \cr
+ &\bs{\bf a} \T \bs{\bf e} \T
+\bs{\bf h} \T \bs{\bf fis} \T
+\bs{\bf cis} \T \bs{\bf gis} \T \bs{\bf dis} \T
+\bs{\bf ais} \T \cr
+&\bs{\bf Ces} \T
+\bs{\bf Ges} \T \bs{\bf Des} \T \bs{\bf As} \T
+ \bs{\bf Es} \T \bs{\bf B} \T
+ \bs{\bf F} \T \cr
+ &\bs{\bf as} \T \bs{\bf es} \T
+ \bs{\bf b} \T \bs{\bf f} \T \bs{\bf c} \T \bs{\bf g} \T \bs{\bf d}\cr
+\nm{metre} ::=& \bs{\bf meter}\lk\nm{number}\slash\nm{number}\rk \T
+\bs{\bf allabreve}
+ \T \bs{\bf hC} \T \bs{\bf dC}\cr
+\nm{explanation} ::=& \bs{\bf text}\lk\nm{text}\rk \T
+ \bs{\bf text}\lk\nm{place} \nm{text}\rk \T\cr
+ &\nm{recital} \T
+ \lk\nm{place} \nm{recital}\rk \cr
+\nm{place} ::=& \bs{\bf\us} \T
+\bs{\bf\us l} \T \bs{\bf\us c} \T \bs{\bf\us r} \T
+\bs{\bf\us n} \T \bs{\bf\us v} \T \bs{\hbox{\bf\os\ }} \T
+ \bs{\hbox{\bf\os\ l}} \T
+ \bs{\hbox{\bf\os\ c}} \T
+\bs{\hbox{\bf\os\ r}} \T \bs{\hbox{\bf\os\ n}}\cr
+\nm{recital} ::=&
+\bs{\bf dacapo} \T \bs{\bf dalsegno} \T
+ \bs{\bf unisono} \T \bs{\bf cantusfirmus} \T
+ \bs{\bf crescendo} \T\cr
+& \bs{\bf decrescendo} \T \bs{\bf diminuendo} \T
+ \bs{\bf forte} \T \bs{\bf fortissimo} \T\cr
+& \bs{\bf fortissimoposs} \T \bs{\bf mezzoforte} \T
+ \bs{\bf mezzopiano} \T \bs{\bf piano} \T\cr
+& \bs{\bf pianissimo} \T
+ \bs{\bf pianissimoposs} \T
+ \bs{\bf fortepiano} \T \bs{\bf forzato} \T\cr
+& \bs{\bf rinforzando} \T \bs{\bf sforzato} \T
+ \bs{\bf sforz} \T \bs{\bf decr} \T \bs{\bf rallentando} \T\cr
+& \bs{\bf ritardando} \T \bs{\bf ritenuto} \T
+ \bs{\bf tr} \T \bs{\bf staccato} \T
+\bs{\bf fine} \T
+ \bs{\bf tacet}
+\cr}}
+\abs
+Einleitende Angaben, die zu einem System gemacht werden k"onnen,
+werden in \nl{preliminary data} beschrieben. Die Instrumentenstimme
+kann mit \nl{voice} durch das Terminalzeichen \bs{\bf voice} eingegeben
+werden, wobei auf das Schl"usselwort in Klammern der Name der
+Instrumentenstimme folgen mu\3. \par
+Eine andere m"ogliche Angabe betrifft den Notenschl"ussel. Dabei
+f"uhrt die Variable \nl{clef} zu einem Terminalzeichen, denn die
+Notenschl"ussel werden durch Schl"usselw"orter angegeben.\par
+In der Regel f"ur \nl{signature} wird erkl"art, wie die Tonart eingegeben
+werden kann. Daf"ur gibt es zwei M"oglichkeiten. Entweder
+wird die Tonart durch ein Schl"usselwort aus der Regel f"ur
+\nl{sign} beschrieben oder durch die expliziten Angaben der
+jeweiligen Vorzeichen. Dies geschieht durch die Eingabe der Tonh"ohe,
+auf die das Vorzeichen Einflu\3 nehmen soll, und dem gew"unschten
+Vorzeichen.\par
+Die Taktart \nl{metre} wird durch das Schl"usselwort \bs{\bf meter} und
+der Taktart eingegeben. Abk"urzende Notationen f"ur
+Taktarten aus der Mensuralnotation wie allabreve k"onnen durch
+die entsprechenden Schl"usselw"orter
+erreicht werden.\par
+Die letzte einleitende Angabe, die m"oglich ist, kann eine
+schriftliche Erkl"arung \zB zum Tempo oder der Tonst"arke
+des Musikst"ucks sein. Dazu wird in \nl{explanation} die
+erl"auternde Angabe in geschweifte Klammern geschrieben, der das
+Schl"usselwort \bs{\bf text} vorangeht. Mit \nl{place} kann
+bestimmt werden, wohin der Text geschrieben werden soll: ober-- oder
+unterhalb des Notenliniensystems (\bs{\bf\os\ }, \bs{\bf\us}),
+links-- oder rechtsb"undig ({\bf l, r}),
+zentriert ({\bf c})
+oder so, da\3 die Breite des darunterstehenden
+Notenschriftzeichens
+der Breite des schriftlichen Hinweises nicht angepa\3t wird ({\bf n}).
+Anmerkungen, die unterhalb der Notenzeile stehen, stehen eigentlich
+in der f"ur Liedtexte vorgesehenen Zeile. Mit {\bf v} k"onnen sie
+direkt unter die Notenzeile gesetzt werden.
+\par
+Der Gebrauch von \nl{recital} bietet die M"oglichkeit, oft vorkommende
+Vortragsbezeichnungen oder Angaben zum Tempo bzw. zur Betonung
+mit Hilfe einer Kontrollsequenz einzuf"ugen. Die genaue
+Erkl"arung, durch was diese Kontrollw"orter bei der Ausgabe
+ersetzt werden, kann in 3.4 gefunden werden.
+\abschnitt
+\subheading{4) Beschreibung der Grundbausteine f"ur einen Takt}\abs
+Mit den folgenden Produktionsregeln k"onnen die elementaren
+Zeichen der Notenschrift wie Noten, Pausen, Versetzungszeichen
+und Taktstriche generiert werden.
+\abs
+{\tabskip0pt plus1fill
+\halign to\hsize{\hfill$#{}$%
+\tabskip0pt&$#$\hfill\tabskip0pt plus 1fill\cr
+\nm{note} ::=& \nm{simple note} \T
+\nm{note specification} \nm{simple note}\cr
+\nm{simple note} ::=& {\bf c} \T {\bf d} \T {\bf e} \T {\bf f}
+\T {\bf g} \T {\bf a} \T {\bf h} \cr
+\nm{note specification} ::=&
+\nm{octave} \T \nm{accidental} \T
+\nm{duration} \T\cr
+&\nm{punctuation} \T
+ \nm{note specification}
+ \nm{note specification}
+\cr
+\nm{octave} ::=& {\hbox{\bf,}} \T {\hbox{\bf{,,}}} \T
+{\hbox{\bf{,,,}}} \T {\hbox{\bf `}}
+\T {\hbox{\bf{`}{`}}} \T
+{\hbox{\bf{{`}{`}{`}}}} \T
+{\hbox{\bf{{`}{`}{`}{`}}}} \cr
+\nm{accidental} ::=& {\bf x} \T {\bf{xx}} \T {\bf{b}} \T {\bf{bb}} \T
+{\bf{n}}\cr
+\nm{duration} ::=& {\bf 1} \T
+{\bf 2} \T {\bf 4} \T {\bf 8} \T {\bf 6} \T {\bf 3} \T {\bf 5}
+\T {\bf 7} \cr
+\nm{punctuation} ::=& \nm{dot} \T
+\nm{dot} \nm{punctuation} \cr
+\nm{dot} ::=& {\hbox{\bf.}}\cr
+\nm{rest} ::=& \nm{rest specification} {\bf p} \T {\bf{p}} \cr
+\nm{rest specification} ::=& \nm{duration} \T
+\nm{punctuation} \T \cr
+&\nm{rest specification}
+ \nm{rest specification}\cr
+\nm{caesura} ::=& {\bf 0p}\cr
+\nm{barline} ::=& \strich\ \T\ \strich\strich\ \T
+\ \gleich\ \T\ \strich\strich\dpkt\ \T
+\ \dpkt\strich\strich\ \T\ \dpkt\strich\strich\dpkt
+\cr}}
+\abs
+Eine Note, dargestellt
+durch \nl{note}, besteht entweder aus \nl{simple note} oder
+\nl{simple note} versehen mit der \nl{note specification}. Dabei
+gibt \nl{simple note} den Notennamen an, \nl{note specification} n"ahere
+Angaben zur Oktavlage, Vorzeichen und Tondauer.
+Die Oktave kann mit einem der m"oglichen Terminalzeichen f"ur
+\nl{octave} eingegeben werden und das Vorzeichen wird durch die
+Anwendung der Regel f"ur
+\nl{accidental} beschrieben. Die Tondauer ist eine der m"oglichen
+Produktionen f"ur \nl{duration}, eventuell zusammen mit einer
+Punktierung, die mit \nl{punctuation} dargestellt wird.
+\par
+Pausen werden mit \nl{rest} analog zu \nl{note} abgeleitet. Das
+Atemzeichen \nl{caesura}
+gilt als Pause mit der Dauer 0, da es keinen Einflu\3 auf
+den Takt hat. \par
+Zur Einteilung eines Taktes werden noch die verschiedenen Taktstriche
+ben"otigt. Die Terminalzeichen daf"ur werden durch Anwendung der
+Regel f"ur \nl{barline} erreicht.
+\abschnitt
+\subheading{5) Beschreibung der Notengruppen}\abs
+Die hier beschriebenen Regeln generieren alle Arten von
+Notengruppierungen. Auf diese Weise werden die
+einfachen Notenschriftzeichen wie Noten, Pausen und Vorzeichen,
+die in Abschnitt 4) beschrieben werden,
+zu Einheiten zusammengefa\3t.
+Das ist \zB der Fall bei Verbalkungen und Ligaturen.
+\abs
+{\tabskip0pt plus1fill
+\halign to\hsize{\hfill$#{}$%
+\tabskip0pt&$#$\hfill\tabskip0pt plus 1fill\cr
+\nm{simple nested group} ::=& \bs{\bf beam}\lk%
+\nm{nested group}\rk \T
+ \bs{\bf slur}\lk\nm{nested group}\rk \T\cr
+ &\bs{\bf cresc}\lk\nm{nested group}\rk \T
+ \bs{\bf descresc}\lk\nm{nested group}\rk\cr
+ &\bs{\bf chord}\lk\nm{several notes}\rk \cr
+\nm{nested group} ::=& \nm{primitives} \T \nm{explanation} \T
+\nm{change} \T \cr
+&\nm{simple nested group} \T \nm{articulation group} \T\cr
+&\nm{nested group} \nm{nested group}\cr
+\nm{mismatched group} ::=& \bs{\bf group}\lk\nm{primitives}\rk
+ \nm{special group} \T\cr
+ &\bs{\bf group}\lk\nm{chord}\rk \nm{special group}\cr
+\nm{special group} ::=& \bs{\bf gslur}\lk\nm{sign number}\rk \T
+ \bs{\bf gbeam}\lk\nm{sign number}\rk \cr
+ &\bs{\bf gcresc}\lk\nm{sign number}\rk \T
+ \bs{\bf gdecresc}\lk\nm{sign number}\rk \cr
+ &\nm{special group}\nm{special group}\cr
+\nm{chord} ::=& \bs{\bf chord}\lk%
+\nm{several notes}\rk \T \nm{chord} \nm{chord}\cr
+\nm{several notes} ::=& \nm{note} \T \nm{note} \nm{several notes}\cr
+\nm{sign number} ::=& \nm{number} {\hbox{\bf-}} \nm{number} \T
+\nm{sign number} {\bf,} \nm{number} {\hbox{\bf-}} \nm{number}
+\cr}}
+\abs
+Die Unterschiede der einzelnen Notengruppen wurden schon in 2)
+erl"autert. In \nl{simple nested group}
+gibt das jeweilige Schl"usselwort an, um
+welche Art von Gruppe es sich handelt. \bs{\bf beam} gibt Anweisung,
+die folgende \nl{nested group} zu verbalken, \bs{\bf slur} spannt einen
+Bogen "uber die Gruppe, \bs{\bf cresc} bzw. \bs{\bf decresc} steht
+f"ur crescendo bzw. decrescendo. Bis auf \nl{chord} k"onnen die
+Gruppen von \nl{primitives} gebildet werden. Mit \nl{chord}
+werden die in \nl{several notes} notierten Noten zu einem
+Akkord verbunden. Au\3er Noten d"urfen in \nl{several notes}
+keine anderen Zeichen vorkommen.
+Au\3erdem erlaubt es
+das Nichtterminalsymbol \nl{simple nested group}, die eben
+beschriebenen Gruppen ineinanderzuschachteln. Diese Regel ergibt aber
+nur ``korrekt'' geschachtelte Gruppen, also solche, die sich
+nicht gegenseitig "uberlappen.
+Ein Beispiel f"ur eine Eingabe mit \nl{simple nested group} w"are
+$$\hbox{\bf \ks{slur}\{\ks{beam} \{8`a bh n{`}{`}c\}\}}\;.$$
+\par
+\vskip-0.5cm
+{\universal
+\hsize9.5cm
+\parindent6cm
+\nointerlineskip\beginsong
+\vio\C
+\group{\\{\a3}\\{\b4\a4}\\{\n5\a5}}{\\{3}\\{4}\\{5}}\lbeam13\uslur13\go
+\hfill\hbox{}\endsong}
+\vskip-0.6cm\abs
+Falls dies nicht der Fall ist,
+mu\3 die Gruppe mit Hilfe des Nichtterminalzeichens
+\nl{mismatched group} hergeleitet werden. Daf"ur stehen hinter dem
+Schl"usselwort \bs{\bf group} die \nl{primitives},
+die die Gruppe bilden.
+Diese Angaben werden gefolgt von der Variablen \nl{special group}.
+Sie gibt durch die Stellennummer der Notenschriftzeichen
+an, welche Zeichen wie
+verbunden werden:
+$$\hbox{\ks{group}{\bf \{b4.`a 8a g ba\} \ks{gslur}\{1-2\}
+\ks{gbeam}\{2-4\}}}$$
+\vskip-.5cm
+\par
+{\hsize10cm\parindent5.5cm
+\universal\nointerlineskip\beginsong
+\vio\C%
+\group{\\{\b3\v3\.1}\\{\a3}\\{\a2}\\{\b3\a3}}
+{\\{3}\\{3}\\{2}\\{3}}\ubeam24\lslur12\go
+\hfill\hbox{}\endsong}
+\vskip-0.6cm\abs
+\abschnitt
+\subheading{6) Zeichen und Zeichenketten}\abs
+Abschnitt 6) enth"alt die Produktionsregeln, die zur Erzeugung
+der schriftlichen Er\-l"au\-terungen notwendig sind. Schriftlich bedeutet
+hier, da\3 es sich um Angaben handelt, die mit Hilfe von
+normalen Text gemacht werden.
+\abs
+{\tabskip0pt plus1fill
+\halign to\hsize{\hfill$#{}$%
+\tabskip0pt&$#$\hfill\tabskip0pt plus 1fill\cr
+\nm{word} ::=& \nm{letter} \T \nm{digit} \T \nm{letter} \nm{word} \T
+\nm{digit} \nm{word}\cr
+\nm{letter} ::=& {\bf a} \T
+{\bf b} \T {\bf c} \T {\bf d} \T {\bf e} \T {\bf f} \T {\bf g}
+\T {\bf h} \T {\bf i} \T {\bf j} \T {\bf k} \T {\bf l}
+\T {\bf m} \cr
+&\T {\bf n} \T {\bf o} \T {\bf p} \T {\bf q} \T {\bf r}
+\T {\bf s} \T {\bf t} \T {\bf u} \T {\bf v} \T {\bf w} \T {\bf x}
+\T {\bf y} \T {\bf z} \T\cr
+&{\bf A} \T {\bf B} \T {\bf C} \T {\bf D}
+\T {\bf E} \T {\bf F} \T {\bf G} \T {\bf H} \T {\bf I} \T {\bf J}
+\T {\bf K} \T {\bf L} \T {\bf M} \T\cr
+&{\bf N} \T {\bf O} \T {\bf P}
+\T {\bf Q} \T {\bf R} \T {\bf S} \T {\bf T} \T {\bf U} \T {\bf V}
+\T {\bf W} \T {\bf X} \T {\bf Y} \T {\bf Z}\cr
+\nm{digit} ::=& {\bf 0} \T {\bf 1} \T
+{\bf 2} \T {\bf 3} \T {\bf 4} \T {\bf 5} \T {\bf 6} \T {\bf 7}
+\T {\bf 8} \T {\bf 9}\cr
+\nm{number} ::=& \nm{digit} \T \nm{digit} \nm{number}\cr
+\nm{text} ::=& \nm{word} \T \nm{special character} \T
+ \nm{text} \nm{text}\cr
+\nm{special character} ::=&\ {\hbox{\bf,}}\ \T\ {\hbox{\bf;}}\ \T
+ \ {\hbox{\bf.}}\ \T\ {\hbox{\bf!}}\ \T
+ \ {\hbox{\bf?}}\ \T\ {\blank}\ \T
+ \ {\hbox{\bf*}}\ \T\ {\hbox{\bf+}}\ \T
+ \ {\hbox{\bf-}}\ \T\ {\hbox{\bf`}}\ \T
+ \ {\hbox{\bf'}}\ \T\ \bs\ \T\ {\hbox{\~\ }}\cr
+\nm{omission} ::=&\slash
+\cr}}
+\abs
+W"orter, die in der Syntax mit \nl{word} bezeichnet werden, sind
+eine Folge von Buchstaben und Zahlen. \nl{number} beschreibt eine
+beliebige positive Zahl.\par
+Aus \nl{word} und \nl{special character} wird eine beliebige
+Zeichenkette \nl{text} gebildet.\par
+Die Bedeutung von \nl{omission}, dem Auslassungszeichen, wurde
+in 2) schon erw"ahnt, als \nl{songtext} erkl"art wurde.
+\abschnitt
+%
+%
+Eine
+andere gebr"auchliche Methode zur Darstellung von Produktionsregeln
+einer \kf en \G\ sind sogenannte Syntaxdiagramme. Aus diesem Grund
+wird in
+Anhang C
+das Regelsystem der \G\ f"ur die Noteneingabesprache
+der Vollst"andigkeit halber mit Hilfe der Syntaxdiagramme
+veranschaulicht.
+\abschnitt
+\abschnitt
+Nachdem in diesem Kapitel die Syntax der Noteneingabesprache mit Hilfe
+einer \kf en \G\ beschrieben wurde, wird nun ein Leitfaden f"ur die
+Anwendung der Eingabesprache gegeben.
+In dieser Anleitung wird die Bedeutung und Handhabung der
+Terminalsymbole erl"autert. Dabei wird es sich nicht vermeiden lassen,
+da\3 zu den \kf en Regeln der Syntaxbeschreibung einige Anweisungen
+hinzukommen, die nicht mehr \kf\ sind. Diese sind n"otig, um
+Mehrdeutigkeiten oder Fehler bei der "Ubersetzung auszuschlie\3en. Das
+Thema des n"achsten Kapitels ist also weniger die Syntax als die
+Semantik der Eingabesprache.
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc3.tex b/macros/mtex/documentation/mdoc3.tex
new file mode 100644
index 0000000000..9d5b2bf47c
--- /dev/null
+++ b/macros/mtex/documentation/mdoc3.tex
@@ -0,0 +1,811 @@
+\heading{Semantische Struktur der Noteneingabesprache}
+
+Die Bedeutung der Terminalsymbole wird ausgehend von der kleinsten
+Einheit, der Note, erkl"art. Es werden die Terminalzeichen in einem
+Abschnitt zusammengefa\3t, die ihrer Bedeutung nach zusammengeh"oren.
+Zuerst wird beschrieben, aus welchen Terminalsymbolen einzelne
+T"one und einfache Zeichen bestehen, danach folgt die Erl"auterung zur
+Eingabe von Zeichengruppen, von ein-- und mehrstimmigen Musikst"ucken in
+einem bzw. mehreren System und von Liedtexten.
+\abschnitt\abschnitt
+\centerline{\bf 3.1 Eingabe eines Tons}
+\abschnitt
+Ein Ton setzt sich aus zwei Komponenten zusammen, der Tonh"ohe und der
+Tondauer. Die Tonh"ohe wird bestimmt von dem Notennamen, der Oktavlage
+und etwaigen Versetzungszeichen. Die Tondauer berechnet sich aus dem
+Zeitwert der Note und eventuellen Punktierungen. Im folgenden wird
+beschrieben, wie diese Informationen in der Eingabesprache dargestellt
+werden m"ussen.
+\absatz
+\subheading{Notennamen}
+Die Notennamen werden entsprechend dem Sprachgebrauch, der sich am
+jeweiligen Notenschl"ussel orientiert,
+durch die
+Buchstaben {\bf c}, {\bf d}, {\bf e}, {\bf f}, {\bf g},
+{\bf a}, {\bf h} benannt.
+\absatz
+\subheading{Oktave}
+Angaben zu der Oktavlage werden mit Hilfe von Kommata bzw. Hochkommata
+gemacht. Es gelten folgende Regeln:
+$$\align
+\hbox{\bf{`}{`}{`}{`}}\,&\q\hbox{viergestrichene Oktave}\\
+\hbox{\bf{`}{`}{`}}\,&\q\hbox{dreigestrichene Oktave}\\
+\hbox{\bf{`}{`}}\,&\q\hbox{zweigestrichene Oktave}\\
+\hbox{\bf`}\,&\q\hbox{eingestrichene Oktave}\\
+\hbox{\bf,}\,&\q\hbox{kleine Oktave}\\
+\hbox{\bf,,}\,&\q\hbox{gro\3e Oktave}\\
+\hbox{\bf ,,,}\,&\q\hbox{Kontra--Oktave}\endalign$$
+\absatz
+\subheading{Versetzungszeichen}
+Bei den Versetzungszeichen wird unterschieden, ob der Ton mittels
+eines Kreuzes $\sharp$
+erh"oht oder mit Versetzungszeichen $\flat$ erniedrigt
+wird. Die dritte M"oglichkeit, das Aufl"osungszeichen $\natural$,
+hebt vorherige Versetzungszeichen auf.
+$$\vbox{\halign{\hfil#&#\hfil&#\hfil\cr
+\hbox{\bf x}\q&\q\hbox{Kreuz}\q&\q{\music\msharp}\cr
+\hbox{\bf xx}\q&\q\hbox{Doppelkreuz}\q&\q{\music\mdoublesharp}\cr
+\hbox{\bf b}\q&\q\hbox{Be}\q&\q{\music\mflat}\cr
+\hbox{\bf bb}\q&\q\hbox{Doppel--Be}\q&\q{\music\mdoubleflat}\cr
+\hbox{\bf n}\q&\q\hbox{Aufl"osungszeichen}\q&\q{\music\mnatural}\cr}}$$
+\absatz
+\subheading{Tondauer}
+Der Zeitwert einer Note wird durch eine positive, ganze Zahl beschrieben,
+wobei folgende Festlegungen getroffen werden:
+$$\vbox{\halign
+{\hfil#&#\hfil&#\hfil\cr
+{\bf 1}\q&\hbox{ganze Note}\q&\q{\music\g1\global\sk=0pt}\cr
+{\bf 2}\q&\hbox{halbe Note}\q&\q{\music\h1\global\sk=0pt}\cr
+{\bf 4}\q&\hbox{viertel Note}\q&\q{\music\v1\global\sk=0pt}\cr
+{\bf 8}\q&\hbox{achtel Note}\q&\q{\music\a1\global\sk=0pt}\cr
+{\bf 6}\q&\hbox{sechzehntel Note}\q&\q{\music\s1\global\sk=0pt}\cr
+{\bf 3}\q&\hbox{zweiunddrei\3igstel Note}\q
+&\q{\music\z1\global\sk=0pt}\cr
+{\bf 5}\q&\hbox{vierundsechzigstel Note}\q&\q{\music\d1\global\sk=0pt}\cr
+{\bf 7}\q&\hbox{einhundertachtundzwanzigstel Note}
+\q&\q{\music\o1\global\sk=0pt}\cr}}$$
+Punktierungen verl"angern die Dauer eines Tones. In der
+herk"ommlichen Schreibweise wird die Punktierung durch Punkte notiert.
+Diese Notation wird f"ur die Eingabesprache "ubernommen.
+Punktierungen werden demnach als eine gewisse Anzahl von Punkten
+eingegeben.
+\abs
+Die Informationen Notenname, Oktave, Versetzungszeichen und Tondauer
+machen zusammen den Ton aus.
+\abs
+F"ur die
+Reihenfolge, in der diese Angaben erfolgen m"ussen, gibt es
+nur eine Regel:
+Der Notenname mu\3 nach allen anderen Informationen zu einem Ton
+stehen, er bildet demnach den Abschlu\3 einer Tonangabe.
+Alle anderen
+Angaben k"onnen in beliebiger Reihenfolge
+davor stehen, d"urfen aber nicht
+durch Leerzeichen voneinander getrennt werden, sondern
+m"ussen direkt aufeinanderfolgen.
+Ein Ton wird also durch eine Zeichenfolge, die aus Terminalsymbolen
+gebildet wird, beschrieben. Das Ende dieser Zeichenfolge ist der
+Notenname. Jede Angabe kann weggelassen werden, nur der Notenname
+mu\3 immer eingegeben werden. Falls Angaben fehlen, werden die Werte f"ur
+die Tondauer und f"ur die Oktave von der vorherigen Note "ubernommen,
+Punktierungen und Versetzungszeichen fallen weg. Gibt es keine vorherige
+Note, so werden f"ur die Tondauer der Wert {\bf 4}
+und f"ur die Oktave der
+Wert {\bf`} angenommen. Bei mehrfacher Setzung der gleichen Information
+zu einem Ton wird der Wert als g"ultig angesehen, der vor Erreichen
+des Notennamens zuletzt gelesen wurde.
+$$\hbox{\bf {`}{`}2d 3`e x4a c 2.h }$$
+\vskip-0.4cm
+\par
+{\hsize10.5cm\parindent5.5cm
+\nointerlineskip\beginsong\vio\C
+\universal
+\h6\z0\global\advance\sk1.5\nhw\x3\v3\v{-2}\h4\.1\hfill\hbox{}\endsong}
+\vskip-1cm\abs
+\abschnitt
+Au\3er Noten gibt es noch andere Zeichen, die in das Notenliniensystem
+geschrieben werden k"onnen. Das sind Pausen, Atemzeichen, Taktstriche,
+Notenschl"ussel und Taktangaben.
+Die Eingabevorschrift f"ur Notenschl"ussel und f"ur die Taktart
+wird in Abschnitt 3.5 beschrieben. Die anderen Zeichen werden
+im n"achsten Abschnitt erkl"art.
+\par\vfill\eject
+\centerline{\bf 3.2 Pausen, Atemzeichen und Taktstriche}
+\abschnitt
+Die Pausen werden "ahnlich wie die T"one durch einen Buchstaben
+zusammen mit einer Angabe zur Pausendauer eingegeben.
+Der Buchstabe, der daf"ur benutzt wird, ist das p. Die Dauer der Pause
+wird genauso wie die Tondauer angegeben und kann, im Gegensatz
+zum Pausennamen {\bf p},
+wegfallen. Das Atemzeichen ist eine spezielle Pause,
+sie hat die Dauer 0. F"ur eine Achtelpause w"urde dann also
+8p eingegeben werden, f"ur ein Atemzeichen 0p.
+\abs
+Zur Taktunterteilung werden Taktstriche benutzt. Diese werden analog
+zur herk"ommlichen Notation eingegeben, \dh
+$$\vbox{\halign{\hfil#&#\hfil&#\hfil\cr
+\strich\q&\q\hbox{einfacher Taktstrich}
+\q&\q{\music\|\global\sk=0pt}\cr
+\strich\strich\q&\q\hbox{Doppelstrich}
+\q&\q{\music\doublebarline\global\sk=0pt}\cr
+\gleich\q&\q\hbox{Schlu\3strich}
+\q&\q{\music\=\global\sk=0pt}\cr
+\strich\strich\dpkt\q&\q\hbox{Wiederholungszeichen, Beginn}
+\q&\q{\music\rightrepeat\global\sk=0pt}\cr
+\dpkt\strich\strich\q&\q\hbox{Wiederholungszeichen, Ende}
+\q&\q{\music\leftrepeat\global\sk=0pt}\cr
+\dpkt\strich\strich\dpkt\q&\q
+\hbox{Wiederholungszeichen, Ende und Beginn}
+\q&\q{\music\leftrightrepeat\global\sk=0pt}\cr}}$$
+Damit k"onnten zwei Takte eines Musikst"ucks wie folgt aussehen:
+{\bf 4`e g f 8f 8h\strich 4g f e p=}.
+\abschnitt\abschnitt
+\centerline{\bf 3.3 Notengruppen}
+\abschnitt
+Au\3er einzelnen Noten gibt es noch Notengruppen, \dh
+Noten, die vertikal bzw. horizontal verbunden werden.
+In der
+herk"ommlichen Notation ist es
+erlaubt, Notengruppen beliebig ineinander%
+zuschachteln. Dadurch wird die "Ubertragung in eine lineare
+Notation erschwert.
+Es kann vorkommen, da\3 innerhalb einer
+Gruppe verbalkter Noten ein Bogen beginnt, der aber au\3erhalb
+dieser Gruppe endet.
+Diese Notengruppen sollten bei der Eingabe auch als
+solche erkennbar sein. Aus diesem Grund wurde eine Eingabe
+durch ein Makro, auf das in Klammern die zur Gruppe geh"orenden
+Noten und Zeichen folgen, gew"ahlt. Probleme bereitete dabei
+die Erkennung zusammengeh"orender Klammern. Deshalb werden zur
+Eingabe von Notengruppen zwei M"oglichkeiten bereitgestellt.
+Die erste M"oglichkeit behandelt den Fall, da\3 die Gruppen
+nur einfach ineinandergeschachtelt werden, die zweite deckt den
+Fall der einander "uberschneidenden oder ``inkorrekt geschachtelter''
+Gruppen ab.
+\absatz
+\subheading{Einfach geschachtelte Notengruppen}
+Die folgenden Makros werden immer in Verbindung mit
+einer Anzahl von Noten benutzt, die in Klammern nach dem
+Makro folgen.
+Die Noten werden dabei in der oben erkl"arten Weise eingegeben.
+Diese Noten werden in der Art verbunden, die
+durch das jeweilige Schl"usselwort beschrieben wird.\par
+Akkorde werden durch das Makro \bs{\bf chord} eingegeben.
+$$\hbox{\ks{chord}{\bf \{`4c e g\}}}$$
+\vskip-0.4cm\par
+{\hsize8.5cm\parindent7.0cm
+\universal
+\nointerlineskip\beginsong\vio\C
+\lchord\v{-2}\v0\v2\endchord\hfill\hbox{}\endsong}
+\vskip-1cm\abs
+Mit dem Schl"usselwort \bs{\bf beam} werden die Noten verbalkt.
+Die Tondauer der Noten gibt gleichzeitig
+die Anzahl der Balken an.
+$$\hbox{\ks{beam}{\bf \{8`a h {`}{`}c\}}}$$
+\vskip-0.4cm\par
+{\hsize9.5cm\parindent6.5cm
+\universal
+\nointerlineskip\beginsong\vio\C%
+\group{\\{\a3}\\{\a4}\\{\a5}}{\\{3}\\{4}\\{5}}\lbeam13\go%
+\hfill\hbox{}\endsong}
+\vskip-1cm\abs
+\ks{slur} wird ben"otigt, wenn "uber mehrere
+Noten ein Bogen gespannt werden soll.
+F"ur die "Ubergangsbe\-zeich\-nungen crescendo und decrescendo werden
+in der gleichen Weise \bs{\bf cresc} und \bs{\bf decresc} benutzt.
+$$\hbox{\ks{cresc}{\bf \{8`a h {`}{`}2c\}}}$$
+\vskip-0.4cm\par
+{\hsize9.5cm\parindent6.5cm
+\universal
+\nointerlineskip\beginsong\vio\C%
+\cresc{\a3\v4\h5}%
+\hfill\hbox{}\endsong}
+\vskip-1cm\abs
+Diese Kontrollsequenzen k"onnen ineinandergeschachtelt werden.
+Das geht allerdings nur, wenn eine Notengruppe in der Gruppe aufh"ort, in
+der sie begonnen hat.
+$$\hbox{\bf \ks{slur}\{\ks{beam} \{8`a bh n{`}{`}c\}\}}\qquad\hbox{oder}
+\qquad\hbox{\bf \ks{slur}\{4{`}{`}f \ks{beam} \{8f e d\}\}}$$
+\vskip-0.4cm\par
+{\hsize10.5cm\universal
+\parindent5.5cm
+\nointerlineskip\beginsong
+\vio\C%
+\group{\\{\a3}\\{\b4\a4}\\{\n5\a5}}{\\{3}\\{4}\\{5}}\lbeam13\uslur13\go
+\group{\\{\v8}\\{\a8}\\{\a7}\\{\a6}}{\\{8}\\{8}\\{7}\\{6}}%
+\lbeam24\uslur14\go\hfill\hbox{}
+\endsong}
+\vskip-1cm\abs
+\absatz
+\subheading{"Uberlappende Notengruppen}
+F"ur nicht einfach geschachtelte Gruppen, also "Uber\-schneidungen
+der oben genannten Gruppen, mu\3 eine andere L"osung gefunden werden.
+Damit klar ist, worum es geht, werden zun"achst mehrere Beispiele
+f"ur solche Gruppen gezeigt:
+\par
+{\hsize11.2cm\parindent4.8cm
+\nointerlineskip\beginsong\vio\C%
+\group{\\{\b3\v3\.1}\\{\a3}\\{\a2}\\{\b3\a3}}
+{\\{3}\\{3}\\{2}\\{3}}\ubeam24\lslur12\go\|%
+\group{\\{\h7\.1}\\{\h7\.1}\\{\v7\.1}}{\\{7}\\{7}\\{7}}\uslur12\uslur23%
+\go\hfill\hbox{}\endsong}
+\vskip-1cm\abs
+Die Eingabe erfolgt nun mit einem Makro \ks{group}, dem in Klammern
+alle Zeichen folgen, die zur Gruppe geh"oren. Das Ende der Gruppe ist
+erreicht, wenn alle darin enthaltenen Gruppen abgeschlossen sind.
+Nach der Kontrollsequenz \ks{group} m"ussen die Angaben dar"uber
+gemacht werden, was mit den zur Gruppe geh"orenden Zeichen
+geschehen soll.
+Dazu gibt es die Makros \ks{gbeam}, \ks{gslur},
+\ks{gcresc} und \ks{gdecresc}.
+Sie geben an, welche Noten miteinander auf welche Art verbunden werden.
+Daf"ur stehen in der Parameterliste die erste und letzte Note
+einer inneren Gruppe. Die Zeichen werden in diesen Listen durch
+ihre Stellennummer in der gesamten Gruppe angegeben.
+$$\hbox{\ks{group}{\bf \{{`}{`}2.e .e .4e\}}
+\ks{gslur}{\bf \{1-2,2-3\}}}$$
+\vskip-0.4cm\par
+{\hsize10.0cm\parindent6.0cm
+\nointerlineskip\beginsong\vio\C%
+\group{\\{\h7\.1}\\{\h7\.1}\\{\v7\.1}}{\\{7}\\{7}\\{7}}\uslur12\uslur23%
+\go\hfill\hbox{}\endsong}
+\vskip1.0cm\abs
+$$\hbox{\ks{group}{\bf \{b4.`a 8a g ba\} \ks{gslur}\{1-2\}
+\ks{gbeam}\{2-4\}}}$$
+\vskip -0.4cm\par
+{\hsize10.0cm\parindent6.0cm
+\nointerlineskip\beginsong\vio\C%
+\group{\\{\b3\v3\.1}\\{\a3}\\{\a2}\\{\b3\a3}}
+{\\{3}\\{3}\\{2}\\{3}}\ubeam24\lslur12\go%
+\hfill\hbox{}\endsong}
+\vskip-1cm \abs
+%
+\verbatimon
+%
+Eine andere M"oglichkeit zur Eingabe "uberlappender Notengruppen w"are,
+den Anfang und das Ende der einfachen Gruppen, die innerhalb
+der "uberlappenden vorkommen, mit |\begin|-- und |\end|macros
+anzuzeigen. Dabei ist es ein Nachteil, da\3 die zusammengeh"orenden
+|\begin|-- bzw. |\end|macros aufgrund der "Uberschneidungen nicht erkannt
+werden k"onnen. Gourlay \lit{\Gourlay} hat dieses Problem
+gel"ost, indem den zusammengeh"orenden |\begin|-- und |\end|macros
+besondere Namen gegeben werden (siehe auch Beispiel in 1.4.4).
+Allerdings ist dieses Verfahren sehr aufwendig und verwirrend.
+%
+\verbatimoff%
+%
+Deshalb wurde f"ur die hier beschriebene Noteneingabesprache
+die oben dargestellte Form gew"ahlt, obwohl bei "Anderung
+eines Notenschriftzeichens innerhalb der Gruppe meist noch andere
+"Anderungen notwendig sind.
+\abschnitt\abschnitt
+\centerline{\bf 3.4 Anfang und Ende eines Musikst"ucks}
+\abschnitt
+Die Noteneingabesprache soll die M"oglichkeit bieten,
+Musikst"ucke in jegliche Art von Texten einzubetten. Deshalb wird der
+Beginn und das Ende einer Noteneingabe besonders gekennzeichnet.
+Eine Noteneingabe mu\3 mit den Zeichen {\bf !!} oder \ks{beginsong}
+begonnen und mit {\bf!!} oder \ks{endsong} beendet werden.
+\abs
+Zu Beginn eines Musikst"ucks k"onnen auch Angaben zur Instrumentierung,
+zum Notenschl"ussel, zur Ton-- und Taktart
+und schriftliche Erl"auterungen stehen.
+Jede der beschriebenen Angaben ist eine zus"atzliche
+Angabe, das hei\3t, sie kann auch weggelassen werden.
+Fehlen
+diese, so werden folgende Standardwerte
+angenommen. Der Notenschl"ussel ist der
+Violinschl"ussel, die Tonart ist C--Dur, \dh es gibt keine Vorzeichen,
+und der Takt des St"uckes ist der 4/4--Takt.
+Schriftliche erl"auternde Angaben gibt es nur, wenn
+sie explizit angegeben werden.
+Falls andere Werte gew"unscht
+werden, k"onnen diese wie in 3.5 beschrieben eingegeben werden.
+Angaben zur Instrumentierung sind ebenfalls standardm"a\3ig nicht
+vorgesehen. Sie m"ussen gesondert genannt werden.
+\absatz
+\subheading{Instrumentenstimme}
+Etwaige Angaben zur Instrumentierung, die zu Beginn des Musikst"ucks
+stehen, werden mit \ks{voice}\{$\ldots$\}
+eingegeben. Danach folgt in geschweiften Klammern der Name
+der Stimme, die benannt werden soll, \zB
+\ks{voice}\{Violine 1\}.
+\abschnitt\abschnitt
+\centerline{\bf 3.5 Tonh"ohe, Rhythmus, Vortragsbezeichnungen}
+\abschnitt
+Zur Beschreibung einer Melodie fehlen nun noch genaue Angaben
+zur Ton-- und Taktart, zum Tempo, zu den Tonst"arkegrade und
+andere Erl"auterungen, die die Art des musikalischen Vortrags
+betreffen.
+\absatz
+\subheading{Notenschl"ussel}
+Notenschl"ussel werden durch die hier aufgelisteten Schl"usselw"orter
+benannt.
+$$\vbox{\halign{\hfil#&#\hfil&#\hfil\cr
+\hbox{\ks{treble}}\q&\q\hbox{Violinschl"ussel}
+\q&\q{\music\mviolin}\cr
+\hbox{\ks{bass}}\q&\q\hbox{Ba\3schl"ussel}
+\q&\q{\music\mbass}\cr
+\hbox{\ks{baritone}}\q&\q\hbox{Baritonschl"ussel}
+\q&\q{\music\mbariton}\cr
+\hbox{\ks{tenor}}\q&\q\hbox{Tenorschl"ussel}
+\q&\q{\music\mtenor}\cr
+\hbox{\ks{alto}}\q&\q\hbox{Altschl"ussel}
+\q&\q{\music\malt}\cr
+\hbox{\ks{mezzo}}\q&\q\hbox{Mezzosopranschl"ussel}
+\q&\q{\music\mmezzosopran}\cr
+\hbox{\ks{soprano}}\q&\q\hbox{Sopranschl"ussel}
+\q&\q{\music\msopran}\cr
+}}$$
+\absatz
+\subheading{Tonart}
+Zur Eingabe der Tonart kann zwischen zwei M"oglichkeiten gew"ahlt
+werden. Einerseits k"onnen wiederum Schl"usselw"orter benutzt werden, die
+jeweils einer Tonart entsprechen.
+Die Wahl der Schl"ussel\-w"or\-ter ist dem gebr"auchlichen Sprachgebrauch
+ angepa\3t.\par
+Dur--Tonarten:
+\ks{C}, \ks{G}, \ks{D}, \ks{A}, \ks{E},
+\ks{H}, \ks{Fis}, \ks{Cis}, \ks{F}, \ks{B}, \ks{Es},
+\ks{As}, \ks{Des}, \ks{Ges}\par
+Moll--Tonarten:
+\ks{a}, \ks e, \ks h, \ks{fis}, \ks{cis}, \ks{gis}, \ks{dis}, \ks{ais},
+\ks d, \ks g, \ks c, \ks f, \ks b, \ks{es}, \ks{as}
+\absatz
+Die andere M"oglichkeit besteht darin, die Vorzeichen explizit
+anzugeben. Das geht mit Hilfe des Makros \ks{signature}\{$\ldots$\}.
+Auf das
+Schl"usselwort folgen in geschweiften Klammern die Vorzeichen.
+Sie werden eingegeben als Versetzungszeichen vor den entsprechenden
+Notennamen, eventuell mit der Oktavlage.
+So entspricht zum Beispiel \ks{signature}\{{`}{`}xf {`}{`}xc\}
+dem Makro \ks{D}, das ist
+die Tonart D--Dur.
+\absatz
+\subheading{Taktart}
+Die Eingabe der Taktart erfolgt mit dem
+Makro \ks{meter}, nach dem in Klammern
+die Taktart wie in der gebr"auchlichen
+Schreibweise als Bruch notiert wird.
+Z"ahler und Nenner werden dabei durch einen
+Schr"agstrich voneinander getrennt.
+Um den 2/4--Takt zu erhalten, mu\3 also eingegeben werden:
+\ks{meter}\{2/4\}.
+Zus"atzlich gibt es noch die M"oglichkeit, die Taktart
+mit Symbolen aus der Mensuralnotation anzugeben.
+$$\align
+\hbox{\ks{allabreve}}\q&\q\lower4pt\hbox{{\music\allabreve}}\\
+\hbox{\ks{hC}}\q&\q\lower4pt\hbox{{\music\mC}}\\
+\hbox{\ks{dC}}\q&\q\lower4pt\hbox{{\music\mCreverse}}\endalign$$
+\absatz
+\subheading{Schriftliche Erl"auterungen}
+Zus"atzliche Angaben k"onnen mit dem Makro \ks{text}\{$\ldots$\}
+angegeben werden und m"ussen nach dem Notenschriftzeichen stehen,
+ab dem sie gelten sollen.
+Der einzugebende Text kann durch die Positionsangaben
+\ks{\us} bzw. \ks{\os{ }} erg"anzt werden.
+Die Positionsangaben besagen, da\3 der
+Text unter-- bzw. oberhalb des Notenliniensystems steht. Sie
+k"onnen durch einen Hinweis "uber den Anfangspunkt des Textes erg"anzt
+werden. Die schriftliche Anmerkung
+kann links-- bzw. rechtsb"undig oder
+zentriert "uber bzw. unter
+das Notenschriftzeichen, ab welchem er gelten soll,
+geschrieben werden. Dies geschieht durch die Eingabe der Buchstaben
+{\bf l, r} oder {\bf c}, die nur zusammen mit
+\ks{\us} bzw. \ks{\os{ }} benutzt werden k"onnen.
+Falls die Breite des Notenschriftzeichens dem
+Text nicht angepa\3t werden soll, mu\3 das mit {\bf n} vermerkt werden.
+Erl"auterungen, die direkt unter der Notenzeile
+stehen sollen, mu\3 die Angabe {\bf v} vorangestellt werden, da
+der Text ansonsten in die Zeile geschrieben werden, die f"ur
+Liedtexte vorgesehen ist.
+Insgesamt existieren also folgende
+M"oglichkeiten zur Positionsangabe:
+$$\hbox{\ks{\os{ }l}, \ks{\os{ }r}
+\ks{\os{ }c}, \ks{\os{ }n}, \ks{\us l}, \ks{\us r}, \ks{\us c},
+\ks{\us n}, \ks{\us v}}
+\;.$$
+Eine Tempoangabe hat dann \zB die
+Gestalt \ks{text}\{\ks{\os{ }c} moderato\}
+(siehe Anhang A).
+\par
+Die Positionsangabe mu\3 nicht vorhanden sein. Falls sie fehlt,
+wird der Text horizontal positioniert, je nach vorhandenem Platz.
+\par
+Erl"auterungen, f"ur die es in der "ublichen Notation
+Abk"urzungen gibt, k"onnen Kontroll\-se\-quen\-zen benutzt werden.
+Sie betreffen vor allem Angaben zum musikalischen Vortrag,
+das Tempo oder die Betonung. Die Kontrollsequenzen werden im
+folgenden aufgelistet:
+$$\vbox{\halign{\hfil#\q&\q{\it #}\hfil\qquad
+&\qquad\hfil#\q&\q{\it#}\hfil\cr
+\bs{\bf dacapo}&d.c.&
+\bs{\bf pianissimo}&pp\cr
+\bs{\bf dalsegno}&d.s.&
+\bs{\bf pianissimoposs}&ppp\cr
+\bs{\bf fine}&fine&
+\bs{\bf fortepiano}&fp\cr
+\bs{\bf tacet}&tacet&
+\bs{\bf forzato}&fz\cr
+\bs{\bf unisono}&unis.&
+\bs{\bf rinforzando}&rfz.\cr
+\bs{\bf cantusfirmus}&c.f.&
+\bs{\bf sforzato}&sfz.\cr
+\bs{\bf crescendo}&cresc.&
+\bs{\bf sforz}&sfz.\cr
+\bs{\bf decrescendo}&decresc.&
+\bs{\bf decr}&$>$\cr
+\bs{\bf diminuendo}&dim.&
+\bs{\bf rallentando}&rall.\cr
+\bs{\bf forte}&f&
+\bs{\bf ritardando}&rit.\cr
+\bs{\bf fortissimo}&ff&
+\bs{\bf ritenuto}&riten.\cr
+\bs{\bf fortissimoposs}&fff&
+\bs{\bf tr}&tr\cr
+\bs{\bf mezzoforte}&mf&
+\bs{\bf staccato}&stacc.\cr
+\bs{\bf mezzopiano}&mp&
+\bs{\bf piano}&p\cr}}$$
+Diese Hinweise f"ur den musikalischen Vortrag m"ussen ebenfalls auf das
+Notenschriftzeichen folgen, "uber dem sie beginnen sollen.
+Sie k"onnen wiederum
+mit obigen Positionsangaben versehen werden. In diesem Fall
+m"ussen sie dann
+zusammen mit den Positionsangaben in Klammern eingeschlossen werden.
+\absatz
+\subheading{Artikulationen}
+Die verschiedenen M"oglichkeiten, T"one miteinander zu verbinden bzw.
+abzuheben, werden mit dem Begriff Artikulation zusammengefa\3t.
+Die zu trennenden T"one k"onnen breit oder kurz musiziert werden,
+was mit den Begriffen \bs{\bf stac}, \bs{\bf staccatissimo} oder
+\bs{\bf tenuto} umschrieben wird. Sie entsprechen folgenden
+Artikulationszeichen, die stets am Notenkopf stehen, ausgenommen
+bei mehrstimmiger Notierung:
+$$\align
+\bs{\bf staccatissimo}\q&\q\ssize\prime\\
+\bs{\bf stac}\q&\q.\\
+\bs{\bf tenuto}\q&\q\hbox{\vrule width4pt height1pt}\endalign$$
+Sollen Noten mit Artikulationszeichen versehen werden, so wird der
+Beginn mit \bs{\bf stac}, \bs{\bf staccatissimo} oder
+\bs{\bf tenuto} angezeigt. Darauf folgen die Notenschriftzeichen,
+die die Melodie beschreiben. Jede auftretende Note erh"alt das
+angegebene Artikulationszeichen. Dieser Vorgang wird mit
+\bs{\bf noaccent} beendet.
+\abschnitt\abschnitt
+\centerline{\bf 3.6 Ein-- oder mehrstimmige St"ucke in einem System}
+\abschnitt
+Ein System beschreibt den gesamten Melodieverlauf eines
+St"uckes. Bevor die Melodie beschrieben wird, k"onnen
+"Uberschriften eingegeben werden, die den Titel, Komponisten und
+Verfasser des St"uckes nennen.
+Diese "Uberschriften werden mit den Makros \ks{title},
+\ks{composer} und \ks{poet} eingegeben,
+nach denen in Klammern der entsprechende
+Text steht. Ein Beispiel daf"ur steht in Anhang A.
+\par
+Bei einem St"uck, das in einem System notiert ist, kann es sich
+entweder um ein einstimmiges oder zweistimmiges Musikst"uck handeln,
+oder um ein Lied.
+F"ur einstimmige St"ucke mu\3 der Melodieverlauf eingegeben werden.
+Das geschieht, indem die bisher erkl"arten Zeichen und Kontrollsequenzen
+benutzt werden. Zus"atzlich k"onnen mit dem Makro \ks{text}
+noch schriftliche Anweisungen \zB zu Tonst"arke und Tempo
+gegeben werden. Die Anwendung dieses Makros wurde in 3.4 erl"autert.
+Handelt es sich bei dem einzugebenden St"uck um ein zweistimmiges,
+so mu\3 das Makro \ks{two} benutzt werden. Dieses Makro hat
+zwei Parameter, die jeweils den Melodieverlauf einer Stimme beschreiben.
+Jede dieser Melodien steht wiederum in Klammern.
+Da die Zeichen, die "ubereinander stehen, gekennzeichnet werden m"ussen,
+wurde das Auslassungszeichen \slash\
+eingef"uhrt. Dieses Zeichen erscheint
+immer dann, wenn ein Zeichen der einen Stimme kein dazugeh"origes in
+der anderen Stimme hat.
+$$\bunch\hbox{\bf{\ks{two}\{
+4g p nf\strich 8xc \slash\ \slash\ \slash\ 4d\strich
+\ks{beam}\{8,g `g\} 4.,a 8p\strich\ks{chord}\{2.,d .a `.d\}
+\} }}\\
+%%%
+\hbox{\bf{
+\{\ks{slur}\{{`}{`}4d `a\} {`}{`}d\strich
+\ks{beam}\{\ks{slur}\{8`g f\} g e\} 4f\strich
+\slash\ \slash\ 4.e \ks{tr} 8d\strich \slash\
+\} } }\endbunch$$
+\vskip-0.4cm\par
+%%%
+{\hsize14cm\parindent 2cm
+\nointerlineskip\universal
+\beginsong\alto\F\meter3/4%
+\two{%
+\group{\\{\v{12}}\\{\v9}}{\\{12}\\{9}}\uslur12\go}{\v8\pv}\n7%
+\two{\v{12}}{\v7}\|\x4\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a4}\two{\v7}{\v5}\|%
+\group{\\{\a1}\\{\a8}}{\\{1}\\{8}}\lbeam12\go\two{\tr\v6\.1}{\v2\.1}%
+\two{\a5}{\raise-1.5\nhh\hbox{\pa}}%
+\|\lchord \h5\.1\h2\.1\h{-2}\.1\endchord
+\rightrepeat
+\endsong
+}
+%%%
+\vskip-1cm \abs
+Die Eingabe von Vokalmusik geschieht mit dem Schl"usselwort \ks{vocal}.
+Dieses Makro hat ebenfalls zwei Parameter. Der erste Parameter
+enth"alt den Melodieverlauf, der zweistimmig sein kann,
+der zweite den Text des Liedes.
+Auch hierbei wird das Auslassungszeichen \slash\ dann benutzt,
+wenn einer Note der Melodie keine
+zugeh"orige Silbe im Text entspricht.
+Silben werden durch Leerzeichen voneinander getrennt und unter
+den zugeh"origen Noten zentriert.
+Diese Standardsetzung f"ur die Silben kann umgangen werden, indem
+eine Positionsangabe (siehe 3.5, schriftliche Erl"auterungen)
+vor die Silbe, die anders positioniert werden soll, geschrieben wird.
+$$\bunch\hbox{
+\ks{treble}\ks{D}\ks{meter}{\bf\{4/4\}}}
+\hbox{\ks{vocal}
+{\bf\{4.''d 8d 4e 4p\strich 4.f 8f f \ks{slur}\{\ks{beam}
+\{8'h ''e g\}\}\strich}}\\
+\hbox{{\bf \ks{slur}\{8g f\} e d e \ks{group}\{
+4f\strich 8f 6e d\}}}\\
+\hbox{\bf{\ks{gslur}\{1-3,1-5\}\ks{gbeam}\{3-5,4-5\} 4e 2f
+\strich\strich\}}}\\
+\hbox{{\bf\{}KY- RI- E, \slash KY- RI- E }
+\hbox{E- \slash \slash LE- \slash I- SON,}
+\hbox{E- LE- \slash\slash\slash I- SON.{\bf\}}}\endbunch$$
+\vskip-0.4cm\par
+{\hsize15cm\parindent1cm
+\universal
+\nointerlineskip\beginsong
+\vio\D\meter4/4%
+\_{KY - }{\v6\.1}\_{RI - }{\a6}\_{E,}{\v7}\pv\|%
+\_{KY - }{\v8\.1}\_{RI - }{\a8}\_{E}{\a8}%
+\group{\\{\_{E}{\a4}}\\{\a7}\\{\_{-}{\a9}}}
+{\\{4}\\{7}\\{9}}\lbeam13\uslur13\go\|%
+\group{\\{\a9}\\{\v8}}
+{\\{9}\\{8}}\uslur12\_n{ LE - }\hskip20pt{\gluebrule}\go\_{I-}{\a7}%
+\_c{SON,}{\a6}\_{E - }{\a7}%
+\def\beamlist{\\{3-5,}\\{4-5,}}
+\group{\\{\v8}\\{\|}\\{\a8}\\{\s7}\\{\s6}}{\\{8}\\{8}\\{8}\\{7}\\{6}}\lbeam35%
+\uslur13\uslur15\_n{ LE\hskip10pt-\hskip10pt -}{\gluebrule}%
+{\go}\_{I - }{\v7}\_c{SON.}{\h8}\doublebarline
+\endsong}
+\abs
+\centerline{\bf 3.7 Mehrstimmige St"ucke in mehreren Systemen}
+\abschnitt
+Falls ein St"uck aus verschiedenen Stimmen besteht, die in
+mehreren Systemen notiert werden, so wird das mit der
+Kontrollsequenz \ks{system} angezeigt.
+Danach folgt in Klammern die Melodie der Stimme.
+Sie wird auf die in 3.5 beschriebene Art eingegeben.
+Dies mu\3 f"ur jede einzelne Stimme gemacht werden, wobei immer
+die Kontrollsequenz \ks{system} vorangestellt wird.
+\par
+Bei mehreren Systemen m"ussen die Zeichen erkenntlich sein,
+die gemeinsam erklingen sollen. Sie stehen in den Systemen untereinander.
+Deshalb mu\3 die Reihenfolge der Zeichen in den einzelnen Systemen
+korrekt angegeben werden. Falls ein Zeichen in einem System mehrerer
+Zeichen in einem anderen entsprechen, so mu\3 das Auslassungszeichen
+\slash\ eingesetzt werden. F"ur jede freie Stelle in einem System,
+an der
+in dem anderen ein Notenschriftzeichen
+steht, mu\3 also dieses Auslassungszeichen
+eingesetzt werden.
+$$\bunch
+\hbox{\ks{system}\{\ks{vio}\ks{metre}{\bf \{3\slash4\}}
+\ks{slur}\{\ks{beam}
+{\bf \{`8f g ba bh {`}{`}c `f\}\strich 4.g\} . . .\}}}\\
+\hbox{\ks{system}\{\ks{bass}\ks{metre}{\bf\{3/4\}}\ks{slur}{\bf \{
+{`}{`}.4d \slash \slash 8e \ks{beam}\{nf ng\}\strich 2.a\}. . .}}
+\endbunch$$
+\par\vfill\eject
+\centerline{\bf 3.8 Allgemeine Anweisungen}
+\abschnitt
+In diesem Abschnitt werden Anweisungen gegeben, wie die bisher
+beschriebenen Zeichen bzw. Zeichengruppen eingegeben werden k"onnen.\abs
+Ein Musikst"uck kann in Text eingebettet werden. Der Text
+mu\3 als eine g"ultige \TeX--Eingabedatei vorliegen.
+Die Noteneingabe erfolgt nicht
+zeilenweise, sie h"angt also nicht vom Zeilenumbruch der gebr"auchlichen
+Notation ab. Bei der linearen Schreibweise kann an jeder Stelle mit
+einer neuen
+Zeile begonnen werden.
+Leerzeilen innerhalb einer Noteneingabe haben keine Bedeutung und
+werden "uberlesen.
+\par
+In der Eingabedatei f"ur Musikst"ucke k"onnen auch Kommentare eingegeben
+werden. Dies geschieht wie in \TeX\ mit dem Zeichen {\bf\%},
+auf das der kommentierende Text folgt. F"ur eine
+Weiterverarbeitung ist der Kommentar unerheblich und wird deshalb
+"uberlesen.
+\par
+Bei der Eingabe mehrerer Informationen, die die gleiche Angabe
+betreffen, wird die zuletzt gelesene als g"ultig angenommen.
+\abschnitt\abschnitt
+Mit den Regeln 3.1 bis 3.8 ist eine Eingabe von Partituren m"oglich.
+% Es folgt die "Anderung zur Version O.
+Beispiele zur Noteneingabe mit der hier entwickelten Eingabesprache
+werden in Anhang A gegeben. Dabei folgt bei den Beispielen 1, 3 und
+4 auf die Notation in Notenschrift, die mit dem Ausgabeverfahren von
+A.~Steinbach \lit{\Steinb} erstellt wurde, die Darstellung durch die
+Noteneingabesprache.
+
+\par\vfill\eject
+\endinput
+
+In Abschnitt 3.9 werden Beispiel zur Noteneingabe
+mit der hier entwickelten Eingabesprache gegeben. Dabei folgt
+auf die Notation in Notenschrift,
+die mit dem Ausgabeverfahren von A.~Steinbach \lit{\Steinb} erstellt
+wurde, die Darstellung durch die Noteneingabesprache.
+\abschnitt\abschnitt
+\goodbreak
+\centerline{\bf 3.9 Beispiele zur Noteneingabe}
+\abschnitt
+\subheading{Beispiel 1}
+(aus: Johann Sebastian Bach, Sechs Suiten, f"ur Viola bearbeitet von
+Franz Schmidtner, Musikverlag Hans Sikorski, Hamburg)
+\abschnitt\abschnitt
+%
+\input bach
+\abschnitt
+%
+{\bf !!}\ks{title}\{6 Suiten f"ur Cello Solo \bs{atop}
+Suite II Menuet I\}\par
+\ks{composer}\{Johann Sebastian Bach\}\par
+\ks{poet}\{F"ur Viola "ubertragen \bs{atop} von Franz Schmidtner\}\par
+\ks{alto}\ks{F}\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{two}
+\par {\bf
+\{\ \ \ \ks{chord}\{2`d f a\} 4h
+\ks{chord}\{`8c `e\}\slash\ \slash\ \slash\ 4a\strich
+\par
+\ks{chord}\{4,h `d\} g\ks{beam}\{8f e\}\strich
+,8a \slash\ \slash\ \slash\ \slash\ \slash\ \strich\par
+\ks{chord}\{`2d f a\} 4h\strich \ks{chord}\{8c e\}
+\slash\ \slash\ \slash\
+{`}{`}4c \strich\par
+\ks{chord}\{4`f a\}\ks{chord}\{,h `f {`}{`}d\}
+\ks{chord}\{,g `g {`}{`}e\}\strich
+\ks{chord}\{2.,a .`e .x{`}{`}c\}
+\dpkt\strich\strich\dpkt
+\par\ks{chord}\{2`a {`}{`}e\}\ks{slur}\{\ks{beam}\{8d 6e f\}\}\strich
+8`g\slash\ \slash\ \slash\ \slash\ \slash\ \strich
+\par2f \slash\ 4e\strich 8d
+\slash\ \slash\ \slash\ \slash\ \slash\
+\ks{slur}\{4g f\}e\strich 8f
+\slash\ \slash\ \slash\
+\ks{chord}4,h `e {`}{`}d\}\strich \par
+\ks{chord}\{4,a `f {`}{`}c\}
+\ks{beam}\{8`h a g a\}\strich \ks{beam}\{8f e f a g h\}\strich
+\par 2xf 4p \strich b8c
+\slash\ \slash\ \slash\
+4f \ks{tr}\strich\par\ks{chord}\{4,h `g {`}{`}d\}
+\ks{chord}\{4`c g {`}{`}c\} `d\slash\ \strich
+\par\ks{beam}\{\ks{chord}\{,8g `d {`}{`}c\} 8`h a h g h\}\strich
+%%%%%%%%%%%%%TEIL 1%%%%%%%%%%%
+4g p nf\strich 8xc \slash\ \slash\ \slash\ 4d\strich
+\par\ks{beam}\{8,g `g\} 4.,a 8p\strich\ \slash\
+\dpkt\strich\strich\ \ \}\par
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\{\ \ \slash\ \slash\
+\ks{beam}\{\ks{slur}\{8{`}h a\} h g\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \strich
+\par\ks{beam}\{\ks{slur}\{8f e d\}`xc ,nh a\}\strich
+\slash\ \slash\ \strich\par\ks{beam}\{\ks{slur}\{8h a\}\ks{tenuto} h
+f \ks{noaccent} \slash\ \}\strich
+\slash\ \slash\ \slash\ \strich
+\slash\ \dpkt\strich\strich\dpkt\par
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}{`}e d xc e `a\}g\}\strich\par
+\ks{slur}\{`4a {`}{`}d\}xc\strich
+\ks{beam}\{\ks{slur}\{8{`}{`}g f e f d \}nc\}\strich\par
+`2h\slash\ {`}{`}4c\strich \ks{beam}\{8`a g a f\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \slash\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\strich\par
+2`a \ks{tr} 4h\strich
+\ks{beam}\{\ks{slur}\{8g f\} g e\}\slash\strich\par
+\slash\ \slash\ \ks{beam}\{\ks{slur}\{8h a\}\}\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\ \strich\par
+%%%%%%%%%%%%%TEIL 2%%%%%%%%%%%
+\ks{slur}\{{`}{`}4d `a\} {`}{`}d\strich
+\ks{beam}\{\ks{slur}\{8`g f\} g e\} 4f\strich
+\slash\ \slash\ 4.e \ks{tr} 8d\strich
+\ks{chord}\{2.,d .a `.d\}
+\dpkt\strich\strich
+\ \ \}{\bf !!} }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\abschnitt\abschnitt
+\goodbreak
+\subheading{Beispiel 2}
+(aus: D. Byrd ``A system for music printing by computer'',
+Computers and the Humanities 8, 161--172, 1974)
+\abschnitt\abschnitt
+%
+\input byrd
+%
+\abschnitt
+{\bf!!}
+\ks{title}\{String Quartett\}
+\ks{composer}\{Donald Byrd, 1968\}\ks{voice}\{violin 1\}\par
+{\ks{treble}}\ks{meter}\{{\bf9}\slash{\bf8}\}
+\ks{text}\{\ks{\os{ }l} moderato\}\par
+{\bf 1p\strich\ks{slur}\{4.`a\{\ks{\us v}\ks{mezzopiano}\}
+2.{`}{`}e\ks{text}\{\ks{\us v} cant\}\}}\strich \par
+{\ks{slur}}{\bf \{\ks{beam}\{8.{`}{`}f b.`h\} b4{`}{`}.d\}}
+\ks{slur}{\bf \{\ks{beam}\{8`a h {`}{`}c\}\}}\strich\par
+{\bf{\ks{slur}}\{4n.d x`.h\}\ks{slur}\{\ks{beam}\{8`a bh n{`}{`}c\}\}}
+\strich\par
+{\bf{\ks{meter}}\{6\slash8\} 4.d
+\ks{slur}\{{`}{`}.a\strich \ks{meter}\{9/8\}
+{`}{`}.a\{\ks{\us v}\ks{crescendo}\}\}
+\ks{slur}\{.f {`}{`}{`}.d\}}\strich\par
+{\bf{\ks{slur}}\{\ks{beam}\{8.be b{`}{`}.h\}\}
+\ks{slur}\{4{`}{`}{`}.f 8f\}
+4ne 6g}\strich\par
+{\bf{\ks{slur}}\{b.e\{\ks{\us v}\ks{diminuendo}\}
+b.{`}{`}a .{`}{`}{`}c\}}\strich\par
+{\ks{tenuto}\bf.{`}{`}h \ks{noaccent} \ks{group}
+\{2.e \strich\ks{meter}\{6\slash 8\} .e\strich 4.e\}\par
+\ks{glsur}\{1-4,4-6\}\ks{slur}\{b.e\{\ks{\us v}\ks{piano}\}
+\strich\ks{meter}\{9\slash 8\} .a\}
+4.p}\strich\par
+{\bf
+1p\strich \ks{meter}\{6\slash 8\}\ks{slur}
+\{\ks{beam}\{8f\{\ks{\us v}\ks{crescendo}\} .bh {`}{`}{`}d\}\}
+4x .c}\strich\par
+{\bf{\ks{slur}}\{\ks{beam}\{{`}{`}6a bh n{`}{`}{`}c d\}\}
+\ks{slur}\{\ks{beam}\{6xd e xf xg\}\}}\strich\par
+{\bf 8a\{\ks{\us v}\ks{forte}\} p p 4.p \gleich !!}\abs
+\abschnitt\abschnitt
+\goodbreak
+\subheading{Beispiel 3}
+(aus: R. Baum, ``Geselliges Chorbuch I'' B"arenreiter--Verlag,
+Kassel und Basel)
+\abschnitt\abschnitt
+%
+\input distler
+\abschnitt
+%
+{\bf !!}\ks{title}\{Lobe den Herren\}
+\ks{composer}\{Hugo Distler\}
+\par
+\ks{voice}\{Sopran\}
+\ks{treble}\ks{signature}\{{`}{`}xf\}
+\ks{text}\{\ks{\os{ }r} Schnell\}
+\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{vocal}
+\par {\bf\{\ \ \
+4g\ks{mezzoforte} g {`}{`}d\strich `h. 8a 4g\strich f e d \strich 2e
+\ks{slur}\{4f\strich\ks{meter}\{2\slash 4\} f\} 4g\strich
+\par\ks{meter}\{4\slash 4\} 2a 2g\dpkt\strich\strich
+\ks{meter}\{3\slash 4\} 4{`}{`}d d d \strich 2.e 0p\strich
+\par `4h 8{`}{`}c c
+\ks{group}\{4d\strich 8d e d `h 4{`}{`}d\strich 8d e 4.d 8e\strich 4.d\}
+\ks{gslur}\{1-3, 1-13\}\par
+\ks{gbeam}\{3-6, 9-10\} 8c 4`h\strich 2a
+\ks{piano} 0p\ks{beam}\{8h g\}\strich 2a\ks{decr} 0p\par
+\ks{beam}\{8h \ks{text}\{{\rm zart}\}g\}\strich
+{`}{`}2.d\ks{decr} 0p\strich
+\par `4d\ks{forte} .e 8f\strich \ks{meter}\{4\slash 4\} 2g 4a h\strich
+\par
+\ks{meter}\{7\slash 4\}\ks{slur}\{{`}{`}2c `4.h 8a 4g 2a\}\strich
+\ks{meter}\{3\slash 4\} 2.g =\ \ \ \} }
+\par
+\{\ \ \ \{Lo-\bs{atop} Mei-\} \{be\bs{atop} ne\} \{den\bs{atop} ge-\}
+\{Her-\bs{atop} lie-\} \{ren,\bs{atop} be-\}\par
+\{den \bs{atop} te\} \{m"ach-\bs{atop} See-\}
+\{ti-\bs{atop} le,\} \{gen\bs{atop} das\} \par
+\{K"o-\bs{atop} ist\}
+\{nig--\bs{atop} mein--\} \slash\
+\{der\bs{atop} Be-\} \{Eh-\bs{atop} geh-\}
+\{ren!\bs{atop} ren.\}
+\par Kom- met zu Hauf! Psal- ter und Har-
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\ \slash\
+fe, \par
+wacht auf, wacht \slash\ auf, wacht \slash\ \slash\ auf, \par
+las- set
+den Lob- ge- sang h"o-
+\slash\ \slash\ \slash\ \slash\
+ren!\ \ \ \}{\bf !!}
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc4.tex b/macros/mtex/documentation/mdoc4.tex
new file mode 100644
index 0000000000..e8613ab111
--- /dev/null
+++ b/macros/mtex/documentation/mdoc4.tex
@@ -0,0 +1,288 @@
+\heading{Anforderungen an das Notensatzsystem}
+
+\subheading{Arbeitsschritte beim manuellen Notensatz}
+ Der Proze\3, eine handgeschriebene Komposition
+in eine druckreife Partitur umzuformen, ist eine zeitaufwendige und
+fehleranf"allige Arbeit, denn es ist im Laufe der Zeit
+ ein umfangreiches Notations- und Satzregelwerk
+entstanden.
+Ein klares und gleichm"a\3iges Notenbild hilft schlie\3lich
+dem Musiker, die Notenschrift schnell zu erfassen.
+
+Die Aufgabe eines Systems zum automatisierten Notensatz sollte es
+deshalb sein, eine
+Ausgabequalit"at zu erreichen, die dem Handnotensatz nahe kommt. Dabei
+ist es nicht notwendig, die Arbeitsweise des Setzers nachzuahmen,
+sondern das Ergebnis ist entscheidend.
+Die wesentlichen Arbeitschritte sind gleich, jedoch die
+Reihenfolge kann ge"andert werden. Deshalb sei hier der
+ Arbeitsablauf skizziert.
+
+Der erste und wichtigste Schritt ist die grobe Aufteilung des
+Manuskripts in Seiten und Zeilen, das sogenannte \disp{Abstecken}. Dabei
+wird die vertikale Position der einzelnen
+Notenschriftzeilen festgelegt, abh"angig
+von der H"ohe oder Tiefe des Zeileninhaltes. Diese Einteilung geschieht
+oft unter "okonomischen Aspekten -- die Gesamtzahl der Seiten soll ein
+Vielfaches von acht oder sechzehn ergeben -- , aber auch aus
+auf{}f"uhrungstechnischen Gr"unden.
+Eine Pause auf der rechten Seite unten
+soll das Wenden der Seite erm"oglichen, ohne das Spiel zu verz"ogern.
+
+
+Als n"achstes erfolgt die
+\disp{genaue} vertikale Einteilung der einzelnen
+Zeilen, so da\3 sp"ater beim Ausf"ullen der Zeilen keine "Uberlappungen
+auftreten k"onnen. Diese Voreinteilung ist besonders sorgf"altig
+auszuf"uhren, da im Fehlerfall die ganze Seite erneut bearbeitet werden
+mu\3.
+
+Nach dem Abstecken erfolgt das
+\disp{Punktieren}. Dies ist die pr"azise
+horizontale Einteilung der Noten und Takte in jeder Zeile.
+
+Dann erst werden die Balken und Notenh"alse angebracht.
+
+Im f"unften
+Schritt werden Akzente und sonstige Verzierungen eingeschlagen, die
+keinen zus"atz\-lichen horizontalen Raum ben"otigen.
+
+Zum Schlu\3 werden die
+Phrasierungs-, Ligatur- und Haltebogen, die restlichen Zeichen, die
+Information "uber Spielanweisungen enthalten, sowie Vortragsbezeichnungen
+gestochen.
+\subheading{Anforderungen f"ur den automatisierten Notensatz}
+Die oben beschriebene Vorgehensweise
+ist direkt abh"angig von den mechanischen Mitteln,
+die dem Setzer zu Verf"ugung stehen, d.h. der Stichplatte, den Stempeln
+und "ahnlichen Instrumenten.
+
+Beim automatisierten Notensatz kann daher eine andere Vorgehensweise
+gew"ahlt werden.
+
+Da die einzelnen Elemente der Notenschrift nicht sofort auf einer Platte
+plaziert werden m"ussen, ist es m"oglich, sowohl
+die vertikale Verteilung als
+auch die Seiteneinteilung erst nach der Zeileneinteilung vorzunehmen.
+
+Man wird demnach erst global punktieren, danach in Abh"angigkeit vom zur
+Verf"ugung stehenden Platz eine Einteilung in die einzelnen Zeilen
+vornehmen, d.h. den Zeilenumbruch durchf"uhren. Gleichzeitig k"onnen die
+Zeichen lokal punktiert werden und diejenigen Zeichen hinzugef"ugt
+werden, die
+keinen zus"atzlichen horizontalen Raum ben"otigen, und
+die vertikale Einteilung der Seite ist erst am Schlu\3 erforderlich.
+
+Die wesentlichen von einem Notensatzsystem
+zu l"osenden Aufgaben sind also:
+\item{1)} das Abstecken und die Darstellung des Liniensystems,
+\item{2)} die Darstellung der Notenschriftelemente,
+\item{3)} die L"osung des Punktierungsproblems,
+\item{4)} die Darstellung und Positionierung der Balken und Bogen,
+\item{5)} das Einf"ugen von zus"atzlichen Texten und Spielanweisungen
+aller Art,
+\item{6)} die mehrstimmige Notation
+
+Ein Versuch der L"osung dieser Probleme mit dem Textsatzsystem \TeX\
+soll im folgenden dargelegt werden.
+
+Dabei wurde so vorgegangen, da\3 zu Beginn eines Kapitels zun"achst die
+Forderungen an das System, die durch die Notensatzregeln (soweit
+vorhanden) gegeben sind, beschrieben werden.
+Dazu werden L"osungs\-m"og\-lichkeiten f"ur den automatisierten Notensatz
+ angegeben, die teilweise allgemeiner Natur sind, teilweise jedoch nur
+speziell f"ur das Textsatzsystem \TeX\ G"ultigkeit besitzen.
+
+%
+\subheading{Vor"uberlegungen}
+Zun"achst seien einige Voraussetzungen, die als Grundlage f"ur alle
+folgenden Kapitel gelten, angef"uhrt.
+
+\subsubheading{Umgebungen}
+Die Schwierigkeiten, die beim automatisierten Notensatz
+auftreten, sind anderer Natur als die der internen Darstellung von T"onen
+z.B. f"ur die Musikanalyse, denn es m"ussen
+gleichartige T"one in verschiedenen Umgebungen im
+Notenbild unterschiedlich dargestellt werden.
+\Beispiel
+Betrachte {\tt c'} als Achtelnote in verschiedenen Umgebungen:
+
+{\hsize10cm
+\loose
+\advance\hsize2\iindent
+\parindent=2\iindent
+\beginsong
+\alto\C\_{a)}{\a4}\bass\a{10}\vio\a{-2}\doublebarline
+\_{b)}{\lchord\a{-2}\a0\a2\endchord}%
+\group{\\{\_{c)}{\a{-2}}}\\{\a0}\\{\a2}}{\\{-2}\\{0}\\{2}}\ubeam13\go
+\_{d)}{\gluebrule}\two{\a5}{\a{-2}}\=%
+\endsong}
+\endBeispiel
+\vskip-1cm\par
+
+Die Gestalt einer Note h"angt nicht von ihrer absoluten Tonh"ohe ab,
+sondern von ihrer Position im Liniensystem sowie den Umgebungen, in
+denen sie auftritt.
+
+Es gibt im wesentlichen vier verschiedene Umgebungen:
+\item{a)} eine alleinstehende Note,
+\item{b)} eine Note als Teil eines Akkordes,
+\item{c)} eine Note als Teil einer Gruppe von Noten, die durch einen
+oder mehrere Balken verbunden sind,
+\item{d)} eine Note im zwei- (oder mehr-)stimmigen Satz in einem
+Liniensystem.
+
+Nat"urlich kann die Note gleichzeitig mehreren Umgebungen zugeordnet
+sein.
+\Beispiel
+
+{\loose\hsize=5.5cm
+\advance\hsize2\iindent
+\parindent=2\iindent
+\beginsong
+\vio\C
+\group{\\{\lchord\a{-2}\a0\endchord}\\{\a0}}{\\{0}\\{0}}\ubeam12\go
+\two{\group{\\{\a6}\\{\a8}}{\\{6}\\{8}}\ubeam12\go}{\v2}%
+\two{\group{\\{\a8}\\{\a{10}}}{\\{8}\\{10}}\ubeam12\go}
+{\rchord\v2\v4\endchord}\=%
+\endsong
+}
+\endBeispiel
+\vskip-1cm\par
+Die Positionierung aller weiteren Informationen, die einer Note
+zugewiesen werden, z.B. Versetzungszeichen, Wertpunkte, Spielanweisungen
+oder Artikulationsbezeichnungen, ist abh"angig von der jeweiligen
+Umgebung sowie der Position der Note im Liniensystem.
+\par\vfill\eject
+\Beispiel
+
+Positionierung von Wertpunkten:
+
+{\loose\hsize=8cm%wertpunkte
+\advance\hsize2\iindent
+\parindent=2\iindent
+\beginsong
+\vio\C \h4\.1\h5\.1\lchord\h1\.1\h3\.1\h5\.1\endchord
+ \lchord{\def\doteven{\dotdown}%
+ \h2\.1}\leftfalse\h3\.1\lefttrue\h5\.1\endchord
+ \rchord\h2\.1\lefttrue\h5\.1\leftfalse\h6\.1\endchord
+\=\endsong}
+\vskip-1cm\par
+Positionierung von Versetzungszeichen:
+
+{\loose\hsize=6cm%Versetzungszeichen
+\advance\hsize2\iindent
+\parindent=2\iindent
+\beginsong
+\vio\C \b4\h4\x5\x{-2}\lchord\h5\h{-2}\endchord
+ \x{-1}\x5\lchord\h5\h{-1}\endchord
+\=\endsong}
+\vskip-1cm\par
+Positionierung von Artikulationszeichen.
+%Artikulationszeichen
+
+{\loose\hsize=8cm
+\advance\hsize2\iindent
+\parindent=2\iindent
+\beginsong
+\vio\C\stac\h5\h8\h1\h2\lchord\h5\h{-2}\endchord%
+\two{\group{\\{\a6}\\{\a6}}{\\{6}\\{6}}\ubeam12\go}
+{\group{\\{\a3}\\{\a3}}{\\{3}\\{3}}\lbeam12\go}%
+\=\endsong}
+\endBeispiel
+\vskip-1cm\par
+
+\subsubheading{Aufbau des Systems}
+Die bildliche Wiedergabe von T"onen und Kl"angen l"a\3t sich an einem
+ Koordinatensystem verdeutlichen, wobei die horizontale
+Achse den zeitlichen Ablauf des Musikst"uckes, den Rhythmus,
+wiedergibt und die vertikale
+die Tonh"ohe fixiert (\lit{\ziegen}).
+Da alle Noten die gleiche Breite besitzen, mu\3 der Raum,
+den sie einnehmen, zus"atzlich ihre zeitliche Dauer ausdr"ucken, d.h.
+der Notenwert mu\3 durch die "au\3ere Gestalt der Note \disp{und} den
+horizontalen Raum dargestellt werden.
+\Beispiel
+
+{\hsize=5cm\loose
+\advance\hsize 2\iindent
+\parindent=2\iindent
+\setbox240=\hbox to 0pt{\hbox{$\overrightarrow{\hbox to105pt{\hfil}}$%
+\hskip-102pt\vbox{\offinterlineskip
+\setbox0\hbox{$\uparrow$}\setbox1=\hbox to \wd0{\hss
+\vrule height31pt width 0.5pt depth 3pt\hss}\box0\box1}}\hss}
+\beginsong
+\vio\C\^{\vbox{\offinterlineskip\hbox{\eightrm%
+\vrule depth 6pt width 0pt Tonh"ohe}\null}}{\gluebrule}\hskip5pt
+\lower17pt\box240\hskip15pt
+\two{\v5\v6\hfil}{\rchord \h1\h3\endchord}%
+\two{\h5\hfil}{\rchord \h0\h2\endchord}
+\_n{Tondauer}{\gluebrule}\hfill\null\endsong
+}
+\endBeispiel
+\vskip-1cm\par
+
+Das hier erarbeitete Notensatzsystem ist daher
+so angelegt, da\3 die Einteilung in die Notenzeilen
+bzw. in die Seiten nach optimalen Gesichtspunkten vorgenommen wird.
+Dazu werden zun"achst die Notenschrift\-elemente des Musikst"uckes
+intern in \disp{einer} beliebig langen Zeile angeordnet,
+die dann gleichm"a\3ig so auf Zeilen einer bestimmten L"ange
+verteilt werden, da\3 die Einteilung des Raumes erhalten bleibt.
+
+Die Einteilung in die einzelnen Zeilen ist also
+nicht vom Benutzer vorgegeben.
+Dies ergibt die Schwierigkeit, da\3 das Notensatzsystem f"ur die Angabe
+des aktuellen Notenschl"ussels und der aktuellen
+Tonart am Anfang jeder Zeile zust"andig ist.
+
+Dieses Problem mu\3 von jedem Notensatzsystem
+individuell gel"ost werden. Deshalb soll in dieser Arbeit nur eine
+L"osungsm"oglichkeit f"ur \TeX\ angeben werden.
+
+\subsubheading{Ma\3einheiten}
+Allen Berechnungen liegen einige wenige voneinander unabh"angige
+Ma\3einheiten zugrunde.
+
+Als Berechnungsgrundlage f"ur alle Abstandsberechnungen, die die
+vertikale Richtung betreffen, gilt die H"ohe des ausgef"ullten
+Notenkopfes (\disp{noteheadheight}) des verwendeten Zeichensatzes,
+im folgenden mit dem \TeX-Parameter |\nhh| bezeichnet.
+Dadurch wird vor allem der vertikale Abstand der Notenlinien
+festgelegt.
+
+Allen horizontalen Berechnungen liegt die Breite des ausgef"ullten
+Notenkopfes (\disp{noteheadwidth}) --- im folgenden |\nhw| genannt
+--- zugrunde.
+
+Die St"arke aller d"unnen Linien (Notenlinien, Hilfslinien und
+Notenh"alse) ist unabh"angig von den obengenannten Ma\3einheiten und
+somit unabh"angig vom ausgew"ahlten Zeichensatz (\disp{Font}), da sie
+das Notenlesen nur unterst"utzen und nicht dominieren sollen. Sie
+sollten so schmal sein, wie das Ausgabeger"at es zul"a\3t.
+F"ur den Drucker
+AGFA - P400 konnte eine St"arke von 0.15 \pt\ gew"ahlt werden.
+
+F"ur die Hilfslinien wurde jedoch
+die doppelte Linienst"arke verwendet. Dies wurde von
+K. Hader (\lit{\hader}) als "ubliche St"arke f"ur den Handnotensatz
+angegeben.
+
+W"ahrend die St"arke der d"unnen Linien unabh"angig vom ausgew"ahlten
+Font ist, gilt dies nicht f"ur die dickeren Linien (Balken und
+Schlu\3striche).
+
+K. Hader gibt als Schema f"ur die St"arke der Balken an:
+
+{\leftskip=30pt\rightskip=\leftskip\sl Sie ist dann richtig,
+wenn drei Balken mit ihren
+Spatien (Zwischenr"aumen) zusammen genau drei Zwischenr"aume der
+Notenzeile ausf"ullen.\par}
+
+W"ahlt man die Dicke der Spatien so gro\3 wie
+die Balkendicke, so ergibt sich $\frac35$ |\nhh|
+als Ma\3 f"ur die Balkendicke.
+Dieser Wert wurde auch f"ur alle Arten von Schlu\3strichen
+( \gleich ) "ubernommen.
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc5.tex b/macros/mtex/documentation/mdoc5.tex
new file mode 100644
index 0000000000..2b64cd0ecd
--- /dev/null
+++ b/macros/mtex/documentation/mdoc5.tex
@@ -0,0 +1,1123 @@
+\heading{\TeX\ - Konzepte}
+In diesem Kapitel sollen die Konzepte von \TeX\ erl"autert werden, die
+die Grundlage f"ur das entwickelte Notensatzsystem sind. Dies ist im
+wesentlichen das Box-Glue-Konzept f"ur den Seitenaufbau, das f"ur die
+Konstruktion der Notenschriftelemente verwendet wurde, und der
+Zeilen- und Seitenumbruchalgorithmus.
+
+Alle anderen Konzepte (z.B. Definitionen von Makros und
+die Definition und
+Behandlung der internen Parameter) will ich als bekannt voraussetzen und
+f"ur Informationen dazu auf das \TeX book \lit{\Texbook}
+verweisen. Daf"ur seien die
+obigen Konzepte ausf"uhrlicher dargestellt.
+Das vorliegende Kapitel ist im wesentlichen eine Zusammenfassung der
+Kapitel~14 und~15 des \TeX book unter Ber"ucksichtigung des Artikels
+``Breaking Paragraphs Into Lines'' von D. E. Knuth und M. Plass
+\lit\Knuth. Dabei wurden die verwendeten Begriffe: Box, Glue, Penalty,
+Kern, Rule, Badness, Interline Glue und Interword Glue
+als Fachbegriffe "ubernommen und nicht "ubersetzt.
+
+\subheading{Basiselemente}
+Eine \TeX-Seite wird im wesentlichen aus zwei verschiedenen
+Basiselementen aufgebaut:
+$$\align &\hbox{1. Box,}\cr&\hbox{2. Glue.}\endalign$$
+
+Boxes k"onnen nebeneinander oder untereinander geheftet werden, wobei
+sie durch Glue verbunden werden.
+Die verschiedenen Formen, in denen Boxes und Glue auftreten k"onnen, und
+die Verfahren, wie sie aneinandergeheftet werden, sollen
+ Gegenstand dieses Abschnitts sein.
+
+\subsubheading{Die Box}
+Eine \defi{Box}
+ist ein zweidimensionales Gebilde von rechteckiger Gestalt, die
+durch das Tripel $(w,h,d)\in\rz^3 $ vollst"andig
+beschrieben ist. Dabei gibt $w$ die Breite, $h$ die H"ohe und $d$ die
+Tiefe an. Durch $h$ und $d$ ist die Grundlinie (\tex{baseline}) oder auch
+Schriftlinie der Box definiert. Der linke Endpunkt der Grundlinie ist
+als Referenzpunkt (\tex{reference point}) ausgezeichnet.
+\medskip
+{\eightpoint
+\setbox0=\hbox{$\uparrow$}
+\setbox1=\hbox to \wd0{$\hss\mid\hss$} % with luck, they'll line up
+\setbox2=\vbox{\copy0
+ \nointerlineskip \kern-.5pt \copy1
+ \nointerlineskip \kern-.5pt \copy1
+ \moveleft 1em\hbox{H"ohe}
+ \copy1 \nointerlineskip \kern-.5pt
+ \copy1 \nointerlineskip \kern-.5pt
+ \hbox{$\downarrow$}
+ \kern.2pt}
+\setbox3=\vbox{\kern.2pt\copy0
+ \moveleft 1em\hbox{Tiefe}
+ \hbox{$\downarrow$}
+ \kern0pt}
+\setbox4=\vtop{\kern-3pt % this cancels the null text above the samplebox
+ \hbox{\samplebox{\ht2}{\ht3}{6em}{}%
+ \kern-6em
+ \raise3pt\hbox to 6em{\hss Grundlinie\hss}}
+ \kern3pt
+ \arrows{6em}{Breite}}
+\medskip\indent\hskip30pt
+\setbox0=\hbox{$\vcenter{}$}% \ht0 is the axis height
+\lower\ht0\hbox{Referenzpunkt$-$\kern-.2em$\rightarrow$\kern2pt}%
+\raise\ht2\box4
+\kern1.5em
+\raise\ht2\vtop{\kern0pt\box2\nointerlineskip\box3}}
+\medskip
+
+\Beispiel
+Die Box wird zur Beschreibung der Schriftelemente verwendet, z.B.
+Buchstaben eines Zeichensatzes (\tex{characters}), aber auch Elemente,
+die aus
+mehreren Zeichen zusammen gesetzt sind, z.B. \`a oder eine mathematische
+Formel $\root n \of {x^n+y^n}$. \item{}
+Ein Spezialfall ist ein ausgef"ulltes
+Rechteck, eine sogenannte \defi{Rule}.
+\endBeispiel
+
+\Bemerkung
+F"ur alle Berechnungen werden nur die Werte von $w$, $h$ und $d$
+verwendet, unabh"angig von Inhalt der Box. Viele Zeichen sind z.B. so
+konstruiert, da\3 sie entweder die Box nicht ganz ausf"ullen oder
+"uber den Rand hinaus ragen, wie z.B. bei \tex{kursiver} Schrift.
+Wie sich sp"ater zeigen wird, ist dies eine n"utzliche Eigenschaft. Man
+kann Boxes konstruieren, die nichts zur horizontalen Berechnung
+beitragen und somit andere Zeichen "uberlappen.
+\endBemerkung
+
+Wie oben bemerkt, kann eine Box wiederum aus mehreren Elementen
+bestehen. Diese Elemente k"onnen wiederum Boxes, aber auch Glue sein.
+Man unterscheidet Boxes, deren Elemente horizontal aneinander gereiht
+werden, von solchen, deren Elemente vertikal untereinandergeheftet
+werden.
+
+\subsubheading{Der Glue}
+\defi{Glue}
+beschreibt das Ausschlu\3material, das Hilfsmaterial zum F"ullen
+der Zeilen. Glue mu\3 also wie der Ausschlu\3 beim Handsatz sowohl
+erweiterbar als auch verringerbar sein, um gleiche Zeilenl"angen zu
+erhalten. (F"ur die satztechnische Definition der Begriffe: Ausschlu\3,
+Erweiterung und Verringerung, verweise ich auf das Buch von F. Genzmer,
+``Das Buch des Setzers'' \lit{\genzmer}.)
+
+Glue wird durch das Tripel $(w,y,z)\in\rz^3 $ vollst"andig
+beschrieben. Dabei gibt die Gr"o\3e
+$w$ den nat"urlichen Abstand (\tex{natural
+space}) an, $y$ den Wert, um den der Abstand erweitert werden kann,
+und $z$ den Wert, um den der Abstand verk"urzt werden
+kann. D. E. Knuth und M. Plass \lit\Knuth\ beschreiben
+die ``variablen'' Gr"o\3en $y$ und $z$ mit ``\tex{strechability}'' und
+``\tex{shrinkability}''.
+F"ur das folgende Zeilenumbruchverfahren ist es wichtig, da\3
+die Gr"o\3en, die den Glue bestimmen, nach bestimmten Kriterien gew"ahlt
+werden. Da
+$w$ der Betrag ist, um den in horizontaler bzw. vertikaler Richtung
+vorger"uckt (falls $w>0$) bzw. zur"uckgesetzt wird (falls $w<0$),
+sollte dieser Wert
+so gew"ahlt werden, da\3 der Abstand zwischen den Boxes
+optisch gef"allig aussieht. Die ``variablen'' Gr"o\3en $y$ und $z$
+sollten so gew"ahlt werden, da\3
+beim Ausschlu\3 der Zeile der freie Raum $w+y$ bzw. $w+z$ noch akzeptabel
+ist. Es sei dabei betont, da\3
+$w$, $y$ und $z$ auch negative Werte annehmen k"onnen.
+\Bemerkung
+Dimensionen:\par
+\item{}
+Eine der leistungsf"ahigsten Eigenschaften des Glue-Konzeptes ist,
+Streck- und Stauchwerte verschiedener St"arke angeben zu
+k"onnen. Es gibt neben den gew"ohnlichen Dimensionsangaben, z.B. 10 \pt\
+(s.\lit{\Texbook, Kapitel 10}),
+ drei Ma\3einheiten, mit denen ``unbegrenzter'' Glue beschrieben werden
+kann. Diese werden in
+Einheiten von \fil, \fill\ und \filll\ angegeben.
+Im folgenden bezeichne \defi{Glue der Ordnung} $j\in\{0,\ldots,3\}
+$
+Glue, dessen Streck- bzw. Stauchwerte in Einheiten von
+\pt, \fil, \fill, oder \filll\ angegeben wurden. Glue der
+Ordnung 0 ist also ``begrenzter Glue''.
+\item{}Im folgenden Ausschlu\3verfahren (\the\chap.2\XX)
+wird die Wirkung der verschiedenen M"oglichkeiten, Glue anzugeben,
+noch n"aher betrachtet.
+\endBemerkung
+
+Ein Spezialfall von Glue ist \defi{Kern}. Darunter versteht man einen
+Freiraum, der nicht variabel ist. Er wird benutzt, um Zeichen zu einer
+Einheit zu verbinden, z.B. f"ur das \TeX-Logo, wobei die einzelnen
+Buchstaben T, E und X durch Kern ineinander geschoben sind.
+
+Die Einf"uhrung von Kern im Unterschied zu Glue ohne Streck- und
+Stauchwerte ist notwendig, um Glue, an dem eine
+Zeile oder Seite umgebrochen werden darf, von Freiraum zu unterscheiden,
+bei dem dies verboten ist. (Das \TeX-Logo kann nicht getrennt
+werden.)
+
+Ein weiterer Spezialfall f"ur Glue ist das Ausf"ullen von Leerraum mit
+Boxes \verbatimon(|\leaders|).
+Dabei wird die Box oder auch Rule so oft gesetzt, wie Glue
+daf"ur vorhanden ist. Dies wird z.B. beim Auf{}f"ullen einer Zeile mit
+Punkten benutzt \leaders\hbox to 5pt{\hss.\hss}\hfill.
+
+\subsubheading{Kontrollsequenzen im Zusammenhang mit Box und
+Glue}
+
+Im folgenden seien einige Kontrollsequenzen angegeben. (Die Angaben in
+eckigen Klammern ($\lit{ }$) bedeuten, da\3 diese Angabe optional ist.)
+\subsubsubheading{Box-Kontrollsequenzen}
+
+$\left \{{\hbox{\vo|\vbox|\voff}\atop\hbox{\vo|\vtop|\voff}}\right\}
+\hbox{\vo| to |\voff}\text{\<Dimensionsangabe>}\{\text
+{\<Material f"ur eine vertikale Liste>}\}$\par
+\indent\hbox{\vo|\hbox to |\voff}\<Dimensionsangabe>$\{$\<%
+Material f"ur eine horizontale Liste>$\}$\par
+\verbatimon\rm
+\indent\hbox{|\hrule |}$\lbrack$
+|width | \<Dimensionsangabe>$\rbrack$%
+$\lbrack$|height |\<Dimensionsangabe>$\rbrack$%
+$\lbrack$|depth |\<Dimensionsangabe>$\rbrack$%
+\par
+\indent\hbox{|\vrule |}$\lbrack$%
+|width |\<Dimensionsangabe>$\rbrack$%
+$\lbrack$|height |\<Dimensionsangabe>$\rbrack$%
+$\lbrack$|depth |\<Dimensionsangabe>$\rbrack$%
+\par
+\subsubsubheading{Glue-Kontrollsequenzen}
+
+\indent\hbox{|\vskip |}\<Dimensionsangabe>%
+$\lbrack$|plus |\<Dimensionsangabe>$\rbrack$%
+$\lbrack$|minus |\<Dimensionsangabe>$\rbrack$%
+\par\indent
+\hbox{|\hskip |}\<Dimensionsangabe>%
+$\lbrack$|plus |\<Dimensionsangabe>$\rbrack$%
+$\lbrack$|minus |\<Dimensionsangabe>$\rbrack$
+\par\indent
+\hbox{|\kern |}\<Dimensionsangabe>\par\indent
+\hbox{|\leaders |}\<Box oder Rule>\<Glueangabe>\par
+\verbatimon\rm
+
+\subsubheading{Anwendung f"ur den Notensatz}
+
+Da eine Box einen rechtwinkligen Umri\3 besitzt, k"onnen Boxes nur
+horizontaler und vertikaler Richtung aneinandergeheftet werden.
+Es besteht daher zun"achst keine M"oglichkeit,
+Linien in beliebiger Richtung zu setzen. Dies ist jedoch f"ur den
+Notensatz zur korrekten Darstellung der Balken notwendig.
+ Dieses Problem tritt bei allen
+pixel-orientierten Graphiksystemen auf.
+Mit dem \TeX-Konzept kann es gel"ost werden durch eine
+geeignete Zerlegung der Linie in mehrere Rules, die passend
+aneinandergeheftet werden.
+Das folgende Beispiel zeigt einen Balken, der gegen die
+Horizontale um 45 Grad geneigt ist, wobei die verwendeten Rules jeweils
+1\pt\ breit sind. Mit
+{\obeylines
+\begindisplay
+|\def\vr{\vrule width 1pt height 4pt depth 0pt}|\cr
+|\def\diag#1#2{\length=#1 \gradient=#2pt \m=0|\cr
+| \hbox{\loop\advance\length by -1 $\raise\m\gradient\hbox{\vr}$|\cr
+| \advance\m by 1|\cr
+| \ifnum\length>0 \repeat}|\cr
+\enddisplay
+}
+\def\vr{\vrule width 1pt height 4pt depth 0pt}
+\def\diag#1#2{\count1=0 \count2=#1 \dimen3=#2pt%
+ \hbox{\loop\advance\count2 by -1 $\raise\count1\dimen3\hbox{\vr}$%
+ \advance\count1 by 1
+ \ifnum\count2>0 \repeat}}
+
+ergibt |\diag{20}{1}| : \hskip20pt{\diag{20}{1}}
+
+Die Anwendung dieses Verfahrens f"ur den Notensatz
+ist jedoch
+sehr zeit- und speicherplatzintensiv, wenn eine hohe Aufl"osung erreicht
+werden soll, da auf einem Notenblatt eine gro\3e Anzahl solcher Balken
+zu setzen sind.
+Da \TeX\ selbst keine bessere L"osung dieses Problems bietet, wurden
+die notwendigen Balken``linien'' in einem Zeichensatz erzeugt (s. Kapitel
+{\advance\chap4 \the\chap}).
+\subheading{Verfahren zum Ausschlu\3 einer Box auf gew"unschte Breite
+bzw. H"ohe}
+\defi{Ausschlu\3} (\tex{setting the glue}) ist der Proze\3,
+Glue innerhalb
+einer Box so zu erweitern oder zu verringern, da\3 eine bestimmte
+Breite erreicht wird.
+
+Fa\3t man eine Zeile als horizontale Liste von Box- und
+Glue-Elementen auf, so bedeutet Zeilenausschlu\3 das Vergr"o\3ern oder
+Verkleinern der Glue-Elemente dieser Liste auf die gew"unschte
+Zeilenl"ange. Ebenso bedeutet Seitenausschlu\3 das Erweitern oder
+Verringern der Glue-Elemente einer Seite, die als vertikale Liste
+aufgefa\3t werden kann.
+
+\subsubheading{Ausschlu\3 einer horizontalen Box}
+Der Ausschlu\3 einer horizontalen Box
+(\hbox{\vo|\hbox|})
+erfolgt in drei Schritten:
+
+\item{1)}
+Bestimmung der nat"urlichen Breite $x\in\rz$ (\tex{natural width}) der
+Box und der zur Verf"ugung stehenden totalen Streck- und
+Stauchbarkeit $Y$ bzw. $Z$.
+
+\item{2)} Sei $\omega>0$ die gew"unschte Breite der Box. Dann wird der
+Proportionalit"atsfaktor $r$ (\tex{glue set}) bestimmt, der $x$ in
+$\omega$
+"uberf"uhrt, abh"angig von der Ordnung des Ausschlu\3materials $i$
+(\tex{glue set order}).
+
+\item{3)}
+Bestimmung der H"ohe und Tiefe der neuen Box und Festlegung ihres
+Referenzpunktes.
+\medskip
+Diese sollen im folgenden n"aher erl"autert werden.
+
+Seien $x_1,\ldots,x_m$ die Basiselemente der horizontalen Liste
+und $(w_1,y_1,z_1),\ldots ,(w_m,y_m,z_m)$ die zu\-ge\-h"o\-ri\-gen
+Tripel, wobei, falls ein $x_j, j\in \{1,\ldots,m\}$ eine Box oder Kern
+beschreibt, die Variablen $y_j$ und
+$z_j$ verschwinden. Dann erh"alt man die
+na\-t"ur\-liche Breite
+durch Aufsummieren aller na\-t"ur\-lichen Ab\-st"ande:
+$x=\sum_{j=1}^m w_j$.
+
+Die totale Streckbarkeit $Y$ bzw. Stauchbarkeit $Z$ ergibt sich
+ebenfalls durch Bilden von
+$Y=\sum_{j=1}^m y_j$ und $Z=\sum_{j=1}^m z_j$. Da die $y_i$ bzw $z_i$
+jeweils Werte verschiedener Ordnungen (im Sinne von \the\chap.1.2)
+darstellen,
+k"onnen diese
+Summen nach den jeweiligen Einheiten aufgespalten werden, d.h. in
+$$Y=Y_0+Y_1\fil+Y_2\fill+Y_3\filll$$
+und
+$$Z=Z_0+Z_1\fil+Z_2\fill+Z_3\filll\;,$$
+wobei $Y_k$ bzw. $Z_k$, $k\in\{0,\ldots,3\}$ Anzahl der Einheiten von
+Glue der Ordnung $k$
+ angeben. Dabei bezeichnet $k=0$ ``begrenzten''
+Glue (in Einheiten von z.B. \pt).
+
+Die \defi{Ordnung des Ausschlu\3materials}
+$i$ wird definiert als:
+$$i:=\cases 0\;,&\text{falls f"ur alle }k\in\{0,\ldots,3\}\text{ gilt: }
+ Y_k=0\\\max_{k\in\{0,\ldots.3\}}\{k,Y_k\ne0\}\;,&
+ \text{sonst}\endcases$$bzw.
+$$i:=\cases 0\;,&\text{falls f"ur alle }k\in\{0,\ldots,3\}\text{ gilt: }
+ Z_k=0\\\max_{k\in\{0,\ldots.3\}}\{k,Z_k\ne0\}\;,&
+ \text{sonst}\;.\endcases$$
+\medskip
+Der Proportionalit"atsfaktor $r$ berechnet sich wie folgt:
+\hfil\break
+Sei $\omega>0$ die gew"unschte Breite der Box.
+
+F"ur $x= \omega$ gilt: $r=0$ und jeder Glue erh"alt seinen
+nat"urlichen Abstand.
+
+F"ur $x< \omega$ ist eine Erweiterung erforderlich und es gilt:
+
+$$r= \cases (\omega -x)/Y_i,&\text{falls $i\ne0$,}\\
+ (\omega -x)/Y_0,&\text{falls $i=0$ und $Y_0\ne0$,}\\
+ 0, &\text{falls $i=0$ und $Y_0=0$.}\endcases$$
+
+F"ur $x> \omega$ ist ein Verringern erforderlich und es gilt:
+
+ $$r= \cases (x -\omega )/Z_i,&\text{falls $i\ne0$,}\\
+ (x -\omega )/Z_0,&\text{falls $i=0$ und $((x-\omega)\le Z_0
+ $,}\\
+0,&\text{falls $i=0$ und $Z_0=0$,}\\
+1,&\text{falls $i=0$ und $(x-\omega)>Z_0$.}\endcases$$
+\medskip
+Damit ergibt sich f"ur jeden Glue $(w,y,z)$ der horizontalen Liste mit
+einem Streckwert $y$ von $j$-ter Ordnung und einem
+Stauchwert $z$ von $k$-ter Ordnung die neue Breite
+\item{a)}bei Erweiterung: $\; w_{{\rm neu}}=\cases w+r\cdot y\;,&
+\text{f"ur $j=i$,}\\
+w\;,&\text{sonst,}\endcases$\par
+\item{b)}bei Verringerung: $w_{{\rm neu}}=\cases w-r\cdot z\;,&
+\text{falls $k=i$,}\\
+w\;,&\text{sonst.}\endcases$
+
+\Bemerkung
+\item{1)}Da die Glue-Elemente $w$, $y$, $z$ auch negative Werte annehmen
+k"onnen, ist es m"oglich, da\3 die Werte f"ur $Y$ und $Z$ auch negativ
+werden k"onnen. Dies soll jedoch ausgeschlossen sein, da $\omega$ nur
+positive Werte annimmt.
+\item{2)}Der Glue wird nur erweitert bzw. verringert, falls die
+zugeh"orige Ordnung des Glue der Ordnung des Ausschlu\3materials
+$i$ entspricht. Das Einf"ugen von Glue hoher Ordnung kann
+also eine Erweiterung oder Verringerung an anderen Stellen
+unterdr"ucken. Ebenso kann es vorkommen, da\3 Glue h"oherer Ordnung
+ausgel"oscht wird.
+\endBemerkung
+\medskip
+Alle Boxelemente werden so aneinandergereiht, da\3 ihre
+Referenzpunkte auf einer Horizontalen liegen. Die Grundlinie der neuen
+Box ist demnach die gemeinsame Grundlinie der inneren Elemente. Die
+H"ohe bzw. Tiefe der neuen Box ergibt sich als der Maximum der Tiefen
+bzw. H"ohen der eingeschlossenen
+Boxes. Eine horizontale Box
+kann demnach keine negative H"ohe bzw. Tiefe besitzen jedoch eine
+negative Breite.
+\Bemerkung
+Um bei der Eingabe von Texten nicht hinter jedem Wort eine
+Kontrollsequenz
+einf"ugen zu m"ussen, die den Zwischenraum zum n"achsten Wort angibt,
+wird das erste Leerzeichen hinter einem Wort als
+Glue interpretiert.
+(Gleiches kann mit \hbox{{|\|\tt\char`\ }} erreicht werden.)
+Der Wert des Glue richtet sich nach dem
+dem aktuell g"ultigen Zeichensatz (\defi{Interword Glue}).
+Jedem Zeichensatz ist ein solcher Glue zugeordnet.
+In einem Zeichensatz, der f"ur Textsatz verwendet wird,
+entspricht der nat"urliche Abstand
+der gew"unschten Breite eines Leerzeichens.
+Da bei mathematischen
+Formeln ein anderer Ausschlu\3 verwendet wird und einige
+mathematische Zeichen (z.B. gro\3e Klammern) aus mehreren Elementen der
+mathematischen Zeichens"atze zusammengesetzt werden, ist der
+{Interword
+Glue} in diesem Fall mit |0pt plus 0pt minus 0pt| vorbelegt.
+Der {Interword Glue} kann
+durch "Andern des Wertes des Parameters |\spaceskip|
+ver"andert werden.
+Verschwindet dieser Wert nicht, so wird der Wert
+dieses Parameters an Stelle des Glue des aktuellen Fonts eingef"ugt.
+Da im Notensatz der Glue abh"angig vom Notenwert der vorangegangenen
+Note gesetzt werden mu\3, ist dies eine M"oglichkeit, den Glue zwischen
+den Noten zu variieren.
+\endBemerkung
+\verbatimon
+\subsubheading{Beispiele und Anwendungen zum horizontalen Ausschlu\3}
+\item{1)}Im Notensatz ist es oft notwendig, die Breite eines
+oder mehrerer Zeichen zu ignorieren (z.B. f"ur die Oktavstellung von
+Versetzungszeichen (s. {\advance\chap3 \the\chap}.1),
+f"ur die Textunterlage ({\advance\chap5 \the\chap}.2) oder auch
+f"ur die Unterlage des Notenliniensystems).
+Dies ist eine einfache Anwendung des
+Ausschlu\3verfahrens. Man kann eine Box der Breite Null erzeugen, wobei
+der Boxinhalt links- oder rechts"uberlappend erscheint. Das Prinzip soll
+am mathematische Zeichen $\ne$ demonstriert werden. Es kann
+erzeugt werden durch die Eingabe
+\begindisplay
+|\hbox to 0pt{/\hskip0pt minus1fil}=|
+\enddisplay
+\item{}Durch den Glue der Ordnung 1 ist gen"ugend
+Stauchm"oglichkeit vorhanden. Das Zeichen |/| wird gesetzt, ohne jedoch
+in die horizontale Berechnung einzugehen. Es wird also rechts "uber den
+``Rand'' der Box hinausgeschoben. Anschlie\3end wird das
+Gleichheitszeichen gesetzt, und man erh"alt $\ne$.
+
+\item{}Umgekehrt kann das Ergebnis auch erreicht werden durch die Eingabe
+\begindisplay
+|/\hbox to 0pt{\hskip0pt minus1fil=}|
+\enddisplay
+\item{}
+In diesem Fall wird der Inhalt der Box "uber den linken ``Rand'' der
+Box hinausgeschoben.
+\item{2)} Die Zeichen |ab| k"onnen in einer Zeile zentriert werden durch
+die Eingabe
+\begindisplay
+|\hbox to\hsize{\hskip0pt plus1fil ab\hskip0pt plus1fil}|
+\enddisplay
+\item{}Man erh"alt
+
+\hbox to\hsize{\hskip\iindent\hskip0pt plus1fil \bf ab\hskip0pt plus1fil}
+\item{}
+Auf beiden Seiten der Zeichen befindet sich Glue der
+Ordnung 1. Die Box wird auf Zeilenbreite (|\hsize|)
+ausgeschlossen, indem der zur Verf"ugung stehende Raum zu gleichen
+Teilen vor |a| bzw. nach |b| aufgeteilt wird.
+Verwendet man
+\begindisplay
+|\hbox to\hsize{\hskip0pt plus2fil ab\hskip0pt plus1fil}|
+\enddisplay
+\item{}so erh"alt man\par\nobreak
+\hbox to\hsize{\hskip\iindent\hskip0pt plus2fil \bf ab\hskip0pt plus1fil}
+\item{}
+In diesem Fall wird der Glue im Verh"altnis 2:1 aufgeteilt. F"ugt man
+zwischen |a| und |b| Glue der Ordnung 2 ein durch die
+Eingabe
+\begindisplay
+\hskip-20pt|\hbox to\hsize{\hskip0pt plus2fil a\hskip0pt plus1fill
+b\hskip0pt plus1fil}|
+\enddisplay
+\item{}so erh"alt man:\par
+\hbox to\hsize{\hskip\iindent\hskip0pt plus2fil \bf a\hskip0pt plus1fill
+b\hskip0pt plus1fil}
+\item{}In diesem Fall werden also die Streckwerte der
+Ordnung 1
+unterdr"uckt und die Zeichen jeweils an den linken bzw. rechten
+Zeilenrand geschoben.
+Die Ausl"oschung von Glue h"oherer Ordnung sei mit dem folgenden Beispiel
+demonstriert. Die Eingabe
+\begindisplay
+\hskip-20pt|\hbox to\hsize{\hskip0pt plus1fill a\hskip0pt plus1fil
+b\hskip0pt plus-1fill}|
+\enddisplay
+\item{}ergibt
+
+\hbox to\hsize{\hskip\iindent\hskip0pt plus1fill \bf a\hskip0pt plus1fil
+b\hskip0pt plus-1fill}
+\item{3)} Als weiteres Beispiel sei ein spezielles Notensatzproblem
+angef"uhrt:
+\item{}
+Unabh"angig von der Umgebung, in der eine Note auftritt, soll
+die Breite der Noten
+immer auf gleiche Art in
+die horizontale Rechnung eingehen, d.h. gleich auch f"ur Noten mit und
+ohne Hilfslinien (dies sind
+kurze Notenlinien, die die Bestimmung der Tonh"ohe
+einer Note erleichtert, die nicht au\3erhalb des
+Liniensystems plaziert wurde)
+denn die Breite solcher Hilfslinien soll nicht
+ber"ucksichtigt werden.
+\verbatimon
+\item{}Die Hilfslinien sind (horizontal) zentriert den Noten zu
+unterlegen. Dies geschieht am einfachsten, indem man Note und Hilfslinien
+in je einer Box der Breite Null zentriert und diese zusammen zu einer
+Box der Breite |\nhw| ausschlie\3t.
+Mit
+\begindisplay
+|\hbox to\nhw{\hskip0pt plus1fil minus 1fil|\cr
+|\hbox to0pt{\hskip0pt minus1fil |\<Note>|\hskip0pt minus1fil}|\cr
+\hskip2\iindent
+|\hbox to0pt{\hskip0pt minus1fil |\<Hilfslinien>|\hskip0pt minus1fil}|\cr
+|\hskip0pt minus1fil}|
+\enddisplay
+\item{}erh"alt man z.B. \quad \v{14}\global\sk=0pt
+\subsubheading{Ausschlu\3 einer vertikalen Box}
+Der Ausschlu\3 einer vertikalen Box
+(\hbox{\vo |\vbox| oder |\vtop|})
+verl"auft "ahnlich wie bei der
+horizontalen Box, jedoch erfolgt die Aneinanderheftung nach einem
+komplizierteren Schema.
+
+Ist kein Glue angegeben, wird der Zeilenzwischenraum nach folgendem
+Verfahren berechnet:
+
+Um einen gleichm"a\3igen Ausschlu\3 zu erhalten, sollte der Abstand
+zwischen den Grundlinien m"oglichst gleich bleiben.
+
+Sei der gew"unschte Abstand der Grundlinien
+(\hbox{\vo|\baselineskip|\voff})
+zweier
+benachbarter Zeilen durch Glue der Form $b$ |plus| $y$ |minus| $z$
+(s. \the\chap.3.2)
+gegeben. Sei $l$ Glue (|\lineskip|),
+der eingef"ugt werden soll, falls der
+berechnete Zwischenraum den Wert $\bar l$
+(\hbox{\vo|\lineskiplimit|\voff}) unterschreitet. Weiter sei
+$d$ die Tiefe der oberen Box und $h$ die H"ohe der unteren Box.
+
+Dann ergibt sich f"ur den Glue, der zwischen den Boxes eingef"ugt wird
+(\defi{Interline Glue}):
+
+\item{1)} Falls $d\le-1000\pt$, wird kein {Interline Glue}
+eingef"ugt.
+\item{2)} Falls $d>1000\pt$ und $(b-d-h)\ge \bar l$,
+wird ein {Interline Glue} von $(b-d-h)$ |plus| $y$ |minus| $z$
+vor der unteren Box eingef"ugt.
+\item{3)}Gilt weder 1) noch 2), wird $l$ als {Interline Glue}
+eingef"ugt.
+\par
+\midinsert
+\medskip
+{\eightpoint
+\setbox0=\hbox{$\uparrow$}
+\setbox1=\hbox to \wd0{$\hss\mid\hss$} % with luck, they'll line up
+\setbox2=\vbox{\copy0
+ \nointerlineskip \kern-.5pt \copy1
+ \moveleft0em\hbox{$h$}%
+ \copy1 \nointerlineskip \kern-.5pt
+ \hbox{$\downarrow$}%
+ \kern.2pt}
+\setbox3=\vbox{\kern.2pt\copy0
+ \moveleft 0em\hbox{$d$}%
+ \hbox{$\downarrow$}%
+ \kern0pt}
+\setbox4=\vbox{\kern.2pt\copy0
+ \moveleft 1em\hbox{$(b-d-h)$}%
+ \hbox{$\downarrow$}%
+ \kern0pt}
+\setbox5=\vbox to 0pt{\vss\copy0
+ \nointerlineskip \kern-.5pt \copy1
+ \nointerlineskip \kern-.5pt \copy1
+ \nointerlineskip \kern-.5pt \copy1
+ \nointerlineskip \kern-.5pt \copy1
+ \nointerlineskip \kern-.5pt \copy1
+ \moveleft0em\hbox{$b$}
+ \copy1 \nointerlineskip \kern-.5pt
+ \copy1 \nointerlineskip \kern-.5pt
+ \copy1 \nointerlineskip \kern-.5pt
+ \copy1 \nointerlineskip \kern-.5pt
+ \hbox to \wd0{$\hss\vrule height4pt\hss$}\nointerlineskip \kern-.5pt
+ \hbox{$\downarrow$}%
+ \kern.2pt}
+\setbox6=\vtop{\kern-3pt % this cancels the null text above the samplebox
+ \hbox{\samplebox{\ht2}{\ht3}{6em}{}%
+ \kern-6em
+ \lower\ht3\hbox to 6em{\hskip1em \vtop{\copy3\nointerlineskip
+ \copy4}\hss}}%
+ \kern-3.4pt
+ \hbox{\samplebox{\ht2}{\ht3}{6em}{}%
+ \kern-6em
+ \hbox to 6em{\hbox to 0pt{\hss\box5\hskip1em}\hskip1em \copy2\hss}}%
+ }
+\hbox to \hsize{\hfil\box6\hfil}
+}
+\medskip
+\centerline{{\eightrm Skizze zum Verdeutlichen des Interline Glue
+(\the\chap.2.3) }}
+\endinsert
+\goodbreak
+\Bemerkung
+\item{1)}
+Vor oder hinter einer Rule wird dieser Algorithmus nicht angewendet.
+\item{2)}Dieses Verfahren wurde so konzipiert, da\3
+ zwischen den Zeilen
+immer ein Mindestabstand eingehalten wird,
+ falls der nat"urliche Abstand von $l$ gleich $\bar l$ ist.
+ Jedoch k"onnen durch
+Ver"andern der Parameter $b$, $l$, $\bar l$ auch andere Effekte erzielt
+werden, z.B. wird mit |\baselineskip -10000pt| |\lineskip 0pt| und
+|\lineskiplimit 0pt| kein {Interline Glue}
+zwischen den Zeilen eingef"ugt.
+%Dies wird durch die Kontrollsequenz |\offinterlineskip| erreicht.
+\endBemerkung
+\goodbreak
+
+Die vertikale Box wird nach folgendem Verfahren
+ausgeschlossen:\item{1)}Bestimmung der ``nat"urlichen H"ohe'', der Tiefe
+und Breite sowie des Referenzpunktes,
+\item{2)}Bestimmung des Proportionalfaktors $r$.
+\medskip
+Dazu werden die
+Elemente einer vertikalen Liste werden unter
+Einbeziehung des {Interline Glue}
+so untereinander geheftet, da\3 ihre
+Referenzpunkte auf einer Vertikalen liegen.
+
+{}Der neue Referenzpunkt ist, falls
+|\vbox| verwendet wurde, der
+Referenzpunkt der untersten inneren Box, bei |\vtop| der der obersten.
+
+{}Das genaue Verfahren zur Bestimmung des Referenzpunktes, der
+nat"urlichen H"ohe $h$ und Tiefe $d$ bei |\vbox| lautet:
+\item{I)} Enth"alt die Liste keine Box, gilt $d=0\pt$.
+\item{} Ebenso, falls das letzte Element keine Box ist.
+Der neue
+Referenzpunkt ist also in diesem Fall die linke untere Ecke der
+umfassenden Box.
+\item{}
+Ist das letzte Element eine Box mit Tiefe $\bar d$, gilt $d=\bar d $.
+\item{II)}
+Ist $d>\hbox{\vo|\boxmaxdepth|\voff}$, wobei dies die Tiefe
+ ist, die eine Box h"ochstens annehmen kann, gilt
+ $d:=\hbox{\vo|\boxmaxdepth|\voff}$.
+Dieser Paramter wurde eingef"uhrt, damit die Box der letzten Zeile
+vollst"andig auf der Seite erscheint.
+\item{}Der "Uberschu\3 wird in diesem Fall
+ zur nat"urlichen H"ohe addiert, was eine Verschiebung des
+Referenzpunktes nach unten bewirkt.
+\item{III)}Die Breite der neuen Box ist das Maximum des Abstandes
+einer eingeschlossenen Box rechts vom Referenzpunkt der neuen Box.
+Die Breite einer vertikalen Box ist also immer nicht-negativ.
+\medskip
+ Der Proportionalfaktor $r$ wird wie bei einer horizontalen Box berechnet
+in Abh"angigkeit von der Differenz nat"urlicher
+H"ohe $h$, die sich aus dem Maximalabstand der inneren Boxes
+oberhalb der Grundlinie zur Grundlinie ergibt,
+und gew"unschter H"ohe $\omega$
+und den zur Verf"ugung stehenden Dehn- und Stauchm"oglichkeiten.
+\medskip
+Das genaue Verfahren zur Bestimmung des Referenzpunktes, der
+nat"urlichen H"ohe $h$ und Tiefe $d$ bei \hbox{\vo|\vtop|\voff} lautet:
+\item{i)}Die Konstruktion und der Ausschlu\3 erfolgt wie in den Regeln
+f"ur \hbox{\vo|\vbox|\voff}.
+Dabei wird die nat"urliche H"ohe $\bar d $ und Tiefe $\bar h$ bestimmt.
+\item{ii)}F"ur die endg"ultige H"ohe $h$ gilt:
+$$h=\cases 0\pt\;,&
+\text{falls das 1. Listenelement keine Box ist,}\\
+\text{die H"ohe der obersten Box, }&\text{sonst.}\endcases$$
+\item{iii)}Der Referenzpunkt wird so verschoben, da\3 gilt:
+$d:= \bar h+\bar d-h$.
+
+\subsubheading{Beispiele und Anwendungen zum vertikalen Ausschlu\3}
+Im folgenden sollen die Unterschiede von |\vtop| und
+|\vbox| bei verschiedenen Anwendungen verdeutlicht werden.
+\item{1)}Als einfache Anwendung ergibt sich zun"achst der Aufbau des
+Liniensystems. Da nach Rules kein Interline Glue eingef"ugt wird, ergibt
+sich das Liniensystem durch f"unfmaliges Auf{}f"uhren einer Rule der
+L"ange der Zeilenbreite, die durch Kern voneinander getrennt sind:
+\begindisplay
+|\vbox{|\<Linie>\<Kern>\<Linie>\<Kern>\<Linie>\<Kern>\<Linie>\<Kern>%
+\<Linie>|}|
+\enddisplay
+\item{}
+Dies ergibt eine Box, deren Grundlinie die unterste Linie ist, ohne Tiefe
+und mit einer H"ohe vom F"unf{}fachen
+der Linienh"ohe und Vierfachen des Kern.
+W"urde man in diesem Beispiel |\vtop| verwenden, so erg"abe sich als
+Grundlinie die oberste Linie, wobei die H"ohe der Box die H"ohe der
+Linie betr"agt, und die Tiefe das Vierfache
+der Linienh"ohe und des Kerns. Dies wird zum Beispiel bei der
+Konstruktion der Hilfslinien unterhalb des Liniensystems ben"otigt.
+\item{2)}
+Das Ansetzen der F"ahnchen an den Notenhals:
+\item{}Da die Notenhalsl"angen variabel sind (s. Kapitel %\XX
+{\advance\chap3 \the\chap}), k"onnen
+die F"ahnchen nicht zusammen mit dem Notenhals als ein Zeichen in den
+Zeichensatz aufgenommen werden. Es gilt nun, eine Konstruktion zu finden,
+so da\3 die F"ahnchen am jeweiligen Notenhalsende positioniert werden.
+\item{}Dies kann f"ur den nach oben gestielten Hals durch eine
+|\vbox|-Konstruktion und f"ur den nach unten gestielten Hals durch eine
+|\vtop|-Konstruktion erreicht werden. Zu beachten ist, da\3 in beiden
+F"allen kein Interline Glue eingef"ugt werden darf.
+\begindisplay
+|\vbox to|\<Notenhalsl"ange>|{\hbox{}|\<F"ahnchen>%
+|\vskip0pt plus 1fil}|\cr
+|\vtop to|\<Notenhalsl"ange>|{\hbox{}\vskip0pt plus1fil|\<F"ahnchen>%
+|\hbox{}}|
+\enddisplay
+
+\hbox to\hsize{\hfill
+\leaders\hrule\hskip20pt\kern-5pt{\music\char\hex21}%
+\vrule height 16pt depth 0pt
+\vbox to16pt{\offinterlineskip\hbox{}\hbox{\music
+\char\hex29}\vss\hbox{}}%
+\leaders\hrule\hskip20pt\kern-3pt\vrule height 0pt
+depth16pt\vtop to 16pt{\offinterlineskip\hbox{}\vss\hbox{\music\char
+\hex2E}\hbox{}}{\music\char\hex21}\kern-5pt
+\leaders\hrule\hskip20pt \hfill}
+
+\item{}Nach den oben angegebenen Regeln f"ur den Ausschlu\3 der
+vertikalen Box ist also der Referenzpunkt die linke untere Ecke
+der umfassenden Box, die zu der H"ohe der aktuellen Notenhalsl"ange
+ausgeschlossen wurde, so da\3, unabh"angig von der H"ohe und Tiefe
+des F"ahnchens, der obere Rand des F"ahnchens mit dem oberen Rand der
+Box abschlie\3t. Umgekehrt ist dies im zweiten Fall. Diese Box erh"alt
+als Tiefe die Notenhalsl"ange, w"ahrend die H"ohe verschwindet. Der
+Referenzpunkt ist also die obere linke Ecke der Box.
+
+\item{3)}F"ur das genaue Ansetzen der Balken an den Notenhals ist es
+notwendig, die Box, in der der Balken zusammengesetzt wurde (s.
+\the\chap.1.4), so auszuschlie\3en, da\3 die H"ohe bzw. Tiefe des
+Balkens nicht in die
+vertikale Berechnung eingeht.
+Die Box, in der der Balken zusammengesetzt wurde, hat nach den obigen
+Regeln als Breite $w$ den (horizontalen) Abstand des ersten und letzten
+Notenhalses der zu verbalkenden Noten. Die H"ohe ergibt sich als Produkt
+der Steigung des Balkens mit $w$ zuz"uglich der
+Balkenst"arke. Die Tiefe betr"agt
+in diesem Fall gleich Null. F"ur die weitere Plazierung anderer
+Notenschriftelemente in der N"ahe
+einer solchen Box sind diese Ausma\3e hinderlich.
+Es reicht aus, den Balken so zu setzen, da\3 die H"ohe nicht in die
+Berechnungen eingeht. Dazu wird die Box noch einmal in einer vertikalen
+Box ausgeschlossen, so da\3 der Referenzpunkt der ``Balkenbox'' mit dem
+Ansatzpunkt des Balkens "ubereinstimmt und die Box keine H"ohe und keine
+Tiefe besitzt.
+Dies kann "ahnlich wie in den Beispielen
+zum horizontalen Ausschlu\3 durch Einf"ugen von Glue der
+Ordnung 1 erreicht werden.
+\item{}
+F"ur positive Steigungen wird dazu die
+|\vbox|-Konstruktion
+\begindisplay
+|\vbox to0pt{\vskip0pt minus1fil\diag{20}{1}\hbox{}}|,
+\enddisplay\item{}
+verwendet,
+w"ahrend f"ur negative Steigungen die
+|\vtop|-Konstruktion
+\begindisplay
+|\vtop to0pt{\hbox{}\diag{20}{1}\vskip0pt minus1fil}|
+\enddisplay
+benutzt wird. Der so gewonnene Ansatzpunkt soll in der folgenden Skizze
+verdeutlicht werden.
+\par\par\vskip30pt
+{\offinterlineskip
+\hbox to\hsize{\hfill \leaders\hrule\hskip20pt
+\hbox to0pt{\vbox to0pt{\vskip0pt minus1fil\diag{20}{1}\hbox{}}\hss}%
+\leaders\hrule\hskip20pt
+\hbox to0pt{\vtop to0pt{\hbox{}\diag{20}{-1}\vskip0pt minus1fil}\hss}%
+\leaders\hrule\hskip40pt\hfill}}
+\vskip20pt
+\item{}Weitere Beispiele im Zusammenhang findet man
+in den Notenbeispielen von Kapitel {\advance\chap4 \the\chap}
+und im Anhang A.
+
+\subheading{Der Zeilenumbruchalgorithmus}
+F"ur ein Textsatzsystem ist es notwendig, ein Verfahren bereitzustellen,
+das eine Folge von Schriftelemen\-ten, d.h. einen Absatz, in Zeilen
+einteilt, so da\3 ein gleich\-m"a\3iges Bild entsteht.
+Zu l"osen ist also das Optimierungsproblem:
+
+{\leftskip30pt \sl
+Finde eine Folge von Umbruchpunkten,
+so da\3 der gesamte Absatz ``m"oglichst gleichm"a\3ig'' umbrochen
+wird.\par}
+
+Ob ein Absatz (\tex{paragraph}) gut ausgeschlossen ist, wird nach drei
+Kriterien beurteilt:
+\item{$\bullet$}Ist ein Bruch der Zeile an \disp{dieser} Stelle geeignet?
+\item{}Dies ist ein lokales Kriterium. Es wird bewertet, ob zum Beispiel
+eine Formel ung"unstig getrennt wurde.
+\item{$\bullet$}Ist der Ausschlu\3 der Zeile angenehm?
+\item{}Dies ist ein globales Kriterum f"ur die Zeile. Bewertet wird, ob
+z.B. eine Zeile zu locker oder zu eng ausgeschlossen wurde.
+\item{$\bullet$}Gibt es gro\3e Unterschiede im Ausschlu\3 benachbarter
+Zeilen?
+\item{}Bewertet wird, ob z.B. eine Zeile eng ausgeschlossen wurde und
+die folgende sehr locker.
+
+Es ist also eine Bewertungsfunktion gesucht, die diese Kriterien
+ber"ucksichtigt, und das Optimierungsproblem wird durch Minimierung
+dieser Bewertungsfunktion gel"ost.
+
+\subsubheading{Die Penalty}
+D. E. Knuth f"uhrt ein weiteres Basiselement
+ein, das eine Bewertung nach dem ersten Kriterium er\-m"oglicht. Die
+\defi{Penalty} $p\in\rz$ beschreibt die ``"asthetischen Kosten'' f"ur
+einen Umbruch an einer Stelle. Kleine Penalty-Werte bedeuten dabei
+einen g"unstigen Umbruch, gro\3e einen ung"unstigen. \par
+F"ur
+$p\le-10\,000$ wird erzwungen, da\3 die Zeile an dieser Stelle
+gebrochen wird,
+w"ahrend $p\ge10\,000$ dies verhindert.
+
+Ein Spezialfall ist eine Penalty, der eine Breite $w$ zugeordnet ist.
+Diese wird im Falle eines Umbruchs ber"ucksichtigt. Mu\3 z.B. ein Wort
+getrennt werden, so ist $w$ die Breite des einzuf"ugenden
+Trennungsstriches `-'. Es ist also m"oglich, zwischen Text, der
+innerhalb einer Zeile gesetzt werden soll, und Text, der am Zeilenrand
+auftritt, zu unterscheiden und ihm eine andere Bewertung zuzuordnen.
+
+Das zugeh"orige Kommando lautet:
+\begindisplay
+\hbox{\vo|\discretionary{|\voff}\<pre-break text>|}|%
+|{|\<post-break text>|}{|\<no-break
+text>|}|\;,\enddisplay
+wobei die jeweiligen Textelemente vom Typ Box oder Kern sein m"ussen.
+Wird die Zeile and dieser Stelle gebrochen,
+wird der \tex{pre-break text} am Zeilenende und
+der \tex{post-break text} am neuen Zeilenanfang eingef"ugt. Ist dies
+nicht der Fall, so wird der \tex{no-break text} gesetzt. Der Wert der
+Penalty an einem \tex{discretionary}-Kommando ist der Wert des
+Parameters \hbox{\vo|\hyphenpenalty|\voff},
+falls ein \tex{pre-break text} angegeben wurde,
+ und der Wert des Parameters \hbox{\vo|\exhyphenpenalty|\voff}, falls der
+\tex{pre-break text} fehlt.
+\goodbreak
+\subsubheading{Vereinbarung}
+Im folgenden beschreibe die Folge \folg xn einen Absatz, wobei die
+\folgi xjn Basis-Elemente sind. Die Folge \folgi tjn gebe den Typ des
+jeweiligen Basis-Elementes an, d.h.
+$t_j=\tbox$, falls $x_j$ eine Box\footnote{$^*$}{\noindent\verbatimon
+F"ur die folgenden
+"Uberlegungen bezeichne \tbox\ alle nicht entfernbaren Elemente. Dazu
+geh"oren: Box-Elemente, wie sie in \XX\the\chap.1.1 beschrieben wurden,
+|\discretionary|-Komandos
+sowie |\special|-,
+|\mark|-, |\vadjust|-
+und
+|\insert|-Kommandos,
+die im \TeX-Book \lit{\Texbook} n"aher beschrieben
+sind.}
+ ist,
+$t_j=\tglue$, falls $x_j$ Glue ist,
+$t_j=\tkern$, falls $x_j$ Kern ist und
+$t_j=\tpenalty$, falls $x_j$ eine Penalty ist.
+\folg wn , \folg yn und \folg zn seien
+die jeweils zugeh"origen Attribute wie in \the\chap.1.2\XX, wobei
+$y_j=z_j=0$ f"ur $t_j=\tbox$ oder $t_j=\tkern$ oder $t_j=\tpenalty$.
+
+\subsubheading{Definition der Umbruchpunkte}
+Ein \defi{m"oglicher Umbruchpunkt} ist ein Index $e\in\{1,\ldots,n\}$,
+f"ur den eine der folgenden Bedingungen (I)--(IV) erf"ullt ist:
+
+\item{(I)} $t_e=\tglue$ und $t_{e-1}=\tbox$,
+\item{(II)} $t_e=\tkern$ und $t_{e+1}=\tglue$,
+\item{(III)} $t_e=\tpenalty$, wobei $w_e=0$,
+\item{(IV)} $x_e$ ist ein \tex{discretionary}-Kommando.
+
+Jedem Umbruchpunkt wird eine Penalty zugewiesen.
+Dabei ist f"ur die F"alle
+(I) und (II) $p_e=0$. F"ur (III) ist $p_e$ der Wert von $x_e$.
+Der Wert der Penalty von (IV) ist, wie oben erw"ahnt, der
+Wert von \hbox{\vo|\hypenpenalty|\voff}
+bzw. von \hbox{\vo|\exhyphenpenalty|\voff}.
+
+Nicht jeder Umbruchpunkt ist jedoch als Zeilenendpunkt geeignet,
+falls dadurch z.B. die
+Zeile zu locker oder zu eng ausgeschlossen werden m"u\3te. "Ubersteigt
+die Bewertung des Zeilenausschlusses (s. \the\chap.3.4\XX)
+eine bestimmte Toleranzgrenze (i.e. der
+Wert von \hbox{\vo|\tolerance|\voff}),
+so wird dieser Umbruchpunkt aus der Liste der
+m"oglichen Umbruchpunkte entfernt. Ein Punkt, dessen Bewertung kleiner
+als die Toleranzgrenze ausf"allt, hei\3t \defi{legaler Umbruchpunkt}.
+
+\subsubheading{Bewertung der G"ute des Zeilenausschlusses}
+Sei $r$ der zum Zeilenausschlu\3 geh"orige Proportionalfaktor
+(s. \the\chap.2.1\XX)
+mit der zugeh"origen Ordnung $i$ des Ausschlu\3materials
+der Zeile. Die G"ute des Zeilenausschlusses wird quantitativ durch die
+folgende Funktion ausgedr"uckt:
+$$\beta(r,i)=\cases 0,&i\ne0\,,\\\min(100\,r^3,10000),&i=0\,.\endcases$$
+D. E. Knuth bezeichnet den Wert $\bar\beta=\beta(r,i)$ als
+\defi{Badness} der Zeile.
+Diese Funktion ist heuristisch so festgelegt worden, da\3 sie f"ur
+kleine $r$ niedrige Werte liefert und f"ur gr"o\3ere $r$ schnell
+anw"achst.
+
+Mit dieser Funktion k"onnen nun die Zeilenausschl"usse klassifiziert
+werden:
+
+{\advance\iindent by 40pt
+\item{$\bar\beta>100$}
+Dieser Wert kann nur durch eine Erweiterung der Zeile
+ erreicht werden. In diesem Fall gilt $r>1$. Dies bedeutet eine
+Streckung um "uber 100\% der totalen Streckbarkeit.
+Eine solche Zeile wird als \disp{sehr locker} (\tex{very loose})
+klassifiziert.
+\item{$12.5<\bar\beta\le100$}In diesem Fall gilt $0.5\le r\le 1$.
+Es ist eine
+Streckung bzw. Stauchung um mindestes 50\% der totalen Steckbarkeit bzw.
+Stauchbarkeit notwendig.
+Die Zeile wird daher bei Erweiterung als \disp{locker}
+(\tex{loose}) und bei
+Verringerung als \disp{eng} (\tex{tight}) klassifiziert.
+\item{$0<\bar\beta\le12.5$} Es gilt $0\le r<0.5$ in beiden F"allen.
+Eine solche Zeile wird als \disp{%
+unauf\-f"allig} (\tex{decent}) klassifiziert.
+
+}
+Man erh"alt also vier Klassen: {sehr locker, locker, unauff"allig
+} und
+{eng}.
+Man definiert zwei aufeinanderfolgende Zeilen als
+\defi{optisch inkompatibel},
+wenn sie nicht in der gleichen und nicht in benachbarten Klassen liegen.
+\Bemerkung
+Die Festlegung der Bewertungsfunktion $\beta(r,i)$ und damit die
+Klassifizierung beruht auf der Annahme, da\3 die einzelnen
+Gluekomponenten wie in \the\chap.1.2
+gew"ahlt wurden, so da\3 im Fall $r=1$ der
+dadurch entstehende Freiraum noch akzeptabel ist. Bei Zeilenerweiterung
+ist $r>1$ zul"assig, aber unerw"unscht, so da\3 die Funktion in diesem
+Fall schnell hohe Werte annimmt.
+\endBemerkung
+
+\subsubheading{Bewertung der Zeilen}
+Eine Indexfolge
+ $b_1<\ldots<b_k$ legaler Umbruchpunkte eines Absatzes von
+$k$ Zeilen, so da\3
+%Folgenelement $b_j$ angenommen wird, da\3
+$x_{b_j}$ letztes Element
+der $j$-ten Zeile des Absatzes ist, hei\3t Zeilenendpunktfolge.
+
+\Bemerkung
+Jeder erzwungene Umbruchpunkt mu\3 in jeder solchen Folge enthalten
+sein. Es gilt immer $b_k=n$, denn beim Abschlie\3en einer horizontalen
+Liste wird das letzte Element, falls es
+Glue ist, entfernt. Gleichzeitig werden als weitere
+Elemente
+\begindisplay \verbatimon
+|\penalty10000\hskip\parfillskip\penalty-10000|\verbatimoff
+\enddisplay
+\verbatimon
+eingef"ugt. $x_n$ ist also immer eine Penalty, die erzwingt, da\3 die
+Zeile an dieser Stelle gebrochen wird.
+\endBemerkung
+
+Sei nun
+$b_1<\ldots<b_k$
+die Folge von Zeilenendpunkten. Dann ist
+dieser eine Indexfolge
+$a_1<\ldots<a_k$ f"ur Zeilenelemente $x_{a_j}$
+zugeordnet, die jeweils
+den Anfang der Zeile zu den jeweiligen Endpunkten markiert.
+Diese Punkte werden festgelegt, indem man die Zeile an den Umbruchpunkten
+$b_j$ teilt und zu Beginn jeder neuen Zeile alle Glue- und
+Penalty-Elemente entfernt. Der Zeilenanfangspunkt $a_{j+1}$ ist dann
+das erste Element f"ur das gilt $t_{a_{j+1}}=\tbox$.
+
+Genauer gilt: Sei $b_0=0 $. Ist
+$$I_j =\{b_{j-1}<i<b_j\mid t_i=\tbox \text{ oder }t_i=\tpenalty
+\text{ mit } p_i\ge-10000\}\;$$ aus allen Elementen der $j$-ten Zeile.
+Dann ist $$a_j= \cases b_j\;,&\text{falls }I_j =\emptyset\\
+ \min I_j\;,&\text{sonst.}\endcases$$
+Die $j$-te Zeile enth"alt dann also alle Elemente $x_i$ mit
+$a_j\le i \le b_j$ und $i=b_j$, falls $t_{b_j}=\tpenalty$.
+
+
+\Bemerkung
+Die legalen Umbruchpunkte werden im Verfahren
+ so gew"ahlt, da\3 normalerweise kein
+Glue am Zeilenende und am Zeilenanfang
+steht, es sei denn durch ausdr"uckliches Kommando. Glue am Zeilenende
+ist im Notensatz
+jedoch erforderlich f"ur den Fall eines Zeilenumbruchs in der Taktmitte,
+d.h. nach einer Note innerhalb des Taktes.\item{}
+Glue am Zeilenende erh"alt man, indem man den {%
+Interword Glue} ersetzt
+durch eine Glue-Penalty-Folge der Art:
+\begindisplay
+|\penalty10000\hskip|$w$|\penalty0|,
+\enddisplay
+\item{}
+wobei $w$ den zu setzenden Wert des Glue bezeichnet.
+\item{}
+Die Penalty 10000 unterdr"uckt, da\3 die Zeile an dieser Stelle gebrochen
+wird.
+Der Glue
+wird nicht in die Liste der m"oglichen Umbruchpunkte aufgenommen, da die
+Bedingung (I) nicht erf"ullt ist. Als Ausgleich wird die Penalty 0 in
+die Liste aufgenommen. Wird die Zeile an dieser Stelle gebrochen, so
+erscheint also Glue am Zeilenende.
+\item{}
+Glue am Zeilenanfang erh"alt man, indem man dem normalen
+{Interword Glue}
+die Box-Glue-Penalty-Folge
+\begindisplay
+|\penalty0\hskip|$-w$|\penalty10000\hskip|$w$
+\enddisplay
+\item{}
+hinzuf"ugt.
+\item{}
+Innerhalb der Zeile heben sich die Glues auf. Der einzige m"ogliche
+Umbruchpunkt in dieser Folge ist die erste Penalty. Wird die Zeile an
+dieser Stelle gebrochen, so wird der Glue bis zur Box entfernt, und es
+erscheint Glue am Zeilenanfang. Ein Fehlen der leeren Box w"urde also
+auch die Entfernung des zweiten Glues im Falle eines Zeilenbruchs an der
+ersten Penalty bewirken.
+\endBemerkung
+
+Mit diesen Voraussetzungen kann nun die Bewertung der einzelnen Zeilen
+erfolgen.
+
+Seien $\beta_j$ und $p_j$ die dem Zeilenendpunkt der $j$-ten Zeile
+zugeordnete Badness bzw. Penalty. Dann sind die sogenannten Kosten
+(\tex{demerits}) $d_j$ f"ur diese Zeile definiert durch:
+
+$$d_j=\cases (l_j+\beta_j)^2 + p_j^2\;,&\text{falls }0\le p_j<10000,\\
+ (l_j+\beta_j)^2 - p_j^2\;,&\text{falls }-10000< p_j<0,\\
+ (l_j+\beta_j)^2\;,\hfill &\text{falls }p_j\le-10000,\endcases$$
+wobei $l_j$ ein Parameter ist, der je nach Wert die Gesamtkosten
+erh"ohen oder senken kann. Dabei ist $l_j$ der aktuelle Wert von
+ \hbox{\vo|\linepenalty|\voff}.
+
+\Bemerkung
+Die Unstetigkeitsstelle der Funktion f"ur $p_j\le-10000$ ist aus
+programmiertechnischen Gr"unden eingef"ugt worden. Da in diesem Fall
+$\beta_j$ in jeder Zeilenendpunktfolge enthalten ist, tr"agt es auch
+nicht zur Minimierung der Bewertungsfunktion des gesamten
+Absatzes bei (s. \the\chap.3.8\XX).
+Es wird in diesem Fall also nicht zus"atzlich
+noch ein gro\3er Wert abgezogen, um einem arithmetischen "Uberlauf
+vorzubeugen.
+\endBemerkung
+
+Zus"atzlich werden zu $d_j$ noch Kosten in Abh"angigkeit von der
+Umgebung der Zeile addiert, und zwar:
+der Wert von \hbox{\vo|\adjdemerits|\voff}, falls die Zeilen
+ $j-1$ und $j$ inkompatibel sind,
+der Wert von {\vo|\doublehyphendemerits|\voff},
+falls sowohl $x_{b_{j-1}}$ als auch $x_{b_j}$ ein
+\tex{discretionary}-Kommando ist, und
+der Wert von {\vo|\finalhyphendemerits|\voff},
+falls $x_{b_{k-1}}$ ein \tex{discretionary}-Kommando ist.
+
+\subsubheading{Bewertung des Absatzes}
+
+Die Folge $b_1<\ldots<b_k$ von Umbruchpunkten, f"ur die
+$\sum_{j=1}^k d_j$ minimal ist (Minimum der Summe der Quadrate der
+Penalties und Badness jeder Zeile) wird als endg"ultige Folge
+ausgew"ahlt. Damit wird meistens auch
+$\max \beta_j$ minimiert,
+aber nicht notwendigerweise. Dies ist auch nicht
+erw"unscht, da mit der Methode der kleinsten Quadrate ein gleichm"a\3iger
+Ausschlu\3 des gesamten Absatzes erzielt werden soll.
+
+\subsubheading{Bemerkungen zum Zeilenumbruch
+ und zur Wahl von Parametern}
+
+\item{1)}Durch Ver"andern der Parameter k"onnen verschiedenen Effekte
+erzielt werden, z.B.:
+\itemitem{a)}F"ur normalen Textsatz wird man
+\hbox{\vo|\parfillskip 0pt plus 1fil|\voff} verwenden.
+Setzt man
+\hbox{\vo|\parfillskip 0pt|\voff}, so wird die letzte Zeile des
+Absatzes bis zum Ende ausgeschlossen, was f"ur den Notensatz
+erforderlich ist.
+Ist der Text nicht lang genug oder
+zu schmal, gibt es Schwierigkeiten, da zu wenig Streckm"oglichkeit
+vorhanden ist und nicht gen"ugend Umbruchpunkte zur Wahl stehen.
+\itemitem{b)}
+Durch Erh"ohen von \hbox{\vo|\adjdemerits|\voff} kann man verhindern,
+da\3 die Zeilen zu unterschiedlich ausgeschlossen werden.
+
+\item{2)} Der \TeX-Zeilenumbruchalgorithmus ist so konzipiert,
+da\3 nicht sofort bei
+der ersten Gelegenheit, sondern abh"angig von
+den benachbarten Zeilen umgebrochen wird. Der
+Algorithmus ist also in gewisser Weise voraus- bzw.
+zur"uckschauend.
+
+\subheading{Der Seitenumbruch}
+
+Ist die optimale Folge von Umbruchpunkten gefunden, werden die einzelnen
+Zeilen, verbunden durch {Interline Glue} (s. \the\chap.2.3\XX)
+an die aktuelle ``Seitenliste'' angef"ugt.
+
+Zus"atzlich wird vor jedem Glue eine Penalty
+eingef"ugt und danach vertikales Material,
+das aus
+der jeweiligen Zeile mit
+\hbox{\vo|\vadjust{|\voff}\<vertical list>|}| ausgelagert wurde
+in der Reihenfolge des Erscheinens (d.h. von links nach rechts).
+Dieses eingef"ugte vertikale Material beeinflu\3t also nicht den
+{Interline Glue}.
+
+\subsubheading{Die Seitenumbruchpunkte}
+Das Verfahren f"ur den Seitenumbruch ist dem
+Zeilenumbruchalgorithmus "ahnlich.
+
+Ein Seitenumbruch kann stattfinden
+\item{a)} vor Glue, dem unmittelbar eine Box
+der vertikalen Liste vorangeht,
+\item{b)} vor Kern, falls dieser unmittelbar von Glue gefolgt
+wird,
+\item{c)}an einer Penalty.
+
+\subsubheading{Die Bewertung des Seitenumbruchs}
+Eine Penalty $p\le-10000$ erzwingt somit einen Seitenumbruch.
+
+Jede Seite wird einzeln bearbeitet, d.h. es wird nicht wie beim
+Zeilenumbruch voraus- oder zu\-r"uck\-schauend gearbeitet,
+da dies zu viel Speicherungsaufwand erfordern w"urde.
+Zu jedem in
+Erw"agung gezogenen Seitenumbruchpunkt werden mittels einer
+Bewertungsfunktion die ``Kosten'' $c$ berechnet:
+$$c=\cases \beta\;, &\text{falls }\beta<\infty\text{ und }
+ p\le-10000\;,\\
+ \beta+p\;, &\text{falls }\beta<10000 \text{ und }-10000<p<10000
+ \;,\\
+ 100000,&\text{falls }\beta\ge10000\text{ und }-10000<p<10000
+ \;,\endcases$$
+wobei $\beta$ die Badness und $p$ die
+zugeordnete Penalty bezeichnet.
+Die {Badness} einer vertikalen Liste
+wird im wesentlichen genauso berechnet wie die der horizontalen Liste.
+
+Die Kosten werden an jedem legalen Umbruchpunkt berechnet, solange bis
+ein Umbruchpunkt gefunden wird, an dem das neuberechnete
+$c$ gr"o\3er ist als das zuvorberechnete. Dann wird die Seite am
+vorletzten Seitenumbruchpunkt umbrochen.
+Nach dem Seitenumbruch werden alle folgenden
+Glue-, Kern- und Penalty-Elemente der horizontalen
+Liste solange entfernt, bis ein Box-Element erscheint.
+Es kann also durch
+\hbox{\vo|\penalty-10000\penalty-10000|\voff} in der vertikalen
+Liste keine Leerseite erzeugt werden.
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc6.tex b/macros/mtex/documentation/mdoc6.tex
new file mode 100644
index 0000000000..0296fcdc73
--- /dev/null
+++ b/macros/mtex/documentation/mdoc6.tex
@@ -0,0 +1,527 @@
+\heading {R"aumliche Einteilung des Notenblattes}
+
+Das Grundproblem, das von jedem automatisierten Noten\-%
+satzsystem gel"ost werden
+mu\3, ist die ``grobe'' r"aumliche Einteilung des Notenblattes, so da\3
+das Erscheinungsbild "ubersichtlich und die Struktur des Musikst"uckes
+erkennbar wird. Diese Einteilung sollte automatisch erfolgen und nicht
+vom Benutzer des Notensatzsystems ausgef"uhrt werden.
+
+Das Problem der Gestaltung
+der ``"au\3eren Form'' des Notenblattes
+gliedert sich in
+f"unf Teilprobleme:
+\item{0)}Die Gestaltung der "Uberschriften, wie Angaben zu Titel,
+Komponist und Textverfasser
+\item{1)}Die Konstruktion des Notenliniensystems
+\item{2)}Die gleichm"a\3ige vertikale Einteilung des Musikst"uckes, d.h.
+das Abstecken
+\item{3)}Das automatische Plazieren der jeweils g"ultigen
+Notenschl"ussel, Vorzeichnung und Taktart
+\item{4)}Die Strukturierung des Musikst"uckes durch Taktstriche
+
+Die L"osung dieser Teilprobleme ist abh"angig vom verwendeten
+Notensatzsystem.
+Spezielle Verfahren habe ich in der mir bekannten Literatur nicht
+angetroffen. Im folgenden sollen die zugeh"origen Satz- und
+Notationsregeln beschrieben und die zugeh"origen
+Verfahren f"ur die Ausf"uhrung mit \TeX\
+angegeben werden.
+
+Da \TeX\ als Textsatzsystem zeilenweise arbeitet, konnte das
+Notensatzsystem bisher nur f"ur ein Zeilensystem verwirklicht werden.
+Da es zum Verst"andnis einiger Satzregeln jedoch notwendig ist, die
+Regeln f"ur mehrzeilige Systeme zu kennen, soll hier auf die Angabe
+dieser Regeln nicht verzichtet werden.
+
+\Bemerkung
+Da \TeX\ ein Textsatzsystem ist, sind der Gestaltung der "Uberschriften
+keine Grenzen gesetzt. Sie soll deshalb kein Thema dieser Arbeit sein.
+Gourlay (\lit{\gourlay, S. 397}) schl"agt vor, den Titel zu
+zentrieren, w"ahrend der Textverfasser und Komponist links- bzw.
+rechtsb"undig darunter erscheinen sollen. Dieser Vorschlag wurde als
+M"oglichkeit in das Notensatzformat aufgenommen.
+\endBemerkung
+\goodbreak
+\subheading{Satz- und Notationsregeln zur r"aumlichen Einteilung}
+\subsubheading{Das System}
+\item{S1)} Die Notenschriftelemente werden in ein Zeilensystem mit
+f"unf Notenlinien eingeordnet.
+Dabei werden sowohl die Linien als auch die Zwischenr"aume
+genutzt \lit{{\ziegen, \bf17}}.
+Ein solches Zeilensystem wird in der Musiktheorie als
+\defi{System} bezeichnet.
+\item{S2)} Zur Notation mehrstimmiger Musik k"onnen mehrere Systeme
+verwendet werden, die durch eine sogenannte \disp{Akkoladenklammer} zu
+einer Akkolade zusammengefa\3t werden. (Die Taktstriche werden in diesem
+Fall unter Ber"ucksichtigung der Instrumentengruppe in
+Partituren durchgezogen.)
+\item{S3)} Bei der Notation in \disp{einem}
+Zeilensystem steht am Zeilenanfang kein Taktstrich.
+\item{S4)} Die L"ange der Notenlinien einer Notenzeile
+entspricht der Breite des
+Notenblattes, jedoch ist es oft "ublich, die erste Zeile wie den Absatz
+im Textsatz um einen gewissen Betrag einzuziehen. Dieser gewonnene
+Trennraum wird oft zur Kennzeichnung des jeweiligen Instruments
+verwendet.
+\item{S5)} Der Abstand der Notenlinien entspricht der H"ohe eines
+Notenkopfes.
+\goodbreak
+\subsubheading{Das Abstecken}
+Im Gegensatz zum Handnotensatz wird das genaue Plazieren der einzelnen
+Notenzeilen auf der Seite erst nach dem Zeilenumbruch vorgenommen, wenn
+sich gen"ugend Material f"ur eine Seite angesammelt hat. Jedoch ist es
+f"ur die gleichm"a\3ige vertikale Verteilung der einzelnen Notenzeilen
+angebracht einen Mindestabstand der Notenzeilen anzugeben, wobei es
+jedoch m"oglich sein mu\3, den Abstand zwischen den Zeilen zu erh"ohen,
+falls die Noten oder unterlegte Texte weit in diesen Zwischenraum
+ragen.
+
+Berechnungsgrundlage f"ur den Zwischenraum zwischen zwei Systemen ist das
+Zweifache der H"ohe des Systems (\disp{Rastralh"ohe}). Die
+Notenschriftelemente k"onnen also von oben und von unten bis zu einer
+Rastralh"ohe in diesen Zwischenraum hineinragen. Wird dieser Betrag
+"uberschritten, so mu\3 der Raum zwischen den Systemen
+ unbedingt vergr"o\3ert werden
+\lit{\gomb}.
+
+Der Abstand ist so gew"ahlt, da\3 die Zwischenr"aume nur dann
+vergr"o\3ert werden m"ussen, wenn Noten mit vier Hilfslinien dargestellt
+werden m"ussen.
+
+\subsubheading{Regeln zum Satz von Notenschl"usseln, Vorzeichnung und
+Taktart}
+
+\item{V1)} Zu Beginn jeder Notenzeile mu\3 der aktuelle Notenschl"ussel
+zusammen mit der Vorzeichnung, d.h. der Tonartkennzeichnung, angegeben
+werden. Dabei mu\3 der Notenschl"ussel immer der Vorzeichnung
+vorangestellt sein. Dies entspricht der Regel 3) in der von K. Hader
+aufgestellten
+``musikalischen Orthographie''(\lit{\hader}):
+
+{\leftskip=30pt \rightskip=\leftskip \sl
+Musikbeschriebene Notensysteme
+ohne Schl"ussel und Tonart sind unbrauchbar.\par}
+\item{V2)}Die Vorgaben zu Beginn des Musikst"uckes gelten f"ur das
+gesamte Musikst"uck (\lit{\ziegen, S. 58}).
+\item{V3)} Die Taktart soll
+zu Beginn des Musikst"uckes angezeigt werden und
+zwar direkt nach Notenschl"ussel und Tonart.
+\item{V4)} Wechsel: Jeder Wechsel von Notenschl"ussel, Tonart oder
+Taktart mu\3 im Notenbild angezeigt werden.
+
+\item{a)}Ein Taktwechsel kann
+nur zu Beginn eines neuen Taktes erfolgen. Meist steht die ge"anderte
+Taktangabe nach dem Taktstrich vor der ersten Note. Beginnt eine neue
+Zeile mit Taktwechsel, so wird dies zus"atzlich am Ende der
+vorhergehenden Zeile vermerkt. Bei h"aufigem Taktwechsel kann die
+"Anderung, um Platz zu sparen, auch "uber dem System angegeben
+werden, wobei kein zus"atzlicher horizontaler Raum ben"otigt wird.
+\item{}
+Bei regelm"a\3ig wiederholtem Taktwechsel braucht das Kennzeichen nicht
+in jedem Takt erneut zu erfolgen. Die wechselnden Taktangaben k"onnen
+einmalig zu Beginn angegeben werden (\lit{\ziegen}).
+\Beispiel
+{\parindent\iindent
+\small
+\beginsong
+\vio\G\meter2/8\meter3/4%
+\group{\\{\a{-1}}\\{\a0}\\{\a1}}{\\{-1}\\{0}\\{1}}\ubeam13\go\|%
+\group{\\{\v{2}}\\{\v{-1}}}
+{\\{1}\\{-1}}\lslur12\go\|\go\|\v2\.1\a3\v4\|\h2\v{-1}\|
+\group{\\{\v2}\\{\v{-1}}}
+{\\{1}\\{-1}}\lslur12\go\|\go\|\v2\.1\a3\v4\=%
+\endsong
+}
+\endBeispiel
+\vskip -1cm
+
+\item{b)} Ein Wechsel der Tonart kann nur am Anfang eines Taktes
+angegeben werden. Dabei mu\3 die vorher g"ultige Tonart zun"achst
+``aufgel"ost'' und die neue angegeben werden.
+\Beispiel
+{\hsize5cm\advance\hsize2\iindent\parindent=2\iindent
+\loose
+\beginsong
+\vio\Es\hskip20pt\E\hskip20pt\hfill
+\endsong}
+\endBeispiel
+\vskip -1cm
+\item{}
+Ein Tonartwechsel am Anfang einer neuen Zeile mu\3 zus"atzlich am Ende
+der vorangehenden Zeile notiert werden.
+\item{c)} F"ur den Wechsel des Notensch"ussels gelten die gleichen
+Regeln wie unter b), jedoch kann ein Wechsel auch innerhalb des Taktes
+vorkommen. In diesem Fall wird nur dann zus"atzlich horizontaler Raum
+bereitgestellt, wenn nicht gen"ugend Freiraum von der vorangehenden Note
+zur Verf"ugung steht. (\lit{\gomb})
+
+
+\item{d)} Beim Satz von Akkoladen gilt ein Wechsel von Taktart und
+Tonart
+global f"ur alle Systemzeilen, w"ahrend der Notensch"usselwechsel sich
+nur lokal auf eine Zeile bezieht.
+\item{e)} Die zur Kennzeichnung des Notenschl"usselwechsels
+verwendeten
+Notensch"ussel innerhalb einer Zeile sind normalerweise etwas kleiner
+als am Zeilenanfang. Bei Wechsel des Notenschl"ussels "andert sich
+zugleich die Position der Versetzungszeichen in der Vorzeichnung.
+{\Beispiel
+\hsize8cm
+\advance\hsize2\iindent\parindent=2\iindent
+\beginsong
+\vio\C \hskip20pt\|\v2 \ \setbox\hunkbox\hbox{\music\char\hex48}%
+\|\group{\\{\a1}\\{\a1}\\{\a1}\\{\a1}}
+{\\{1}\\{1}\\{1}\\{1}}\ubeam14\go\setbox\hunkbox\hbox{%
+\music\char\hex4A}\|\hskip10pt\hfill
+\endsong\offinterlineskip
+\parskip0pt
+\endBeispiel}
+\vskip -1cm
+\subsubheading{Taktstriche}
+\item{R1)} Taktstriche gliedern den musikalischen Ablauf im Notenbild.
+\item{R2)} Im einstimmigen Satz befindet sich am Zeilenanfang kein
+Taktstrich, im Satz von Akkoladen werden die einzelnen Systeme unter
+Ber"ucksichtigung der Instrumentengruppen in Partituren
+durchgezogen (\lit{\ziegen, \defi{44}f}).
+\item{R3)} Gr"o\3ere Abschnitte werden durch \disp{Doppelstriche}
+( \dbl\ ),
+z.B. bei Tonartwechsel, voneinander getrennt. Das Ende
+eines Musikst"uckes wird durch \disp{Schlu\3striche} ( \gleich\ )
+angezeigt (\lit{\ziegen, \defi{46}}).
+\item{R4)} Soll ein Abschnitt wiederholt werden, so wird dies durch
+Wiederholungszeichen angezeigt \hfill\break( \lrepeat \dots
+\lrrepeat\dots\rrepeat\ ). Weicht beim Wiederholen der Schlu\3
+ab, so wird dies durch \disp{K"asten} vermerkt
+( \vbox{{\offinterlineskip \dimen3=\ht\strutbox\advance\dimen3-0.2pt
+\hbox to 40pt{\strut \vrule depth-3pt\rlap{1.}%
+\leaders\hrule height \ht\strutbox depth-\dimen3\hfill\vrule depth-3pt}
+\kern-3pt
+\hbox to 40pt{\strut \vrule \hfill \dots\hfill:\kern2pt\vrule}}}\kern2pt
+\vbox{{\offinterlineskip \dimen3=\ht\strutbox\advance\dimen3-0.2pt
+\hbox to 40pt{\strut \vrule depth-3pt\rlap{2.}%
+\leaders\hrule height \ht\strutbox depth-\dimen3\hfill}\kern-3pt
+\hbox to 40pt{\strut \vrule width 2pt\hfill \dots\hfill }}} )
+
+Eine weitere Strukturierung wird erreicht durch sogenannte
+\disp{Orientierungsziffern} oder \disp{Buchstaben} \boxed1,
+\ball1%
+oder \boxed{\rm A}, die sich oberhalb eines Taktstriches befinden. Ebenso
+werden Takte gez"ahlt und die Taktzahl am Anfang der Zeile vermerkt.
+
+Eine Notenzeile kann nur nach einem Taktstrich umbrochen werden.
+Ausnahmen ergeben sich, falls die einzelnen Texte sehr gro\3en
+horizontalen Raum beanspruchen und daher kein gleichm"a\3iger
+Zei\-len\-umbruch erzielt werden kann. In einem solchen Fall darf in der
+Taktmitte umbrochen werden.
+\Bemerkung Da die Taktstriche im laufenden Text angegeben werden, wird
+ihre genaue Positionierung in Kapitel {\advance\chap1 \the\chap}
+beschrieben. \endBemerkung
+\subheading{Ausf"uhrung des Absteckens}
+\subsubheading{Einf"ugen von zus"atzlichem Notenschriftmaterial}
+Das erste zu l"osende Problem ist das Einf"ugen von zus"atzlichem
+Notenschriftmaterial in den fortlaufenden Text.
+\item{1)} Jede Zeile ist mit Notenlinien zu unterlegen.
+\item{2)} F"ur Notenschl"ussel und Vorzeichnung am Zeilenanfang ist
+horizontaler Raum bereitzuhalten.
+\item{3)} Der Wechsel von Notenschl"ussel, Vorzeichnung und Taktart am
+Zeilenanfang ist am Ende der vorherigen Zeile nochmals anzuzeigen.
+
+Der Zeilenumbruchalgorithmus (s. {\advance\chap-1 \the\chap.3}\XX)
+arbeitet so, da\3 mit dem Umbruch erst nach der Feststellung des
+Absatzendes begegonnen wird. Dann gibt es jedoch keine
+M"oglichkeit, anschlie\3end noch zus"atzlichen Text einzuf"ugen.
+
+\subsubsubheading{Verfahren 1}
+Das \TeX-Kommando |\vadjust{|\<text>|}| erm"oglicht es, Text aus einer
+horizontalen Liste {(s. \advance\chap-1 \the\chap.4\XX)}
+in die "au\3ere vertikale Liste zu "ubertragen.
+Der Text wird erst nach Abarbeitung des Zeilenumbruchalgorithmus
+hinter der Zeile eingef"ugt, in der er aufgetreten ist. Bei konstanter
+Zeilentiefe kann man durch negativen vertikalen Kern zur
+Zeilengrundlinie zur"uckkehren und den Text z.B. an den Zeilenanfang
+setzen. "Ubertr"agt man in jeder Zeile den aktuellen Notenschl"ussel und
+die aktuelle Vorzeichnung sowie das Liniensystem mit |\vadjust| in die
+vertikale Liste, so k"onnen diese Zeichen nachtr"aglich noch eingef"ugt
+werden.
+
+Bei Verwirklichung dieses Verfahrens treten folgende Probleme
+auf:
+\item{1)} Das Makro |\vadjust| mu\3 so eingesetzt werden, da\3 es in jeder
+Zeile mindestens einmal vorkommt, unabh"angig von der Zeilenl"ange.
+\item{2)} Taucht das Makro |\vadjust| mehrfach in einer Zeile auf, so
+wird nach obigem Schema die Vorzeichnung mehrfach "ubereinander\-gesetzt.
+Bei Notenschl"ussel- oder Tonartwechsel innerhalb der Zeile werden so
+verschiedene Zeichen "ubereinandergesetzt.
+\item{3)} F"ur Notenschl"ussel und Vorzeichnung mu\3 am Anfang jeder
+Zeile gen"ugend horizontaler Raum freigelassen werden.
+\medskip
+Die erste Forderung kann erf"ullt werden, indem man die
+"Ubertragung in Verbindung mit dem Setzen eines Taktstriches vornimmt.
+Da in konventioneller Musik in jeder Zeile mindestens ein Taktstrich
+vorkommt, ist die aufgestellte Forderung hier erf"ullt.
+
+Das mehrfache "Ubereinandersetzen
+ kann nur verhindert werden, indem man ein Verfahren
+sucht, das nur das erste der durch |\vadjust| in die vertikale Liste
+hinter der jeweiligen "ubertragen Elemente ausw"ahlt und setzt. Dieses
+Verfahren kann jedoch nicht mit \TeX\ allein realisiert werden, da es
+keine M"oglichkeit gibt, das erste Element nach der Box mit dem
+Zeileninhalt zu erkennen. Es gibt ein \TeX-Kommando (|\special|), das
+Informationen an das Treiber-Programm des jeweiligen Ausgabeger"ates
+"ubergibt, welches diese abh"angig von der Zeilen- und Spaltenposition
+auf dem Notenblatt auswerten und entscheiden kann, welche Zeichenfolge
+gesetzt werden soll. Dieses Verfahren ist jedoch kompliziert und macht
+das Notensatzsystem vom Ausgabeger"at abh"angig.
+
+Das Einf"ugen von freiem Raum am Zeilenanfang
+kann mittels des Zeilenumbruchalgorithmus einfach
+gel"ost werden. Der Glue, der hinter jeder Note gesetzt wird, mu\3 so
+gestaltet werden, da\3 bei Zeilen\-%
+umbruch jeweils die Breite des aktuellen
+Notenschl"ussels und der Vorzeichnung freigelassen wird. Eine
+M"oglichkeit, dies zu erreichen, wurde bereits in {\advance\chap-1
+\the\chap.3.6\XX} gezeigt.
+\Bemerkung \item{1)} Wie in Kapitel {\advance\chap-1 \the\chap}
+beschrieben, ist es m"oglich,
+hinter jedem Zeichen eine Penalty einzuf"ugen, um den Zeilenumbruch vor
+einem
+Notenschl"ussel und Vorzeichenwechsel zu unterbinden, aber den Umbruch
+danach zu f"ordern, d.h. einen Wechsel am Zeilenende zu bevorzugen.
+Man erh"alt so die neue Vorzeichnung oder den neuen Notenschl"ussel am
+Zeilenende und am Anfang der neuen Zeile. Die Verdopplung der Taktangabe
+bei Wechsel l"a\3t sich jedoch mit diesem Verfahren
+nicht erreichen, da die
+Taktangabe nicht an jedem Zeilenanfang angegeben werden mu\3.
+\item{2)} Die angegebene L"osung ist nicht befriedigend, da sie vom
+Ausgabeger"at abh"angig ist, au\3erdem die Tiefe der Zeilen konstant
+sein mu\3 und nicht alle oben genannten Forderungen erf"ullt werden.
+
+\subsubsubheading{Verfahren 2}
+Eine zweite M"oglichkeit, das Problem zu l"osen, ist durch das
+|\discretionary|-Komman\-do (s. {\advance\chap-1 \the\chap.3.1%
+}\XX) gegeben.
+Dieses Kommando bewirkt, da\3
+ im Fall des Zeilenumbruches am Zeilenende der \tex{pre-break text} und
+am Anfang der neuen Zeile der \tex{post-break text} eingef"ugt wird,
+andernfalls wird der \tex{no-break text} gesetzt. Jedoch d"urfen
+die Texte nur Elemente vom Typ Box, Kern oder Penalty enthalten. Ein
+Erweitern oder Verringern der Abst"ande in diesem Text ist also nicht
+ m"oglich. Dies ist auch zur L"osung des Problems nicht notwendig.
+
+\Beispiel
+\item{}
+Im normalen Textsatz ist die Kontrollsequenz
+|\-| gleichbedeutend mit
+ \hbox{|\discretionary{-}{}{}|}. Wird |\-| an den Trennstellen eines
+Wortes eingef"ugt, so wird also im Falle des Zeilenumbruches an einer
+dieser Stellen ein Trennstrich - eingef"ugt, andernfalls nichts.
+\item{}
+Um eine
+Trennung des Wortes \disp{backen} zu erm"oglichen, kann
+|ba\discretionary{k-}{k}{ck}en| notiert werden.
+Im Falle eines Zeilenumbruches wird
+|ck| zu |k-k|. Mit diesem Verfahren k"onnen alle Forderungen, die durch
+die Satz- und Notationsregeln zur Gestaltung der ``"au\3eren Form''
+ gegeben
+sind, erf"ullt werden. Dazu ist es jedoch notwendig, die den
+Zeilenumbruch bestimmenden Parameter so zu "andern,
+da\3 ein Zeilenumbruch
+nur an einem \tex{discretionary}-Kommando stattfinden kann. Dies kann
+erreicht werden, indem man sowohl |\hyphenpenalty| und
+|\exhyphenpenalty| als auch den zus"atzlichen Kosten
+|\finalhyphendemerits| und |\doublehyphendemerits|, die in
+Abh"angigkeit von der Umgebung der Zeile addiert werden, jeweils
+negative Werte zuweist, so da\3 ein Zeilenumbruch an einem
+\tex{discretionary}-Kommando eine niedrige Badness erzeugt.
+
+\Bemerkung
+\item{1)} Auch in diesem Fall ist es nicht vorteilhaft, neben den
+Trennungsm"oglichkeiten an einem Taktstrich zus"atzliche
+Trennungsm"oglichkeiten innerhalb eines Taktes, z.B. nach einer
+Note, anzugeben, jedoch aus einem anderen Grund als bei der ersten
+L"osungsm"oglichkeit. \par
+\item{}Da der Wert von |\hyphenpenalty| sich nicht
+"andert, w"urden Umbruchpunkte innerhalb eines Taktes genauso
+bewertet wie Umbruchpunkte am Taktstrich.
+Es ist also keine Unterscheidung mehr m"oglich. Dies widerspricht jedoch
+der Forderung, da\3 ein
+Bruch der Zeile am Taktstrich in jedem Fall zu
+bevorzugen ist. Aus diesem Grund wurde das Notensatzsystem so
+konzipiert, da\3 kein Bruch innerhalb eines Taktes stattfinden kann.
+Ist dies dennoch erw"unscht, so k"onnen zus"atzlich
+Umbruchm"oglichkeiten durch Angabe von |\-| z.B. in der Taktmitte
+angegeben werden.
+
+\item{2)} Mit diesem Verfahren k"onnen die Linien erst in der zweiten
+Zeile unterlegt werden. Die erste Zeile mu\3 daher gesondert bearbeitet
+werden. Dies ist kein Nachteil, denn dieses Vorgehen erm"oglicht es,
+einen Einzug der ersten Zeile zu ber"ucksichtigen. Dies wird im
+n"achsten Abschnitt n"aher beschrieben.
+\endBeispiel
+
+\subsubheading{Konstruktionen}
+ Im folgenden werden die Konstruktionen f"ur das Liniensystem sowie den
+Takt-, Tonart- und Notenschl"usselwechsel beschrieben.
+
+\subsubsubheading{Konstruktion der Notenlinien}
+Eine Notenlinie wird durch eine schwarz ausgef"ullte Box,
+ in der \TeX-Terminologie
+mit \disp{Rule} bezeichnet, dargestellt.
+ Die H"ohe der Rule entspricht der St"arke einer d"unnen Linie
+ ({\advance\chap-2 \the\chap.3.3}\XX).
+Die Breite wird durch die aktuellen
+Seitenbreite (d.h. |\hsize|) gegeben, wobei die Breite in der ersten
+Zeile um den Betrag des Einzuges (|\parindent|) verk"urzt ist.
+F"unf dieser Linien werden in einem Abstand von einer Notenkopfh"ohe
+untereinander gesetzt, d.h. in einer vertikalen Liste verarbeitet.
+
+Da das Liniensystem nur unterlegt werden soll, darf es nicht in die
+horizontale Berechnung eingehen. Dies kann wie in
+{\advance\chap-1 \the\chap.2.2} \XX
+beschrieben,
+durch Erzeugen einer horizontalen Box der Breite 0\pt\ geschehen,
+wobei das Liniensystem "uber den rechten Rand hinausragt.
+
+Es ergibt sich so die folgende {Box-Glue-Kombination}:
+\begindisplay
+|\hbox to 0pt{\vbox{\hr\kern\nhh\hr\kern\nhh\hr\kern\nhh\hr|%
+|\kern\nhh\hr}|,
+\enddisplay
+ wobei |\hr| die Rule |\hrule height|\<Zeilenst"arke>| depth
+0pt width|\<Zeilenl"ange> bezeichnet.
+\Bemerkung
+Das Liniensystem ist so angelegt, da\3 die unterste Linie mit
+der Grundlinie der ganzen Zeile "ubereinstimmt ({\advance\chap-1
+\the\chap.2.4}\XX).
+Dies erschien bei der Konzeption des Notensatzsystems unter Verwendung
+von \TeX\ g"unstiger. In anderen Notensatzsystemen, z.B. dem von Gourlay
+(\lit{\gourlay})
+wird jedoch die Mittellinie (dritte Linie) als Grundlinie
+ausgezeichnet.
+
+\subsubsubheading{Der Taktwechsel}
+Zu unterscheiden ist zwischen den beiden Taktartnotationen:
+\item{a)} Taktangabe innerhalb des Zeilensystems,
+\item{b)} Taktangabe oberhalb des Systems.
+
+Im Fall b) wird der Taktwechsel am Zeilenende nicht zus"atzlich
+angek"undigt. Er soll deshalb hier nicht betrachtet werden.
+
+Die Forderungen an die Taktangabe k"onnen leicht erf"ullt werden durch
+das Kommando
+
+|\discretionary{|\<Taktangabe>|}|
+\par
+\indent\hbox{}\hskip75pt
+|{|\<Zeilensystem>\<Notenschl"ussel>\<Tonart>\<Taktangabe>|}|
+\par
+\indent\hbox{}\hskip75pt
+|{|\<Taktangabe>|}|,
+
+wobei \<Taktangabe> die Box bezeichnet, die die aktuelle Taktangabe
+enth"alt. Entsprechendes gilt f"ur \<Zeilensystem> und \<Tonart>.
+
+\subsubsubheading{Der Tonartwechsel}
+Der Tonartwechsel kann auf "ahnliche Weise beschrieben werden. Jedoch
+ist zu beachten, da\3 die vorher g"ultige Tonart aufgel"ost werden mu\3.
+Dazu werden die Versetzungszeichen in zwei verschiedenen Token-Registern
+gespeichert (s.\lit{\TeXbook, S.121 ff (Kap. 15)}), wobei das eine die
+Versetzungszeichen der aktuellen Tonart und das
+andere die aktuelle Tonart mit den jeweiligen Aufl"osungszeichen
+enth"alt.
+
+Bei Tonartwechsel wird zun"achst nur das erste Register durch die neue
+Tonart ersetzt, und nachdem der Doppelstrich, die ``aufgel"oste'' vorige
+Tonart und die neue Tonart gesetzt wurden, das zweite Register durch die
+aktuelle ``aufgel"oste'' Tonart ersetzt. \par
+Die Forderungen, die an den
+Tonartwechsel gestellt sind, werden dann durch das Kommando
+
+|\discretionary{|\<Doppelstrich>\<aufgel"oste Tonart>\<neue Tonart>|}|
+\par
+\indent\hbox{}\hskip75pt
+|{|\<Zeilensystem>\<Notenschl"ussel>\<neueTonart>|}|\hfil\break
+\indent\hbox{}\hskip75pt
+|{|\<Doppelstrich>\<aufgel"oste Tonart>\<neue Tonart>|}|\par
+
+erf"ullt.
+
+Gleichzeitig mu\3 die Definition der Kontrollsequenz |\-|,
+ die den Zeilenumbruch nach einem
+Taktstrich regelt, der neuen Tonart angepa\3t werden, und zwar in
+\begindisplay
+|\discretionary{}{|\<Zeilensystem>\<Notenschl"ussel>%
+\<neue Tonart>|}{}|.
+\enddisplay
+\subsubsubheading{Der Notenschl"usselwechsel}
+Im Unterschied zu Taktart und Tonart besitzt der Notensch"ussel im
+Zeileninneren eine andere Gr"o\3e als am Zeilenrand, es mu\3 also ein
+anderes Zeichen verwendet werden. Au\3erdem mu\3 nicht unbedingt
+zus"atzlicher horizontaler Raum zur Verf"ugung gestellt werden. Aus
+diesem Grund wird der Notenschl"ussel im Zeileninneren behandelt wie die
+Versetzungszeichen vor einer Note im Taktinneren. Dies soll im n"achsten
+Kapitel n"aher erl"autert werden.
+
+Wie bei der Tonart wird auch der Notenschl"ussel in einem Token-Register
+gespeichert, das bei Schl"ussel\-wechsel ausgetauscht wird. Es ist zu
+beachten, da\3 ein Schl"usselwechsel eine Umpositionierung der
+Versetzungszeichen der Vorzeichnung notwendig macht.
+
+\Beispiel
+%Versetzungszeichen
+{\hsize7cm
+\advance\hsize2\iindent\parindent=2\iindent
+\beginsong
+\vio\Es\hskip20pt \E\hskip20pt\bass\Es\ \hfill
+\=\endsong}
+\endBeispiel
+\vskip-1cm
+
+\Bemerkung
+
+\item{1)} Da nur Taktart und Tonart einen \tex{pre-break text}
+ben"otigen,
+kann eine verfeinerte Bewertung erfolgen, indem man |\exhyphenpenalty|
+und |\hyphenpenalty| verschiedene Werte zuweist, um einen Umbruch bei
+Takt- oder Tonartwechsel zu bevorzugen.
+
+
+\item{2)} Die genauen Definitionen sind im Format zu finden.
+\endBemerkung
+
+\subsubheading{Abstecken}
+
+Das Problem des gleichm"a\3igen Absteckens kann mit \TeX\ auf einfache
+Weise gel"ost werden, indem man nach dem in \XX
+{\advance\chap-1 \the\chap.2.4} angegebenen
+Verfahren den \tex{Interline Glue} festlegt.
+Nach \XX \the\chap.1.2
+betr"agt die Berechnungsgrundlage f"ur den Abstand
+zwischen zwei Liniensystemen zwei Rastralh"ohen. Dieser Wert wird nun
+f"ur den nat"urlichen Abstand des Parameters |\baselineskip| angesetzt.
+
+F"ur den Parameter |\lineskiplimit| ist eine halbe Rastralh"ohe
+vorgesehen. Dieser Wert wird auch f"ur den nat"urlichen Abstand von
+|\lineskip| festgelegt.
+W"ahlt man nun als Stauchm"oglichkeit f"ur |\baselineskip| und
+|\lineskip| den gleichen Wert, so ist gew"ahrleistet, da\3 die Zeilen
+sich bei maximaler Stauchung nicht "uberschneiden k"onnen. Die
+Abst"ande k"onnen bis zu einer Rastralh"ohe vergr"o\3ert werden.
+
+Gebe der Parameter |\staffheight|
+ die Rastralh"ohe an. Dann
+ergibt sich f"ur die {Interline-Glue}-Parameter:
+\begindisplay
+|\baselineskip = 3 \staffheight plus \staffheight minus 1/2 \staffheight|
+\cr
+|\lineskiplimit = 1/2 \staffheight|
+\cr
+|\lineskip = 1/2 \staffheight plus \staffheight minus 1/2 \staffheight|
+\enddisplay
+
+Dieser Interline Glue wurde auch f"ur die
+im Anhang D gesetzten Beispiele verwendet.
+
+\vfill\eject
+
diff --git a/macros/mtex/documentation/mdoc7.tex b/macros/mtex/documentation/mdoc7.tex
new file mode 100644
index 0000000000..574eda9eb4
--- /dev/null
+++ b/macros/mtex/documentation/mdoc7.tex
@@ -0,0 +1,398 @@
+\heading{Punktierung bei einstimmigem Notensatz}
+Im Noten\/\disp{satz}\/ bezeichnet \defi{Punktierung} die pr"azise
+Bestimmung der horizontalen Position
+aller Notenschriftelemente, die horizontal Raum erfordern \lit{\gomb}.
+Diese ``pr"azise Bestimmung'' erfolgt im wesentlichen nach
+Gesichtspunkten wie Gleichm"a\3igkeit und "Ubersichtlichkeit.
+K. Hader (\lit{\hader}) dr"uckt dies so aus:\par\medskip
+{\leftskip=30pt \rightskip=\leftskip\sl
+Aufliegende Seiten sollen als m"oglichst gleichm"a\3iges Bild
+erscheinen, nicht im Hinblick auf eine gleiche Taktanzahl (in den
+Notenzeilen), sondern im gleichwertigen Raumverh"altnis gleichwertiger
+Noten.
+In dieses gleichwertige Raumverh"altnis sind aber nicht nur die Noten,
+sondern auch die dazugeh"origen Versetzungszeichen, Wechselschl"ussel
+u."a. einzubeziehen. Ganz besonders zu ber"ucksichtigen sind die Silben
+der Gesangslinie bei Klavier- und Gesangssystemen.\par}
+\medskip
+D.A. Gomberg \lit{\gomb} teilt die Notenschriftelemente aus diesem Grund
+in drei Gruppen ein:
+\item{A)}Die Zeichen, die die horizontale Einteilung der Zeile, d.h. den
+zeitlichen Ablauf des Musikst"uckes, bestimmen.
+\item{}Dazu geh"oren: Noten (keine Vorschlagnoten), Pausen, Taktstriche,
+Taktangaben und Vorzeichnung sowie alle Wertpunkte.
+\item{B)}Die Zeichen, die ``in das gleichwertige Raumverh"altnis
+einzubeziehen'' sind. Gomberg nennt diese Zeichen
+\disp{Hunks}.\item{}Dazu geh"oren: Versetzungszeichen,
+Wechselschl"ussel, Z"asuren, Vorschlagnoten u."a., sowie die Silben der
+Gesangslinie.
+\item{C)}Die Zeichen, die keine horizontale Auswirkung haben. Dies sind
+z.B. alle Zeichen, die in den freien Raum ober- oder unterhalb der
+Noten, d.h. vertikal, ausweichen k"onnen.
+\item{}Dazu geh"oren: Akzente,
+Spielanweisungen, Bogen, Balken und Crescendo-Zeichen.
+\par
+\medskip
+Die Punktierung bezieht sich also auf die Positionierung der Elemente
+der Gruppen A und B nach den Gesichtspunkten, die Hader angibt.
+Auf die Positionierung der Elemente der Gruppe C soll in den folgenden
+Kapiteln {\advance\chap2 \the\chap}
+und~{\advance\chap3 \the\chap} n"aher eingegangen werden. \XX
+
+
+\subheading{Regeln zur Bestimmung des Ausschlusses}
+Das Punktierungsproblem
+l"a\3t sich zur"uckf"uhren auf die Bestimmung eines
+geeigneten Ausschlu\3\-schemas.
+\subsubheading{Ausschlu\3schemata}\par
+Wie schon mehrfach erw"ahnt, l"auft die Notenschrift einer Komposition
+entlang einer gedachten horizontalen Zeitachse.
+Um die zeitliche Struktur der Komposition leichter erfassen zu k"onnen,
+wird jeder Note zus"atzlich zu ihrer \disp{Gestalt} ein vom Notenwert
+abh"angiger \disp{Raum} zugeordnet, in dem sie plaziert wird.
+Diese Abbildung ist aus satztechnischen Gr"unden nicht linear bzgl. der
+Tondauer und nicht eindeutig f"ur jede Art von Musikst"uck festgelegt.
+Meist bestimmt der Setzer selbst die Art des Ausschlusses.
+
+K. Hader \lit{\Hader} gibt f"ur den Handnotensatz
+als Richtschema f"ur den Ausschlu\3 einzelner
+Notenwerte innerhalb einer Notenzeile eines Systems folgende Faustregel
+an:
+
+Der horizontale Raum, den eine Viertelnote einnimmt, entspricht
+dem Raum, den $1\frac12$ Achtelnoten einnehmen w"urden.
+Der Raum, den eine Halbenote einnimmt, entspricht dem Raum von
+2 Achtelnoten, der Raum, den eine
+ Ganzenote einnimmt, dem von 3 Achtelnoten.
+
+Dabei wird der Raum, den eine Achtel einnimmt,
+nach dem Inhalt der jeweiligen Notenzeile bestimmt.
+
+D.~A.~Gomberg~\lit\gomb\ beschreibt ein anderes Vorgehen.
+Nach Gomberg bestimmt der Setzer zun"achst einen \disp{Grundnotenwert}.
+Dies ist
+der am h"aufigsten auf dem Notenblatt auftretende Notenwert.
+Der den Notenwerten zugeordnete Raum ist eine
+Funktion dieses Grundnotenwertes.
+Als horizontale Ma\3einheit w"ahlt
+Gomberg die Breite eines ausgef"ullten
+Notenkopfes. Ihr entspricht in unserem Notensatzsystem der Wert von
+|\nhw| (s. {\advance\chap-3 \the\chap}.3.3).
+
+Im Gegensatz zu Hader arbeitet
+Gomberg mit folgender Tabelle als Richtschema (in Einheiten von |\nhw|):
+\medskip
+\setbox0=\vbox{\offinterlineskip%
+\halign{\strut#\hfil&&\vrule\quad #\hfil\quad\cr
+Bezeichnung des Ausschlusses\quad
+&\hfil ``Sechzehntel''&\hfil ``Achtel''
+&\hfil ``Viertel''&\hfil ``Halbe''\cr
+\noalign{\hrule}
+``eng''&1.5&2.5&3.5&4.5\cr
+``universell''&2&3&4&5\cr
+``weit''&2.5&3.5&4.5&5\cr
+``locker''&3&4&5&6\cr
+``sehr locker''&3.5&4.5&6&7\cr}}\centerline{\box0}
+\medskip
+Die Werte in den Zeilen geben jeweils den Raum, den eine Note mit
+jeweiligem Notenwert ben"otigt, f"ur ein Ausschlu\3schema an.
+F"ur kleinere bzw. gr"o\3ere Notenwerte als die in der Tabelle
+vorhandenen werden die Werte der ersten
+bzw. letzten Spalte der Tabelle benutzt.
+
+\Beispiel
+Zur Anwendung bestimmt man
+den Grundnotenwert, z.B. ``Achtel'',
+und w"ahlt einen Ausschlu\3 der zugeh"origen Spalte,
+z.B. 3.5|\nhw|.
+Dann sind die zugeh"origen Ausschl"usse f"ur alle anderen
+Notenwerte in der gleichen Zeile der Tabelle zu finden, in der sich der
+Ausschlu\3 des Grundnotenwertes befindet (im Beispiel: ``weit'').
+\endBeispiel
+
+Bei diesem Vorgehen werden die Abst"ande zu Beginn
+festgelegt und sind im
+wesentlichen nicht mehr ver"anderbar. Im Unterschied dazu wird bei Hader
+erst in jeder einzelnen Zeile der Raum, den eine Achtel einnimmt,
+bestimmt. Dieses Vorgehen ist aber beim automatisierten Notensatz nicht
+m"oglich, da der Inhalt der Zeilen erst nach Ablauf des Zeilenumbruch\-%
+algorithmus bekannt ist.
+
+\Bemerkung
+\item{1)}Das obige Ausschlu\3schema gilt bei Noten ohne Wertpunkt
+(s. {\advance\chap-3 \the\chap}.3.1).
+Jedem Wertpunkt wird zus"atzlich ein horizontaler Raum
+von 0.5|\nhw| zugewiesen. Diese Erweiterung ist also
+nicht abh"angig vom Notenwert.
+
+\item{2)}Die Abstandsverh"altnisse aller
+F"alle, die Gomberg angibt, entsprechen nicht
+ Haders Richtschema.
+Nur der ``enge'' Ausschlu\3 kommt diesem nahe.
+Dieses Schema erscheint Gomberg demnach nur
+f"ur sehr engen Ausschlu\3 g"unstig,
+denn bei lockerem Satz ordnet er einer Halben weniger freien Raum zu.
+Unterschiedlich ist auch, da\3 Gomberg
+Halbe und Ganze in dieser Hinsicht gleichbehandelt, wohingegen
+ Hader keine Angaben zum Ausschlu\3
+von kleineren Notenwerten wie Sechzehntel usw. macht.
+\item{}
+Ein Vergleich verschiedener Notenbl"atter verschiedener Verlage
+zeigt,
+da\3 sowohl
+Ganze und Halbe als auch Sechzehntel und kleinere
+Notenwerte unterschiedlich ausgeschlossen werden.
+
+\item{3)}Im Gegensatz zum manuellen Satz ist es beim
+automatisierten Layout-Proze\3 notwendig, die Abst"ande zu Beginn des
+Musikst"uckes zuzuweisen, um einen gleichm"a\3igen Ausschlu\3 zu
+gew"ahr\-leisten.
+\item{}
+Gomberg hat mit seinem
+ Verfahren in den meisten F"allen Ergebnisse,
+``die einem als angenehmste auffallen'', mit ``universellem'' Ausschlu\3
+erzielt. Dieser erlaubt
+das Einf"ugen von Versetzungszeichen und
+einigen anderen Verzierungen der Note ohne Vergr"o\3erung des
+Zwischenraumes zwischen den Noten. \item{}
+Das Einf"ugen von Versetzungszeichen
+u."a. ist ein Problem des automatisierten sowie des manuellen Notensatzes
+und wird daher sp"ater noch genauer behandelt (s. \the\chap.2.2\XX).
+\endBemerkung
+
+\subsubheading{Hunks}
+Eine Note kann neben Notenwert und Tonh"ohe (siehe Kapitel
+{\advance\chap1 \the\chap}),
+die ihre Gestalt bestimmen,
+noch weitere Attribute besitzen, die meistens durch Voranstellen eines
+Zeichens ausgedr"uckt werden. Diese Elemente wurden in Gruppe B zusam\-%
+mengefa\3t. Sie ben"otigen
+horizontalen Raum und st"oren somit die Regel, da\3 die Horizontale den
+zeitlichen Ablauf darstellt.
+Gomberg verwendet daf"ur den Ausdruck ``Hunks'', was etwa
+bedeutet, da\3 beim Satz solcher Zeichen mit horizontalem Raum zu
+``geizen'' ist.
+
+\defi{Hunks} sind also
+Notenschriftelemente, die in vorhandenen horizontalen
+Freiraum einzuf"ugen sind. Nur bei drohender "Uberlappung mit anderen
+Notenschriftelementen ist dieser Raum zu erweitern.
+
+\subsubheading{Kriterien f"ur den Zeilenumbruch beim Notensatz}
+
+Die Kriterien, die den Zeilenumbruch eines Musikst"ucks bestimmen, sind
+andere als die f"ur den Textsatz. Die Kriterien, die \TeX\ f"ur den
+Textsatz verwendet und unterst"utzt, k"onnen also nicht unbedacht
+"ubernommen werden.
+Im Unterschied zum Notensatz wird das Einf"ugen eines Umbruchpunktes
+ direkt nach einem Wort unterst"utzt. Darauf wird
+nachfolgender Glue
+bis zum n"achsten Wort entfernt. Da
+die letzte Zeile nicht bis zum Ende aufgef"ullt sein mu\3,
+kann ein gleichm"a\3iger Umbruch erzielt werden.
+
+Dem gegen"uber mu\3 f"ur den Zeilenumbruch beim Notensatz zwischen
+einzelnen Notenschriftelementen unterschieden werden.
+Dies bedeutet:
+\item{1.} Umbruch direkt nach einer Note ist nicht erlaubt,
+\item{2.} Umbruch direkt vor
+einer Note ist nur ausnahmsweise in der Taktmitte erlaubt,
+\item{3.} Umbruch direkt vor einem Taktstrich ist nicht erlaubt,
+\item{4.} Umbruch direkt nach Taktstrich ist erw"unscht und g"unstig,
+\item{5.} Umbruch zwischen Hunks und Note oder Taktstrich ist
+nicht erlaubt.
+\item{6.} Am Zeilenanfang m"ussen Notenschl"ussel
+und Vorzeichnung eingef"ugt werden (s. Kapitel
+{\advance\chap-1 \the\chap}).
+
+
+\subheading{Ausf"uhrung des Punktierens}
+\subsubheading{Bestimmung der Zeilenauschlu\3parameter}
+
+Wie in {\advance\chap-2 \the\chap}.2.1\XX\
+bemerkt, steuert \TeX\ den Zeilenauschlu\3 im wesentlichen
+durch den Glue hinter jedem Wort abh"angig vom Wert des Glueparameters
+|\spaceskip|.
+
+Der Notenfont kann nicht als normaler Textfont aufgefa\3t werden,
+sondern "ahnelt in seinem Aufbau einem mathematischen Zeichensatz,
+da eine Note erst aus mehreren Elementen
+des Zeichensatzes zusammengesetzt werden mu\3. Aus diesem Grund wurde
+der dem Notenfont zugeh"orige Glue
+(\tex{Interword Glue}) wie in einem mathematischen Zeichensatz
+mit 0\pt\ vorbelegt \lit\Texbook.
+
+Jedem Notenwert kann nun ein Glue zugewiesen werden, der
+ dem Glueparameter |\spaceskip| zugewiesen wird,
+ wenn eine Note
+dieses Notenwertes gesetzt werden soll.
+ Sollte es vorkommen, da\3 der
+|\spaceskip| verschwindet, so kann auch durch den Interword Glue kein
+Vorschub erfolgen.
+Abh"angig von der
+Breite der einzuf"ugenden
+Hunks wird dieser |\spaceskip| nochmals ver"andert (s. \the\chap.2.2).
+Dabei kann es vorkommen, da\3 im Laufe der Berechnungen sich
+|\spaceskip| = 0 pt ergibt. Nach der Regel w"urde in diesem Fall der
+{Interword Glue} des aktuellen Fonts eingef"ugt. Da dieser jedoch mit 0
+pt vorbelegt ist, kann kein Vorschub erfolgen.
+
+Es haben sich verschiedene Ausschlu\3schemata ergeben
+auf die durch Aufruf der
+Makros |\hsmall| (Hader), |\small|, |\universal|, |\wide|
+und |\loose| (Gomberg) zugegriffen werden kann.
+Dem Benutzer steht es frei, diese Makros zu "andern.
+Es ist so m"oglich, jeden beliebigen Ausschlu\3 zu verwenden.
+
+F"ur die vorgegebenen
+Ausschlu\3verfahren wurden die Verfahren von Gomberg und Hader
+kombiniert.
+Der Raum $w$, der einem Notenwert zugewiesen wird, richtet sich jeweils
+nach einem fest vorgegebenen Ausschlu\3schema in der von Gomberg
+angegebenen Art.
+Aus diesen Abst"anden
+erh"alt man als Richtschema die
+Raumverh"altnisse der einzelnen Notenwerte untereinander.
+
+Mit diesem Richtschema k"onnen nun die Gluekomponenten bestimmt werden
+unter Ber"ucksichtigung der folgenden "Uberlegungen:
+\medskip
+\item{1)}Der nat"urliche Abstand des zugeordneten
+ Glue entspricht immer $w-\hbox{|\nhw|}$.
+\item{2)}
+Die Streck- und Stauchkomponenten eines
+einzelnen Glue werden so gew"ahlt,
+da\3 sie das Raumverh"altnis der Notenwerte ausdr"ucken. Aus der
+Berechnung des Proportionalit"atsfaktors $r$ (s.
+{\advance\chap-2 \the\chap}.2.1\XX)
+folgt sofort, da\3
+die Raumverh"altnisse in jeder
+Zeile erhalten bleiben.
+W"ahlt man f"ur alle Streck- und Stauchkomponenten jeweils den gleichen
+Wert, so wird jedem Glue der gleiche konstante Wert
+angef"ugt bzw. entfernt.
+
+\Bemerkung
+F"ur den Ausschlu\3 in
+komplizierteren Notengebilden, wie z.B. verbalkten Noten, l"a\3t sich
+dieses Verfahren jedoch nicht mehr gleichm"a\3ig durchf"uhren.
+
+\item{}Da Notengruppen dieser Art in einer Box
+zusammengefa\3t werden m"ussen (s. {\advance\chap2 \the\chap}.3\XX),
+verlieren die inneren Noten
+ alle Stauch- und
+Streckm"oglichkeit, da z.B. die L"angen der Balken nur f"ur die
+nat"urliche Breite berechnet werden k"onnen.
+In einem solchen Fall wird also bei Zeilenausschlu\3 nur der nat"urliche
+Glue eingef"ugt.
+Aus diesem Grund wurden die
+"ubrigen Streck- und Stauchm"oglichkeiten
+nicht zu gro\3 angesetzt, da sich dies sonst
+optisch ung"unstig auswirkt.
+
+Beispiele f"ur die verschiedenen Ausschlu\3schemata, die in das
+entwickelte Format aufgenommen wurden, sind im Anhang A
+zu finden.
+(|\hsmall| entspricht dem vom Hader vorgegebenen
+Ausschlu\3schema, wenn man als Einheit
+wiederum |\nhw| verwendet. Der Ausschlu\3 ``sehr locker'' wurde nicht
+realisiert.)
+
+\subsubheading{Einbeziehen der Zeichen der Gruppe B}\par
+
+F"ur den einfachen Notensatz ist es nur notwendig, zu wissen, ob vor der
+Note f"ur Hunks gen"ugend Platz vorhanden ist. Dies legt es nahe,
+den einer Note zugeordneten Glue
+ erst dann endg"ultig einzuf"ugen (durch |\|{\tt\char`\ }),
+wenn bekannt ist, ob f"ur Hunks Raum ben"otigt wird.
+Dazu werden Hunks, die zwischen zwei Noten oder
+zwischen Note und Taktstrich oder
+Taktstrich und Note auftreten,
+in einer Box akkumuliert. Abh"angig von der Breite dieser
+Box kann nun der erforderliche
+Glue zwischen den Noten festgelegt werden. Dann erst wird diese Box
+zusammen mit dem zugeh"origen Notenschriftelement plaziert.
+
+Ist die Breite der ``Hunkbox'' kleiner als der nat"urliche Abstand des
+aktuellen |\spaceskip|, so bleibt der |\spaceskip| unver"andert,
+andernfalls wird der nat"urliche Abstand des
+|\spaceskip| um die Differenz erh"oht.
+W"ahrend die Streckm"oglichkeit des aktuellen |\spaceskip|
+erhalten bleibt, wird die Stauchm"oglich\-keit entfernt.
+
+
+\subsubheading{Einf"ugen von Glue zwischen Elementen der Gruppe A}
+
+Im vorigen Abschnitt wurde das Ausschlu\3schema f"ur Noten bestimmt.
+Dieses kann auch f"ur den Ausschlu\3 der Pausen verwendet werden.
+
+F"ur den nat"urlichen Abstand nach Taktstrichen wurden in der Literatur
+keine Werte angegeben. Der Vergleich mehrerer Notenbl"atter ergab jedoch
+einen mittleren Abstand von |\nhw|. Dies ist auch der Abstand, der
+"ublicherweise nach Notenschl"ussel und Vorzeichnung am Zeilenanfang und
+nach Taktwechsel eingehalten wird.
+
+F"ur die restlichen Zeichen der Gruppe A wurde also nur ein einziger
+Glueparameter verwendet. Dies tr"agt dem Gesichtspunkt der
+Gleichm"a\3igkeit Rechnung.
+
+Da ein Zeilenumbruch nach einem Taktstrich vorzuziehen ist, gliedert
+sich das Bestimmungsproblem des geeigneten Glue zwischen zwei Elementen
+der Gruppe A auf in die Festlegung des Glue an Taktstrichen und der
+Festlegung des Glue vor den anderen Zeichen der Gruppe A. Dies soll im
+folgenden f"ur die Noten durchgef"uhrt werden.
+
+\subsubsubheading{Das Festlegen der Box-Glue-Penalty-Folge vor Noten}
+Das Festlegen des Glue vor Noten geschieht nach folgenden
+Gesichtspunkten:
+\item{1)}
+Es mu\3 eine M"oglichkeit vorhanden sein f"ur einen Zeilenumbruch
+zwischen zwei Noten. Dabei mu\3 ber"ucksichtigt werden, da\3 nicht direkt nach
+der vorangehenden Note umgebrochen wird,
+sondern der zugeh"orige |\spaceskip| am Zeilenende gesetzt wird.
+\item{2)}Es m"ussen eventuell auftretende Hunks vor der Note einbezogen
+und dabei ein Umbruch zwischen Hunks und Note verhindert
+werden.
+
+Nach den Kriterien f"ur Umbruchpunkte
+(s. {\advance\chap-2 \the\chap}.3.3\XX) kann
+ein Umbruch nach einem Glue-Element erzielt werden mit
+\begindisplay
+|\penalty10000\|{\tt\char`\ }|\penalty| \hbox{$x$}\,.
+\enddisplay
+Dabei bedeutet
+|\|{\tt\char`\ }, da\3 Glue vom aktuellen Wert von |\spaceskip| gesetzt
+wird.
+|\penalty10000| verhindert einen Umbruch vor dem Glue, wogegen die
+zweite Penalty einen m"oglichen Umbruchpunkt bildet, falls $x<10000$.
+
+Es mu\3 ber"ucksichtigt werden, da\3 Hunks vor Noten
+abh"angig sind vom |\spaceskip| der vorangegangenen Noten.
+Die Hunks werden in den vorhandenen Raum zwischen zwei Noten eingef"ugt.
+Es ergibt sich also eine Folge
+\begindisplay
+|\penalty10000\|\hbox{{\tt\char`\ }}|\penalty|\hbox{$x$}%
+|\hskip-\hunkskip\box\hunkbox|\;,
+\enddisplay
+wobei |\hunkskip| die Breite der ``Hunkbox'' angibt.
+Bei Umbruch an der Penalty $x$ erscheint
+der Glue der vorangehenden Note am Zeilenende und
+|\hunkskip| wird entfernt. Das erste Element der neuen Zeile wird
+der Inhalt der |\hunkbox|.
+
+F"ugt man an Stelle von |\penalty| $x$ das |\discretionary|-Kommando
+von {\advance\chap-2 \the\chap}.3.1\XX\ ein,
+so erh"alt man alle in \the\chap.1.3\XX\ geforderten Eigenschaften f"ur
+den Umbruch zwischen zwei Noten.
+Es ergibt sich so
+\begindisplay
+|\penalty10000\|\hbox{{\tt\char`\ }}|\-|%
+|\hskip-\hunkskip|\;.
+\enddisplay
+
+\subsubsubheading{Glue an Taktstrichen}
+Der Glue vor Taktstrichen entspricht dem Glue vor Noten, jedoch darf ein
+Umbruch an dieser Stelle nicht erlaubt werden. Aus diesem Grund wird
+|\-| nicht vorher eingef"ugt, sondern erst direkt nach dem Taktstrich.
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc8.tex b/macros/mtex/documentation/mdoc8.tex
new file mode 100644
index 0000000000..d766fa8211
--- /dev/null
+++ b/macros/mtex/documentation/mdoc8.tex
@@ -0,0 +1,617 @@
+\heading{Setzen der Notenschriftelemente}
+
+\def\adchap#1{{\advance\chap#1{}\the\chap}}
+In diesem Kapitel sollen die wichtigsten Notenschriftelemente behandelt
+werden. Dabei wird jedoch das Setzen der ver"anderlichen Zeichen wie
+z.B. der
+Balken und Bogen sowie der Artikulationszeichen und anderer Zeichen,
+die keinen horizontalen Raum ben"otigen,
+in den folgenden Kapiteln~\adchap1
+und~\adchap2 behandelt.
+Die Umgebung des mehrstimmigen Notensetzens wird in
+Kapitel~\adchap3 beschrieben.
+\subheading{Regeln zur Notation der Notenschriftelemente}
+
+\item{N1)} Der Aufbau der Noten:
+
+\item{}
+Die Note besteht aus dem hohlen oder ausgef"ullten Kopf und dem Hals, der
+oft auch als Stiel bezeichnet wird und
+an dem ein oder mehrere F"ahnchen angebracht sein k"onnen.
+
+\item{N2)} Akkorde:
+\item{}
+Erklingen mehrere T"one gleichzeitig, so verbindet man sie
+mit einem \disp{gemeinsamen} Hals.
+
+\item{N3)} Balken:
+\item{}
+Mehrere aufeinanderfolgende kleine Notenwerte schreibt man in der
+\disp{Vokalmusik} mit F"ahnchen, wobei jeder Textsilbe ein eigenes, von
+den anderen getrenntes Notensymbol zugeordnet wird. In der
+\disp{Instrumentalmusik} findet ausschlie\3lich die Schreibweise mit
+Balken Anwendung. Die Anzahl der Balken entspricht der Anzahl der
+F"ahnchen.
+
+\item{N4)} Die Stellung der Halsrichtung:
+\itemitem{a)} Einzelne Noten auf oder "uber der Mittellinie erhalten bei
+einstimmiger Notation den Hals links vom Kopf nach unten angebracht.
+Noten unterhalb der Mittellinie sind rechts vom Kopf nach oben zu
+stielen.
+
+\itemitem{b)} Bei Akkorden richtet sich die Stellung und Richtung des
+Notenhalses nach der am weitesten von der Mittellinie entfernten Note
+(\disp{Bezugsnote}). Bei gleichem Abstand weist der Hals nach unten.
+
+\itemitem{c)} Bei zu verbalkenden Noten richtet sich die Lage des Balkens
+und damit die Richtung aller Notenh"alse dieser Notengruppe entweder wie
+bei Akkorden nach dem am weitesten von der Mittellinie entfernten
+Notenkopf (\lit{\ziegen}), oder er
+wird durch die Lage der Mehrzahl der Noten der Gruppe bestimmt.
+
+\itemitem{d)}Wird zweistimmig in {einem} System notiert, so gilt:
+ alle Noten der Oberstimme sind nach oben,
+die der Unterstimme nach unten zu stielen.
+\itemitem{}
+Aus der Stimmf"uhrung kann sich ergeben, da\3 Zweistimmigkeit in
+Einstimmigkeit "uber geht. Dann erhalten diese Noten jeweils einen Hals
+nach oben und nach unten.
+Dabei sind die 7. und 8. Orthographische Regel von
+K. Hader (\lit{\hader}) zu beachten:
+
+{\leftskip=60pt\rightskip=30pt\sl
+Eine ``ausgef"ullte'' (schwarze) und eine ``hohle'' Note, ebenso eine
+Note
+mit Wertpunkt und eine Note ohne Wertpunkt k"onnen gleichzeitig niemals
+durch eine doppeltgestrichene ``hohle'' oder ``ausgef"ullte'' Note
+dargestellt werden. Eine doppeltgestrichene schwarze Note ohne Wertpunkt
+kann nach beiden Seiten einen verschiedenen Wert darstellen.
+\par}
+
+\Beispiel
+
+{\hsize8cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\small
+\beginsong
+\vio\C\two{\v5}{\v3}\two{\v4}{\v4}%
+\two{\group{\\{\v5}\\{\v6}}{\\{5}\\{6}}\ubeam12\go}
+{\group{\\{\v2}\\{\v3}}{\\{2}\\{3}}\lbeam12\go}\two{\v7}{\v3}\|%
+\two{\group{\\{\hskip\seminhw\v1}\\{\global\advance\sk-\seminhw
+\v3}}{\\{1}\\{3}}\ubeam12\go}
+{\group{\\{\v5}%
+\\{\v3}}{\\{5}\\{3}}\lbeam12\go}\two{\v3}{\v3}\two{\h5}{\h3}\|%
+\hfill
+\endsong}
+\endBeispiel
+\vskip-1cm
+
+\item{N5)}Die L"ange des Notenhalses:
+\item{} Die L"ange des Notenhalses ist
+nicht konstant f"ur alle Noten, sondern abh"angig von der Position im
+Liniensystem. Die L"ange des Notenhalses bei Akkorden richtet sich nach
+der am weitesten von der Bezugsnote entfernten Note. F"ur die L"ange des
+Notenhalses innerhalb einer Balkengruppe gelten gesonderte Regeln
+(s. {\advance\chap1 \the\chap.1.2}\XX).
+
+\item{N6)} F"ahnchen:
+
+\item{}
+F"ahnchen an einzelnen Noten werden immer rechts vom Notenhals notiert.
+Sie werden auch nicht in die horizontale Berechnung z.B. f"ur den
+Abstand zwischen zwei Noten einbezogen.
+
+\item{N7)} Hilfslinien:
+\item{}
+Noten, die au\3erhalb des Liniensystems positioniert werden m"ussen, sind
+mit Hilfslinien zu notieren.
+\item{N8)} Stellung der Notenk"opfe bei Akkorden\item{}
+Gibt es innerhalb eines Akkordes Sekundintervalle, so wechselt der
+Notenkopf der am weitesten von der Bezugsnote entfernten Note des
+Intervalls auf die andere Seite des Notenhalses.
+
+\Beispiel
+{\hsize7cm
+\advance\hsize2\iindent
+\parindent2\iindent\small
+\beginsong
+\vio\C
+\rchord\v9\h6\h4\lefttrue\h8\endchord
+\lchord\v0\h3\h5\leftfalse\h2\endchord
+\lchord\v1\h3\leftfalse\h4\endchord \ \hbox{\rm aber:}
+\lchord\v0\h4\h6\leftfalse\h5\endchord
+\hfill\null\endsong
+\vskip-1cm
+\leftline{\indent\rm $\bullet $ = ``Bezugsnote''.}
+}
+\endBeispiel
+
+\item{N9)}Stellung der Wertpunkte (Verl"angerungspunkte):
+\itemitem{a)}
+Die Wertpunkte erscheinen unabh"angig von Umgebung immer rechts vom
+Notenkopf (auch bei Akkorden).
+Dabei wird der
+Punkt bei Noten, die \disp{in} einem Zwischenraum liegen, rechts neben
+dem Notenkopf in der ``Mitte'' des Zwischenraums positioniert, bei
+Noten, die \disp{auf} einer Notenlinie liegen, rechts neben den
+Notenkopf in der Mitte des dar"uberliegenden Zwischenraumes.
+\itemitem{b)} Bei
+zweistimmiger Notation ist es jedoch auch "ublich, Wertpunkte bei Noten
+der Unterstimme (auf der Linie) in den darunter liegenden Zwischenraum
+zu positionieren. Alle Wertpunkte eines Akkordes werden zusammengefa\3t
+und in einer Vertikalen untereinander gesetzt.
+
+\Beispiel
+{\hsize7cm
+\advance\hsize2\iindent
+\parindent2\iindent\small
+\beginsong
+\vio\C \h4\.1\h5\.1\h3\.1 \rchord\h8\.1\h4\.1\lefttrue\h7\.1\endchord
+\two{\h6\.1}{\h2\.1}
+\hfill
+\=\endsong}
+\endBeispiel
+\vskip-1cm
+
+\item{N10)} Pausen:\item{}
+Zu jedem Notenwert gibt es ein Pausenzeichen.
+Die Gestalt der Pause ist abh"angig von ihrem ``Pausenwert''
+(\lit{{\ziegen, \bf60}}).
+
+\item{}Die Pause wird wie die Note
+ ihrem ``Pausenwert'' entsprechend
+in den horizontalen Ausschlu\3
+ einbezogen (\adchap{-1}.1\XX).
+Pausiert eine Stimme in einem Musikst"uck "uber mehrere Takte, so
+k"onnen diese \disp{Pausentakte} in der Einzelstimme
+zusammengefa\3t werden. Diese Pausenzeichen werden zwischen
+den Taktstrichen zentriert. Dies mu\3 beim Ausschlu\3 ber"ucksichtigt
+werden.
+
+\Beispiel
+{\hsize8cm
+\advance\hsize2\iindent
+\parindent2\iindent\small
+%Pausentakte
+\beginsong
+\vio\C \^{\rm1}{\pg}\|%
+\^{\rm2}{\dpd}\|%
+\^{\rm3}{\dpg}\|%
+\^{\rm4}{\dpdd}\|\hfill\endsong}
+\endBeispiel
+\vskip-1cm
+
+\item{}
+Alle Pausenwertpunkte erscheinen bei einstimmiger Notation im dritten
+Zwischenraum des Liniensystems rechts von der Pause:
+
+\Beispiel
+{\hsize5cm
+\advance\hsize2\iindent
+\parindent2\iindent\small
+\beginsong
+\vio\C \pv\.1\ \pg\.1\ \pa\.1 \hfill
+\=\endsong}
+\vskip-1cm
+\endBeispiel
+
+\item{N11)} Versetzungszeichen:\item{}
+Die Versetzungszeichen werden links vom Notenkopf gesetzt.
+\item{}
+Vor Akkorden werden sie nacheinander notiert, um "Uberlappungen zu
+vermeiden und die "Uber\-sichtlichkeit zu wahren. Dabei gilt die
+Ausnahme:\itemitem{}
+``{\sl Vorzeichen in der Oktave sind untereinander zu stellen}''
+(\lit{\hader}).
+\item{}
+Die Reihenfolge der Vorzeichen ist keiner festen Regel
+unterworfen. Von innen nach au\3en werden die Vorzeichen mit der
+h"ochsten Tonh"ohe beginnend m"oglichst platzsparend notiert.
+
+\Beispiel
+{\hsize5cm
+\advance\hsize2\iindent
+\parindent2\iindent\small
+\beginsong
+\vio\C\hskip20pt
+\x1\x6\x{10}\x3\rchord\v{10}\v6\v3\v1\endchord\hskip20pt
+\x{-6}\x{-1}\x{3}\x{-4}\lchord\v{-6}\v{-4}\v{-1}\v3\endchord
+\hfill\endsong}
+\vskip-1cm
+\endBeispiel
+
+\verbatimon
+\subheading{Das Setzen der Notenschriftelemente}
+\subsubheading{Interne Darstellung der Tonh"ohe}
+
+Unter Tonh"ohe versteht man im allgemeinen die absolute Tonh"ohe
+einer Note (siehe \lit\Schofer), wobei man sich auf eine Skalierung von
+Subkontra-A bis $c'''''$ geeinigt hat.
+In der Notenschrift werden die Tonh"ohen
+auf einer Vertikalen dargestellt.
+Um die vertikale Richtung ablesen zu k"onnen, bedient man sich des
+Liniensystems.
+Alle h"orbaren absoluten Tonh"ohen k"onnten in einem 32-Liniensystem
+positioniert werden, und zwar auf Linien und in den Zwischenr"aumen.
+(N"aheres dazu siehe \lit\Werner.)
+
+Da der Tonumfang eines nat"urlichen Instruments
+(die Gesangsstimme eingeschlossen)
+jedoch nur Teilbereiche --- ca. drei Oktaven ---
+des gesamten h"orbaren Tonspektrums
+umfa\3t und die Darstellung in einem
+32-Liniensystem un"ubersichtlich ist,
+werden zur Notation nur
+Ausschnitte aus diesem Liniensystem verwendet, wobei
+T"one, die nicht in dieses System passen, unter Hinzunahme von
+Hilfslinien
+oberhalb oder unterhalb des Systems gesetzt werden.
+
+
+F"ur das Setzen der Noten, Vorzeichen und Wertpunkte
+(d.h. f"ur das Notenbild) ist nur die Position der Note
+in diesem F"unf-Liniensystem wichtig (unabh"angig vom Notenschl"ussel).
+
+Wie in \adchap{-2}.2.2\XX\ bemerkt, ist die
+ \defi{Grundlinie} die unterste Notenlinie des
+F"unf-Liniensystems.
+Diese sei mit 0 bezeichnet und das
+F"unf-Liniensystem
+von Linie zu Zwischenraum durchnumeriert, wobei die Hilfslinien
+mitgez"ahlt werden.
+Dann bezeichnet die \defi{interne Tonh"ohe} die der Note zugeordnete
+Nummer der Stellung
+im Liniensystem ohne Ber"ucksichtigung des Vorzeichens.
+
+Die T"one oberhalb der Grundlinie erhalten
+so eine positive Nummer, die T"one unterhalb eine negative.
+Weiter erhalten alle Noten auf einer Notenline eine gerade
+Nummer, die Noten in den Zwischenr"aumen eine ungerade.
+
+Man erh"alt folgendes System:
+
+\medskip
+\def\vb#1{\vbox to 0pt{\vss\hbox{#1}\vss}}
+\hbox to \hsize
+{\hfill\vbox{\offinterlineskip\halign{\hfil#&\hfil#&&\hfil#\hfil\cr
+$\vdots$&&\ \ \vrule height 0.4pt width 12pt\vb{ 2.Hilfslinie}\hfill\cr
+\noalign{\vskip8pt}
+\vb{10}&&\ \ \vrule height 0.4pt width 12pt\vb{ 1.Hilfslinie}\hfill\cr
+\noalign{\vskip4pt}
+&\vb{9}&\cr
+\noalign{\vskip4pt}
+\vb{8}&&\ \vrule height 0.4pt width 200pt\cr
+\noalign{\vskip4pt}
+&\vb{7}&\cr
+\noalign{\vskip4pt}
+\vb{6}&&\ \vrule height 0.4pt width 200pt\cr
+\noalign{\vskip4pt}
+&\vb{5}&\cr
+\noalign{\vskip4pt}
+\vb{4}&&\ \vrule height 0.4pt width 200pt&\vb{ Mittellinie }\cr
+\noalign{\vskip4pt}
+&\vb{3}&\cr
+\noalign{\vskip4pt}
+\vb{2}&&\ \vrule height 0.4pt width 200pt\cr
+\noalign{\vskip4pt}
+&\vb{1}&\cr
+\noalign{\vskip4pt}
+\vb{0}&&\ \vrule height 0.4pt width 200pt&\vb{ Grundlinie }\cr
+\noalign{\vskip4pt}
+&\vb{-1}&\cr
+\noalign{\vskip4pt}
+\vb{-2}&&\ \ \vrule height 0.4pt width 12pt\vb{ 1.Hilfslinie }\hfill\cr
+\noalign{\vskip4pt}
+$\vdots$&\cr
+\noalign{\vskip4pt} \hbox to0pt{\hss interne Tonh"ohe\hss}\cr}}\hfill}
+\medskip
+
+
+\Beispiel
+Noten auf der Mittelline erhalten die interne Tonh"ohe 4,
+Noten im ersten Zwischenraum unter der Grundlinie die intere Tonh"ohe
+-1.\endBeispiel
+
+Im folgenden soll, falls nicht anders explizit angegeben, die
+interne Tonh"ohe nur noch kurz \disp{Tonh"ohe} genannt werden.
+
+
+\subsubheading{Aufbau der Noten}
+Aus den Regeln ergibt sich, da\3
+die Gestalt einer allein stehenden
+Note durch den Notenwert, die Tonh"ohe und
+die Richtung des angehefteten Notenhalses vollst"andig bestimmt ist.
+
+\item{1)}Der Notenwert bestimmt die Kopf{}form,
+
+\item{2)}
+die Gestalt des F"ahnchens wird durch Richtung des Notenhalses und den
+Notenwert bestimmt und
+\item{3)}
+die L"ange des Notenhalses ist abh"angig von Tonh"ohe, Richtung des
+Notenhalses und Notenwert.
+
+Im folgenden sollen formal die Regeln, die die Gestalt der Note
+bestimmen, beschrieben werden.
+
+Sei $N$ eine Note und $ p \in\rz $ ihre Tonh"ohe.
+Die Variable $ d\in\{-1,0,+1\} $ beschreibe die Richtung des Notenhalses.
+Es gelte $ d=+1 $,
+falls der Notenhals aufw"arts gestielt ist, $ d=-1 $, falls er abw"arts
+gestielt ist, und $ d=0 $, falls der Notenkopf keinen Hals besitzt.
+Die Variable $ v\in\{0,1,2,\ldots,7\}$ beschreibe den Notenwert.
+
+Die Zuordnung soll gem"a\3 folgender Tabelle erfolgen:
+
+\def\noten#1{\char\hex21\hbox{\vrule\char\hex#1}}
+\hbox to\hsize{\hfill\vbox{\offinterlineskip
+\halign{#\hfil\quad\strut&&\vrule\quad\hfil#\hfil\quad\cr
+Name&$v$&\cr
+\noalign{\hrule}
+Ganze&0&{\music\char\hex23}\cr
+\omit\vrule width0pt height2pt&&\cr
+Halbe&1&{\music\char\hex22\vrule height12pt depth0pt}\cr
+\omit\vrule width0pt height2pt&&\cr
+Viertel&2&{\music\char\hex21\vrule height12pt depth0pt}\cr
+\omit\vrule width0pt height2pt&&\cr
+Achtel&3&{\music\noten{28}}\cr
+\omit\vrule width0pt height2pt&&\cr
+Sechzehntel&4&{\music\noten{29}}\cr
+\omit\vrule width0pt height2pt&&\cr
+Zweiunddrei\3igstel&5&{\music\noten{2A}}\cr
+\omit\vrule width0pt height2pt&&\cr
+Vierundsechzigstel&6&{\music\noten{2B}}\cr
+\omit\vrule width0pt height2pt&&\cr
+Hundertachtundzwanzigstel&7&{\music\noten{2C}}\cr}}\hfill}
+\medskip
+Der Fall $ v=0 $ impliziert also $ d=0 $.
+
+Der vertikale Versatz $ \bar p $ des Notenkopfes, d.h. der Betrag, um
+den die Note zur Positionierung von der Grundlinie aus vertikal
+verschoben werden mu\3, ist nun: $\bar p := p\cdot 0.5\hbox{|\nhh|}$.
+
+Ein Akkord $A$ ist dann eine Folge von Noten $A=\folgi Nin$ mit
+zugeh"origen Attributen $(v_i, p_i, d_i)\,,\; i=1,\ldots,n$.
+ In den meisten F"allen gilt f"ur alle $i,j=1,\ldots,n \,,\;i\ne j$:
+$v_i=v_j$,
+
+O.B.d.A. seien diese Noten im folgenden nach der internen Tonh"ohe
+aufsteigend geordnet, d.h. es gilt $p_i<p_{i+1}\,,i=1,\ldots,n$.
+
+
+\subsubsubheading{Der Notenkopf}
+Alle Notenkopf{}formen wurden so konstruiert (im Notenfont), da\3 der
+umschlie\3enden Box die Werte
+$(ht,dp,wd) = (0.5 \hbox{|\nhh|}, 0.5 \hbox
+{|\nhh|}, \hbox{|\nhw|})$ zugeordnet sind.
+Ohne vertikalen Versatz wird der Notenkopf also
+vertikal auf der Grundlinie
+zentriert.
+
+\subsubsubheading{Der Notenhals}
+Sei im folgenden $ v=0 $ vorausgesetzt.
+Bei einstimmigem Notensatz gilt f"ur eine einzelne
+Note $N$ die Zuweisung $d=+1$,
+falls $p<4$, und $d=-1$, falls
+$p\ge4$. Dabei erscheint der Notenhals f"ur $d=+1$ rechts vom Kopf
+und f"ur $d=-1$ links vom Kopf. Angesetzt wird er jeweils an der
+Grundlinie des Notenkopfes.
+
+Sei $A=\folgi Nin$ ein Akkord. Dann gilt nach N4b) aus \the\chap.1
+$$d_A= \cases d_0\,,&\text{falls }4-p_0>p_n-4\,,\\
+ d_n\,,&\text{falls }4-p_0\le p_n-4\,.\endcases$$
+Die Stellung des Notenkopfes bzgl. des Notenhalses
+wird nach folgender Formel bestimmt: gilt f"ur mindestens ein $i$
+$$p_i+1=p_{i+1}\;,$$
+so wird der Notenkopf auf die
+andere Seite des Notenhalses verschoben, falls dies nicht schon f"ur die
+vorige Note geschehen ist.
+
+Rekursiv kann dieses Vorgehen wie folgt beschrieben werden:
+
+F"ur $d=+1$ und $i\in\{2,\ldots,n\}$
+gilt: $N_{i}$ erscheint genau dann
+\disp{rechts} vom Notenhals, wenn
+$p_{i-1}+1=p_{i}$ und $N_{i-1}$ links erscheint.
+
+F"ur $d=-1$ und $i\in\{1,\ldots,n-1\}$
+gilt: $N_{i}$ erscheint genau dann
+\disp{links} vom Notenhals, wenn
+$p_{i+1}=p_{i}+1$ und $N_{i+1}$ rechts erscheint.
+
+\subsubsubheading{Die Bestimmung der Notenhalsl"ange}
+Die L"ange des Notenhalses ist nicht konstant, sondern
+abh"angig von $p$ und $d$.
+
+Grunds"atzlich gibt es keine Regel, die die L"ange eindeutig festlegt,
+jedoch kann man eine Funktion finden, die bestimmte optische
+Gesichtspunkte ber"ucksichtigt und erf"ullt.
+
+\item{1)} Der Gesamteindruck soll ruhig sein, so da\3 die Noten, die
+keine Hilfslinien ben"otigen, eine einheitliche Notenhalsl"ange erhalten.
+Diese L"ange betr"agt vom Notenkopfmittelpunkt aus gemessen 3.5 |\nhh|.
+ Sie ergibt sich f"ur eine Viertel mit $p=1$ und
+$d=+1$ oder $p=7$ und $d=-1$. Dann betr"agt die
+Gesamth"ohe der Note 4 |\nhh|, d.h. sie f"ullt genau vier
+Zwischenr"aume aus.
+\item{2)} Der Endpunkt des Notenhalses sollte die zweiten
+Hilfslinien oberhalb bzw. unterhalb des Systems m"oglichst
+nicht "uberschreiten bzw. unterschreiten, da sonst zu viel vertikaler
+Platz verbraucht wird.
+Jedoch darf die L"ange eine gewisse Mindestl"ange, die
+abh"angig vom Notenwert ist, nicht unterschreiten.
+
+\item{3)}F"ur $d=-1$ bzw. $d=+1$ sollte der Endpunkt des
+Notenhalses die Mittellinie nicht unter- bzw. nicht "uberschreiten.
+
+\Beispiel
+{\advance\hsize2\iindent
+\parindent2\iindent\small
+\hsize7cm
+\beginsong
+\vio\C\hfill
+\_{1)}{\gluebrule}\h1\h7\|\_{2)}{\gluebrule}\two{\h8}{\h1}%
+\|\_{3)}{\gluebrule}\h{-4}\h{11}\doublebarline
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+Die Funktion zur Berechnung der Notenhalsl"ange, die im Notensatzsystem
+verwendet wird, lautet:
+$$
+s(p,d,v)=
+\cases0\,,&\text{f"ur } v=0\\
+\max(\mins(v),s^d(p))\,, &\text{f"ur } v>0,\,0\le p\le7
+\endcases$$
+mit
+$$
+\mins(v)=
+\cases2\hbox{|\nhh|}\,, &\text{f"ur }v=1 \text{ oder }v=2\\
+\vspace{2pt}
+\Frac{v+3}2\hbox{|\nhh|}\,, &\text{f"ur }v>2
+\endcases$$
+und
+$$
+s^1(p)=
+\cases2\hbox{|\nhh|}\,, &\text{f"ur }p\ge8\,,\\
+\vspace{2pt}
+ \Frac{12-p}2\hbox{|\nhh|}\,, &\text{f"ur }p=6 \text{ oder } p=7\,,\\
+\vspace{2pt}
+\Frac72\hbox{|\nhh|}\,, &\text{f"ur }-3\le p\le5\,,\\
+\vspace{2pt}
+\Frac{4-p}2\hbox{|\nhh|}\,, &\text{f"ur } p\le-4\,,
+\endcases$$
+$$
+s^{-1}(p)=
+\cases\Frac{p-4}2\hbox{|\nhh|}\,, &\text{f"ur }p\ge12\,,\\
+\vspace{2pt}
+\Frac72\hbox{|\nhh|}\,, &\text{f"ur }3\le p\le11\,,\\
+\vspace{2pt}
+\Frac{4+p}2\hbox{|\nhh|}\,, &\text{f"ur }p=1\text { oder } p=2\,,\\
+\vspace{2pt}
+ 2\hbox{|\nhh|}\,, &\text{f"ur } p\le0\,.
+\endcases$$
+Noten, die au\3erhalb des Liniensystems liegen, werden also an die
+Mittellinie ``angeh"angt''.
+
+\Bemerkung Seien $ N_1 $ und $ N_2 $ zwei Noten mit $ p_1\ne p_2 $,
+$d_1=d_2$ und $v_1=v_2$, dann gilt mit $s_1=s^d(p_1)$ und
+$\verbatimoff s_2=s^d(p_2)\quad|s_1-s_2|\le|p_1-p_2| $.
+\medskip\verbatimon
+F"ur die Halsl"ange eines Akkordes $A=\folgi Nin$ gilt:
+$$s_A=\cases\Frac{p_n-p_0}2\hbox{|\nhh|}+
+\cases s(p_0,-1,v)\;,&\text{falls }d_A=-1\,,\\
+ s(p_n,+1,v)\;,&\text{falls }d_A=+1\,,\endcases\,,&
+ \text{falls }v>0\\
+0\,,& \text{falls }v=0\endcases\,,$$
+wobei der Notenhals in $N_0$ f"ur $d_A=+1$ und in $N_n$ f"ur
+$d_A=-1$ angesetzt wird.
+
+Sind mehrere Noten miteinander zu verbalken, so gelten die obigen
+L"angenangaben nicht mehr uneingeschr"ankt
+(s. Kapitel \adchap1\XX).
+
+\subsubsubheading{Die Konstruktion der Noten}
+Die einzelnen Teile der Note werden nacheinander zusammengef"ugt,
+an den Notenkopf wird der Notenhals
+(falls vorhanden) angesetzt. \par
+Der Hals wird durch eine Rule f"ur $d=+1$ mit
+$(ht,dp,wd)=(s(p,d,v),\,0,\,2\hbox{|\linethickness|})$
+bzw.
+ f"ur $d=-1$ mit
+$(ht,dp,wd)=(0,\,s(p,d,s),\,2\hbox{|\linethickness|})$
+dargestellt.
+
+F"ur \TeX\ hat es sich als g"unstig erwiesen, die F"ahnchen im
+Zeichensatz so
+zu konstruieren, da\3 nur der Wert der H"ohe positiv ist ($ht=\mins(v)$)
+und die "ubrigen Werte f"ur Tiefe und Breite verschwinden.
+
+Ist die Note so zusammengesetzt, wird sie um
+$\bar p $
+vertikal verschoben. Zus"atzlich m"ussen noch f"ur $p>9$ und $p<-1$
+Hilfslinien eingef"ugt werden.
+
+Die Anzahl $z$ der Linien ist abh"angig von der Tonh"ohe $p$:
+\verbatimoff
+$$
+z(p):=\cases(p-8) \mod 2\;,&\text{f"ur } p>8\;,\\
+|p|\mod 2\;,&\text{f"ur }p<0\;.\endcases
+$$
+\verbatimon
+Die Hilfslinien
+besitzen eine L"ange von 2|\nhh| und m"ussen daher
+links und rechts von der Box, in der die Note zusammengesetzt wird,
+"uberstehen, damit die Gesamtbreite der Note |\nhw| bleibt. Dies ist
+wichtig f"ur einen gleichm"a\3igen Notensatz.
+
+
+\subsubsubheading{Die Konstruktion der Akkorde}
+F"ur die Zusammensetzung eines Akkordes $A$ werden zun"achst alle
+zugeh"origen Notenk"opfe, die links vom Notenhals erscheinen sollen, und
+alle Notenk"opfe, die rechts erscheinen sollen, in jeweils einer
+Notenbox und mit
+zugeh"origen Hilfslinien der Tonh"ohe entsprechend
+"ubereinander angeordnet.
+
+Diese werden dann zusammen mit einem Notenhals der L"ange $s_A$ und
+zugeh"origem F"ahnchen, falls kein Balken gesetzt werden soll,
+ zu der endg"ultigen
+Notenbox zusammengef"ugt.
+
+\Bemerkung
+\item{1)}Da\3 die Breite der F"ahnchen
+nicht ber"ucksichtigt wird, hat den Grund, da\3 die Breite des
+F"ahn\-chens nicht den Glue zwischen zwei Noten beeinflussen darf.
+Dies birgt aber die Gefahr der "Uberlappung mit anderen Noten und
+mu\3 daher bei der Wahl des Glue ber"ucksichtigt werden (s.
+\adchap{-1}.2.1).
+\item{2)}F"ur das Zusammensetzen der einzelnen Teile einer Note
+bzw. eines Akkordes wurden im wesentlichen die unter
+\adchap{-3}.2.2 und \adchap{-3}.2.4
+beschriebenen
+Verfahren f"ur den Ausschlu\3 innerhalb von horizontalen und
+vertikalen Boxen verwendet.
+\item{3)} Die Funktion zur Berechnung der Notenhalsl"ange
+ wurde so definiert,
+da\3 sie auch f"ur die
+zweistimmige Notation (s. N4d) und zu verbalkende Noten angewendet werden
+kann, da in diesen F"allen z.B. Noten oberhalb der Mittellinie mit $d=+1$
+m"oglich sind.
+\endBemerkung
+
+\subsubheading{Versetzungszeichen}
+
+Die Versetzungszeichen m"ussen auf zwei verschiedene Arten konstruiert
+werden, abh"angig von den verschiedenen Umgebungen, in denen sie
+vorkommen:
+\item{1)} Versetzungszeichen vor einer Note bzw. einem Akkord,
+\item{2)} Versetzungszeichen als Elemente der Vorzeichnung.
+Im ersten Fall mu\3
+zur richtigen Positionierung den Versetzungszeichen
+ebenso wie den Noten eine interne Tonh"ohe $p\in\gz$ zugeordnet sein, so
+da\3 der vertikale Versatz des Zeichens berechnet werden kann. \item{}
+Die Versetzungszeichen werden dann
+zun"achst in der Hunkbox gespeichert, so
+da\3 sie erst mit der n"achsten Note oder dem n"achsten Akkord gesetzt
+werden.\item{}Bei ``Versetzungszeichen-Akkorden'' ist die Oktavierung zu
+beachten. Gilt f"ur zwei aufeinanderfolgende Versetzungszeichen mit
+\verbatimoff
+$p_1$ und $p_2$ der Abstand $|p_1-p_2|=7$, so darf die Zeichenbreite des
+zweiten Versetzungszeichens nicht ber"ucksichtigt werden (s. Regel N11
+).\verbatimon
+
+Im zweiten Fall werden
+ die Versetzungszeichen der Vorzeichnung
+direkt plaziert und nicht in einer Box akkumuliert.
+Da sich die internen Tonh"ohen der Vorzeichnung bei
+Notenschl"usselwechsel "andern,
+die Vorzeichnung mit
+internen Tonh"ohen f"ur den Violinschl"ussel angegeben werden.
+Abh"angig vom aktuellen Notenschl"ussel wird zur internen Tonh"ohe eine
+Konstante addiert, die die Versetzungszeichen in die vertikalen
+Positionen bez"uglich des aktuellen Notenschl"ussels "uberf"uhrt.
+ Ein Beispiel dazu findet sich unter Regel V4e).
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoc9.tex b/macros/mtex/documentation/mdoc9.tex
new file mode 100644
index 0000000000..d0ed715c54
--- /dev/null
+++ b/macros/mtex/documentation/mdoc9.tex
@@ -0,0 +1,1135 @@
+\def\adchap#1{{\advance\chap#1{}\the\chap}}
+\heading{Der Balken- und Bogensatz}
+Im Gegensatz zu den bisher behandelten Notenschriftzeichen sind die
+Balken und Bogen satztechnisch dadurch ausgezeichnet, da\3 sie in der
+L"ange und Gestalt variieren k"onnen, so da\3 es nicht ausreicht, nur
+ein Element in einem Font f"ur den Satz zur Verf"ugung zu stellen. Die
+Neigung der Balken bzw. die Kr"ummung der Bogen ist abh"angig von den zu
+verbindenden bzw. zu "uberspannenden Noten.
+
+Au\3er den Faustregeln,
+da\3 aus der Neigung des Balkens der Melodieverlauf
+erkenntlich sein soll, um ein schnelleres Notenlesen zu erm"oglichen, und
+da\3 der
+Bogen von Notenkopf zu Notenkopf verlaufen sollte, jedoch andere
+Zeichen nicht schneiden darf, gibt es keine
+expliziten Regeln f"ur den Satz dieser Notenschriftelemente.
+
+\Beispiel
+{\loose
+\hsize10cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\group{\\{\a0}\\{\a2}\\{\a4}}{\\{0}\\{2}\\{4}}\ubeam13\go
+\group{\\{\a4}\\{\a2}\\{\a0}}{\\{4}\\{2}\\{0}}\ubeam13\go
+\group{\\{\a4}\\{\a6}}{\\{4}\\{6}}\lbeam12\uslur12\go
+\group{\\{\a2}\\{\a4}}{\\{2}\\{4}}\ubeam12\lslur12\go
+\group{\\{\h4}\\{\h2}}{\\{4}\\{2}}\uslur12\go\doublebarline
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+Alle anderen Satzregeln m"ussen daher aus der Notenliteratur abgeleitet
+werden. Es gilt also, Verfahren f"ur den automatischen Notensatz zu
+entwickeln, die den ansonsten nicht notwendig einheitlichen
+Handsatz so nachahmen, da\3 die Ergebnisse in den
+meisten F"allen mit dem Handgesetzten "ubereinstimmen.
+
+Die Verfahren f"ur den Balken- und Bogensatz gliedern sich in folgende
+Abschnitte:
+\item{1)} Berechnung der Steigung des Balkens bzw. der Sekantensteigung
+des Bogens,
+
+\item{2)} Diskretisierung der Steigungen und Zusammenstellung der
+Balken bzw. Bogen aus den Zei\-chen\-s"at\-zen,
+
+\item{3)} Endg"ultige Positionierung des Balkens bzw. Bogens.
+
+\Bemerkung Die hier vorgestellte Vorgehensweise ist durch die Tatsache
+bedingt, da\3 ein Textsatzprogramm verwendet wird und nicht
+koordinaten-orientiert gearbeitet wird. Das Zeichnen der Balken w"are
+im anderen Fall direkt und ohne Diskretisierung
+ der berechneten Steigung
+ausf"uhrbar.
+\endBemerkung
+
+\subheading{Entwicklung des Verfahrens zur Verbalkung}
+Gesucht ist ein Verfahren zur \defi{Verbalkung} von Noten,
+d.h. ein Verfahren,
+das jede beliebige Folge von Noten $(N_i)_{i=1,\ldots,n}$ durch einen
+(oder mehrere) Balken verbindet, so da\3 der Aufpunkt $P$ und die
+Neigung $S$ der Balken dem Handgesetzten nahe kommt.
+
+Ein solches Verfahren gliedert sich in drei Teilschritte:
+
+\item{1)} Bestimmung der Balkensteigung.
+\item{2)} Anpassung der Notenh"alse.
+\item{3)} Bestimmung des Aufpunktes aller Balkenst"ucke der Notengruppe.
+
+\Bemerkung
+\item{1)}
+Die Anzahl der Balken an einer Note stimmt mit der Anzahl der dem
+Notenwert entsprechenden F"ahnchen (s. a. \the\chap.2.2) "uberein.
+Alle Balkensteigungen innerhalb einer Notengruppe stimmen mit
+der des "au\3ersten (d.h. des `Achtel'-Balkens) "uberein.
+\item{}Es gen"ugt also, nur eine Steigung f"ur die ganze Notengruppe zu
+berechnen.
+\item{2)} Die Lage der Balken (oberhalb oder unterhalb der Notenk"opfe)
+ist durch Regel N4b in \adchap{-1}.1 \XX festgelegt.
+Die gemeinsame Richtung der
+Notenh"alse kann zu jeder Folge von Noten bestimmt werden und sei
+o.B.d.A. vorgegeben.
+\item{3)} Die Balkensteigung ist nicht abh"angig von der absoluten
+Tonh"ohe der Noten, sondern von der Position der Noten im Liniensystem.
+Es gen"ugt also,
+ die interne Tonh"ohe der betroffenen Noten zu betrachten.
+\endBemerkung
+
+\subsubheading{Bestimmung der Balkensteigung}
+F"ur die folgenden "Uberlegungen beschreibe $d\in\{-1,+1\}$ wie in
+\adchap{-1}.2.2
+die nach Regel N4c) bestimmte gemeinsame Richtung der Notenh"alse der
+Balkengruppe.
+
+\subsubsubheading{Das Vorzeichen der Steigung}
+Betrachtet man zun"achst zwei Noten $N_1$ und $N_2$ mit zugeh"origen
+internen Tonh"ohen $p_1$ und $p_2$,
+dann gilt unabh"angig von der gemeinsamen Richtung der Notenh"alse
+$d$ f"ur das
+Vorzeichen der Steigung $S$:
+$$\align \text{F"ur }p_1<p_2& \text{ gilt }S>0\;,\\
+ \text{f"ur }p_1=p_2& \text{ gilt }S=0 \text { und }\\
+ \text{f"ur }p_1>p_2& \text{ gilt }S<0 \;.\endalign%\tag{S$_1$}
+ $$
+d.h. die Balkensteigung entspricht der Tendenz des Melodieverlaufs.
+
+\Beispiel
+{\loose
+\hsize10cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\group{\\{\a2}\\{\a3}}{\\{2}\\{3}}\ubeam12\go
+\group{\\{\a3}\\{\a2}}{\\{3}\\{2}}\ubeam12\go
+\group{\\{\a3}\\{\a8}}{\\{3}\\{8}}\lbeam12\go
+\group{\\{\a6}\\{\a4}}{\\{6}\\{4}}\lbeam12\go
+\group{\\{\a4}\\{\a4}}{\\{4}\\{4}}\lbeam12\go
+\group{\\{\a3}\\{\a3}}{\\{3}\\{3}}\ubeam12\go
+\=\endsong}
+\vskip-1cm
+\endBeispiel
+
+Das Vorzeichen ist f"ur zwei beliebige Noten eindeutig festgelegt.
+
+Dies gilt jedoch nicht mehr unbedingt f"ur Notengruppen mit mehr
+Elementen. Man findet in der Literatur:
+
+{\loose
+\hsize8cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\group{\\{\a0}\\{\a1}\\{\a2}\\{\a3}}{\\{0}\\{1}\\{2}\\{3}}\ubeam14\go
+\group{\\{\a2}\\{\a1}\\{\a0}}{\\{2}\\{1}\\{0}}\ubeam13\go
+\group{\\{\a4}\\{\a8}\\{\a4}}{\\{4}\\{8}\\{4}}\lbeam13\go\=%
+\endsong}
+\vskip-1cm
+
+Das Beispiel f"ur $p_1=p_n$ zeigt, da\3 hier die Steigung abh"angig von
+der Tonh"ohe der ersten
+und letzten Note bestimmt wurde.
+
+Untersucht man andere
+Notenkombinationen, so zeigt sich auch f"ur F"alle mit $p_1\ne p_n$,
+da\3 die Neigung nach der ersten
+und letzten Note bestimmt wurde.
+
+\Beispiel
+{\hsize 7cm
+\loose
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\def\beamlist{\\{1-3,}\\{2-3,}}
+\group{\\{\a6}\\{\s8}\\{\s2}}{\\{6}\\{8}\\{2}}\lbeam13\go
+\def\beamlist{\\{1-\the\N,}}
+\group{\\{\a4}\\{\a{12}}\\{\a{10}}\\{\a8}}{\\{4}\\{12}\\{10}\\{8}}%
+\lbeam14\go\=%
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+Allgemein gilt f"ur $n>2$:
+$$\align \text{F"ur }p_1<p_n&\text{ gilt }S\ge0\;,\\
+ \text{f"ur }p_1=p_n&\text{ gilt }S=0 \text { und }\\
+ \text{f"ur }p_1>p_n&\text{ gilt }S\le0 \;.\endalign%\tag{S$_2$}
+ $$
+Dabei gilt $S=0$, falls f"ur ein $i\in\{2,\ldots,n-1\}$ gilt:
+$$\align &p_i\ge \max(p_1,p_n )\text{, falls }\quad d=1\;\\
+\text{oder }& p_i\le \min(p_1,p_n)\text{, falls }\quad
+d=-1\;.\endalign$$
+Gibt es also innerhalb einer Notengruppe, deren Notenh"alse nach oben
+gestielt sind, Noten, deren Tonh"ohe gr"o\3er oder gleich der Tonh"ohe
+der h"ohergelegenen ``Randnote'' ist, so wird der Balken nicht
+geneigt. Weisen alle Notenh"alse nach unten,
+so wird die jeweils tiefergelegene ``Randnote'' betrachtet.
+\Beispiel
+\par\noindent\vbox{\hsize 6cm
+\loose
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\group{\\{\a4}\\{\a3}\\{\a5}}{\\{4}\\{3}\\{5}}\lbeam13\go
+\group{\\{\a0}\\{\a3}\\{\a3}}{\\{0}\\{3}\\{3}}\ubeam13\go\=%
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+Das Vorzeichen der Steigung wird also
+nach der Konstellation der ersten und
+letzten Note der Balkengruppe bestimmt.
+
+\subsubsubheading{Der Betrag der Steigung}
+Sei im folgenden \folgi Nin eine Folge von Noten, f"ur die nach den
+obigen Bedingungen
+die Steigung $S$ nicht verschwindet.
+Um gr"o\3ere Steigungen zu vermeiden, wird der
+Betrag der Steigung nicht nach der
+Position der Notenk"opfe bestimmt wird, sondern bez"uglich der Endpunkte
+der Notenh"alse.
+
+Sei $E_i=(h_i,e_i)$ der Endpunkt des Notenhalses von $N_i$, wobei $h_i$
+den Abszissenwert des Notenhalses und $e_i:=\bar p_i+ d\cdot s^d(p_i)$
+den
+vertikalen Abstand von der Grundlinie angibt ($\bar p_i = p_i\cdot 0.5
+\verbatimon|\nhh|$).
+
+Aus diesen Werten kann allgemein die Steigung $S^*$ einer Geraden durch
+die Punkte $E_1$ und $E_n$ berechnet werden durch Bildung des
+Differenzenquotienten
+$$S^*=
+\Frac{e_n-e_1}{h_n-h_1}\;.$$
+Diese errechnete Steigung kann jedoch erst nach einigen weiteren
+Korrekturen der Notenh"alse als endg"ulti\-ge Steigung f"ur den Balken
+"ubernommen werden.
+\subsubsubheading{Die Korrektur der Notenhalsl"angen}
+Es sind zun"achst zwei verschiedene Korrekturen der Notenhalsl"angen
+m"oglich.
+\item{1)}
+Wegen
+$$\verbatimoff |s^d(p_1)-s^d(p_n)|\le|\bar p_1-\bar p_n|$$
+gilt immer:
+$$
+\align &e_n-e_1\ge0 \text{ f"ur }p_1<p_n\;\\
+\text{und }& e_n-e_1\le0\text{ f"ur }p_1>p_n\;.\endalign$$
+\item{}
+In einigen F"allen wird
+jedoch die strikte Positivit"at bzw. Negativit"at
+von $S^*$ nicht mehr gew"ahrleis\-tet.
+
+\Beispiel
+{\hsize 4cm
+\loose
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\ \v{-4}\v{-3}\v{11}\v{13}\hfill\null
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+\item{}
+In diesen F"allen m"ussen also die Notenhalsl"angen so korrigiert werden,
+da\3 die Bedingung f"ur das Vorzeichen der Steigung
+ erf"ullt ist, und eine betragsm"a\3ig
+kleine Steigung
+die Tendenz der Notengruppe ausdr"uckt.
+
+\item{2)}Eine
+weitere Korrektur ergibt sich aus der Tatsache,
+da\3 Balken mit einer Steigung von mehr als
+ $25^\circ $--$ 30^\circ$ geneigt sind, nicht
+verwendet werden, da sie das Gesamtbild optisch unruhig erscheinen
+lassen.
+Da die Steigung von der Differenz der Abszissenwerte der Notenh"alse
+abh"angig ist,
+tritt dies h"aufig auf bei Notenpaaren
+mit stark unterschiedlichen Tonh"ohen, z.B.
+
+{\hsize 4cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\universal
+\beginsong
+\vio\C
+\hskip20pt\v{-3}\v{3} \hfill
+\endsong}
+\vskip-1cm\
+\item{}
+Die Korrektur sollte also dahin zielen, den Betrag der Balkensteigung so
+zu verkleinern, da\3 die h"ochstzul"assige Steigung angenommen wird.
+Dies kann auf zwei Arten geschehen:
+\itemitem{a)} Vergr"o\3ern des horizontalen Abstands, was aus den in
+Kapitel \adchap{-2}.1
+\XX angef"uhrten Gr"unden jedoch unzul"assig ist, und
+\itemitem{b)} Verkleinern des vertikalen Abstandes durch Ver"andern der
+Notenhalsl"angen.
+
+\item{}Auch in diesem Fall ist also eine Korrektur der Notenhalsl"angen
+erforderlich.
+
+Aus den Beipielen in der Notenliteratur ergibt sich, da\3
+die Korrektur der Notenhalsl"angen stets durch Verl"angern der
+entsprechenden Notenh"alse erfolgt, nie durch Verk"urzen.
+
+Die Verl"angerung der Notenh"alse ist nicht unabh"angig von der
+gemeinsamen Notenhalsrichtung $d$. Es gilt
+f"ur die zu den Noten $N_1$ und $N_n$ zugeh"origen Halsl"angen $s_1$ und
+$s_n$ f"ur die zuerst vorgestellte Korrekturm"oglichkeit:
+\verbatimon
+$$\align \text{Ist }d\cdot(p_1-p_n)>0&\text{, so gilt }
+s_1 =s^d(p_1)+0.5\hbox{|\nhh| und } s_n=s^d(p_n)\,,\\
+ \text{und ist }d\cdot(p_1-p_n)<0&\text{, so gilt }
+s_n =s^d(p_n)+0.5\hbox{|\nhh| und } s_1=s^d(p_1)\;.\endalign$$
+Die zweite Korrektur wird wie folgt durchgef"uhrt:
+
+Sei $h:=h_n-h_1$ die Differenz der Abzissen der Notenh"alse
+und $\epsilon:=\sin\alpha$, wobei $\alpha$ den maximal zul"assigen
+Neigungswinkel angibt. Dann gilt
+$$\align \text{Ist }d\cdot(p_1-p_n)>0&\text{, so gilt }
+s_1 =s^d(p_1)+\verbatimoff (|e_n-e_1| -\epsilon \cdot h)
+\hbox{ und } s_n=s^d(p_n)\,,\\
+ \text{und ist }d\cdot(p_1-p_n)<0&\text{, so gilt }
+s_n =s^d(p_n)+\verbatimoff (|e_n-e_1| -\epsilon \cdot h)
+\hbox{ und } s_1=s^d(p_1)\;.\endalign$$
+
+Die der Notengruppe zugeh"orige Balkensteigung $S$ lautet nun:
+$$S:=\Frac{(\bar p_n - \bar p_1) + d(s_n-s_1)}{h_n-h_1} $$
+
+\Beispiel
+\par
+\input mdocpic2
+\endBeispiel
+
+\subsubsubheading{Die Diskretisierung der Balkensteigung}
+Die Balkensteigung $S$ hat einen reellen Wertebereich, wenn man die oben
+angef"uhrte Definition anwendet
+($S\in\lbrack-\tan\alpha,\tan\alpha\rbrack\subset\rz$).
+
+Wie schon in
+\adchap{-4}.1.4 \XX angedeutet, bietet \TeX\ au\3er Rules keine
+M"oglichkeit, Linien zu setzen. Man w"urde also einen Balken beliebiger
+Steigung aus gen"ugend kleinen ausgef"ullten Rechtecken zusammensetzen
+m"ussen und dabei ein Optimierungsverfahren anwenden. Diese
+Vorgehensweise w"are sowohl im Satz als auch in der Ausgabe sehr
+zeitaufwendig und w"urde dennoch bei von Null verschiedenen Steigungen
+eine sichtbare Treppenstruktur ergeben.
+
+Es liegt daher nahe, die Balkensteigung zu diskretisieren und Balken
+dieser Steigungen in einem eigenen Zeichensatz zusammenzufassen.
+
+\Bemerkung
+\item{1)}Das folgende Verfahren ist nicht spezifisch f"ur das
+Textsatzsystem \TeX, sondern k"onnte auch f"ur andere Satzsysteme
+verwendet werden.
+\item{2)}
+Diese Vorgehensweise der Diskretisierung
+findet man auch beim Typendruckverfahren,
+das im wesentlichen zwei verschiedene Neigungen verwendet:
+steile und flache (s. \lit{\genzmeier, S.119}).
+
+\endBemerkung
+Es sollen hier jedoch feinere Unterschiede gemacht werden:
+\item{1)}Die Balkensteigung soll die errechnete m"oglichst realistisch
+wiedergeben.
+\item{2)}Die gr"o\3te Steigung entspricht $\tan\alpha$, wobei
+$\alpha$ den maximal zul"assigen Neigungswinkel angibt. (Es gilt z.B.
+$25^\circ\approx\arctan{\hbox{|\nhh|}\over\hbox{2|\nhw|}}=\arctan
+0.\overline{45}$, falls |\nhw|=1.1|\nhh|.)
+
+Gesucht ist eine Folge $0=m_0<m_1<\ldots<m_k\cong 0.45$, die die in
+der Notenliteratur erforderlichen Steigungen wiedergibt.
+(Als negative Steigungen ergeben sich dann $-m_i\;,\;i=0,\ldots,k$.)
+
+Als Schranke $\eta>0$ f"ur den absoluten Fehler wurde das Zweifache der
+Balkenst"arke gew"ahlt, so da\3 sich
+bei Rundung auf den n"achsten diskreten
+Steigungswert ein maximaler Fehler von $\eta/2$, d.h. der St"arke eines
+Balkens ($\approx$0.6|\nhh|), ergibt.
+Sei $\epsilon:=\max_{i=0,\ldots,k-1}\{m_{i+1}-m_i\}$, so gilt f"ur den
+absoluten Fehler:
+$$\verbatimoff |m_{i+1}-m_i|\cdot|h|<\eta\;.$$
+Die Wahl von $\epsilon$ ist also abh"angig von $|h|$.
+W"ahlt man acht verschiedene Steigungen, d.h. $k=8$, und als obere
+Schranke $m_8=0.45$, so erh"alt man f"ur
+$\epsilon=\Frac{0.45}8\cong0.056$ die gew"unschte Genauigkeit f"ur
+\verbatimoff
+$|h|=\verbatimon{\hbox{1.2|\nhh|}\over\dsize0.056}\cong21\hbox{|\nhh|}
+\cong20\hbox{|\nhw|}$.\verbatimon
+
+Diese Genauigkeit wird also bei einer Verbalkung von zehn Achtelnoten
+bei universellem Zeilenausschlu\3 (s. 5.1.1\XX) eingehalten. Dies ist
+ausreichend, da selten l"angere Balken ben"otigt werden. Bei einer
+Verbalkung von sechs Achtelnoten erreicht man eine Genauigkeit von
+$\eta/2$.
+Aus diesen Gr"unden wurde f"ur den Balkenzeichensatz der
+`Steigungssatz' $m_i=0.056\cdot i\,,$ $i=1,\ldots,8$ gew"ahlt.
+
+Die Anpassung der oben berechneten Steigung $S$ an die im Zeichensatz
+vorhandenen erfolgt f"ur
+\verbatimoff$|S|\ge m_1$ durch Runden auf den n"achsten diskreten
+Steigungswert $m_i$ mit $m_i\le |S|$ und
+ f"ur $0<|S|<m_1$ durch
+Aufrunden auf $m_1$, damit die obigen Bedingungen f"ur das Vorzeichen der
+Steigung auch bei diskretisierter Steigung erf"ullt bleiben.
+
+\verbatimon
+Stellt man den Zeichensatz so zusammen, da\3 zu jeder Steigung
+Balkenst"ucke der Zeichenbreite $w_i:=\frac12\cdot 2^i\pt=2^{i-1}\pt$,
+$i\in\{0,\ldots,7\}$ existieren, so k"onnen Balken beliebiger L"ange auf
+$0.5\pt$ genau zusammengef"ugt werden, wobei die auf den Drucker
+zu "ubertragende Anzahl der Zeichen minimiert ist
+Der dazu erstellte Zeichensatz ist im Anhang D zu finden.
+
+\subsubheading{Die Anpassung der Notenhalsl"angen}
+Da der Balkenverlauf nur nach der ersten und letzten Note bestimmt
+wurde, aber die dazwischen liegenden Noten $N_2,\ldots,N_{n-1}$ beliebig
+sind, ist es notwendig, zun"achst die "ubrigen Notenhalsl"angen
+anzugleichen, abh"angig von den internen Tonh"ohen der inneren Noten
+eine dritte Korrektur aller Notenh"alse durchzuf"uhren und abh"angig
+von der Anzahl der zu setzenden Balkenreihen eventuell die Notenh"alse
+durch eine vierte Korrektur erneut zu verl"angern.
+
+\subsubsubheading{Das Angleichen der Notenh"alse}
+Ausgehend vom
+(eventuell korrigierten) Notenhalsendpunkt $E_1$ ist die L"ange des
+Notenhalses $s_i$ von $N_i$ der vertikale Abstand des Notenkopfes vom
+Balken. Es gilt:
+$$s_i:= s_1+d(\bar p_1 -\bar p_i + S\cdot (h_i-h_1))\;,$$
+wobei $S$ die angepa\3te diskretisierte Steigung ist und $d$ wiederum
+die gemeinsame Notenhalsrichtung beschreibt.
+
+\subsubsubheading{Die erste Verl"angerung der Notenh"alse}
+Sei $\bar s$ die minimal zul"assige Halsl"ange innerhalb einer
+Notengruppe. Dann sind zun"achst alle Halsl"angen der Gruppe um
+$$s^*:=\max_{1\le i\le n}(0,\bar s-s_i)$$
+zu verl"angern. Die Verl"angerung $s^*$ ist also nur positiv, falls f"ur
+mindestens ein $i$ gilt $s_i<\bar s$, andernfalls ist keine Korrektur
+notwendig.
+
+Die minimal zul"assige Halsl"ange ist wie folgt bestimmt:
+$$\bar s =\cases 2\hbox{|\nhh|}\,,&\text{falls
+}s^d(p_1)\le3\hbox{|\nhh|}\text{ oder }
+s^d(p_n)\le3\hbox{|\nhh|}\;,\\3\hbox{|\nhh|}\,,&\text{sonst.}\endcases$$
+Es gilt also $\bar s=2\hbox{|\nhh|}$ f"ur $p\ge6$, falls $d=+1$ und f"ur
+$p\le1$, falls $d=-1$.
+
+Diese (willk"urlich festgelegten) Werte f"ur $\bar s$ haben sich in der
+Praxis bew"ahrt.
+
+\Beispiel
+\par
+\input mdocpic3
+\endBeispiel
+
+\subsubsubheading{Die zweite Verl"angerung der Notenh"alse}
+Abh"angig von der Anzahl der Balkenreihen $r$ m"ussen die
+Notenhalsl"angen eventuell nochmals korrigiert werden um
+$$s^{**}:=\cases0\,,&\text{f"ur
+}r\le2\,,\\(r-2)\hbox{|\nhh|}\,,&\text{f"ur }r>2\,.\endcases$$
+Auch diese Werte sind heuristisch bestimmt.
+\par
+\subsubheading{%
+Bestimmung des Aufpunktes aller Balken der Notengruppe}
+Der Aufpunkt $P_{i,j}=(h_i,a_{i,j})\,,1\le i\le n$ und $1\le j\le r$,
+der einzelnen Balken der Notengruppe
+wird nun wie folgt bestimmt:
+$$a_{i,j} = \bar p_i + d\cdot s_i + d\cdot r\cdot\hbox{|\nhh|}\;.$$
+Dabei wird der Balken bis auf den Spezialfall eines ``Halbbalkens''
+immer rechts vom Notenhals positioniert. Gilt ein Balken nur f"ur
+eine Note, so wird er je nach Position der Note innerhalb der
+Notengruppe links oder rechts vom Notenhals plaziert, z.B immer links
+f"ur $N_n$ und immer rechts f"ur $N_1$. Innerhalb der Gruppe richtet
+sich die Position nach dem metrischen Gef"uge (s.\lit\ziegen). Ein
+solcher Balken hat immer als L"ange die H"ohe
+eines Notenkopfes.
+
+\Beispiel
+{\hsize 10cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\loose
+\beginsong
+\vio\C
+\def\beamlist{\\{1-2,}\\{-2,}}
+\group{\\{\a6\.1}\\{\s6}}{\\{6}\\{6}}\lbeam12\go
+\def\beamlist{\\{1-2,}\\{1-1,}}
+\group{\\{\s6}\\{\a7\.1}}{\\{6}\\{7}}\lbeam12\go
+\def\beamlist{\\{1-4,}\\{-2,-4,}}
+\group{\\{\a7\.1}\\{\s8}\\{\a6\.1}%
+\\{\s7}}{\\{7}\\{8}\\{6}\\{7}}\lbeam14\go
+\def\beamlist{\\{1-4,}\\{1-1,3-3,}}
+\group{\\{\s7}\\{\a8\.1}\\{\s6}\\{\a7\.1}}
+{\\{7}\\{8}\\{6}\\{7}}\lbeam14\go
+\hfill\=%
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+\subsubheading{Abschlie\3ende Bemerkungen zur Verbalkung}
+Das obige
+Verfahren zur Verbalkung l"a\3t sich auch f"ur Akkorde durchf"uhren,
+wenn f"ur die interne Tonh"ohe die am weitesten von der jeweiligen
+Bezugsnote entfernte Note zur Berechnung verwendet wird.
+
+\Beispiel
+{\hsize 4cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\loose
+\beginsong
+\vio\C%
+\def\beamlist{\\{1-3,}\\{1-3,}}%
+\group{\\{\b7\rchord\a7\a{-1}\endchord}\\{\rchord\a{14}\a8\endchord}
+\\{\rchord\a{11}\a5\endchord}}{\\{-1}\\{8}\\{5}}\lbeam13\go\hfill
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+\subheading{Entwicklung eines Verfahrens zur Phrasierung}
+
+Gesucht ist ein Verfahren zur \defi{Phrasierung}
+von Noten, d.h. ein Verfahren,
+das jede beliebige Folge von Noten \folgi Nin mit zugeh"origen
+Tonh"ohen \folgi pin, Notenhalsl"angen \folgi sin und
+Notenhalsrichtungen \folgi din mit einem Bogen "uberspannt.
+
+Wie bei der Verbalkung mu\3 zun"achst entschieden werden, ob der Bogen
+oberhalb oder unterhalb der Noten verl"auft. Verl"auft der Bogen
+oberhalb, so ist eine konkave Form zu w"ahlen, andernfalls
+eine konvexe Form.
+
+Als Grundregel gilt:
+
+\item{P1)}Bei einstimmiger Notation wird der Bogen von Notenkopf zu
+Notenkopf gef"uhrt, so da\3 die betroffenen Noten deutlich erkennbar
+sind, d.h. f"ur $d_1=d_n$ wird der Bogen
+unterhalb der Notenk"opfe gef"uhrt,
+falls $d_1=+1$, und oberhalb, falls $d_1=-1$.
+\item{}
+F"ur $d_1\ne d_n$ gibt es keine einheitliche Regelung, jedoch findet man
+meistens (vor allem in der Vokalmusik) die Regelung, da\3 der Bogen
+oberhalb
+der Notenk"opfe gef"uhrt wird, um nicht in Konflikt mit unterlegtem Text
+zu geraten.
+\item{P2)} Bei zwei- (oder mehr-)stimmiger Notation gilt jedoch
+allgemeing"ultig die Regelung, da\3 f"ur die Phrasierung der Oberstimme
+konkave Bogen und f"ur die Phrasierung der Unterstimme konvexe Bogen
+vorgeschrieben sind.
+
+\Beispiel
+{\universal
+\hsize 10 cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\group{\\{\h5}\\{\h5}}{\\{5}\\{5}}\uslur12\go
+\group{\\{\h3}\\{\h3}}{\\{3}\\{3}}\lslur12\go
+\group{\\{\h4}\\{\h3}}{\\{4}\\{3}}\uslur12\go
+\group{\\{\h3}\\{\h4}}{\\{3}\\{4}}\uslur12\go
+\two{%
+\group{\\{\h3}\\{\h7}}{\\{3}\\{7}}\uslur12\go}
+{\group{\\{\h1}\\{\h4}}{\\{1}\\{4}}\lslur12\go}\=\endsong
+}\vskip-1cm
+\endBeispiel
+
+Der Bogen wird im Gegensatz zum Balken
+nicht dazu verwendet, den Melodieverlauf auszudr"ucken,
+sondern wird abh"angig vom zur Verf"ugung stehenden Freiraum
+positioniert, d.h. er darf innere Noten der Notengruppe nicht
+durchkreuzen.
+
+Beim Handnotensatz unterscheidet der Notensetzer Legato- und Haltebogen
+von Phrasierungsbogen.
+
+Legato- und Haltebogen sind k"urzer und meist schon als Stempel
+vorhanden, w"ahrend Phrasierungsbogen freier gestochen
+werden und l"anger sind.
+
+Legatobogen haben also f"ur eine bestimmte L"ange eine feste Kr"ummung,
+w"ahrend Phrasierungsbogen in der Form variieren k"onnen.
+
+Da \TeX\ nicht die graphischen M"oglichkeiten besitzt, Bogen zu
+zeichnen, mu\3te eine Algorithmus gefunden werden, der Bogen mit einer
+festen Kr"ummung bei gleicher Breite setzt.
+
+Berechnet man also die Sekantensteigungen des Bogens, so ist der
+zugeh"orige zu w"ahlende Bogen eindeutig bestimmt und in einem
+Zeichensatz speicherbar.
+
+Daher ist es f"ur das Setzen eines Bogens
+ausreichend, nur seine Sekantensteigung zu berechnen und
+diese zu diskretisieren.
+
+\subsubheading{Bestimmung des Anfangs- und Endpunktes des Bogens}
+
+O.B.d.A. seien im folgenden Noten durch einen konkaven Bogen zu
+"uberspannen. F"ur den konvexen Bogen lassen sich die "Uberlegungen
+analog durchf"uhren.
+
+Sei \folgi Nin eine Notengruppe. Seien
+\folgi pin die zugeh"origen Tonh"ohen und
+$\bar p_i:=p_i\cdot0.5\hbox{|\nhh|} $ wie oben.
+Seien \folgi din die Richtungen der Notenh"alse,
+ \folgi sin die zugeh"origen Notenhalsl"angen und
+ \folgi hin die Abszissenwerte der Notenh"alse.
+\Bemerkung O.B.d.A. sei $h_1:=0$. Gilt
+$d_i=0$ f"ur ein $i$, so besitzt
+die Note keinen Notenhals. In diesem Fall sei $h_i$
+der Abszissenwert des Notenkopfmittelpunktes.
+\endBemerkung
+Dann gilt f"ur den Anfangspunkt $A_i$ des Bogens f"ur Noten, die nicht
+mit aufw"arts gestielten Notenh"alsen verbalkt sind:
+$$\matrix\format\r&\l&\l\\
+\text{F"ur } &d_i=+1& \text{ gilt } A_i=(h_i+0.5\hbox{|\nhh|},
+\bar p_i+\hbox{|\nhh|})\,,\\
+ \text{f"ur } &d_i=0&\text{ gilt } A_i=(h_i,
+\bar p_i+\hbox{|\nhh|})\,,\\
+ \text{f"ur } &d_i=-1&\text{ gilt } A_i=(h_i+0.5\hbox{|\nhh|},
+\bar p_i+\hbox{|\nhh|})\,.\endmatrix$$
+Ist $N_i$ Element einer oberhalb der Notenk"opfe verbalkten Notengruppe,
+so ist eine weitere Fallunterscheidung notwendig. Falls $N_i$ nicht das
+\disp{letzte} Element der verbalkten Notengruppe ist, gilt:
+$A_i =(h_i,\bar p_i+s_i+0.5\hbox{|\nhh|})\;.$
+Dies gilt auch f"ur die letzte Note einer ``Balkengruppe'', falls die
+Note des Bogenendes auf die gleiche Weise verbalkt wurde, andernfalls
+gilt $A_i= (h_i+0.5\hbox{|\nhh|}, \bar p_i+\hbox{|\nhh|})$.
+
+F"ur den Endpunkt $E_i$ des Bogens f"ur Noten, die nicht
+mit aufw"arts gestielten Notenh"alsen verbalkt sind, gilt:
+$$\matrix\format\r&\l&\l\\
+\text{F"ur }& d_i=+1&\text{ gilt } E_i=(h_i-0.5\hbox{|\nhh|},
+\bar p_i+\hbox{|\nhh|})\,,\\
+ \text{f"ur }& d_i=0&\text{ gilt } E_i=(h_i,
+\bar p_i+\hbox{|\nhh|})\,,\\
+ \text{f"ur }&d_i=-1&\text{ gilt } E_i=(h_i+0.5\hbox{|\nhh|},
+\bar p_i+\hbox{|\nhh|})\,.\endmatrix$$
+Ist $N_i$ Element einer oberhalb der Notenk"opfe verbalkten Notengruppe,
+so ist wiederum
+eine Fallunterscheidung notwendig. Falls $N_i$ nicht das
+\disp{erste} Element der verbalkten Notengruppe ist, so ist
+$E_i =(h_i,\bar p_i+s_i+0.5\hbox{|\nhh|})\;.$
+Dies gilt auch f"ur die erste Note einer ``Balkengruppe'', falls die
+Note des Bogenendes auf die gleiche Weise verbalkt wurde, andernfalls
+ist $E_i= (h_i,\bar p_i+\hbox{|\nhh|})$.
+\verbatimoff
+\par
+\Beispiel
+\par
+{\hsize 16 cm\universal
+\parindent = 0pt
+\beginsong
+\vio\C%
+\group{\\{\h3}\\{\h3}}{\\{3}\\{3}}\uslur12\go
+\group{\\{\h3}\\{\g5}}{\\{3}\\{5}}\uslur12\go
+\group{\\{\h3}\\{\h4}}{\\{3}\\{4}}\uslur12\go\doublebarline
+\group{\\{\g4}\\{\h1}}{\\{4}\\{1}}\uslur12\go
+\group{\\{\g5}\\{\g5}}{\\{5}\\{5}}\uslur12\go
+\group{\\{\g5}\\{\h5}}{\\{5}\\{5}}\uslur12\go\doublebarline
+\group{\\{\h4}\\{\h3}}{\\{4}\\{3}}\uslur12\go
+\group{\\{\h5}\\{\g5}}{\\{5}\\{5}}\uslur12\go
+\group{\\{\h4}\\{\h8}}{\\{4}\\{8}}\uslur12\go\hfill\doublebarline
+\group{\\{\a3}\\{\a3}\\{\h6}}{\\{3}\\{3}\\{6}}\ubeam12\uslur13\go
+\group{\\{\a3}\\{\a3}\\{\h6}}{\\{3}\\{3}\\{6}}\ubeam12\uslur23\go
+\doublebarline
+\group{\\{\a3}\\{\a3}\\{\a3}\\{\a3}}{\\{3}\\{3}\\{3}\\{3}%
+}\ubeam12\ubeam34\uslur13\go\|%
+\group{\\{\a3}\\{\a3}\\{\a3}\\{\a3}}{\\{3}\\{3}\\{3}\\{3}%
+}\ubeam12\ubeam34\uslur23\go
+\=\endsong}
+\vskip-1cm
+\endBeispiel
+
+Wie bei der Verbalkung mu\3 in Extremf"allen die Sekantensteigung
+ korrigiert werden. Dies geschieht wiederum nur durch Verschieben der
+Anfangs- bzw. Endpunkte in vertikaler Richtung, d.h. durch Ver"andern der
+Ordinaten.
+\verbatimon
+
+Im folgenden seien \folgi ain und \folgi ein die Ordinatenwerte der
+Punkte \folgi Ain{}bzw. \folgi Ein.
+Eine Korrektur wird (auch in der Notenliteratur) nur so durchgef"uhrt,
+da\3 die Sekantensteigung betragsm"a\3ig verkleinert wird, jedoch kein
+Vorzeichenwechsel auftritt.
+
+Da die
+Anfangs- und Endpunkte f"ur einen konkaven Bogen so gew"ahlt sind,
+da\3 der vertikale Abstand von der Grundlinie der minimal m"ogliche ist,
+kann die Korrektur nur durch Erh"ohen des Abstandes durchgef"uhrt werden.
+
+\item{1)}Zun"achst ist eine Korrektur notwendig,
+falls der Bogen, der die Noten zwischen $N_1$ und $N_n$ "uberspannen
+soll, die inneren Noten schneidet.
+Die Bogen der Notenliteratur "ahneln eher Parabelausschnitten als
+Kreisbogenausschnitten, wie man zun"achst vermuten w"urde. Um den
+Bogenverlauf m"oglichst genau nachzuahmen, wurde ein Parabelausschnitt
+gew"ahlt, der durch die beiden Endpunkte des Bogens und einen dritten
+Punkt eindeutig bestimmt ist. Dieser dritte Punkt ist durch einen
+Vektor, der senkrecht auf der Sekante steht, mit dem Sekantenmittelpunkt
+als Aufpunkt und einer L"ange, abh"angig von der Sekantenl"ange, gegeben.
+Als L"ange hat sich
+hierbei ein Sechstel der Sekantenl"ange bew"ahrt, soweit
+diese nicht den Betrag von |2\nhh| "uberschreitet.
+\par
+\item{}
+Da nur eine grobe Korrektur notwendig ist, gen"ugt es, den Bogen
+geeignet linear zu approximieren und zu "uberpr"ufen, ob die
+inneren Noten unterhalb einer solchen Geraden
+verlaufen.
+\item{}
+Die Gerade, die dies f"ur alle F"alle gew"ahrleistet, ist nat"urlich
+die Gerade durch die
+Sekante des Bogens. Dies f"uhrt jedoch f"ur die Noten,
+die sich unter der Sekantenmitte befinden, zu unbefriedigenden
+Ergebnissen.
+ Da
+sich jedoch in unmittelbarer N"ahe der Bogenendpunkte keine
+inneren Noten befinden, kann eine Gerade gew"ahlt werden, die
+zur Sekante parallel verl"auft.
+Der Abstand zur Sekante ist
+ abh"angig von der ``Auslenkung'' des
+Bogens und der Sekantensteigung.
+\item{}
+Sei $\epsilon$ der Abstand der beiden
+Geraden und
+$S$ die errechnete Sekantensteigung bzgl. $A_1$ und $E_n$.
+Dann ist
+$s^*=\max_{i=2,\ldots,n-1}\{0\,,\,(e_i-a_1+S\cdot h_i)-\epsilon\}$
+der Maximalwert, um den die Approximationsgerade "uberschritten wurde.
+Die Korrektur der Bogensteigung wird dann wie folgt durchgef"uhrt:
+gilt $a_1<e_n$, dann wird $a_1$ um $s^*$
+vergr"o\3ert.
+Falls $a_1+s^*>e_n$, wird so korrigiert, da\3 $S$ verschwindet, d.h.
+$e_n$ mu\3 um den Betrag $e_n-(a_1+s^*)$ vergr"o\3ert werden. F"ur
+$a_1>e_n$ wird zun"achst $e_n$ vergr"o\3ert. Falls dabei
+$S$ Null wird, ist zus"atzlich $a_1$ zu korrigieren.
+\medskip
+\input mdocpic4
+\medskip
+\centerline{{\eightrm Skizze zur Approximation des Bogens}}
+\item{2)}Eine weitere Korrektur mu\3 (nach der Diskretisierung
+(s. \the\chap.2.2\XX))
+durchgef"uhrt werden, falls die Steigung die f"ur die
+Zeichenbreite des Bogens zul"assige maximale Steigung "uberschreitet.
+\item{}
+Die Sekantensteigungen $S$ liegen im Intervall $(-1,1)\in\rz$, jedoch
+kommt es auch nur selten vor, da\3 \verbatimoff$S\cdot |h|>\verbatimon
+4\hbox{|\nhh|}$, d.h. die H"ohe des Zeilensystems "uberschreitet. Die
+maximal zul"assige Steigung ist also abh"angig von $h$ und kann
+beschrieben werden durch:
+\verbatimon
+$$\bar s(h)=\min(1,{4\hbox{|\nhh|}\over h})\;.$$
+Dann wird die Korrektur wiederum so durchgef"uhrt, da\3
+$a_1$ vergr"o\3ert wird, falls $a_1<e_n$,
+und $e_n$ vergr"o\3ert wird, falls $a_1>e_n$.
+ Es gilt:
+$$a_{1,{\rm neu}}:=e_n-\bar s(h)\cdot h \quad\text{ bzw. }\quad
+e_{1,{\rm neu}}:=a_n-\bar s(h)\cdot h \;.$$
+
+\subsubheading{Diskretisierung der Sekantensteigung}
+Aus den gleichen Gr"unden wie bei der Verbalkung ist eine
+Diskretisierung der Sekantensteigung notwendig. Da die St"arke des
+Bogens jeweils zum Bogenende abnimmt, w"are es sehr zeitaufwendig, den
+Bogen aus Einzelst"ucken zusammenzusetzen.
+Zu jeder Breite und jeder Steigung m"u\3te also ein vollst"andiger Bogen
+bereitgehalten werden.
+
+Ber"ucksichtigt man folgende Gesichtspunkte, kann jedoch eine
+repr"asentative Auswahl getroffen werden.
+\item{1)}Da der Bogen die
+Notengruppe nur "uberspannen und nicht exakt zwischen zwei Notenh"alsen
+eingepa\3t werden mu\3, gen"ugt es, Bogen der Zeichenbreite $w=k\cdot
+\hbox{|\nhw|} \text { mit } k\in\nz^+$ bereitzuhalten.
+\item{2)}Der vertikale Abstand der Bogenendpunkte betr"agt (meistens)
+ein
+$m$-faches von 0.5|\nhh|, wobei als obere Grenze 4|\nhh|
+angesehen werden kann, d.h. $m\le8$.
+%
+\item{3)}Eine weitere Schranke ist $m\le2k$, da die Sekantensteigung
+kleiner als 1 sein sollte.
+\item{4)}Da jedoch nicht Bogen beliebiger
+L"ange bereitgehalten werden k"onnen, ist es entgegen obiger
+"Uberlegung doch notwendig, Bogen gr"o\3erer Breite aus Einzelst"ucken
+zusammenzusetzen. Dabei wird das Mittelst"uck durch eine Rule beliebiger
+L"ange ersetzt.
+
+Es ergeben sich aus den obigen Gesichtspunkten f"unf verschiedene
+Zeichens"atze:
+\item{1)}konkave Bogen positiver Sekantensteigungen ($\frac{ht}w$) mit
+Breiten $w = i\cdot\hbox{|\nhw|}\,,i\in\{1,\ldots,17\}$ und H"ohen
+$ht = j\cdot0.5\hbox{|\nhh|}\,,j\in\{1,\ldots,\min({2i,8})\}$.
+
+\item{2)}konkave Bogen negativer Sekantensteigungen ($\frac{dp}w$) mit
+Breiten $w = i\cdot\hbox{|\nhw|}\,,i\in\{1,\ldots,17\}$ und Tiefen
+$dp =-j\cdot0.5\hbox{|\nhh|}\,,j\in\{1,\ldots,\min({2i,8})\}$.
+
+\item{3)}konvexe Bogen positiver Sekantensteigungen ($\frac{ht}w$) mit
+Breiten $w$ und H"ohen $ht$ wie oben.
+\item{4)}konvexe Bogen negativer Sekantensteigungen ($\frac{dp}w$) mit
+Breiten $w$ und Tiefen $dp$ wie oben.
+\item{5)}konkave und konvexe Haltebogen ($j=0$) verschiedener Breite
+$w$ wie oben
+und konkave und konvexe Bogenst"ucke
+positiver und negativer Sekantensteigung konstanter Breite (%
+$w=9\hbox{|\nhw|}$).
+\Bemerkung
+\item{1)}Die Maximalbreite $w=17\hbox{|\nhw|}$ hat sich so ergeben, da\3
+die Zeichens"atze mit jeweils 124 Elementen belegt werden konnten.
+Vollst"andige Bogen einer gr"o\3eren Breite erschienen nicht sinnvoll,
+da sie selten vorkommen und viel Speicherplatz ben"otigen.
+\item{2)}
+Zur Wahl der Bogenst"ucke:
+\item{}Der Bogen wird aus drei Teilen zusammengesetzt und zwar werden je
+ein Bogenst"uck positiver Sekantensteigung und ein Bogenst"uck
+negativer Sekantensteigung, die jeweils konvex bzw. konkav sind, durch
+eine Rule beliebiger L"ange verbunden. Dabei k"onnen sich vier
+verschiedene Situationen ergeben:
+
+\Beispiel\vskip-1cm
+\begingroup
+\def\vt#1{{\offinterlineskip\vtop{\null\hbox{\slurfont\char\hex#1}\vss}%
+}}
+\def\vb#1{{\offinterlineskip\vbox{\vss\hbox{\slurfont\char\hex#1}\null}%
+}}
+\medskip
+\def\rulet{\vrule height 0pt depth 1pt width36pt}
+\def\ruleb{\vrule height 1pt depth 0pt width36pt}
+\baselineskip2cm
+\halign{\hskip\iindent#\hfil&\quad$\vcenter{#}$&\hskip\iindent#\hfil
+&\quad$\vcenter{#}$\cr
+a)&\hbox{\vt{28} \rulet\ \vt{30}}&b)&\hbox{\vt{20} \rulet\ \vt{38}}\cr
+c)&\hbox{\vb{40} \ruleb\ \vb{58}}&d)&\hbox{\vb{48} \ruleb\ \vb{50}}\cr}
+\endgroup
+\medskip
+\endBeispiel
+\item{}
+Die folgenden "Uberlegungen gelten f"ur die in Beispiel a)
+aufgef"uhrte Situation, k"onnen jedoch auch auf die anderen "ubertragen
+werden.
+\item{}
+Sei $S=\Frac{e_n-a_1}h={\dsize j\cdot0.5\hbox{|\nhh|}\over \dsize
+h}$, wobei
+$j\in\{0,\ldots,8\}$.
+O.B.d.A. gilt $e_n>a_1$. Sei $S_1>0$ die Sekantensteigung des ersten
+Bogenst"ucks und $S_2<0$ die des zweiten. Dann gilt $S_1>S$.
+Die f"ur die Bogen gew"ahlten Steigungen reichen also in diesem Fall
+nicht aus. Je gr"o\3er \verbatimoff$|S_2|$ gew"ahlt wird, desto
+gr"o\3ere Werte m"ussen also f"ur $S_1$ bereitgehalten werden.
+\item{}
+Dann gilt:\verbatimon
+$$S_1={S\cdot h + 9\hbox{|\nhw|}\cdot
+\verbatimoff|S_2|\over\verbatimon
+9\hbox{|\nhw|}}$$\verbatimon
+Da die H"ohen in den "ubrigen Zeichens"atzen als Vielfaches von
+0.5|\nhh| gew"ahlt wurden, d.h.
+da\3 $S\cdot h = j\cdot 0.5\hbox{|\nhh|}$ f"ur ein
+$j\in\{1,\ldots,8\}$, gilt, falls eine solche Darstellung auch f"ur
+\verbatimoff $|S_2|\cdot 9\verbatimon
+\hbox{|\nhw|}=j^*\cdot0.5\hbox{|\nhh|}$ mit fest gew"ahltem
+$j^*\in\nz$
+angenommen wird,\verbatimon
+$$S_1={(j+j^*)\cdot 0.5\hbox{|\nhh|}\over 9\hbox{|\nhw|}}\,.$$
+Dies ergibt f"ur $S_1$ acht verschiedene Werte
+$ht_j=j\cdot\hbox{|\nhh|}$,
+$j\in\{j^*+1,\ldots,j^*+8\}$. \verbatimoff
+Da der Wert f"ur $|S_2|$ noch mitgerechnet \verbatimon
+werden mu\3, sind neun verschiedene Bogenst"ucke f"ur jeden Fall
+notwendig (positiv, negativ, konvex, konkav).
+\item{}
+Die Auswahl der Steigungen ist also nur abh"angig von $j^*$ und nicht
+von $h$.
+Die vorliegenden Zeichens"atze wurden mit $j^*=2$ erzeugt.
+Der Fall $S=0$ mu\3 als Sonderfall betrachtet werden, da in diesem Fall
+$S_1=-S_2$ gelten mu\3. Die Wahl
+$j^*=2$ erweist sich in diesem Fall jedoch als
+zu flach. Aus diesem Grund werden f"ur $S=0$ Bogen mit $j=4$
+verwendet.
+\endBemerkung
+\subheading{Ausf"uhrung des Balken- und Bogensatzes}
+
+\subsubheading{Nachbarschaften}
+
+Das Setzen der Bogen und Balken ist in hohem Ma\3e abh"angig vom
+Kontext, z.B. Bestimmung der Anfangs- und Endpunkte der Bogen, die
+Richtung und L"ange der Notenh"alse.
+
+Im Unterschied zum Textsatz besteht hier die Notwendigkeit,
+Notenschriftelemente, die auf eine solche Weise in Verbindung stehen,
+d.h. nicht isoliert zu behandeln sind, gleichzeitig zu verarbeiten.
+
+Gomberg (\lit\gomb) hat f"ur Notenschriftelemente, die untereinander in
+Beziehung stehen, indem sie gleichen horizontalen Raum beanspruchen,
+den Begriff der \defi{Nachbarschaften} formuliert
+(s.a. Kapitel \adchap2\XX).
+
+Anlehnend an diesen Begriff m"ochte ich Notenschriftelemente, die in
+irgendeiner Weise (graphisch) miteinander verbunden sind, zu einer
+Nachbarschaft zusammenfassen. Dazu geh"oren Notengruppen, die verbalkt
+werden sollen, aber auch Notengruppen, die mit einem Bogen "uberspannt
+werden sollen. Da sich diese Gruppen "uberschneiden k"onnen, sind
+Nachbarschaften oft gr"o\3er als die einzelne Notengruppe.
+
+\Beispiel
+{\hsize 10 cm
+\loose
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\Es \hskip20pt\group{\\{\a8}\\{\s3}\\{\s4}\\{\a5}
+\\{\s5}\\{\s6}\\{\n7\a7}\\{\s{13}}\\{\s7}}
+{\\{8}\\{3}\\{4}\\{5}\\{5}\\{6}\\{7}\\{13}\\{7}}
+\def\beamlist{\\{1-3,}\\{2-3,}}\lbeam13%
+\def\beamlist{\\{4-6,}\\{5-6,}}\lbeam46%
+\def\beamlist{\\{7-9,}\\{8-9,}}\lbeam79\uslur24\uslur57\uslur89\go
+\hfill\=%
+\endsong}
+\vskip-1cm
+\endBeispiel
+
+\Bemerkung Da es in einer Nachbarschaft nicht m"oglich ist, eine Note
+isoliert zu sehen, ist es auch nicht m"oglich, eine Nachbarschaft ohne
+"au\3eres Einwirken (durch den Benutzer) zu trennen.
+\item{}
+In \TeX\ wird eine solche Nachbarschaft als Box aufgefa\3t, deren Glue
+nicht mehr variabel ist. Enth"alt ein Musikst"uck gr"o\3ere
+Nachbarschaften, wird es problematisch, geeignete Umbruchpunkte f"ur den
+Zeilenumbruch zu finden.
+\item{}
+Das \TeX-Konzept f"ur Ausschlu\3 und Zeilenumbruch erweist sich also an
+dieser Stelle als hinderlich.
+\goodbreak
+\subsubheading{Verarbeitung der Nachbarschaften}Zur Verarbeitung der
+Nachbarschaften ist es notwendig, Informationen "uber die einzelnen
+Nachbarschaftselemente zu verwalten, z.B. die Tonh"ohen der Noten, die
+L"angen der Notenh"alse, den oberen und unteren Anfangs- und Endpunkt
+f"ur Bogen.
+
+Eine Speicherung beliebig vieler gleichartiger Elemente, z.B. in
+Vektoren, ist in \TeX\ nicht vorgesehen. Es ist jedoch m"oglich, mit
+Hilfe von Kontrollsequenzen Listen aufzubauen (\lit\Knuth, \Texbook,
+Anhang D.2).
+Eine Liste von $n$ Informationen kann in der Form
+\begindisplay
+|\\{|\<item$_1$>|}\\{|\<item$_2$>|}| $\ldots$ |\\{|\<item$_n$>|}|
+\enddisplay
+kodiert werden,
+wobei jedes \<item> eine wohlgeklammerte Tokenliste ist.
+
+Eine parameterlose Kontrollsequenz, z.B. |\liste|, deren Ersetzungstext
+obige Form besitzt, hei\3t \defi{Listenmacro} (\tex{list macro}).
+Das leere Listenmacro mit $n=0$ hei\3t |\empty|. Die einzelnen Elemente
+werden durch |\\| getrennt.
+Wird |\\| als Kontrollsequenz aufgefa\3t und als Makro
+mit einem Argument definiert, so k"onnen
+verschiedene Effekte erzielt werden, wenn es auf die
+Liste angewendet wird.
+\Beispiel
+Mit |\def\\#1{\hbox{#1}}|
+werden durch Aufruf von |\vbox{\liste}| alle Elemente von Liste
+untereinander gesetzt.
+\endBeispiel
+Durch Umdefinieren von |\\| kann man auch auf die Elemente selber
+einwirken. Sie k"onnen ausgetauscht werden, neue Elemente an- und
+eingef"ugt oder alte gel"oscht werden.
+
+Solche Listen k"onnen also dazu benutzt werden, Informationen, die zur
+Bearbeitung der Nachbarschaften notwendig sind, zu speichern.
+
+Die Bearbeitung der Nachbarschaften erfolgt in drei Teilschritten:
+\item{1)}Die Initialisierung der ben"otigten Listen.
+\item{2)}Die Berechnung der ben"otigten Balken und Bogen nach den in
+\the\chap.1 und \the\chap.2
+beschriebenen Verfahren und das Einf"ugen der ent\-%
+sprechenden Zeichensatzelemente in die Nachbarschaft.
+\item{3)} Das endg"ultige Setzen der Nachbarschaft.
+
+\subsubsubheading{Die ben"otigten Listen}
+Im folgenden sollen die ben"otigten Listen beschrieben werden.
+
+\item{1)}Als Anfangsinformation m"ussen folgende Listen gegeben sein.
+Diese sind vom "Ubersetzungspro\-gramm
+(\lit\Schofer) bereitzustellen:
+\item{a)}Die Liste aller Elemente der Nachbarschaft (|\elementlist|).
+\item{}
+Normalerweise bestehen die Elemente aus jeweils einer Note mit, falls
+vorhanden, zugeh"origem Vorzeichen und eventuellen Wertpunkten.
+Des weiteren kann ein Element einen Akkord beinhalten oder
+andere Notenschriftelemente wie z.B. Taktstriche, zu unterlegende Texte
+oder Akzente.
+\item{b)}Die Liste der Tonh"ohen der Noten der
+Nachbarschaft (|\pitchlist|).\item{}
+Das $i$-te Element der
+|\pitchlist| enth"alt die jeweilige
+ Tonh"ohe des $i$-ten Elementes der |\elementlist|.
+ Bei Akkorden kann jedoch
+nur die Tonh"ohe des Notenkopfes, der f"ur die Verbalkung
+relevant ist, angegeben werden. Auch Taktstrichen kann eine Tonh"ohe
+zugewiesen werden. So kann man vor einem Zeilenumbruch einen
+Bogen "uber einem Taktstrich enden lassen.
+\item{c)} Die Liste, die Informationen "uber die durch Balken zu
+verbindenden Noten enth"alt (|\beamlist|).
+\item{}
+Die Zahl der Elemente gibt die Anzahl der Balkenreihen $r$ an und die
+jeweiligen Elemente,
+welche Noten in der Balkenreihe zu verbinden sind.
+Wie in \XX \the\chap.1
+erw"ahnt, ist nicht allein aus den Notenwerten erkennbar,
+welche Noten der Nachbarschaft miteinander verbunden werden m"ussen, da
+die Noten
+innerhalb der Balkengruppe noch weiter gruppiert werden m"ussen,
+um die Betonungsverh"altnisse im Takt zu verdeutlichen.
+\item{}
+Aus diesem Grund enthalten die Elemente der Balkenlisten eine weitere
+Liste, die angibt, welche Noten in der jeweiligen Balkenreihe
+miteinander verbunden werden.
+\item{}
+Sei $l$ die Anzahl der Elemente einer solchen ``Unterliste'' und
+seien die Elemente $n_1$ bis $n_2$ der Nachbarschaft zu verbalken.
+Das $i$-te Element des Listenelementes ist dabei
+von der Form:
+$$\matrix\format\l&\r&\l\\\hbox{A:}\qquad&
+k_{i_1}-k_{i_2},& \text{ wobei }k_{i_{1,2}}\in\{n_1,\ldots,n_2\}
+\text{ und }k_{i_1}\leq k_{i_2}\,,\\
+\noalign{\text{ oder }}
+\hbox{B:}\qquad&-k_{i_2},&\text{ wobei }k_{i_2}
+\text{ wie oben und }k_{i_1} \text{ fehlt.}
+\endmatrix$$
+\item{}F"ur die Folge
+$(k_{i_1},k_{i_2}),i\in\{1,\ldots,l-1\}$ mu\3 gelten:
+$$k_{i_1}<k_{(i+1)_1}\text{ und }k_{i_2}\leq k_{(i+1)_1}\,,\text{ falls
+}k_{i_2}\text{ nicht fehlt.}$$
+\item{}Dabei bedeutet die Form:
+{\iindent=40pt
+\itemitem{$k_{i_1}-k_{i_2}$:} Verbalke das $k_{i_1}$-te bis
+$k_{i_2}$-te Element der |\elementlist|, falls $k_{i_1}\ne k_{i_2}$,
+sonst verbalke Element $k_{i_1}$ nach rechts.
+\itemitem{$-k_{i_2}$:}Verbalke das $k_{i_2}$-te Element nach
+links.
+\par}
+\item{}In beiden F"allen betr"agt die Breite des Balkens |\nhw|.
+
+\Beispiel(s. \the\chap.1.3)
+\endBeispiel
+\item{}
+Es ist nach oben beschriebenem System nicht unbedingt notwendig, da\3
+die erste Balkenreihe durchgehend ist, d.h. von der Form $n_1-n_2$.
+ Dies ist kein
+Fehler, sondern es erm"oglicht, ein Bild folgender Art zu erhalten:
+
+{\loose
+\hsize7cm
+\advance\hsize2\iindent
+\parindent2\iindent
+\beginsong
+\vio\C
+\def\beamlist{\\{1-4,5-8,}}%
+\group{\\{\a{-2}}\\{\a{-1}}\\{\a0}\\{\a1}\\{\a2}\\{\a3}\\{\a4}\\{\a5}}
+{\\{-2}\\{-1}\\{0}\\{1}\\{2}\\{3}\\{4}\\{5}}\ubeam18\go\=%
+\endsong}
+\vskip-1cm
+\goodbreak
+\item{2)}Zur Verarbeitung werden folgende Listen ben"otigt:
+\item{}Da diese Listen Informationen "uber das jeweilige Element
+der |\elementlist| speichern, mu\3
+die Anzahl der Listenelemente (Kardinalit"at)
+mit der Anzahl der Elemente der |\elementlist| "ubereinstimmen.
+\item{a)}Die Liste, die Informationen "uber die horizontale
+Breite der Nachbarschaft und ihrer Elemente enth"alt (|\Hlist|).
+\item{}
+Das $i$-te Element enth"alt die Breite der Nachbarschaft
+vom 1. bis $i$-ten Element einschlie\3lich, ohne da\3 am Ende
+Glue angef"ugt wurde. Ist die $i$-te Note nicht punktiert, so schlie\3t
+diese Nachbarschaft f"ur $d_i=+1$ mit dem Notenhals, f"ur
+$d_i=-1$ mit dem Notenkopf ab. Der Abstand des Notenhalses zum
+Ende dieser Notengruppe betr"agt also |\nhw|.
+Ist die Note mit Wertpunkten versehen,
+so erh"oht sich der Abstand um die Breite, die
+die Punkte beanspruchen. Bei Akkorden mit aufsteigendem Notenhals
+kann es vorkommen, da\3 die Nachbarschaft nicht mit dem Notenhals ab\-%
+schlie\3t, falls ein Notenkopf auf der rechten Seite des Notenhalses
+erscheint. Der Abstand betr"agt dann, falls keine Wertpunkte vorhanden
+sind, |\nhw|.
+\item{b)} Die Liste, die Informationen "uber die Abszissenwerte der
+Notenh"alse liefert (|\Hcorlist|).
+\item{}
+Das $i$-te Element enth"alt als Korrektur den
+horizontalen Abstand des Notenhalses des $i$-ten Elements zum
+Ende einer Nachbarschaft, die mit diesem Element abschlie\3en w"urde.
+Mit dieser Liste k"onnen die Wertpunkte sowie Akkorde
+z.B. f"ur die Berechnung
+der L"ange des Balkens ber"ucksichtigt werden.
+\item{}
+Das $i$-te Element enth"alt als Korrektur den
+horizontalen Abstand des Notenhalses des $i$-ten Elements zum
+Ende einer Nachbarschaft, die mit diesem Element abschlie\3en w"urde.
+\item{c)} Die Liste, die Informationen "uber die Notenhalsl"angen der
+zu verbalkenden Noten enth"alt (|\stemlist|).
+\item{}Diese Liste wird zun"achst mit Null initialisiert und nur
+ver"andert, falls eine Note zu verbalken ist. Es ist also eine Unter\-%
+scheidung zwischen einzelstehenden Noten und Balkengruppen anhand dieser
+Liste m"oglich.
+\item{d)}Die Liste, die Informationen "uber die Richtung der
+Notenh"alse in der Notengruppe enth"alt (|\dirlist|).
+\item{}
+Bei Verbalkung wird die eventuelle "Anderung der Notenhalsrichtung der
+betroffenen Noten in dieser Liste vermerkt, soda\3 es m"oglich ist
+einen Bogen "uber oder unter diesen Noten korrekt zu plazieren.
+\item{e)}Die Listen, die die vertikalen Positionen der Bogenanfangs-
+und Endpunkte oberhalb bzw. unterhalb der Noten enthalten
+(|\uslurlist| und |\lslurlist|).
+\item{}Die Listen sind so angelegt, da\3 ein Element
+Informationstr"ager sowohl der Ordinaten des
+ Anfangs- als auch des Endpunktes
+ist. Stimmen die Werte nicht "uberein, so wird dies durch einen Wert,
+der betragsm"a\3ig gr"o\3er als 100\pt\ ist, angezeigt.
+\item{}
+Die Elemente erhalten nur von Null verschiedene Werte, falls der
+Anfangs- bzw. Endpunkt nicht direkt am Notenkopf liegt. Andernfalls
+werden sie abh"angig vom jeweiligen Wert der Tonh"ohenliste berechnet.
+
+Weitere Listen sind f"ur den einstimmigen Notensatz nicht erforderlich.
+%
+
+\subsubsubheading{Die Initialisierung der Listen}
+
+Durch das Makro |\group| werden alle Listen, die nicht vorgegeben sind,
+initialisiert.\par
+Dies geschieht, indem die Nachbarschaftsliste (|\elementlist|) einmal
+abgearbeitet, jedoch noch nicht gesetzt, sondern zun"achst
+in einer Box akkumuliert wird.
+Weiterhin wird das Z"ahler-Register |\N| mit der Anzahl
+der Listenelemente der |\elementlist| belegt.
+
+\subsubsubheading{Das Setzen der Nachbarschaft}
+Nachdem die Nachbarschaftsliste durch die Informationen "uber die zu
+setzenden Balken und Bogen, Aufpunkt, L"ange und Steigung, erweitert
+wurde, mu\3 sie ein zweites Mal abgearbeitet werden.
+Dabei mu\3 ber"ucksichtigt werden, da\3
+der variable Glue der vorangegangenen Note vor der Nachbarschaft gesetzt
+wird, um einen besseren Zeilenausschlu\3 zu erm"oglichen. Der
+Glue innerhalb der Nachbarschaft mu\3 auf den nat"urlichen Abstand
+fixiert werden, da die L"angen der Balken und Bogen nicht mehr ver"andert
+werden k"onnen.
+F"ur die Notenhalsl"ange wird im Falle, da\3 die Note verbalkt wird,
+der Wert der |\stemlist| gew"ahlt; andernfalls wird sie anhand
+ der Funktion f"ur die Notenhalsl"ange neu berechnet.
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdocabst.tex b/macros/mtex/documentation/mdocabst.tex
new file mode 100644
index 0000000000..9b351afc34
--- /dev/null
+++ b/macros/mtex/documentation/mdocabst.tex
@@ -0,0 +1,73 @@
+\indent\null\par\vskip3cm
+
+Bis heute sind alle Versuche,
+Musiknotensatz maschinell auszuf"uhren,
+erfolglos geblieben.
+Die Notenbl"atter werden immer noch im Handsatz hergestellt.
+Ein neuer Zugang, den
+Notensatz zu automatisieren, er"offnete sich mit der Einf"uhrung
+leistungsf"ahiger Computer mit qualitativ hochwertigen Graphiksystemen.
+Die dazu entwickelten Notensatzprogramme orientierten sich an
+bestehenden Graphikprogrammen (s. L. Smith (1973)\lit\smith, D. Byrd
+(1974)\lit\byrd\ und D. Gomberg (1978)\lit\gomb).
+Die vorliegende
+Arbeit ist eine "uberarbeitete Zusammenfassung der beiden
+Diplomarbeiten
+``Automatisierter Notensatz mit \TeX'' (\lit\Steinb, \lit\Schofer)
+Es wird gezeigt, wie
+das Textsatzsystem \TeX\ so erweitert werden kann, da\3
+eine automatisierte Ausgabe von Notenschrift m"oglich ist.
+Dazu wird im ersten Teil ``Ein Verfahren zur Notenschrifteingabe''
+eine an der konventionellen Notenschrift orientierte
+Eingabesprache entworfen
+und ein "Ubersetzungsprogramm entwickelt, das die mit ihrer Hilfe
+codierten Musikst"ucke
+in von \TeX\ verarbeitbare Kontrollsequenzen "ubertr"agt.
+Im zweiten Teil ``Verfahren zur Notenschriftausgabe''
+werden sowohl
+die umfangreichen, in der Literatur oft
+unvollst"andig angegebenen Notations- und Satzregeln
+vorgestellt als auch Verfahren zur Umsetzung dieser Regeln
+hergeleitet und entwickelt.
+Das Problem, einstimmigen Notensatz
+in einem (Zeilen-)System mit dem Textsatzsystem zu automatisieren, wurde
+benutzerfreundlich und vom Ausgabeger"at unabh"angig gel"ost.
+
+Die erforderlichen Makros und die Programme
+der entwickelten Zeichens"atze wurden nicht in diese
+Arbeit aufgenommen.
+Sie k"onnen auf diversen \TeX-Fileservern gefunden werden,
+z.B. bei `LISTSERV at DHDURZ1.BITNET'.
+
+\vfill
+Previous attempts at printing music mechanically
+have been unsuccessful.
+Even today, music is printed manually.
+A new approach to
+automating music printing was made possible
+with the introduction of powerful
+computers with high-quality graphic systems. The earliest programs
+developed
+for music printing oriented themselves towards existing graphics
+programs (see L. Smith (1973)
+\lit\smith, D. Byrd (1974) \lit\byrd, D. Gomberg (1978)\lit\gomb). The
+present paper is a revised version of the two theses
+``Automatisierter Notensatz mit \TeX''.
+It is shown that the typsetting
+system \TeX\ can be extended for automatic music printing. The first
+part ``Ein Verfahren f"ur Notenschrifteingabe''
+is the design of an input language which is based upon conventional
+musical notation, and the development of a translation program that
+transforms the coded pieces into control sequences which are
+understood by \TeX. In the second part ``Verfahren zur
+Notenschriftausgabe'' both extensive notation and setting rules and
+methods to realize these rules are developed.
+The task of automatting single-staff notation has been solved
+in a user friendly way and is device independent.
+
+Macro listings and program listings of the
+music fonts are not included in this paper.
+They can be found on several \TeX-fileservers,
+e.g. at `LISTSERV at DHDURZ1.BITNET'.
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdocams.tex b/macros/mtex/documentation/mdocams.tex
new file mode 100644
index 0000000000..572937adb4
--- /dev/null
+++ b/macros/mtex/documentation/mdocams.tex
@@ -0,0 +1,261 @@
+%------------------------------------------------------------------
+% parts from AMSTeX Version 0.999999 (C) AMS 1983
+%
+\catcode`\@=11
+
+\def\@{\char'100 }
+\catcode`\~=13
+\def\{{\relax@AmS\ifmmode\delimiter\dq4266308
+ \else$\delimiter\dq4266308$\fi}
+\def\}{\relax@AmS\ifmmode\delimiter\dq5267309
+ \else$\delimiter\dq5267309 $\fi}
+
+\def\tex{\TeX}
+
+%
+
+% STYLE, SPACING AND ALTERNATE NAMES
+
+\let\dsize=\displaystyle
+\let\tsize=\textstyle
+\let\ssize=\scriptstyle
+\let\sssize=\scriptscriptstyle
+
+\def\quad{\relax@AmS\ifmmode
+ \hbox{\hskip1em}\else\hskip1em\relax@AmS\fi} % NOTE 20
+\def\qquad{\quad\quad}
+\def\,{\relax@AmS\ifmmode\mskip\thinmuskip\else$\mskip\thinmuskip$\fi}
+\def\;{\relax@AmS
+ \ifmmode\mskip\thickmuskip\else$\mskip\thickmuskip$\fi}
+\def\parsep{\par\penalty -50\vskip 3pt plus 3pt minus 3pt}
+\def\Parsep{\par\penalty -100\vskip 6pt plus 3pt minus 4pt}
+\def\frac#1#2{{#1\over#2}}
+\def\Frac#1#2{{\displaystyle{#1\over#2}}}
+\def\text#1{\hbox{\rm#1}}
+%
+% SOME BASIC CONTROL SEQUENCES USED IN OTHER DEFINITIONS
+%
+\def\eat@AmS#1{}
+\long\def\comp@AmS#1#2{\def\@AmS{#1}\def\@@AmS{#2}\ifx
+ \@AmS\@@AmS\def\cresult@AmS{T}\else\def\cresult@AmS{F}\fi}
+\def\in@AmS#1#2{\def\intest@AmS##1#1##2{\comp@AmS##2\end@AmS\if T\cresult@AmS
+ \def\cresult@AmS{F}\def\in@@AmS{}\else
+ \def\cresult@AmS{T}\def\in@@AmS####1\end@AmS{}\fi\in@@AmS}%
+ \def\cresult@AmS{F}\intest@AmS#2#1\end@AmS}
+%
+% ALIGNED UNITS
+%
+\let\relax@AmS=\relax
+\def\Let@AmS{\relax@AmS\iffalse{\fi\let\\=\cr\iffalse}\fi}
+\def\align{\def\vspace##1{\noalign{\vskip ##1}}
+ \,\vcenter\bgroup\Let@AmS\tabskip=0pt\openup3pt\mathsurround=0pt
+ \halign\bgroup\strut
+ \hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\cr}
+\def\endalign{\strut\crcr\egroup\egroup}
+%
+\def\bunch{\def\vspace##1{\noalign{\vskip ##1}}
+ \,\vcenter\bgroup\Let@AmS\tabskip=0pt\openup3pt\mathsurround=0pt
+ \halign\bgroup\strut\hfil$\displaystyle{##}$\hfil\cr}
+\def\endbunch{\strut\crcr\egroup\egroup}
+%
+\def\cases{\left\{ \,\vcenter\bgroup\Let@AmS\normalbaselines\tabskip=0pt
+ \halign\bgroup$##\hfil$&\qquad$##\hfil$\cr}
+\def\endcases{\crcr\egroup\egroup\right.}
+%
+\def\matrix{\catcode`\^^I=4 \futurelet\tok@AmS\matrix@AmS}
+\def\matrix@AmS{\relax@AmS\iffalse{\fi \ifnum`}=0\fi\ifx\tok@AmS\format
+ \def\next@AmS{\expandafter\matrix@@AmS\eat@AmS}\else
+ \def\next@AmS{\matrix@@@AmS}\fi\next@AmS}
+\def\matrix@@@AmS{
+ \ifnum`{=0\fi\iffalse}\fi\,\vcenter\bgroup\Let@AmS\tabskip=0pt
+ \normalbaselines\halign\bgroup $\strut\hfil##\hfil$&&\quad$\strut
+ \hfil##\hfil$\cr\strut\cr\noalign{\kern-\baselineskip}}
+\def\matrix@@AmS#1\\{
+ \def\premable@AmS{#1}\toks@{##}
+ \def\c{$\copy\strutbox\hfil\the\toks@\hfil$}\def\r
+ {$\copy\strutbox\hfil\the\toks@$}%
+ \def\l{$\copy\strutbox\the\toks@\hfil$}%
+ \setbox0=
+ \hbox{\xdef\Preamble@AmS{\premable@AmS}}
+ \def\vspace##1{\noalign{\vskip ##1}}\ifnum`{=0\fi\iffalse}\fi
+ \,\vcenter\bgroup\Let@AmS
+ \tabskip=0pt\normalbaselines\halign\bgroup\span\Preamble@AmS\cr
+ \mathstrut\cr\noalign{\kern-\baselineskip}}
+\def\endmatrix{\crcr\mathstrut\cr\noalign{\kern-\baselineskip
+ }\egroup\egroup\,\catcode`\^^I=10 }
+
+
+
+% STUFF FOR BIBLIOGRAPHY
+
+\def\refto#1{\in@AmS,{#1}\if T\cresult@AmS\refto@AmS#1\end@AmS\else
+ [{\bf#1}]\fi}
+\def\refto@AmS#1,#2\end@AmS{[{\bf#1},#2]}
+
+\def\Refs{\bigbreak\hbox to \hsize{\hfil\tenpoint
+ \smc \Referenceword@AmS\hfil}\penalty 10000
+ \bigskip\eightpoint\sfcode`.=1000 }
+
+\newbox\nobox@AmS \newbox\keybox@AmS \newbox\bybox@AmS
+\newbox\bysamebox@AmS \newbox\paperbox@AmS \newbox\paperinfobox@AmS
+\newbox\jourbox@AmS \newbox\volbox@AmS \newbox\issuebox@AmS
+\newbox\yrbox@AmS \newbox\pagesbox@AmS \newbox\bookbox@AmS
+\newbox\bookinfobox@AmS \newbox\publbox@AmS \newbox\publaddrbox@AmS
+\newbox\finalinfobox@AmS
+
+
+
+\def\refset@AmS#1{\expandafter\gdef\csname is\expandafter\eat@AmS
+ \string#1@AmS\endcsname{F}\expandafter
+ \setbox\csname \expandafter\eat@AmS\string#1box@AmS\endcsname=\null}
+
+\def\ref@AmS{\refset@AmS\no \refset@AmS\key \refset@AmS\by
+\gdef\isbysame@AmS{F}%
+ \refset@AmS\paper
+ \refset@AmS\paperinfo \refset@AmS\jour \refset@AmS\vol
+ \refset@AmS\issue \refset@AmS\yr
+ \gdef\istoappear@AmS{F}%
+ \refset@AmS\pages
+ \gdef\ispage@AmS{F}%
+ \refset@AmS\book
+ \gdef\isinbook@AmS{F}%
+ \refset@AmS\bookinfo \refset@AmS\publ
+ \refset@AmS\publaddr \refset@AmS\finalinfo \bgroup
+ \ignorespaces}
+
+\def\ref{\noindent\hangindent 20pt \hangafter 1 \def\refi@AmS{T}%
+ \def\refl@AmS{F}\def\\{\egroup\endref@AmS\gdef\refi@AmS{F}\ref@AmS}\ref@AmS}
+
+\def\refdef@AmS#1#2{\def#1{\egroup\expandafter
+ \gdef\csname is\expandafter\eat@AmS
+ \string#1@AmS\endcsname{T}\expandafter\setbox
+ \csname \expandafter\eat@AmS\string#1box@AmS\endcsname=\hbox\bgroup#2}}
+
+\refdef@AmS\no{} \refdef@AmS\key{} \refdef@AmS\by{}
+\def\bysame{\egroup\gdef\isbysame@AmS{T}\bgroup}
+\refdef@AmS\paper\it
+\refdef@AmS\paperinfo{} \refdef@AmS\jour{} \refdef@AmS\vol\bf
+\refdef@AmS\issue{} \refdef@AmS\yr{}
+\def\toappear{\egroup\gdef\istoappear@AmS{T}\bgroup}
+\refdef@AmS\pages{}
+\def\page{\egroup\gdef\ispage@AmS{T}\setbox
+ \pagesbox@AmS=\hbox\bgroup}
+\refdef@AmS\book{}
+\def\inbook{\egroup\gdef\isinbook@AmS{T}\setbox
+ \bookbox@AmS=\hbox\bgroup}
+\refdef@AmS\bookinfo{} \refdef@AmS\publ{}
+\refdef@AmS\publaddr{}
+\refdef@AmS\finalinfo{}
+
+
+\def\setpunct@AmS{\def\prepunct@AmS{, }}
+\def\ppunbox@AmS#1{\prepunct@AmS\unhbox#1\unskip}
+
+\def\endref@AmS{\def\prepunct@AmS{}%
+\if T\refi@AmS
+ \if F\isno@AmS\hbox to 10pt{}\else
+ \hbox to 20pt{\hss\unhbox\nobox@AmS\unskip. }\fi
+ \if T\iskey@AmS \unhbox\keybox@AmS\unskip\ \fi
+ \if T\isby@AmS \hbox{\unhcopy\bybox@AmS\unskip}\setpunct@AmS
+ \setbox\bysamebox@AmS=\hbox{\unhcopy\bybox@AmS\unskip}\fi
+ \if T\isbysame@AmS
+ \hbox to \wd\bysamebox@AmS{\leaders\hrule\hfill}\setpunct@AmS\fi
+ \fi
+ \if T\ispaper@AmS\ppunbox@AmS\paperbox@AmS\setpunct@AmS\fi
+ \if T\ispaperinfo@AmS\ppunbox@AmS\paperinfobox@AmS\setpunct@AmS\fi
+ \if T\isjour@AmS\ppunbox@AmS\jourbox@AmS\setpunct@AmS
+ \if T\isvol@AmS \ \unhbox\volbox@AmS\unskip\setpunct@AmS\fi
+ \if T\isissue@AmS \ \unhbox\issuebox@AmS\unskip\setpunct@AmS\fi
+ \if T\isyr@AmS \ (\unhbox\yrbox@AmS\unskip)\setpunct@AmS\fi
+ \if T\istoappear@AmS \ (to appear)\setpunct@AmS\fi
+ \if T\ispages@AmS \ppunbox@AmS\pagesbox@AmS\setpunct@AmS\fi
+ \if T\ispage@AmS
+ \prepunct@AmS p.\ \unhbox\pagesbox@AmS\unskip\setpunct@AmS\fi
+ \fi
+ \if T\isbook@AmS \prepunct@AmS
+ ``\unhbox\bookbox@AmS\unskip''\setpunct@AmS\fi
+ \if T\isinbook@AmS \prepunct@AmS
+ \unskip\ in ``\unhbox\bookbox@AmS\unskip''\setpunct@AmS
+ \gdef\isbook@AmS{T}\fi
+ \if T\isbookinfo@AmS \ppunbox@AmS\bookinfobox@AmS\setpunct@AmS\fi
+ \if T\ispubl@AmS \ppunbox@AmS\publbox@AmS\setpunct@AmS\fi
+ \if T\ispubladdr@AmS \ppunbox@AmS\publaddrbox@AmS\setpunct@AmS\fi
+ \if T\isbook@AmS
+ \if T\isyr@AmS \prepunct@AmS \unhbox\yrbox@AmS\unskip
+ \setpunct@AmS\fi
+ \if T\istoappear@AmS \ (to appear)\setpunct@AmS\fi
+ \if T\ispages@AmS
+ \prepunct@AmS pp.\ \unhbox\pagesbox@AmS\unskip\setpunct@AmS\fi
+ \if T\ispage@AmS
+ \prepunct@AmS p.\ \unhbox\pagesbox@AmS\unskip\setpunct@AmS\fi
+ \fi
+ \if T\isfinalinfo@AmS \period\unhbox\finalinfobox@AmS\else
+ \if T\refl@AmS .\else ; \fi\fi}
+
+\def\endref{\egroup\gdef\refl@AmS{T}\endref@AmS\par}
+
+
+
+
+% EXTRA FONTS NEEDED
+
+
+\font\eightrm=cmr8
+\font\sixrm=cmr7 %cmr6 % fonts not on Atari
+\font\eighti=cmmi10 %cmmi8 \skewchar\eighti='177
+\font\sixi=cmmi7 %cmmi6 \skewchar\sixi='177
+\font\eightsy=cmsy10 %cmsy8 \skewchar\eightsy='60
+\font\sixsy=cmsy7 %cmsy6 \skewchar\sixsy='60
+\font\eightbf=cmbx10 %cmbx8
+\font\sixbf=cmbx7 %cmbx6
+\font\eightsl=cmsl10 %cmsl8
+\font\eightit=cmsl10 %cmti8
+\font\tensmc=cmcsc10
+
+
+% TWO DIFFERENT POINT SIZES
+
+\def\tenpoint{\def\pointsize@AmS{t}\normalbaselineskip=12pt % NOTE 1
+ \abovedisplayskip 12pt plus 3pt minus 9pt
+ \belowdisplayskip 12pt plus 3pt minus 9pt
+ \abovedisplayshortskip 0pt plus 3pt
+ \belowdisplayshortskip 7pt plus 3pt minus 4pt
+ \def\rm{\fam0\tenrm}%
+ \def\it{\fam\itfam\tenit}%
+ \def\sl{\fam\slfam\tensl}%
+ \def\bf{\fam\bffam\tenbf}%
+ \def\smc{\tensmc}%
+ \def\mit{\fam 1}%
+ \def\cal{\fam 2}%
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\tenit
+ \textfont\slfam=\tensl
+ \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+\normalbaselines\rm}
+
+\def\eightpoint{\def\pointsize@AmS{8}\normalbaselineskip=10pt
+ \abovedisplayskip 10pt plus 2.4pt minus 7.2pt
+ \belowdisplayskip 10pt plus 2.4pt minus 7.2pt
+ \abovedisplayshortskip 0pt plus 2.4pt
+ \belowdisplayshortskip 5.6pt plus 2.4pt minus 3.2pt
+ \def\rm{\fam0\eightrm}%
+ \def\it{\fam\itfam\eightit}%
+ \def\sl{\fam\slfam\eightsl}%
+ \def\bf{\fam\bffam\eightbf}%
+ \def\mit{\fam 1}%
+ \def\cal{\fam 2}%
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\eightit
+ \textfont\slfam=\eightsl
+ \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+\normalbaselines\rm}
+
+\catcode`\@=12
diff --git a/macros/mtex/documentation/mdocanha.tex b/macros/mtex/documentation/mdocanha.tex
new file mode 100644
index 0000000000..4a238aa13e
--- /dev/null
+++ b/macros/mtex/documentation/mdocanha.tex
@@ -0,0 +1,670 @@
+\def\ks#1{\noindent\hbox{{\tt \char\hex5C}\bf#1}}
+\def\bs{\noindent\hbox{{\tt \char\hex5C}}}%Backslash
+\def\lk{\hbox{{\tt\char\hex7B}}}%linke Klammer auf
+\def\strich{{\hbox{\tt \char\hex7C}}}
+\def\dpkt{{\hbox{\tt \char\hex3A}}}%Doppelpunkt
+\def\gleich{{\hbox{\tt \char\hex3D}}}%
+\def\slash{\noindent{\hbox{\tt \char\hex2F}}}
+\def\blank{{\hbox{\tt \char\hex20}}}
+%
+\verbatimon
+\normalbaselines
+\openup\jot
+\heading{Anhang A:\quad Beispiele}
+
+Abschlie\3end sollen vier Musikst"ucke angef"ugt werden,
+die mit dem entwickelten Format gesetzt wurden.
+Sie sollen zus"atzlich zu den im Text angegebenen Beispielen die
+vorgestellten Verfahren verdeutlichen.
+Zum Vergleich ist die Codierung des ersten, dritten und vierten Beispiels
+hinzugef"ugt.
+
+Das erste Beispiel wurde von D. Byrd \lit{\byrd} in der
+Beschreibung als Test
+seines Notensatzsystems verwendet.
+%
+Mit dem ersten und zweiten Beispiel sollen die verschiedenen
+im Format zur Verf"ugung gestellten Auschlu\3schemata
+(|\hsmall|, |\small|, |\universal|, |\wide| und
+|\loose|) verdeutlicht
+werden.
+Als drittes Beispiel wurde ein zweistimmiges St"uck ausgew"ahlt.
+Das vierte ist ein Beispiel f"ur ein Musikst"uck, das mit Text unterlegt
+wurde.
+
+Beim Satz der Beispiele
+zeigte sich, da\3 es notwendig ist, das Ausschlu\3schema abh"angig
+vom Charakter des Musikst"uckes und von der gew"unschten Zeilenl"ange
+auszuw"ahlen.
+Die schon in Kapitel 9 angedeutete Problematik, da\3
+innerhalb gr"o\3erer Nachbarschaften nicht umbrochen werden kann und
+der Ausschlu\3 an dieser Stelle nicht mehr variabel ist, wird am
+Beispiel von D. Byrd deutlich. Bei der gew"ahlten Zeilenl"ange
+und dem Ausschlu\3 |\small| steht f"ur die letzte Zeile nicht gen"ugend
+Satzmaterial zur Verf"ugung. Sie wird also nicht
+zufriedenstellend ausgeschlossen.
+W"ahlt man als Ausschlu\3 |\wide|, so wird das
+St"uck weiter ausgeschlossen und die dritte Zeile kann gef"ullt werden.
+Dabei wurde es jedoch notwendig, einen Takt in der Taktmitte zu teilen.
+
+Umgekehrt konnten f"ur das zweite Beispiel mit engem und
+universellem Ausschlu\3
+(|\hsmall| und |\universal|)
+gute Ergebnisse, jedoch beim lockeren Ausschlu\3
+(|\loose|) kein zufriedenstellendes Ergebnis erzielt werden.
+Dies ist u.a. auch darauf zur"uckzuf"uhren, da\3 beim lockeren Ausschlu\3
+die Takte sehr breit werden. Die Forderung, da\3 nur nach einem
+Taktstrich umbrochen werden darf, f"uhrt hier zus"atzlich noch
+zu einer "ubervollen Zeile.
+
+F"ur das dritte und vierte
+Beipiel wurde jeweils der universelle Ausschu\3 verwendet.
+\vskip2cm
+\vfill\supereject
+
+%fuer die Beispiele \headings wieder zulassen!
+
+\catcode`@=11
+\def\headings{\par\hbox to \hsize{\hss\title@\hss}%
+ \hbox to \hsize {\poet@\hss\comp@}%
+ \def\comp@{\hbox{}}\def\poet@{\hbox{}}\def\title@{\hbox{}}}
+\catcode`@ = 12
+
+
+{\bf Beispiel 1 \rm (Ausschlu\3: Gomberg ``eng''(\verbatimon
+|\small|) und ``weit'' (|\wide|))\Parsep
+}
+\vskip1cm
+\let \baselines = \baselinesb
+\parindent 40pt
+\small
+\title{\bf String Quartett}%
+\composer{ Donald Byrd, 1968}%
+\voice{Violin 1}%
+\beginsong\vio\C\^n{moderato}{\vrule height 7\nhh width0pt \gluebrule}%
+\meter9/8%
+\pg\|%
+\group{\\{\_v{\mezzopiano}{\v3\.1}}\\{\_v{{\it cant.}}{\h7\.1}}}
+{\\{3}\\{7}}\uslur13\go\|%
+\group{\\{\a8\.1}\\{\b4\a4\.1}\\{\b6\v6\.1}}
+{\\{8}\\{4}\\{6}}\lbeam12\uslur13\go
+\group{\\{\a3}\\{\a4}\\{\a5}}{\\{3}\\{4}\\{5}}\lbeam13\uslur13\go\|%
+\group{\\{\n6\v6\.1}\\{\x4\v4\.1}}{\\{6}\\{4}}\uslur12\go
+\group{\\{\a3}\\{\b4\a4}\\{\n5\a5}}{\\{3}\\{4}\\{5}}\lbeam13\uslur13\go
+\|\meter6/8\v6\.1\group{\\{\v{10}\.1}\\{\|\meter9/8}%
+\\{\_v{\crescendo}{\v{10}\.1}}}{\\{10}\\{8}\\{10}}\uslur13\go
+\group{\\{\v9\.1}\\{\v{13}\.1}}{\\{9}\\{13}}\uslur12\go\|%
+\group{\\{\b{14}\a{14}\.1}\\{\b{11}\a{11}\.1}}{\\{14}\\{11}}%
+\lbeam12\uslur12\go
+\group{\\{\v{15}\.1}\\{\a{15}}}{\\{15}\\{15}}\uslur12\go
+\n{14}\v{14}\|%
+\group{\\{\_v{\diminuendo}{\b{14}\v{14}\.1}}%
+\\{\b{10}\v{10}\.1}\\{\v{12}\.1}}{\\{14}\\{10}\\{12}}\uslur13\go\|%
+{\tenuto\v{11}\.1}%
+\group{\\{\h7\.1}\\{\|\meter6/8}\\{\h7\.1}\\{\|}\\{\v7\.1}}
+{\\{7}\\{8}\\{7}\\{8}\\{7}}\uslur13\uslur35\go
+\group{\\{\_v{\piano}{\b7\v7\.1}}\\{\|\meter9/8}%
+\\{\v{10}\.1}}{\\{7}\\{8}\\{10}}\uslur13\go
+\pv\.1\|\pg\|\meter6/8%
+\group{\\{\_v{\crescendo}{\a8}}\\{\b{11}\a{11}}\\{\a{13}}}
+{\\{8}\\{11}\\{13}}\lbeam13\uslur13\go
+\x{12}\v{12}\.1\|%
+{\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\s{10}}\\{\b{11}\s{11}}\\{\n{12}\s{12}}\\{\s{13}}}
+{\\{10}\\{11}\\{12}\\{13}}\lbeam14\uslur14\go}%
+{\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\x{13}\s{13}}\\{\s{14}}\\{\x{15}\s{15}}\\{\x{16}\s{16}}}
+{\\{13}\\{14}\\{15}\\{16}}\lbeam14\uslur14\go}%
+\|\_v{{\it f}}{\a{17}}\pa\pa\pv\.1\=\endsong
+\par
+\Parsep\Parsep
+\parindent 0pt
+Die Eingabe zu diesem St"uck sieht wie folgt aus:
+\vskip1cm
+%%%%%%%%%%%%%
+%%% byrd%%%
+%%%%%%%%%%%%%
+{\bf!!}
+\ks{title}\{String Quartett\}
+\ks{composer}\{Donald Byrd, 1968\}\ks{voice}\{Violin 1\}\par
+{\ks{treble}}\ks{text}\{\ks{\os{ }c} moderato\}
+\ks{meter}\{{\bf9}\slash{\bf8}\}\par
+{\bf 1p\strich\ks{slur}\{4.`a\{\ks{\us v}\ks{mezzopiano}\}
+2.{`}{`}e\ks{text}\{\ks{\us v} cant\}\}}\strich \par
+{\ks{slur}}{\bf \{\ks{beam}\{8.{`}{`}f b.`h\} b4{`}{`}.d\}}
+\ks{slur}{\bf \{\ks{beam}\{8`a h {`}{`}c\}\}}\strich\par
+{\bf{\ks{slur}}\{4n.d x`.h\}\ks{slur}\{\ks{beam}\{8`a bh n{`}{`}c\}\}}
+\strich\par
+{\bf{\ks{meter}}\{6\slash8\} 4.d
+\ks{slur}\{{`}{`}.a\strich \ks{meter}\{9/8\}
+{`}{`}.a\{\ks{\us v}\ks{crescendo}\}\}
+\ks{slur}\{.f {`}{`}{`}.d\}}\strich\par
+{\bf{\ks{slur}}\{\ks{beam}\{8.be b{`}{`}.h\}\}
+\ks{slur}\{4{`}{`}{`}.f 8f\}
+4ne}\strich\par
+{\bf{\ks{slur}}\{b.e\{\ks{\us v}\ks{diminuendo}\}
+b.{`}{`}a .{`}{`}{`}c\}}\strich\par
+{\ks{tenuto}\bf.{`}{`}h \ks{noaccent} \ks{group}
+\{2.e \strich\ks{meter}\{6\slash 8\} .e\strich 4.e\}\par
+\ks{glsur}\{1-4,4-6\}\ks{slur}\{b.e\{\ks{\us v}\ks{piano}\}
+\strich\ks{meter}\{9\slash 8\} .a\}
+4.p}\strich\par
+{\bf
+1p\strich \ks{meter}\{6\slash 8\}\ks{slur}
+\{\ks{beam}\{8f\{\ks{\us v}\ks{crescendo}\}bh {`}{`}{`}d\}\}
+4x .c}\strich\par
+{\bf{\ks{slur}}\{\ks{beam}\{{`}{`}6a bh n{`}{`}{`}c d\}\}
+\ks{slur}\{\ks{beam}\{6xd e xf xg\}\}}\strich\par
+{\bf 8a\{\ks{\us v}\ks{forte}\} p p 4.p \gleich !!}\Parsep\Parsep
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vfill\break
+Verwendet man weiten Ausschlu\3 (|\wide|), so erh"alt man:
+\vskip1cm
+\parindent=40pt
+{\wide
+\title{\bf String Quartett}%
+\composer{Donald Byrd, 1968}%
+\voice{Violin 1}%
+\beginsong\vio\C\^n{moderato}{\vrule height7\nhh width0pt\gluebrule}%
+\meter9/8%
+\pg\|%
+\group{\\{\_v{\mezzopiano}{\v3\.1}}\\{\_v{{\it cant.}}{\h7\.1}}}
+{\\{3}\\{7}}\uslur13\go\|%
+\group{\\{\a8\.1}\\{\b4\a4\.1}\\{\b6\v6\.1}}
+{\\{8}\\{4}\\{6}}\lbeam12\uslur13\go
+\group{\\{\a3}\\{\a4}\\{\a5}}{\\{3}\\{4}\\{5}}\lbeam13\uslur13\go\|%
+\group{\\{\n6\v6\.1}\\{\x4\v4\.1}}{\\{6}\\{4}}\uslur12\go
+\group{\\{\a3}\\{\b4\a4}\\{\n5\a5}}{\\{3}\\{4}\\{5}}\lbeam13\uslur13\go
+\|\meter6/8\v6\.1\group{\\{\v{10}\.1}\\{\|\meter9/8}%
+\\{\_v{\crescendo}{\v{10}\.1}}}{\\{10}\\{8}\\{10}}\uslur13\go
+\group{\\{\v9\.1}\\{\v{13}\.1}}{\\{9}\\{13}}\uslur12\go\|%
+\group{\\{\b{14}\a{14}\.1}\\{\b{11}\a{11}\.1}}{\\{14}\\{11}}%
+\lbeam12\uslur12\go
+\group{\\{\v{15}\.1}\\{\a{15}}}{\\{15}\\{15}}\uslur12\go
+\n{14}\v{14}\|%
+\group{\\{\_v{\diminuendo}{\b{14}\v{14}\.1}}%
+\\{\b{10}\v{10}\.1}\\{\v{12}\.1}}{\\{14}\\{10}\\{12}}\uslur13\go\|%
+{\tenuto\v{11}\.1}%
+\group{\\{\h7\.1}\\{\|\meter6/8}\\{\h7\.1}\\{\|}\\{\v7\.1}}
+{\\{7}\\{8}\\{7}\\{8}\\{7}}\uslur13\uslur35\go\+%
+\group{\\{\_v{\piano}{\b7\v7\.1}}\\{\|\meter9/8}%
+\\{\v{10}\.1}}{\\{7}\\{8}\\{10}}\uslur13\go
+\pv\.1\|\pg\|\meter6/8%
+\group{\\{\_v{\crescendo}{\a8}}\\{\b{11}\a{11}}\\{\a{13}}}
+{\\{8}\\{11}\\{13}}\lbeam13\uslur13\go
+\x{12}\v{12}\.1\|%
+{\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\s{10}}\\{\b{11}\s{11}}\\{\n{12}\s{12}}\\{\s{13}}}
+{\\{10}\\{11}\\{12}\\{13}}\lbeam14\uslur14\go}%
+{\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\x{13}\s{13}}\\{\s{14}}\\{\x{15}\s{15}}\\{\x{16}\s{16}}}
+{\\{13}\\{14}\\{15}\\{16}}\lbeam14\uslur14\go}%
+\|\_v{{\it f}}{\a{17}}\pa\pa\pv\.1\=\endsong}
+\par
+\vfill \eject
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parindent0pt
+{\bf Beispiel 2 \rm (Ausschlu\3: Hader (\verbatimon
+|\hsmall|), Gomberg ``universell'' (|\universal|)) und
+ Gomberg ``locker'' (|\loose|)).}
+\vskip2cm
+\verbatimon
+\hbox to \hsize{\hfill\bf Ausschlu\3: Hader (|\hsmall|)\hfill}
+\Parsep
+\hsmall\parindent0pt
+\poet{\rm Allegro}\composer{Georg Friedrich H\"andel}
+\beginsong\vio\C%
+{\music\mC}%\meter4/4%
+\a7\|\group{\\{\a5}\\{\a3}\\{\a5}\\{\a7}}{\\{5}\\{3}\\{5}\\{7}}%
+\lbeam14\go%\uslur14\go
+\group{\\{\a5}\\{\a{3}}}{\\{5}\\{3}}\lbeam12\go
+\pa\a7\|%
+\group{\\{\a5}\\{\a3}\\{\a5}\\{\a7}}{\\{5}\\{3}\\{5}\\{7}}\lbeam14\go
+\group{\\{\a5}\\{\a{3}}}{\\{5}\\{3}}\lbeam12\go\pa\a7\|%
+\group{\\{\a{10}}\\{\a3}\\{\a6}\\{\a8}}{\\{10}\\{3}\\{6}\\{8}}\lbeam14%
+\go\v4\pa\a6\|%
+\group{\\{\a{9}}\\{\a2}\\{\a5}\\{\a7}}{\\{9}\\{2}\\{5}\\{7}}%
+\lbeam14\go\v3\pa\a5\|%
+\group{\\{\a{8}}\\{\a6}\\{\a{11}}\\{\a{13}}}{\\{8}\\{6}\\{11}\\{13}}%
+\lbeam14\go\x9\v9\pa\a9\|%
+\group{\\{\a{11}}\\{\a4}\\{\a{6}}\\{\a{4}}}{\\{11}\\{4}\\{6}\\{4}}%
+\lbeam14\go\v8\pa\a4\|%
+\group{\\{\a{6}}\\{\a8}\\{\x9\a{9}}\\{\a{11}}}{\\{6}\\{8}\\{9}\\{11}}%
+\lbeam14\go\v{13}\pa\x9\a9\|%
+\group{\\{\a{10}}\\{\a7}\\{\a{11}}\\{\a7}}{\\{10}\\{7}\\{11}\\{7}}%
+\lbeam14\go
+\group{\\{\a{12}}\\{\a{7}}}{\\{12}\\{7}}\lbeam12\go
+\group{\\{\v8}\\{\|}\\{\a{8}}\\{\a{7}}\\{\a{10}}\\{\a6}%
+\\{\a{6}}\\{\a7}\\{\a{5}}\\{\a4}}
+{\\{8}\\{8}\\{8}\\{7}\\{10}\\{6}\\{6}\\{7}\\{5}\\{4}}%
+\lbeam36\lbeam7{10}\uslur13\uslur67\go\|%
+\def\beamlist{\\{1-4,}\\{-2,-5,}}%
+\group{\\{\a{5}\.1}\\{\s6}\\{\a{4}\.1}\\{\s{3}}}%
+{\\{5}\\{6}\\{4}\\{3}}%
+\lbeam16\go\v3\pa\a{11}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{12}}\\{\s{11}}\\{\s{10}}}{\\{12}\\{11}\\{10}}%
+\lbeam13\go
+\def\beamlist{\\{1-2,}}%
+\group{\\{\a{9}}\\{\a{8}}}{\\{9}\\{8}}%
+\lbeam12\go\v7\pa\a{8}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{9}}\\{\s{10}}\\{\s{9}}}{\\{9}\\{10}\\{9}}%
+\lbeam13\go
+\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\s{8}}\\{\s{7}}\\{\s6}\\{\s5}}{\\{8}\\{7}\\{6}\\{5}}%
+\lbeam14\go\v4\pa\a{2}\|%
+\def\beamlist{\\{1-\the\N,}}%
+\group{\\{\a{5}}\\{\a7}\\{\a9}\\{\b4\a4}}{\\{5}\\{7}\\{9}\\{4}}%
+\lbeam14\go\v3\pa\a3\|%
+\group{\\{\a{6}}\\{\x8\a8}\\{\a{10}}\\{\a5}}{\\{6}\\{8}\\{10}\\{5}}%
+\lbeam14\go\n4\v4\pa\a4\|%
+\group{\\{\a{7}}\\{\x9\a{9}}\\{\a{11}}\\{\a{6}}}{\\{7}\\{9}\\{11}\\{6}}%
+\lbeam14\go\v5\pa\a{12}\|%
+\group{\\{\a{12}}\\{\a{10}}\\{\a{8}}\\{\a{10}}}{\\{12}\\{10}\\{8}\\{10}}%
+\lbeam14\go\v4\pa\a{13}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{11}}\\{\s{10}}\\{\s{9}}}{\\{11}\\{10}\\{9}}%
+\lbeam13\go
+\group{\\{\a{10}}\\{\a{11}}}{\\{10}\\{11}}%
+\def\beamlist{\\{1-2,}}%
+\lbeam12\go\v{12}\pa\a{9}\|%
+\group{\\{\a{12}}\\{\a{9}}}{\\{12}\\{9}}%
+\def\beamlist{\\{1-2,}}%
+\lbeam12\go
+\group{\\{\tr\a{7}\noaccent
+\.1}\\{\z{6}}\\{\z{5}}}{\\{7}\\{6}\\{5}}%
+\def\beamlist{\\{1-3,}\\{2-3,}\\{2-3,}}%
+\lbeam14\go
+\def\beamlist{\\{1-4,}}%
+\group{\\{\a{8}}\\{\a{9}}\\{\a{7}}\\{\a{6}}}{\\{8}\\{9}\\{7}\\{6}}%
+\lbeam14\go\|\v7%
+\def\beamlist{\\{1-2,}\\{-2,}}%
+\group{\\{\a{6}\.1}\\{\s{5}}}{\\{6}\\{5}}%
+\lbeam13\go\v5\.1\=% %
+\endsong
+\Parsep\Parsep
+{\eightrm
+Aus: Helmut M\"onkemeyer, Handleitung f"ur das Spiel der Blockfl\"ote,
+Teil I, Edition Moeck Nr. 2033, Moeck Verlag, Celle.
+}
+\vfill\supereject
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\hbox to \hsize{\hfill\bf Ausschlu\3: Hader (|\universal|)\hfill}
+\universal
+\poet{\rm Allegro}\composer{ Georg Friedrich H\"andel}%
+\beginsong\vio\C%
+{\music\mC}%\meter4/4%
+\a7\|\group{\\{\a5}\\{\a3}\\{\a5}\\{\a7}}{\\{5}\\{3}\\{5}\\{7}}%
+\lbeam14\go%\uslur14\go
+\group{\\{\a5}\\{\a{3}}}{\\{5}\\{3}}\lbeam12\go
+\pa\a7\|%
+\group{\\{\a5}\\{\a3}\\{\a5}\\{\a7}}{\\{5}\\{3}\\{5}\\{7}}\lbeam14\go
+\group{\\{\a5}\\{\a{3}}}{\\{5}\\{3}}\lbeam12\go\pa\a7\|%
+\group{\\{\a{10}}\\{\a3}\\{\a6}\\{\a8}}{\\{10}\\{3}\\{6}\\{8}}\lbeam14%
+\go\v4\pa\a6\|%
+\group{\\{\a{9}}\\{\a2}\\{\a5}\\{\a7}}{\\{9}\\{2}\\{5}\\{7}}%
+\lbeam14\go\v3\pa\a5\|%
+\group{\\{\a{8}}\\{\a6}\\{\a{11}}\\{\a{13}}}{\\{8}\\{6}\\{11}\\{13}}%
+\lbeam14\go\x9\v9\pa\a9\|%
+\group{\\{\a{11}}\\{\a4}\\{\a{6}}\\{\a{4}}}{\\{11}\\{4}\\{6}\\{4}}%
+\lbeam14\go\v8\pa\a4\|%
+\group{\\{\a{6}}\\{\a8}\\{\x9\a{9}}\\{\a{11}}}{\\{6}\\{8}\\{9}\\{11}}%
+\lbeam14\go\v{13}\pa\x9\a9\|%
+\group{\\{\a{10}}\\{\a7}\\{\a{11}}\\{\a7}}{\\{10}\\{7}\\{11}\\{7}}%
+\lbeam14\go
+\group{\\{\a{12}}\\{\a{7}}}{\\{12}\\{7}}\lbeam12\go
+\group{\\{\v8}\\{\|}\\{\a{8}}\\{\a{7}}\\{\a{10}}\\{\a6}%
+\\{\a{6}}\\{\a7}\\{\a{5}}\\{\a4}}
+{\\{8}\\{8}\\{8}\\{7}\\{10}\\{6}\\{6}\\{7}\\{5}\\{4}}%
+\lbeam36\lbeam7{10}\uslur13\uslur67\go\|%
+\def\beamlist{\\{1-4,}\\{-2,-5,}}%
+\group{\\{\a{5}\.1}\\{\s6}\\{\a{4}\.1}\\{\s{3}}}%
+{\\{5}\\{6}\\{4}\\{3}}%
+\lbeam16\go\v3\pa\a{11}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{12}}\\{\s{11}}\\{\s{10}}}{\\{12}\\{11}\\{10}}%
+\lbeam13\go
+\def\beamlist{\\{1-2,}}%
+\group{\\{\a{9}}\\{\a{8}}}{\\{9}\\{8}}%
+\lbeam12\go\v7\pa\a{8}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{9}}\\{\s{10}}\\{\s{9}}}{\\{9}\\{10}\\{9}}%
+\lbeam13\go
+\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\s{8}}\\{\s{7}}\\{\s6}\\{\s5}}{\\{8}\\{7}\\{6}\\{5}}%
+\lbeam14\go\v4\pa\a{2}\|%
+\def\beamlist{\\{1-\the\N,}}%
+\group{\\{\a{5}}\\{\a7}\\{\a9}\\{\b4\a4}}{\\{5}\\{7}\\{9}\\{4}}%
+\lbeam14\go\v3\pa\a3\|%
+\group{\\{\a{6}}\\{\x8\a8}\\{\a{10}}\\{\a5}}{\\{6}\\{8}\\{10}\\{5}}%
+\lbeam14\go\n4\v4\pa\a4\|%
+\group{\\{\a{7}}\\{\x9\a{9}}\\{\a{11}}\\{\a{6}}}{\\{7}\\{9}\\{11}\\{6}}%
+\lbeam14\go\v5\pa\a{12}\|%
+\group{\\{\a{12}}\\{\a{10}}\\{\a{8}}\\{\a{10}}}{\\{12}\\{10}\\{8}\\{10}}%
+\lbeam14\go\v4\pa\a{13}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{11}}\\{\s{10}}\\{\s{9}}}{\\{11}\\{10}\\{9}}%
+\lbeam13\go
+\group{\\{\a{10}}\\{\a{11}}}{\\{10}\\{11}}%
+\def\beamlist{\\{1-2,}}%
+\lbeam12\go\v{12}\pa\a{9}\|%
+\group{\\{\a{12}}\\{\a{9}}}{\\{12}\\{9}}%
+\def\beamlist{\\{1-2,}}%
+\lbeam12\go
+\group{\\{\tr\a{7}\noaccent
+\.1}\\{\z{6}}\\{\z{5}}}{\\{7}\\{6}\\{5}}%
+\def\beamlist{\\{1-3,}\\{2-3,}\\{2-3,}}%
+\lbeam14\go
+\def\beamlist{\\{1-4,}}%
+\group{\\{\a{8}}\\{\a{9}}\\{\a{7}}\\{\a{6}}}{\\{8}\\{9}\\{7}\\{6}}%
+\lbeam14\go\|\v7%
+\def\beamlist{\\{1-2,}\\{-2,}}%
+\group{\\{\a{6}\.1}\\{\s{5}}}{\\{6}\\{5}}%
+\lbeam13\go\v5\.1\=% %
+\endsong
+\Parsep\Parsep\vfill\supereject
+\advance \hsize+0.7cm
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\loose
+\hbox to \hsize{\hfill\bf Ausschlu\3: Hader (|\loose|)\hfill}
+\poet{\rm Allegro}\composer{ Georg Friedrich H\"andel}%
+\beginsong\vio\C%
+{\music\mC}%\meter4/4%
+\a7\|\group{\\{\a5}\\{\a3}\\{\a5}\\{\a7}}{\\{5}\\{3}\\{5}\\{7}}%
+\lbeam14\go%\uslur14\go
+\group{\\{\a5}\\{\a{3}}}{\\{5}\\{3}}\lbeam12\go
+\pa\a7\|%
+\group{\\{\a5}\\{\a3}\\{\a5}\\{\a7}}{\\{5}\\{3}\\{5}\\{7}}\lbeam14\go
+\group{\\{\a5}\\{\a{3}}}{\\{5}\\{3}}\lbeam12\go\pa\a7\|%
+\group{\\{\a{10}}\\{\a3}\\{\a6}\\{\a8}}{\\{10}\\{3}\\{6}\\{8}}\lbeam14%
+\go\v4\pa\a6\|%
+\group{\\{\a{9}}\\{\a2}\\{\a5}\\{\a7}}{\\{9}\\{2}\\{5}\\{7}}%
+\lbeam14\go\v3\pa\a5\|%
+\group{\\{\a{8}}\\{\a6}\\{\a{11}}\\{\a{13}}}{\\{8}\\{6}\\{11}\\{13}}%
+\lbeam14\go\x9\v9\pa\a9\|%
+\group{\\{\a{11}}\\{\a4}\\{\a{6}}\\{\a{4}}}{\\{11}\\{4}\\{6}\\{4}}%
+\lbeam14\go\v8\pa\a4\|%
+\group{\\{\a{6}}\\{\a8}\\{\x9\a{9}}\\{\a{11}}}{\\{6}\\{8}\\{9}\\{11}}%
+\lbeam14\go\v{13}\pa\x9\a9\|%
+\group{\\{\a{10}}\\{\a7}\\{\a{11}}\\{\a7}}{\\{10}\\{7}\\{11}\\{7}}%
+\lbeam14\go
+\group{\\{\a{12}}\\{\a{7}}}{\\{12}\\{7}}\lbeam12\go
+\group{\\{\v8}\\{\|}\\{\a{8}}\\{\a{7}}\\{\a{10}}\\{\a6}%
+\\{\a{6}}\\{\a7}\\{\a{5}}\\{\a4}}
+{\\{8}\\{8}\\{8}\\{7}\\{10}\\{6}\\{6}\\{7}\\{5}\\{4}}%
+\lbeam36\lbeam7{10}\uslur13\uslur67\go\|%
+\def\beamlist{\\{1-4,}\\{-2,-5,}}%
+\group{\\{\a{5}\.1}\\{\s6}\\{\a{4}\.1}\\{\s{3}}}%
+{\\{5}\\{6}\\{4}\\{3}}%
+\lbeam16\go\v3\pa\a{11}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{12}}\\{\s{11}}\\{\s{10}}}{\\{12}\\{11}\\{10}}%
+\lbeam13\go
+\def\beamlist{\\{1-2,}}%
+\group{\\{\a{9}}\\{\a{8}}}{\\{9}\\{8}}%
+\lbeam12\go\v7\pa\a{8}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{9}}\\{\s{10}}\\{\s{9}}}{\\{9}\\{10}\\{9}}%
+\lbeam13\go
+\def\beamlist{\\{1-4,}\\{1-4,}}%
+\group{\\{\s{8}}\\{\s{7}}\\{\s6}\\{\s5}}{\\{8}\\{7}\\{6}\\{5}}%
+\lbeam14\go\v4\pa\a{2}\|%
+\def\beamlist{\\{1-\the\N,}}%
+\group{\\{\a{5}}\\{\a7}\\{\a9}\\{\b4\a4}}{\\{5}\\{7}\\{9}\\{4}}%
+\lbeam14\go\v3\pa\a3\|%
+\group{\\{\a{6}}\\{\x8\a8}\\{\a{10}}\\{\a5}}{\\{6}\\{8}\\{10}\\{5}}%
+\lbeam14\go\n4\v4\pa\a4\|%
+\group{\\{\a{7}}\\{\x9\a{9}}\\{\a{11}}\\{\a{6}}}{\\{7}\\{9}\\{11}\\{6}}%
+\lbeam14\go\v5\pa\a{12}\|%
+\group{\\{\a{12}}\\{\a{10}}\\{\a{8}}\\{\a{10}}}{\\{12}\\{10}\\{8}\\{10}}%
+\lbeam14\go\v4\pa\a{13}\|%
+\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{11}}\\{\s{10}}\\{\s{9}}}{\\{11}\\{10}\\{9}}%
+\lbeam13\go
+\group{\\{\a{10}}\\{\a{11}}}{\\{10}\\{11}}%
+\def\beamlist{\\{1-2,}}%
+\lbeam12\go\v{12}\pa\a{9}\|%
+\group{\\{\a{12}}\\{\a{9}}}{\\{12}\\{9}}%
+\def\beamlist{\\{1-2,}}%
+\lbeam12\go
+\group{\\{\tr\a{7}\noaccent
+\.1}\\{\z{6}}\\{\z{5}}}{\\{7}\\{6}\\{5}}%
+\def\beamlist{\\{1-3,}\\{2-3,}\\{2-3,}}%
+\lbeam14\go
+\def\beamlist{\\{1-4,}}%
+\group{\\{\a{8}}\\{\a{9}}\\{\a{7}}\\{\a{6}}}{\\{8}\\{9}\\{7}\\{6}}%
+\lbeam14\go\|\v7%
+\def\beamlist{\\{1-2,}\\{-2,}}%
+\group{\\{\a{6}\.1}\\{\s{5}}}{\\{6}\\{5}}%
+\lbeam13\go\v5\.1\=% %
+\endsong
+\vfill\supereject
+\advance \hsize-0.4cm
+{\bf Beispiel 3 \rm(zweistimmiger Satz in einem System)}
+\vskip0.5cm
+\universal
+\title{\vbox{\hbox to 0pt{\hss 6 Suiten f"ur Cello Solo\hss}
+ \hbox to 0pt{\hss Suite II Menuet I\hss}}}
+\poet{\vtop{\hbox to 0pt{F"ur Viola "ubertragen \hss}
+ \hbox to 0pt{von Franz Schmidtner\hss}}}
+\composer{Johann Sebastian Bach}
+\parindent 20pt
+\beginsong\alto\F\meter3/4%
+\rchord \h5\h7\h9\endchord\v{10}\|%
+\two{\group{\\{\a{10}}\\{\a9}\\{\a{10}}\\{\a8}}{\\{10}\\{9}\\{10}\\{8}}%
+\ubeam14\uslur12\go}{\rchord \a4\a6\endchord}%
+\v9\|\rchord\v3\v5\endchord\v8%
+\group{\\{\a7}\\{\a6}}{\\{7}\\{6}}\lbeam12\go\|%
+\two{\group{\\{\a7}\\{\a6}\\{\a5}\\{\x4\a4}\\{\n3\a3}\\{\a2}}
+{\\{7}\\{6}\\{5}\\{4}\\{3}\\{2}}\ubeam16\uslur13\go}%
+{\a2}\|\rchord \h5\h7\h9\endchord\v{10}\|%
+\two{\group{\\{\a{10}}\\{\a9}\\{\tenuto\a{10}}\\{\tenuto\a8\noaccent}}
+{\\{10}\\{9}\\{10}\\{8}}\ubeam14\uslur12\go}{\a6}%
+\v{11}\|\rchord\v7\v9\endchord\rchord\v3\v7\v{12}\endchord
+\rchord\v1\v8\v{13}\endchord\|\rchord\h2\.1\h6\.1\x{11}\h{11}\.1\endchord
+\leftrightrepeat
+\rchord\h9\h{13}\endchord
+{\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{12}}\\{\s{13}}\\{\s{14}}}{\\{12}\\{13}\\{14}}\lbeam13%
+\uslur13\go}\|
+\two{\group{\\{\a{13}}\\{\a{12}}\\{\x{11}\a{11}}\\{\a{13}}\\{\a9}\\{\a8}}
+{\\{13}\\{12}\\{11}\\{13}\\{9}\\{8}}\ubeam16\uslur15\go}{\a8}\|%
+\two{\group{\\{\v9}\\{\v{12}}}{\\{9}\\{12}}\uslur12\go}{\h7}%
+\x{11}\two{\v{11}}{\v6}\|%
+\two{\group{\\{\a{15}}\\{\a{14}}\\{\a{13}}\\{\a{14}}\\{\a{12}}%
+\\{\n{11}\a{11}}}
+{\\{15}\\{14}\\{13}\\{14}\\{12}\\{11}}\ubeam16\uslur15\go}{\a5}\|%
+\two{\h{10}}{\group{\\{\v8}\\{\v7}}{\\{8}\\{7}}\lslur12\go}%
+\two{\v{11}}{\v6}\|%
+\two{\group{\\{\a9}\\{\a8}\\{\a9}\\{\a7}}{\\{9}\\{8}\\{9}\\{7}}\ubeam14%
+\go}{\a7}%
+\rchord\v{12}\v6\v3\endchord\|\rchord\v{11}\v7\v2\endchord
+\group{\\{\a{10}}\\{\a9}\\{\a8}\\{\a9}}{\\{10}\\{9}\\{8}\\{9}}\lbeam14\go
+\|\group{\\{\a7}\\{\a6}\\{\a7}\\{\a9}\\{\a8}\\{\a{10}}}
+{\\{7}\\{6}\\{7}\\{9}\\{8}\\{10}}\lbeam16\go\|%
+\x7\two{\tr\h9\noaccent}{\h7}%
+\two{\v{10}}{\pv}\|\b6%
+\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a6}%
+\x7\tr\v7\noaccent\|\rchord\v{12}\v8\v3\endchord\rchord\v{11}\v8\v4\endchord
+\two{\group{\\{\a{10}}\\{\a9}}{\\{10}\\{9}}\ubeam12\uslur12\go}{\v5}\|%
+\group{\\{\rchord\a{11}\a5\a1\endchord
+}\\{\a{10}}\\{\a9}\\{\a{10}}\\{\a8}\\{\a{10}}}
+{\\{1}\\{10}\\{9}\\{10}\\{8}\\{10}}\lbeam16\go\|%
+\two{\group{\\{\v{12}}\\{\x{11}\v{11}}}
+{\\{12}\\{11}}\uslur12\go}{\v8\pv}\n7%
+\two{\v{12}}{\v7}\|\x4%
+\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a4}%
+\two{\v7}{\v5}\|%
+\group{\\{\a1}\\{\a8}}{\\{1}\\{8}}\lbeam12\go\two{\tr\v6\.1}{\v2\.1}%
+\two{\a5}{\raise-1.5\nhh\hbox{\pa}}\|\lchord\h5\.1\h2\.1\h{-2}\.1\endchord
+\rightrepeat
+\endsong
+\parindent0pt
+\vskip-1cm
+{\eightrm
+Aus: Johann Sebastian Bach, Sechs Suiten, f"ur Viola bearbeitet von
+Franz Schmidtner, Musikverlag Hans Sikorski, Hamburg.
+}
+\vskip0.5cm
+F"ur dieses Musikst"uck lautet die Eingabe:
+\vskip0.5cm
+%%%%%%%%%%%%%%%%%%
+%%%%% bach %%%%%%%
+%%%%%%%%%%%%%%%%%%
+{\bf !!}
+\ks{title}\{6 Suiten f"ur Cello Solo
+\bs{atop} Suite II Menuet I\}\par
+\ks{composer}\{Johann Sebastian Bach\}
+\ks{poet}\{F"ur Viola "ubertragen \bs{atop} von Franz Schmidtner\}\par
+\ks{alto}\ks{F}\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{two}
+\par{\bf \{\ \ \ \ks{chord}\{2`d f a\} 4h\strich
+\ks{chord}\{'8c `e\}\slash\ \slash\ \slash\ 4a\strich
+\par
+\ks{chord}\{4,h `d\} g\ks{beam}\{8f e\}\strich
+,8a \slash\ \slash\ \slash\ \slash\ \slash\ \strich
+\ks{chord}\{`2d f a\} 4h\strich 8e
+\slash\ \slash\ \slash\
+{`}{`}4c \strich\par
+\ks{chord}\{4`f a\}\ks{chord}\{,h `f {`}{`}d\}
+\ks{chord}\{,g `g {`}{`}e\}\strich
+\par\ks{chord}\{2.,a .`e .x{`}{`}c\}
+\dpkt\strich\strich\dpkt
+\par\ks{chord}\{2`a {`}{`}e\}\ks{slur}\{\ks{beam}\{8d 6e f\}\}\strich
+8`g\slash\ \slash\ \slash\ \slash\ \slash\ \strich
+2f \slash\ 4e\strich 8d \slash\ \slash\ \slash\ \slash\ \slash\strich
+\ks{slur}\{4g f\}e\strich\par
+ 8f\slash\ \slash\ \slash\
+\ks{chord}\{4,h `e {`}{`}d\}\strich\ks{chord}\{4,a `f {`}{`}c\}
+\ks{beam}\{8`h a g a\}\strich\par \ks{beam}\{8f e f a g h\}\strich
+2xf 4p \strich b8e \slash\ \slash\ \slash\
+4xf \ks{tr}\strich\ks{chord}\{4,h `g {`}{`}d\}
+\ks{chord}\{4`c g {`}{`}c\} `d\slash\ \strich
+\par\ks{beam}\{\ks{chord}\{,8g `d {`}{`}c\} 8`h a h g h\}\strich
+4g p nf\strich 8xc \slash\ \slash\ \slash\ 4d\strich
+\par\ks{beam}\{8,g `g\} 4.,a 8p\strich \ \slash\
+\dpkt\strich\strich\ \ \}\par
+\{\ \ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}h a\} h g\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{'8f e d\}xc ,nh a\}\strich
+\slash\ \slash\ \strich\par\ks{beam}\{\ks{slur}\{8h a\}\ks{tenuto} h
+f \ks{noaccent}\ \slash\ \}\strich
+\slash\ \slash\ \slash\ \strich
+\slash\ \dpkt\strich\strich\dpkt\par
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}{`}e d xc e `a\}g\}\strich
+\ks{slur}\{`4a {`}{`}d\}xc\strich
+\ks{beam}\{\ks{slur}\{8{`}{`}g f e f d \}nc\}\strich\par
+`2h\slash\ {`}{`}4c\strich \ks{beam}\{8`a g a f\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \slash\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\strich\par
+2`a \ks{tr} 4h\strich
+\ks{beam}\{\ks{slur}\{8g f\} g e\}\slash\strich
+\slash\ \slash\ \ks{beam}\{\ks{slur}\{8h a\}\}\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\ \strich\par
+\ks{slur}\{{`}{`}4d `a\} {`}{`}d\strich
+\ks{beam}\{\ks{slur}\{8`g f\} g e\} 4f\strich
+\slash\ \slash\ 4.e \ks{tr} 8d\strich
+\ks{chord}\{2.,d .a `.d\}
+ \dpkt\strich\strich
+\ \ \} }{\bf!!}
+\vfill\eject
+\advance \hsize-0.3cm
+{\bf Beispiel 4 \rm(Textunterlage)}
+\vskip2cm
+\title{Lobe den Herren}
+\composer{Hugo Distler}
+\def\@#1#2{{$\hbox{#1\hfill}\atop\hbox{#2\hfill}$}}
+\def\lv{{\leaders\hrule \hskip1cm plus 1fill}}
+\parindent 40pt
+\voice{Sopran}%
+\universal
+\beginsong\vio\G\^r{{\rm Schnell}}{\vrule height 7\nhh width0pt%
+\gluebrule}\meter3/4%
+\^{\mezzoforte}\_{\@{Lo-}{Mei-}}{\v2}%
+\_{\@{be}{ne}}{\v2}%
+\_{\@{den}{ge - }}{\v6}\|%
+\_{\@{Her-}{lie - }}{\v4\.1}\_{\@{ren, }{be - }}{\a3}%
+\_l{\@{den}{te }}{\v2}\|%
+\_l{\@{m"ach - }{See - }}{\v1}\_{\@{ti - }{le, }}{\v0}%
+\_{\@{gen }{das }}{\v{-1}}\|%
+\_{\@{K"o - }{ist }}{\h0}%
+\group{\\{\_n{\@{nig \lv }{mein \lv }}{\v1}}\\{\|\meter2/4}\\{\v1}}
+{\\{1}\\{0}\\{1}}\lslur13\go\_{\@{der }{Be- }}{\v2}\|\meter4/4%
+\_{\@{Eh - }{geh - }}{\h3}\_{\@{ren!}{ren.}}{\h2}\rightrepeat\meter3/4%
+%Ende Wiederholung
+\_{Kom-}\^{\forte}{\v6}\_{met}{\v6}\_{zu}{\v6}\|%
+\_{Hauf!}{\h7\.1}\caesura\|\_l{Psal - }{\v4}\_{ter}{\a5}%
+\_l{und }{\a5}%
+\group{\\{\_n{Har\hskip40pt - \hskip40pt -\hskip 40pt - \hskip40pt
+}{\v6}}\\{\|}\\{\a6}\\{\a7}\\{\a6}\\{\a4}\\{\v6}%
+\\{\|}\\{\a6}\\{\a7}\\{\v6\.1}\\{\a7}\\{\|}\\{\v6\.1}}
+{\\{6}\\{8}\\{6}\\{7}\\{6}\\{4}\\{6}\\{8}\\{6}\\{7}\\{6}\\{7}\\{8}\\{6}}%
+\lbeam36\lbeam9{10}\uslur13\uslur79\uslur1{14}\go
+\_{fe,}{\a5}\_l{wacht}{\v4}\|%
+\^{\piano}\_{auf, }{\h3}\group{\\{\_n{wacht}{\caesura\a4}}\\{\a2}}
+{\\{4}\\{2}}\ubeam12\go\|\^{\dec}\_{auf,}{\h3}%
+\group{\\{\_n{wacht}\^{zart}{\caesura\a4}}\\{\a2}}
+{\\{4}\\{2}}\ubeam12\go\|\^{\dec}\_{auf,}{\h6\.1}\caesura\|%
+\^{\forte}\_{las-}{\v{-1}}\_{set}{\v0\.1}\_{den}{\a1}\|%
+\meter4/4\_{Lob - }{\h2}\_{ge - }{\v3}\_{sang}{\v4}\|\meter7/4%
+\group{\\{\_n{h"o \hskip20pt - \hskip20pt - \hskip20pt
+- }{\h5}}\\{\v4\.1}\\{\a3}\\{\v2}\\{\h3}}
+{\\{5}\\{4}\\{3}\\{2}\\{9}}\uslur15\go
+\|\meter3/4\_{ren!}{\h2\.1}\=\endsong
+\parindent=0pt \eightrm
+Aus: R. Baum,``Geselliges Chorbuch I'' B"arenreiter-Verlag, Kassel und
+Basel.
+\vskip1cm \rm Auch zu diesem St"uck sei die Eingabe aufgef"uhrt:
+\vskip1cm
+%%%%%%%%%%%%%%%%
+%%%%%% distler%
+%%%%%%%%%%%%%%%%
+{\bf !!}\ks{title}\{Lobe den Herren\}
+\ks{composer}\{Hugo Distler\}
+\par
+\ks{voice}\{Sopran\}
+\ks{treble}\ks{signature}\{{`}{`}xf\}
+\ks{text}\{\ks{\os{ }l} Schnell\}
+\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{vocal}
+\par {\bf\{\ \ \
+4g\ks{mezzoforte} g {`}{`}d\strich `h. 8a 4g\strich f e d \strich 2e
+\ks{slur}\{4f\strich\ks{meter}\{2\slash 4\} f\} 4g\strich
+\par\ks{meter}\{4\slash 4\} 2a 2g\dpkt\strich\strich
+\ks{meter}\{3\slash 4\} 4{`}{`}d d d \strich 2.e 0p\strich
+\par `4h 8{`}{`}c c
+\ks{group}\{4d\strich 8d e d `h 4{`}{`}d\strich 8d e 4.d 8e\strich 4.d\}
+\ks{gslur}\{1-3, 1-13\}\par
+\ks{gbeam}\{3-6, 9-10\} 8c 4`h\strich 2a
+\ks{piano} 0p\ks{beam}\{8h g\}\strich\par 2a \ks{decr} 0p
+%ks{beam}\{8h g\}\strich\par 2a \ks{decr} 0p
+\ks{beam}\{8h \ks{text}\{{\rm zart}\}g\}\strich
+ {`}{`}2.d\ks{decr} 0p\strich
+\par `4d\ks{forte} .e 8f\strich \ks{meter}\{4\slash 4\} 2g 4a h\strich
+\par
+\ks{meter}\{7\slash 4\}\ks{slur}\{`{}`2c `4.h 8a 4g 2a\}\strich
+\ks{meter}\{3\slash 4\} 2.g \gleich\ \ \ \} }
+\par
+\{\ \ \ \{Lo-\bs{atop} Mei-\} \{be\bs{atop} ne\} \{den\bs{atop} ge-\}
+\{Her-\bs{atop} lie-\} \{ren,\bs{atop} be-\}\par
+ \{den \bs{atop} te\} \{m"ach-\bs{atop} See-\}
+ \{ti-\bs{atop} le,\} \{gen\bs{atop} das\} \par
+ \{K"o-\bs{atop} ist\}
+ \{nig--\bs{atop} mein--\} \slash\
+ \{der\bs{atop} Be-\} \{Eh-\bs{atop} geh-\}
+ \{ren!\bs{atop} ren.\}
+\par Kom- met zu Hauf! Psal- ter und Har-
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\ \slash\
+fe, \par
+wacht auf, wacht \slash\ auf, wacht\ \slash\ auf, \par
+las- set
+den Lob- ge- sang h"o-
+\slash\ \slash\ \slash\ \slash\
+ren!\ \ \ \}{\bf!!}
+\vfill\eject
+\verbatimoff
diff --git a/macros/mtex/documentation/mdocanhb.tex b/macros/mtex/documentation/mdocanhb.tex
new file mode 100644
index 0000000000..d615bdb6da
--- /dev/null
+++ b/macros/mtex/documentation/mdocanhb.tex
@@ -0,0 +1,49 @@
+\font\bigrm=cmbx12
+\heading{Anhang B:\quad Das "Ubersetzungsprogramm}
+\bigskip
+Die vorgestellte Noteneingabesprache wurde so angelegt, da\3 mit
+Hilfe eines "Uber\-setzungsprogramms die Daten, die
+f"ur die Erstellung der Ausgabe notwendig sind, erzeugt werden k"onnen.
+Um eine Vorstellung von der Form, in der diese Daten vorliegen m"ussen,
+zu vermitteln, wird hier ein kurzes Beispiel
+eingef"ugt. F"ur dieses Beispiel wird die Darstellung in
+der Noteneingabesprache und in Notenschrift ebenfalls angegeben.
+\par
+Zun"achst die Eingabe mit Hilfe der Noteneingabesprache:
+$$\hbox{\ks{group}{\bf \{b4.`a 8a g ba\} \ks{gslur}\{1-2\}
+\ks{gbeam}\{2-4\}}}$$
+Dies entspricht der anschlie\3enden Notation in Notenschrift:
+\par
+{\hsize9cm\parindent4.5cm
+\universal\nointerlineskip\beginsong
+\vio\C%
+\group{\\{\b3\v3\.1}\\{\a3}\\{\a2}\\{\b3\a3}}
+{\\{3}\\{3}\\{2}\\{3}}\ubeam24\lslur12\go
+\hfill\hbox{}\endsong}
+\par
+Um die obige Ausgabe zu erhalten, m"ussen die Daten folgende Form
+haben:\absatz\parindent30pt
+\verbatimon
+|\universal\beginsong|
+|\vio\C%|\par
+|\group{\\{\b3\v3\.1}\\{\a3}\\{\a2}\\{\b3\a3}}|\par
+|{\\{3}\\{3}\\{2}\\{3}}\ubeam24\lslur12\go|
+|\endsong|
+\par
+\verbatimoff
+
+
+
+\vskip 3cm
+
+\noindent Die folgende (unvollst"andige) Programmliste gibt den Aufbau
+und die wesentlichen Einzelteile des "Ubersetzungsprogramms
+wieder.
+
+\parindent0pt
+\vfill\eject
+
+{
+ \input mdoctrns.tex
+}
+\output={\plainoutput}
diff --git a/macros/mtex/documentation/mdocanhc.tex b/macros/mtex/documentation/mdocanhc.tex
new file mode 100644
index 0000000000..fc7a7278e8
--- /dev/null
+++ b/macros/mtex/documentation/mdocanhc.tex
@@ -0,0 +1,204 @@
+\heading{Anhang C:\quad Darstellung der Syntax in \BNF}
+\abschnitt
+Anhang C enth"alt die vollst"andige Beschreibung der Syntax in
+\BNF. Die Nichtterminalzeichen sind alphabetisch aufgelistet,
+um das Aufsuchen bestimmter Nichtterminalsymbole zu erleichtern.
+Das Startsymbol $S$ der Grammatik ist \nl{music input}.
+\abschnitt
+
+
+\def\T{|}
+$$\align
+\nm{accid} ::=& \nm{accidental} \nm{simple note} \T
+ \nm{octave} \nm{accidental}
+ \nm{simple note} \T\\
+ &\nm{accidental} \nm{octave} \nm{simple note}\\
+\nm{accidental} ::=& {\bf x} \T {\bf{xx}} \T {\bf{b}} \T {\bf{bb}} \T
+ {\bf{n}}\\
+\nm{articulation group} ::=&
+\bs{\bf stac} \nm{melody} \bs{\bf noaccent}\T
+\bs{\bf staccatissimo} \nm{melody} \bs{\bf noaccent}\T\\
+& \bs{\bf tenuto} \nm{melody} \bs{\bf noaccent}\\
+\nm{barline} ::=& \strich\ \T\ \strich\strich\ \T
+\ \gleich\ \T\ \strich\strich\dpkt\ \T
+ \ \dpkt\strich\strich\ \T
+ \ \dpkt\strich\strich\dpkt
+ \\
+\nm{begin} ::=& {\hbox{\bf!!}} \T \bs{\bf beginsong}\\
+\nm{block} ::=& \nm{melody} \T \nm{two} \T \nm{vocal}\\
+\nm{caesura} ::=& {\bf 0p}\\
+\nm{change} ::=& \nm{clef} \T \nm{signature} \T \nm{metre} \T \nm{change}
+ \nm{change}\\
+\nm{chord} ::=& \bs{\bf chord}\lk%
+ \nm{several notes}\rk \T \nm{chord} \nm{chord}\\
+\nm{clef} ::=& \bs{\bf treble} \T \bs{\bf bass} \T \bs{\bf baritone} \T
+ \bs{\bf alto} \T \bs{\bf mezzo} \T \bs{\bf soprano} \T
+ \bs{\bf tenor} \\
+\nm{digit} ::=& {\bf 0} \T {\bf 1} \T
+ {\bf 2} \T {\bf 3} \T {\bf 4} \T {\bf 5} \T {\bf 6} \T {\bf 7}
+ \T {\bf 8} \T {\bf 9}\\
+\nm{dot} ::=& {\hbox{\bf.}}\\
+\nm{duration} ::=& {\bf 1} \T
+ {\bf 2} \T {\bf 4} \T {\bf 8} \T {\bf 6} \T {\bf 3} \T {\bf 5}
+ \T {\bf 7} \\
+\nm{end} ::=& {\hbox{\bf!!}} \T \bs{\bf endsong}\\
+\nm{explanation} ::=& \bs{\bf text}\lk\nm{text}\rk \T
+ \bs{\bf text}\lk\nm{place} \nm{text}\rk \T\\
+ &\nm{recital} \T
+ \lk\nm{place} \nm{recital}\rk\\
+\nm{group} ::=& \nm{simple nested group} \T
+ \nm{mismatched group} \T\\
+ &\nm{articulation group} \T \nm{group} \nm{group}
+ \\
+\nm{heading} ::=& \bs{\bf title}\lk\nm{text}\rk \T
+ \bs{\bf poet}\lk\nm{text}\rk \T
+ \bs{\bf composer}\lk\nm{text}\rk\\
+\nm{letter} ::=& {\bf a} \T
+ {\bf b} \T {\bf c} \T {\bf d} \T {\bf e} \T {\bf f} \T {\bf g}
+ \T {\bf h} \T {\bf i} \T {\bf j} \T {\bf k} \T {\bf l}
+ \T {\bf m} \T {\bf n} \T {\bf o} \T {\bf p} \T {\bf q} \T {\bf r}
+ \T {\bf s} \T {\bf t} \T {\bf u} \T {\bf v} \T {\bf w} \T {\bf x}
+ \T {\bf y} \T {\bf z} \T \\
+ &{\bf A} \T {\bf B} \T {\bf C} \T {\bf D}
+ \T {\bf E} \T {\bf F} \T {\bf G} \T {\bf H} \T {\bf I} \T {\bf J}
+ \T {\bf K} \T {\bf L} \T {\bf M} \T {\bf N} \T {\bf O} \T {\bf P}
+ \T {\bf Q} \T {\bf R} \T {\bf S} \T {\bf T} \T {\bf U} \T {\bf V}
+ \T {\bf W} \T {\bf X} \T {\bf Y} \T {\bf Z}\\
+\nm{melody} ::=& \nm{primitives} \T \nm{group} \T \nm{change} \T
+ \nm{explanation}\\
+\nm{metre} ::=& \bs{\bf meter} \lk\nm{number} \slash \nm{number}\rk \T
+ \bs{\bf allabreve}
+ \T \bs{\bf hC} \T \bs{\bf dC}\\
+\nm{mismatched group} ::=& \bs{\bf group}\lk\nm{primitives}\rk
+ \nm{special group} \T\\
+ &\bs{\bf group}\lk%
+ \nm{chord}\rk \nm{special group}\\
+\nm{music input} ::=& \nm{begin} \nm{piece} \nm{end}
+\endalign$$
+\vfill\eject
+$$\align
+\nm{nested group} ::=& \nm{primitives} \T \nm{explanation} \T
+\nm{change} \T\\
+&\nm{simple nested group} \T \nm{articulation group} \T\\
+ &\nm{nested group} \nm{nested group}
+\\
+\nm{note} ::=& \nm{simple note} \T
+ \nm{note specification} \nm{simple note}
+\\
+\nm{note specification} ::=& \nm{octave} \T \nm{accidental} \T
+ \nm{duration} \T \nm{punctuation} \T\\
+ &\nm{note specification} \nm{note specification}\\
+\nm{number} ::=& \nm{digit} \T \nm{digit} \nm{number}\\
+\nm{octave} ::=& {\hbox{\bf,}} \T {\hbox{\bf{,,}}} \T
+ {\hbox{\bf{,,,}}} \T {\hbox{\bf `}}
+ \T {\hbox{\bf{`}{`}}} \T
+ {\hbox{\bf{{`}{`}{`}}}} \T {\hbox{\bf{{`}{`}{`}{`}}}}\\
+\nm{omission} ::=& \slash\\
+\nm{piece} ::=& \nm{several system} \T
+ \nm{system} \T \nm{heading} \nm{piece}\\
+\nm{place} ::=& \bs{\bf\us}\T
+\bs{\bf\us l} \T \bs{\bf\us c} \T \bs{\bf\us r} \T
+\bs{\bf\us n} \T \bs{\bf\us v} \T \bs{\hbox{\bf\os\ }} \T
+\bs{\hbox{\bf\os\ l}} \T
+ \bs{\hbox{\bf\os\ c}} \T \bs{\hbox{\bf\os\ r}} \T
+ \bs{\hbox{\bf\os\ n}} \\
+\nm{preliminary data} ::=& \nm{voice} \T \nm{clef} \T \nm{signature} \T
+ \nm{metre} \T
+ \nm{explanation} \T\\
+ &\nm{preliminary data} \nm{preliminary data}\\
+\nm{primitives} ::=& \nm{note} \T
+ \nm{rest} \T \nm{caesura} \T \nm{barline}
+ \T \nm{primitives} \nm{primitives}\\
+\nm{punctuation} ::=& \nm{dot} \T \nm{dot} \nm{punctuation} \\
+\nm{recital} ::=&
+\bs{\bf dacapo} \T \bs{\bf dalsegno} \T
+ \bs{\bf unisono} \T \bs{\bf cantusfirmus} \T
+ \bs{\bf crescendo} \T\\
+& \bs{\bf decrescendo} \T \bs{\bf diminuendo} \T
+ \bs{\bf forte} \T
+ \bs{\bf fortissimo} \T\\
+& \bs{\bf fortissimoposs} \T \bs{\bf mezzoforte} \T
+ \bs{\bf mezzopiano} \T
+ \bs{\bf piano} \T\\
+& \bs{\bf pianissimo} \T
+ \bs{\bf pianissimoposs} \T
+ \bs{\bf fortepiano} \T
+ \bs{\bf forzato} \T\\
+& \bs{\bf rinforzando} \T \bs{\bf sforzato} \T
+ \bs{\bf sforz} \T
+ \bs{\bf decr} \T \bs{\bf rallentando} \T\\
+& \bs{\bf ritardando} \T \bs{\bf ritenuto} \T
+ \bs{\bf tr} \T \bs{\bf staccato} \T
+\bs{\bf fine} \T
+ \bs{\bf tacet} \\
+\nm{rest} ::=& \nm{rest specification} {\bf p} \T {\bf{p}} \\
+\nm{rest specification} ::=& \nm{duration} \T
+ \nm{punctuation} \T \nm{rest specification}
+ \nm{rest specification}\\
+\nm{several accid} ::=& \nm{accid} \T \nm{accid} \nm{several accid}\\
+\nm{several notes} ::=& \nm{note} \T \nm{note} \nm{several notes}\\
+\nm{several system} ::=& \bs{\bf system}
+ \lk\nm{system}\rk \T\\
+ &\bs{\bf system} \lk\nm{system}\rk
+ \nm{several system}
+\\
+\nm{sign} ::=&
+ \bs{\bf C} \T \bs{\bf G} \T \bs{\bf D} \T \bs{\bf A} \T \bs{\bf E}
+ \T \bs{\bf H} \T \bs{\bf Fis} \T
+ \bs{\bf Cis} \T\\
+ &\bs{\bf a} \T \bs{\bf e} \T
+ \bs{\bf h} \T \bs{\bf fis} \T
+ \bs{\bf cis} \T \bs{\bf gis} \T \bs{\bf dis} \T
+ \bs{\bf ais} \T\\
+ &\bs{\bf Ces} \T
+ \bs{\bf Ges} \T \bs{\bf Des} \T \bs{\bf As} \T
+ \bs{\bf Es} \T \bs{\bf B} \T
+ \bs{\bf F} \T\\
+ &\bs{\bf as} \T \bs{\bf es} \T
+ \bs{\bf b} \T \bs{\bf f} \T
+ \bs{\bf c} \T \bs{\bf g} \T \bs{\bf d}
+\endalign$$
+\vfill\eject
+$$\align
+\nm{signature} ::=& \bs{\bf signature}\lk\nm{several accid}\rk \T
+ \nm{sign}\\
+\nm{sign number} ::=& \nm{number} {\hbox{\bf-}} \nm{number} \T
+ \nm{sign number} {\bf,} \nm{number} {\hbox{\bf-}} \nm{number}
+\\
+\nm{simple nested group} ::=& \bs{\bf beam}\lk%
+ \nm{nested group}\rk \T
+ \bs{\bf slur}\lk\nm{nested group}\rk \T\\
+ &\bs{\bf cresc}\lk\nm{nested group}\rk \T
+ \bs{\bf descresc}\lk\nm{nested group}\rk\\
+ &\bs{\bf chord}\lk\nm{several notes}\rk\\
+\nm{simple note} ::=& {\bf c} \T {\bf d} \T {\bf e} \T {\bf f}
+ \T {\bf g} \T {\bf a} \T {\bf h} \\
+\nm{songtext} ::=& \nm{text} \T
+ \nm{place}\nm{text} \T
+ \nm{omission} \T
+ \nm{songtext} \nm{songtext}\\
+\nm{special character} ::=&\ {\hbox{\bf,}}\ \T\ {\hbox{\bf;}}\ \T
+ \ {\hbox{\bf.}}\ \T \ {\hbox{\bf!}}\ \T \ \blank\ \T
+ \ {\hbox{\bf?}}\ \T\ {\hbox{\bf*}}\ \T\ {\hbox{\bf+}}\ \T
+ \ {\hbox{\bf-}}\ \T \ {\hbox{\bf`}}\ \T
+ \ {\hbox{\bf'}}\ \T\ \bs\ \T\ {\hbox{\bf\~\ }}\\
+\nm{special group} ::=& \bs{\bf gslur}\lk\nm{sign number}\rk \T
+ \bs{\bf gbeam}\lk\nm{sign number}\rk \T\\
+ &\bs{\bf gcresc}\lk\nm{sign number}\rk \T
+ \bs{\bf gdecresc}\lk\nm{sign number}\rk \T\\
+ &\nm{special group}\nm{special group}\\
+\nm{system} ::=& \nm{block} \T \nm{preliminary data} \nm{block}\\
+\nm{text} ::=& \nm{word} \T \nm{special character} \T
+ \nm{text} \nm{text}\\
+\nm{two} ::=& \bs{\bf two}\lk\nm{melody}\rk \lk%
+ \nm{melody}\rk\\
+\nm{vocal} ::=& \bs{\bf vocal}\lk\nm{melody}\rk \lk%
+ \nm{songtext}\rk \T
+\bs{\bf vocal}\lk\nm{two}\rk \lk%
+ \nm{songtext}\rk\\
+\nm{voice} ::=& \bs{\bf voice}\lk\nm{text}\rk\\
+\nm{word} ::=& \nm{letter} \T \nm{digit} \T \nm{letter} \nm{word} \T
+ \nm{digit} \nm{word}
+\endalign$$
+\vfill\eject
+
diff --git a/macros/mtex/documentation/mdocanhd.tex b/macros/mtex/documentation/mdocanhd.tex
new file mode 100644
index 0000000000..982b15e07b
--- /dev/null
+++ b/macros/mtex/documentation/mdocanhd.tex
@@ -0,0 +1,220 @@
+\font\bigrm=cmbx12
+\def\akkzent#1{{\accent'175 #1}}
+\def\Oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\Hex#1{\hbox{\rm\akkzent{}\tt#1}} % hexadecimal constant
+\def\mf{METAFONT}
+\def\absatz{\par\penalty-50\vskip7.5pt plus4.5pt minus6pt\noindent}
+\def\abs{\parsep}
+\verbatimon
+\heading {Anhang D:\quad Zeichens"atze}
+\bigskip
+Eine zus"atzliche
+Aufgabe, die sich bei der Automatisierung des Notensatzes
+ergibt, ist die Erstellung von besonderen
+Zeichens"atzen, denn in der Regel enthalten
+die vorhandenen Zeichens"atze keine Notenschriftzeichen.
+Obwohl sie nicht f"ur
+die Noteneingabe, sondern f"ur die Ausgabe von Musik von Bedeutung
+ist, soll hier kurz auf die erstellten Zeichens"atze eingegangen
+werden. Diese werden dann in der Arbeit von A. Steinbach
+\lit{\Steinb} benutzt.
+\abs
+Wie in der Einleitung schon gesagt wurde, wird zur Erstellung der
+Zeichen das zu \TeX\ geh"orende Programm \mf\ verwandt.
+Dieses soll im folgenden kurz erl"autert werden.
+\absatz
+\subheading{Methode zur Erstellung von Zeichens"atzen}
+Die f"ur den Notensatz notwendigen Zeichens"atze werden mit dem
+von D. E. Knuth entwickelten Programm \mf\ erzeugt \lit{\Knuthmf}.
+Dieses Programm bietet sich an, weil zur Darstellung eines Zeichens
+im Gegensatz zu anderen Methoden relativ wenig Daten erforderlich sind.
+Au\3erdem ist es an das f"ur die Automatisierung des Notensatzes
+benutzte Textsatzsystem \TeX\ angepa\3t.
+\abs
+\mf\ erh"alt als Eingabe eine mathematische Beschreibung der Zeichen.
+Diese besteht im wesentlichen aus der Angabe von Kontrollpunkten
+und Anweisungen, wie diese zu verbinden sind.
+Die Punkte werden durch ihre
+Koordinaten, die Verbindungsvorschriften durch Winkel und Steigungen
+beschrieben. \mf\ zieht daraufhin mit verschiedenen Stiften,
+deren Form ebenfalls gew"ahlt werden kann, laut Anweisung
+Kurven durch die Kontrollpunkte. Dazu werden Splines verwendet.
+Ein Vorteil, der bei der Erstellung der Zeichen f"ur den
+Notensatz oft ausgenutzt wird, ist, da\3 mehrmals auftretende Kurven
+einmal
+definiert und mit Hilfe einer Kontrollsequenz
+an den entsprechenden Stellen
+eingesetzt werden k"onnen.
+\abs
+\mf\ erzeugt die Zeichen in der vom Benutzer gew"unschten
+ger"atespezifischen Aufl"osung.
+Eine ausf"uhrliche Beschreibung von \mf\
+steht in dem Buch ``The \mf--book'' von D. E. Knuth \lit{\Knuthmf}.
+\absatz
+Nach dieser kurzen Erkl"arung der Arbeitsweise des Programms
+\mf\ sollen nun die f"ur den automatisierten Notensatz notwendigen
+Zeichens"atze vorgestellt werden.
+\absatz
+\subheading{Zeichens"atze f"ur den Notensatz}
+In den folgenden Tabellen 1 bis 7 werden die erzeugten Zeichens"atze
+(Fonts) gezeigt. Jedes Zeichen (Character) eines Fonts kann "uber
+seinen zugeordneten Charactercode angesprochen werden.
+Die Tabellen sind so aufgebaut, da\3 die
+Codes k"onnen am Tabellenrand sowohl in oktaler
+(\Oct{000} -- \Oct{177}) als auch in hexadezimaler
+(\Hex{00} -- \Hex{7F}) Notation abgelesen werden.
+So hat zum Beispiel das Aufl"osungszeichen
+(\font\music= music16 {\music \char'066\ }) den Oktalcode
+\Oct{066} und den Hexadezimalcode \Hex{36}, der kleine
+Violinschl"ussel dagegen den Code \Oct{118} bzw. \Hex{48}.
+Die bisher erstellten und verwendeten Zeichens"atze haben ein
+Schriftgr"o\3e von 16pt, dies entspricht der H"ohe eines
+Notenliniensystems (Rastralh"ohe). Sie sind also f"ur
+Noten, die eine Notenkopfh"ohe |\nhh| = 4pt besitzen, ausgelegt.
+Der Name
+oben
+links in der Tabelle bezeichnet den jeweiligen Zeichensatz.
+\abs
+Die erste Tabelle enth"alt die Notenschriftelemente wie Notenk"opfe,
+F"ahnchen, Versetzungszeichen, Pausen, Notenschl"ussel und Sonderzeichen,
+zum Beispiel f"ur Taktangaben.
+Dieser Zeichensatz ist noch durch Hinzunahme weiterer Sonderzeichen
+erweiterbar.
+\abs
+Tabelle 2 zeigt den Zeichensatz, der f"ur den Satz der Balken
+notwendig ist. Die Balken unterscheiden
+sich in der L"ange und der Steigung
+voneinander. Allerdings k"onnen nicht alle Balken beliebiger L"ange
+in den Zeichens"atzen aufgef"uhrt werden, da diese sonst zu
+umfangreich werden w"urden. Aus diesem Grund werden die
+Balken
+aus Teilst"ucken zusammengesetzt. F"ur die Steigungen sind
+charakteristische Balkensteigungen ausgew"ahlt worden (\lit{\Steinb},
+Kap.11). Eine Zeile der Tabelle enth"alt die zu einer festen
+Balkensteigung geh"orenden Teilst"ucke. Die L"ange
+dieser Teilst"ucke wird dabei von einer Spalte zur andern verdoppelt.
+In einer Spalte stehen die Teilst"ucke, deren Anfangs-- und
+Endpunkte jeweils die gleichen Abzissenwerte haben. Der Code eines
+Balkenst"ucks kann demnach mit einer einfachen Gleichung
+aus seiner L"ange und Steigung
+berechnet werden.
+\abs
+Der dritte Zeichensatz (Tabelle 3) enth"alt die ungeteilten Haltebogen,
+die Crescendo-- und Decrescendozeichen und Bogenst"ucke, aus
+denen Bogen zusammengesetzt werden k"onnen. Die Bogenst"ucke
+sind zeilenweise mit wachsender Steigung angeordnet, w"ahrend die
+anderen Zeichen dieses Zeichensatzes der L"ange nach geordnet sind.
+Der Auswahl der L"angen und Steigungen liegen die Berechnungen
+aus \lit{\Steinb}, Kap.11 zugrunde. Dies gilt auch f"ur die
+n"achsten Zeichens"atze.
+\abs
+Die restlichen vier Tabellen zeigen die Zeichens"atze f"ur
+Bogen. Tabelle 4 und 5 enthalten die konvexen Bogen, Tabelle 6 und
+7 die konkaven Bogen. Die konvexen Bogen werden oberhalb
+einer Notenzeile gezogen, w"ahrend die konkaven Bogen
+unterhalb einer Notenzeile gezeichnet werden.
+Die beiden Zeichens"atze, die zu einer Bogenart geh"oren, unterscheiden
+sich in der Sekantensteigung. In Tabelle 4 und 6 sind die Bogen
+mit positiver, in Tabelle 5 und 7 mit negativer Sekantensteigung
+aufgelistet.
+Die Bogen innerhalb eines Zeichensatzes sind wiederum so angelegt, da\3
+der Charactercode eines Bogens wieder
+aus der
+L"ange und Steigung berechnet werden kann.
+Dabei wurden jedoch die Bogen spaltenweise mit wachsender Steigung
+angeordnet, wobei jede Spalte Bogen von zwei verschiedenen L"angen
+enth"alt. Eine Ausnahme bildet die erste Spalte. Dort wurden
+alle zum Satz erforderlichen Bogen der L"angen 1 |\nhw|, 2 |\nhw|
+und 3 |\nhw| angeordnet.
+\absatz
+Im Anschlu\3 an diese Beschreibung folgen die einzelnen
+Zeichens"atze (Tabellen 1 bis 7). Das \mf-Programm, mit dem
+die Zeichens"atze generiert werden k"onnen,
+ist in der vorliegenden Arbeit
+weggelassen worden und kann gesondert angefordert werden.
+\vfill\eject
+\verbatimoff
+
+
+% macros for font tables
+% aus dem \tex book von Donald E. Knuth
+\verbatimon
+\countdef\counter=255
+\def\oddline#1{\cr
+ \noalign{\nointerlineskip}
+ \multispan{19}\hrulefill&
+ \setbox0=\hbox{\lower 2.3pt\hbox{\Hex{#1x}}}\smash{\box0}\cr
+ \noalign{\nointerlineskip}}
+\def\evenline{\cr\noalign{\hrule}}
+\def\chartstrut{\lower4.5pt\vbox to14pt{}}
+\def\beginchart#1{$$\global\counter=0 #1
+ \halign to\hsize\bgroup
+ \chartstrut##\tabskip0pt plus10pt&
+ &\hfil##\hfil&\vrule##\cr
+ \lower6.5pt\null
+ &{\it\fontname\ }
+&&\Oct0&&\Oct1&&\Oct2&&\Oct3&&\Oct4&&\Oct5&&\Oct6&&\Oct7&\evenline}
+\def\endchart{\raise11.5pt\null&&&\Hex 8&&\Hex 9&&\Hex A&&\Hex B&
+ &\Hex C&&\Hex D&&\Hex E&&\Hex F&\cr\egroup$$}
+\def\:{\setbox0=\hbox{\char\counter}%
+ \ifdim\ht0>7.5pt \dimen1=\ht0 \advance \dimen1 by 2pt \ht0=\dimen1 \fi
+ \ifdim\dp0>2.5pt \dimen1=\dp0 \advance \dimen1 by 2pt \dp0=\dimen1 \fi
+ \setbox0=\hbox{%
+ \vrule depth \dp0 width 0pt \box0}\box0\global\advance\counter by1 }
+\def\normalchart{%
+ &\Oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline0
+ &\Oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline1
+ &\Oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline2
+ &\Oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline3
+ &\Oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline4
+ &\Oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline5
+ &\Oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline6
+ &\Oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\Oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline7
+ &\Oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline}
+\def\table #1 {{\offinterlineskip
+\font\sfont=#1
+\edef\fontname{#1}
+\beginchart\sfont
+\normalchart
+\endchart
+\bigskip
+}}
+
+\table{music16}
+\centerline{\bf Tabelle 1}
+\vfill\eject
+
+\table{beam16}
+\centerline{\bf Tabelle 2}
+\vfill\eject
+%
+{
+\advance\hsize by 4cm\advance \hoffset by -2cm
+\table{slur16}
+\centerline{\bf Tabelle 3}
+\vfill\eject
+}
+
+\table{sluruu16}
+\centerline{\bf Tabelle 4}
+\vfill\eject
+
+\table{slurdu16}
+\centerline{\bf Tabelle 5}
+\vfill\eject
+
+\table{slurud16}
+\centerline{\bf Tabelle 6}
+\vfill\eject
+
+\table{slurdd16}
+\centerline{\bf Tabelle 7}
+\vfill\eject
+
diff --git a/macros/mtex/documentation/mdocdef.tex b/macros/mtex/documentation/mdocdef.tex
new file mode 100644
index 0000000000..f8d82101e0
--- /dev/null
+++ b/macros/mtex/documentation/mdocdef.tex
@@ -0,0 +1,258 @@
+% this is MDOCDEF.TEX
+%
+\frenchspacing
+\openup3pt
+\hsize=16.0cm
+\vsize=25.0cm
+\advance\hoffset by 0.5cm
+\parindent 0pt
+\nopagenumbers
+%
+\font\bigrm=cmbx12
+%\font\ninerm=cmr9 %not on Atari
+\font\ninerm=cmr10
+\font\eightrm=cmr7 %only on Atari
+\font\tensl=cmr10 %only on Atari
+
+\font\eighttt=cmtt8
+%\font\hugem=cmbx10 scaled 2000 %not on Atari
+\font\hugem=cmbx10 scaled 1440
+\font\huge=cmbx12
+%
+\let\headings\relax
+\let\keyy=\key
+\def\us{\hbox{\tt\char`\_}}
+\def\os{\hbox{\tt\char`\^}}
+
+\newskip \iindent \iindent=30pt
+\footline={}
+\parindent=0pt
+\def\lit#1{\ifmmode\lbrack\text{#1}\rbrack
+\else$\lbrack\,${}#1{}$\,\rbrack$\fi}
+\def\tex#1{{\it #1\/}}
+\def\disp#1{{\sl #1\/}}
+\def\defi#1{{\bf #1}}
+\def\definition{\Parsep\hang\hangafter 1
+\noindent{\bf Definition:}\hskip1em\relax}
+\def\parh{\par\hang\hangafter0}
+\def\parn{\par\noindent}
+\def\enddefinition{\Parsep}
+\def\Beispiel{\goodbreak\Parsep\hang\hangafter 1
+\noindent{\bf Beispiel:}\hskip1em\relax}
+\def\endBeispiel{\Parsep}
+\def\Bemerkung{\Parsep\hang\hangafter 1
+\noindent{\bf Bemerkung:}\hskip1em\relax}
+\def\endBemerkung{\Parsep}
+\def\ul#1{$\underline{\text{#1}}$}
+\def\pt{\ifmmode\,{\rm pt}\else pt\fi}%nur f"ur mathmode
+\def\<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}} % syntactic quantity
+\def\fil{\ifmmode\,{\rm fil}\else fil\fi}%nur f"ur mathmode
+\def\fill{\ifmmode\,{\rm fill}\else fill\fi}%nur f"ur mathmode
+\def\filll{\ifmmode\,{\rm filll}\else filll\fi}%nur f"ur mathmode
+\def\tbox{{\hbox{\rm `box'}}}
+\def\tglue{{\hbox{\rm `glue'}}}
+\def\tkern{{\hbox{\rm `kern'}}}
+\def\tpenalty{{\hbox{\rm `penalty'}}}
+\def\summ{\sum_{j=1}^m}
+\def\folg#1#2{${#1}_1,\ldots,{#1}_{#2}$}
+\def\folgi#1#2#3{\ifmmode ({#1}_{#2})_{{#2}=1,\ldots,{#3}}
+\else \hbox{$({#1}_{#2})_{{#2}=1,\ldots,{#3}}$}\fi}
+\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet
+\def\hang{\hangindent\iindent}
+\def\textindent#1{\noindent\hskip\iindent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\noindent\hskip\iindent\hangindent2\iindent\textindent}
+% macros for non-centered displays
+\outer\def\begindisplay{\obeylines\startdisplay}
+{\obeylines\gdef\startdisplay#1
+{\catcode`\^^M=5$$#1\halign\bgroup\hskip\iindent##\hfil&&\qquad##\hfil\cr}}
+\outer\def\enddisplay{\crcr\egroup$$}
+\def\vo{\tt\verbatimon}
+\def\voff{\tt\verbatimoff}
+\def\mod{\hbox{mod}}
+\def\sign{\hbox{sign}}
+\def\const{\hbox{const}}
+\def\mins{\hbox{mins}}
+
+\def\Brook{1}
+\def\brook{1}
+\def\byrd{2}
+\def\genzmeier{3}%lehrbuch f"ur textsatz
+\def\genzmer{3}%lehrbuch f"ur textsatz
+\def\grabner{6}
+\def\gomb{4}
+\def\Gourlay{5}
+\def\gourlay{5}
+\def\Hader{7}
+\def\hader{7}
+\def\Knuth{8}
+\def\Texbook{9}
+\def\TeXbook{9}
+\def\Knuthmf{10}
+\def\Peters{11}
+\def\Schofer{12}
+\def\smith{13}
+\def\Smith{13}
+\def\Steinb{14}
+\def\Werner{15}
+\def\werner{15}
+\def\Wirth{16}
+\def\ziegen{17}
+\def\Ziegen{17}
+\def\Zima{18}
+\def\Zimat{19}
+
+
+% \box\bigdot is a null box with a bullet at its reference point
+\newbox\bigdot \newbox\smalldot
+\setbox0=\hbox{$\vcenter{}$} % \ht0 is the axis height
+\setbox1=\hbox to0pt{$\hss\bullet\hss$} % bullet is centered on the axis
+\setbox\bigdot=\vbox to0pt{\kern-\ht1 \kern\ht0 \box1 \vss}
+\setbox1=\hbox to0pt{$\hss\cdot\hss$} % cdot is centered on the axis
+\setbox\smalldot=\vbox to0pt{\kern-\ht1 \kern\ht0 \box1 \vss}
+
+% \samplebox makes the outline of a box, with big dot at reference point
+\def\samplebox#1#2#3#4{% #1=ht, #2=dp, #3=wd, #4=text
+ {\setbox0=\vtop{\vbox to #1{\hbox to #3{}\vss}
+ \nointerlineskip
+ \vbox to #2{}}% now \box0 has the desired ht, dp, and wd
+ \hbox{\copy\bigdot
+ \vrule height.2pt depth.2pt width#3%
+ \kern-#3%
+ \makelightbox
+ \kern-#3%
+ \raise#1\vbox{\hbox to #3{\hss#4\hss}
+ \kern 3pt}}}}
+
+
+\def\adchap#1{{\advance\chap#1\the\chap}}
+
+\newcount\chap
+\newcount\sub
+\newcount\subsub
+\newcount\subsubsub
+\pageno=1
+\chap=0
+\sub=0
+\subsub=0
+\subsubsub=0
+\def\heading#1{\advance\chap1 \sub=0\subsub=0\subsubsub=0
+\hbox{}
+\vskip1.5cm
+\ifodd\pageno\else\advance\pageno1\fi
+\count2=\pageno
+\ifnum\chap>-1
+\headline={\ifnum\count2=\pageno \hfill
+\else \ifodd\pageno\hss\eightrm\ifnum\chap<1\else\ifnum\chap<14
+\the\chap. \else\fi\fi#1\hss{\tenrm\folio}
+\else{\tenrm\folio}\hss\eightrm\ifnum\chap<1\else\ifnum\chap<14
+\the\chap. \else\fi\fi#1\hss
+\fi\fi}%
+\else \headline={\hfill}\fi
+\ifnum\chap=1
+\else\line{\hfil\bigrm\ifnum\chap<1\else\ifnum\chap<14
+\the\chap.\quad\else\fi\fi#1\hfil}\fi
+\lineouti{#1}\bigskip}
+\def\subheading#1{\advance\sub1\subsub=0
+\subsubsub=0\goodbreak
+\bigskip\line{\bf\the\chap.\the\sub\quad#1\hfil}\lineoutii{#1}\smallskip}
+\def\subsubheading#1{\advance\subsub1
+\subsubsub=0
+\medskip\line{\bf\the\chap.\the\sub.\the\subsub
+\quad#1\hfil}%\lineoutiii{#1}
+\smallskip}
+\def\subsubsubheading#1{\advance\subsubsub1
+\goodbreak
+\medskip{\bf #1.%\lineoutiv{#1}
+}\quad}
+%
+\def\mf{{\rm METAFONT}}
+\newwrite\refs
+\newwrite\inhalt
+\immediate\openout\refs = xrefs.tex
+\immediate\openout\inhalt = inhalt.tex
+\def\lineoutiv#1{\immediate\write\inhalt{\the\chap.\the\sub.\the\subsub.%
+\the\subsubsub : #1 = \the\pageno}}
+\def\lineoutiii#1{\immediate\write\inhalt{\the\chap.\the\sub.\the\subsub%
+\ #1 }}
+\def\lineoutii#1{\immediate\write\inhalt{\the\chap.\the\sub
+&\noexpand\rm \noexpand#1 &\the\pageno\cr}}
+\def\lineouti#1{\immediate\write\inhalt{\cr
+\the\chap &\noexpand\bf \noexpand#1 &\the\pageno\cr\cr}}
+\def\XX{\immediate\write\refs{\the\pageno : \the\chap.\the\sub.%
+\the\subsub.\the\subsubsub}}
+
+% Macros for drawing figures
+\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2 \kern-#2 }
+\def\hidevrule#1#2{\kern-#1{\dimen0=#1
+ \advance\dimen0 by#2\vrule width\dimen0}\kern-#2 }
+% \makeblankbox puts rules at the edges of a blank box
+% whose dimensions are those of \box0 (assuming nonnegative wd,ht,dp)
+% #1 is rule thickness outside, #2 is rule thickness inside
+\def\makeblankbox#1#2{\hbox{\lower\dp0\vbox{\hidehrule{#1}{#2}%
+ \kern-#1% overlap the rules at the corners
+ \hbox to\wd0{\hidevrule{#1}{#2}%
+ \raise\ht0\vbox to #1{}% set the vrule height
+ \lower\dp0\vtop to #1{}% set the vrule depth
+ \hfil\hidevrule{#2}{#1}}%
+ \kern-#1\hidehrule{#2}{#1}}}}
+\def\maketypebox{\makeblankbox{0pt}{1pt}}
+\def\makelightbox{\makeblankbox{.2pt}{.2pt}}
+% \arrows makes things like <--- text --->
+\def\arrows#1#2{% #1=width, #2=text
+ {\setbox0=\hbox{$\mkern-2mu\mathord-\mkern-2mu$}
+ \hbox to #1{\kern-.055556em$\leftarrow\mkern-6mu$%
+ \cleaders\copy0\hfil
+ \kern.4em #2\kern.4em
+ \cleaders\copy0\hfil
+ $\mkern-6mu\rightarrow$\kern-.055556em}}}
+%Taktstriche
+\def\gleich{\hbox{\strut\vrule\kern2pt\vrule width2pt} }
+\def\dbl{\hbox{\strut\vrule\kern2pt\vrule}}
+\def\lrepeat{\hbox{\strut\vrule width2pt\kern2pt\vrule\kern2pt: }}
+\def\rrepeat{\hbox{\strut\ :\kern2pt\vrule \kern2pt\vrule width2pt }}
+\def\lrrepeat{\hbox{\strut\ :\kern2pt\vrule \kern2pt%
+ \vrule width2pt \kern2pt\vrule\kern2pt: }}
+\def\ball#1{\noindent\hbox to 15pt{\hss\hbox to 0pt{\hss$\bigcirc$\hss}%
+\hbox to0pt{\hss#1\hss}\hss}}
+\def\vspace#1{\noalign{\vskip#1}}
+\catcode`\@=11
+\outer\def\Refs{\relaxnext@\def\refskip@{\hskip\@ne sp\hskip\m@ne sp}%
+ \def\next@{\ifx\next\nofrills\def\next@\nofrills{\nextii@}\else
+ \def\next@{\nextii@{}}\fi\next@}%
+ \def\nextii@##1{\bigbreak\hbox to\hsize{\hfil\tenpoint
+ \smc\ignorespaces##1\unskip\hfil}\nobreak
+ \bigskip\sfcode`.=\@m}%
+ \futurelet\next\next@\openup\jot}
+\catcode`\@=\active
+
+
+
+\newskip \iindent \iindent=30pt
+\def\hang{\hangindent\iindent}
+\def\textindent#1{\noindent\hskip\iindent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\noindent\hskip\iindent\hangindent2\iindent\textindent}
+%
+% Definitionen f"ur Literatur %%%%%
+\def\Brook{1}
+\def\Gourlay{2}
+\def\Texbook{3}
+\def\Knuthmf{4}
+\def\Peters{5}
+\def\Smith{6}
+\def\Steinb{7}
+\def\Werner{8}
+\def\Zima{11}
+\def\Zimat{12}
+\def\Wirth{9}
+\def\Ziegen{10}
+
+%% Additional macros (SFB72)
+\def\rz{\ifmmode I\hskip-0.4em R\else$I\hskip-0.4em R$\fi}
+\def\nz{\ifmmode{I\hskip -3pt N}\else{\hbox{$I\hskip -3pt N$}}\fi}
+\def\gz{\ifmmode{Z\hskip -4.8pt Z}\else{\hbox{$Z\hskip -4.8pt Z$}}\fi}
+\def\qz{\ifmmode{Q\hskip-5.0pt\vrule height6.0pt depth 0pt\hskip6pt}
+ \else{\hbox{$Q\hskip-5.0pt\vrule height6.0pt depth 0pt\hskip6pt$}}\fi}
+
+%
diff --git a/macros/mtex/documentation/mdocdef2.tex b/macros/mtex/documentation/mdocdef2.tex
new file mode 100644
index 0000000000..1652bc6e8f
--- /dev/null
+++ b/macros/mtex/documentation/mdocdef2.tex
@@ -0,0 +1,60 @@
+%
+% Definitionen nur fuer MDOC1,2,3 + ANHB !!!
+%
+\def\mf{METAFONT}
+\def\P{Partitur}
+\def\BNF{Backus--Naur--Form}
+\def\kf{kontext--frei}
+\def\G{Grammatik}
+\def\A{Automatisierung}
+\def\Em{Eingabemethode}
+\def\Ev{Eingabeverfahren}
+\def\SZ{Seiten-- und Zeilenumbruch}
+\def\Tss{Textsatzsystem}
+\def\m{musikalisch}
+\def\abschnitt{\par\penalty-100\vskip15pt plus7.5pt minus10pt\noindent}
+\def\absatz{\par\penalty-50\vskip7.5pt plus4.5pt minus6pt\noindent}
+\def\abs{\parsep}
+\def\zB{zum Beispiel }
+\def\dh{das hei\3t }
+\def\lit#1{\lbrack {#1}\rbrack}
+\def\de#1{{\sl #1}}
+\def\q{\quad}
+\def\qq{\quad\quad}
+\def\abl{\mathop{\Longrightarrow}\limits}
+\def\ks#1{\noindent\hbox{{\tt \char\hex5C}\bf#1}}
+%\def\ks#1{\bs{\bf#1}} %definition f"ur Kontrollsequenzen
+
+\mathchardef\SETMINUS=\hex226E
+\def\SETminus{\raise2pt\hbox{${\scriptstyle\SETMINUS}$}}
+\def\Setminus{\raise1.5pt\hbox{${\scriptscriptstyle\SETMINUS}$}}
+\def\setminus{{\mathchoice{\SETminus}{\SETminus}{\Setminus}
+ {\Setminus}}}
+
+\mathchardef\Bullet=\hex220F
+\def\bullet{\,{\raise1pt\hbox{$\scriptscriptstyle\Bullet$}}\,}
+\mathchardef\CHI=\hex011F
+\def\chi{{\raise2pt\hbox{$\CHI$}}}
+
+\def\bs{\noindent\hbox{{\tt \char\hex5C}}}%Backslash
+\def\nl#1{{$\langle${\rm #1}$\rangle$}} %Klammerung f"ur BNF im Text
+\def\nls#1{{$\langle${\eightrm #1}$\rangle$}}
+%Klammerung f"ur BNF im Text eightrm
+\def\nm#1{{\langle{\hbox{\rm#1}}\rangle}}% " " "in Math
+\def\T{{$|$}} %definiert den Trennungsstrich f"ur die BNF
+\def\lk{\hbox{{\tt\char\hex7B}}}%linke Klammer auf
+\def\rk{{\hbox{\tt \char\hex7D}}}%rechte
+\def\strich{{\hbox{\tt \char\hex7C}}}
+\def\dpkt{{\hbox{\tt \char\hex3A}}}%Doppelpunkt
+\def\gleich{{\hbox{\tt \char\hex3D}}}%
+\def\slash{\noindent{\hbox{\tt \char\hex2F}}}
+\def\blank{{\hbox{\tt \char\hex20}}}
+
+\def\bss{\hbox{{\eighttt \char\hex5C}}}%kleiner backslash
+\def\lks{\hbox{{\eighttt\char\hex7B}}}%kleine linke Klammer
+\def\rks{{\hbox{\eighttt \char\hex7D}}}%rechts
+\def\blanks{{\hbox{\eighttt \char\hex20}}}%kleines blank
+
+\def\subheading#1{\smallbreak\noindent{\tenpoint\bf\ignorespaces
+ #1\unskip.\enspace}\ignorespaces}
+
diff --git a/macros/mtex/documentation/mdoceinl.tex b/macros/mtex/documentation/mdoceinl.tex
new file mode 100644
index 0000000000..f36cd336e1
--- /dev/null
+++ b/macros/mtex/documentation/mdoceinl.tex
@@ -0,0 +1,207 @@
+\heading{Einleitung}
+
+\defi{Notensatz} kann als Herstellungsproze\3 einer
+reproduktionsf"ahigen Vorlage zum Druck eines Notenblattes definiert
+werden.
+Wurde urspr"unglich dieser Begriff nur f"ur das Herstellungsverfahren mit
+Metall-Lettern verwendet, so bezeichnet er heute allgemein das
+Positionieren der einzelnen Notenschriftzeichen unabh"angig vom dazu
+verwendeten Verfahren.
+Bis heute ist es noch "ublich, die Druckvorlagen f"ur den Notensatz
+manuell herzustellen. Es wurde bisher noch kein zufriedenstellendes
+Verfahren gefunden, das die langwierigen Techniken des Handnotensatzes
+durch Satzmaschinen abl"osen k"onnte.
+
+\subsubsubheading{Geschichtliche Entwicklung des Handnotensatzes im
+"Uberblick}
+ Mit der Erfindung des Buchdruckes mit beweglichen Lettern
+ durch Johannes Gutenberg um das Jahr 1440
+begannen fast gleichzeitig die ersten Versuche,
+neben Texten auch Musiknoten zu setzen.
+Die Notenzeichen
+wurden in Holz geschnitten, sp"ater mit Holz- und Metall-Lettern
+gesetzt.
+Gleichzeitig entwickelte sich das konkurrierende Verfahren des
+Stichs in Kupfer-, Zinn- und Zinkplatten:
+in die hochgl"anzende Metallplatte erfolgt nach einer
+"Ubersichtseinteilung und Rastrieren der Notenlinien das Einschlagen
+der Typen (Notenk"opfe, Zeichen und Buchstaben) mit Hilfe von
+Stahlstempeln und anschlie\3end das eigentliche ``Stechen'' der
+Taktstriche, Stiele (Notenh"alse), Kopfstriche, Balken, Crescendozeichen
+und Bogen.
+
+Im Laufe der Jahrhunderte wurden viele Versuche unternommen, das
+aufwendige und komplizierte Verfahren zur Herstellung einer Druckvorlage
+zu vereinfachen.
+Im Jahr 1755 f"uhrte J. G. Immanuel Breitkopf den Typendruck zu einer
+praktikablen und technisch ausgereiften L"osung, die bis heute
+unver"andert angewandt wird. Dieses Verfahren eignet sich jedoch nur
+f"ur kleinere Notenbeispiele, die in laufenden Text eingegliedert werden
+(z.B. in Schulliederb"uchern), da die Zahl der Lettern selbst f"ur kurze
+einzeilige St"ucke sehr gro\3 ist.
+
+Als einziges Verfahren neben dem Plattenstich, das universell anwendbar
+ist, hat sich das Autographie-Lichtpause-Verfahren, die sogannte
+\disp{Autographie}, erwiesen. Dieses Verfahren kommt dem Versuch
+gleich, die Lettern des Buchdruckes \disp{handschriftlich} nachzuahmen,
+denn die Noten werden von Hand auf Pauspapier geschrieben und auf
+lichtempfindlich gemachte Offset-Druckplatten kopiert. Die Autographie
+ist weniger zeitaufwendig aber qualitativ minderwertiger als der
+Plattenstich.
+
+\subsubsubheading{Entwicklung des automatisierten Notensatzes}
+Der Grund f"ur das Scheitern aller anderen Verfahren, z.B. die Benutzung
+ einer \disp{Noten-Schreibmaschine}, ist in erster Linie in der
+Vielfalt der Notenschriftelemente und der M"oglichkeiten ihrer
+Anordnung auf dem Blatt zu sehen, die f"ur
+ eine \disp{korrekte} Wiedergabe eines Musikst"uckes notwendig ist.
+
+Im Gegensatz zum Textsatz war es also kaum m"oglich, den Handnotenstich
+maschinell auszuf"uhren, da der Satzproze\3 komplizierter ist.
+Jedes Notenschriftelement enth"alt mehrere Informationen.
+Zum Beispiel dr"uckt die
+\disp{Gestalt} einer Note ihre zeitliche
+Dauer aus und die Position im Zeilensystem ihre Tonh"ohe.
+Die Menge an Informationen, die auf engsten Raum dem Musiker
+vermittelt werden mu\3, macht eine Vielzahl von Satz- und Notations\-%
+regeln erforderlich. Diese Konventionen sind historisch gewachsen und
+m"ussen genauestens beachtet werden.
+Da au\3erdem eine gro\3e Anzahl
+von (mitunter variablen) Schriftzeichen ben"otigt wird, war
+ jeder Versuch, mit beweglichen Lettern zu setzen,
+von vornherein zum Scheitern verurteilt.
+
+Bis heute ist kein Verfahren bekannt, das den Satzvorgang beschleunigt
+und gleichzeitig die Qualit"at des
+Metallplattenstichs zumindest erreicht.
+
+Als die ersten leistungsf"ahigen Rechner in den Universit"aten und
+anderen Forschungseinrichtungen zu Verf"ugung standen, wurden sie
+zun"achst f"ur die Musiktheorie interessant als Speicherm"oglichkeit
+f"ur Musikliteratur. Es wurden also zun"achst
+Eingabesprachen entwickelt, die eine interne Darstellung von Noten
+m"oglich machten. Arbeiten auf diesem Gebiet erschienen unter anderen
+von Brook und Gould \lit{\brook}. Diese Eingabesprachen wurden
+weiterentwickelt, so da\3 sie f"ur die Musikanalyse verwendet werden
+konnten (s. z.B. die Arbeit von R. Werner \lit\werner).
+Die Ergebnisse konnten auch genutzt werden, Programmsysteme,
+die den automatisierten Notensatz erm"oglichen, im folgenden kurz
+``Notensatzsysteme'' genannt, zu entwickeln.
+ Dieses Gebiet wurde zun"achst von
+ von D. Byrd (\lit\byrd), D. A. Gomberg (\lit\gomb) und
+L. Smith (\lit\smith) bearbeitet.
+Bei diesen sind verschiedene
+Entwicklungsziele zu beachten: die Spannbreite reicht von spezialisierten
+Zeichenprogrammen bis zum Versuch, den Noten\disp{satz} zu automatisieren.
+Allen bisher bekannt gewordenen Notensatzsystemen ist gemeinsam, da\3
+sie jeweils nur Teilbereiche der konventionellen Notenschrift abdecken.
+
+In letzter Zeit sind neue Versuche
+bekannt geworden, Notensatz zu automatisieren
+(s. z.B. \lit{\Gourlay}).
+
+
+Das liegt einerseits an der steigenden Ausgabequalit"at
+von graphischen Systemen und andererseits an den steigenden Kosten
+von neuen Editionen, die im manuellen Verfahren hergestellt werden.
+Um qualititativ hochwertige Ergebnisse zu erzielen,
+sind jedoch nur solche automatisierten
+Satzsysteme von Interesse, die weitgehend
+unabh"angig vom Ausgabeger"at und benutzerfreundlich arbeiten.
+Das hei\3t, da\3 Benutzer, die keine Satzregeln kennen,
+mit Hilfe eines Satzprogramms ein \disp{korrekt} gesetztes Notenblatt
+erstellen k"onnen.
+
+Der Vorteil des Computersatzes gegen"uber manuellen oder
+anderen maschinellen Satzverfahren
+liegt einerseits darin, da\3 die einzelnen Stimmen eines
+ Musikst"ucks im wesentlichen nur einmal
+eingegeben werden brauchen, aber auf verschiedene Weise verarbeitet
+werden k"onnen (z.B. sowohl f"ur die Partitur als auch f"ur die
+Orchesterstimmen, so da\3 die Fehleranf"alligkeit vermindert wird),
+andererseits in der M"oglichkeit der
+dynamischen Notenplazierung (z.B.
+der automatisierte Umbruch von Notenzeilen).
+
+
+\subsubsubheading{Verwendung eines Textsatzsystems f"ur den Notensatz}
+Aus der Benutzung des Programmsystems zum Satz mathematischer Texte von
+D. E. Knuth, genannt \TeX, am hiesigen Institut erwuchs das Interesse,
+dessen M"oglichkeiten f"ur den Notensatz zu verwenden.
+Dieses Textsatzsystem zeichnet sich aus durch einen
+qualitativ hochwertigen Algorithmus zum
+Umbruch von Zeilen und durch einen weitgehend zeilenungebundenen Satz
+von mathematischen Formeln.
+Eine von \TeX\ zu verarbeitende
+Eingabedatei besteht dabei aus Texten, die mit Hilfe von zus"atzlich
+einzugebenden sogenannten ``Kontrollsequenzen'' (dies sind in der
+Hauptsache Satzanweisungen) formatiert werden k"onnen.
+Der Benutzer kann dabei
+auch aus bereits bekannten Kontrollsequenzen eigene zusammenstellen und
+benennen. Dadurch entsteht eine neue Kontrollsequenz, das sogenannte
+``Makro''. Mehrere solcher Makros k"onnen zu einem sogenannten ``Format''
+zusammengefa\3t werden. Dies erm"oglicht es, Texte nach eigenen
+Vorstellungen zu gestalten.
+
+Die grundlegende Frage zu Beginn dieser Arbeit war es, ob es m"oglich
+ist, ein Textsatzsystem zur L"osung des Notensatzproblems
+einzusetzen,
+ das unter anderem darin besteht,
+die umfangreichen Notations- und Satzregeln zu programmieren.
+
+Es wird gezeigt, da\3 eine Erweiterung zu einem Notensatzsystem
+m"oglich ist, ohne das zugrunde gelegte Programm zu "andern.
+
+Um das entwickelte System
+benutzbar zu machen, wurde eine eigene Eingabesprache entwickelt, denn
+die \TeX-Eingabe selbst ist sehr aufwendig,
+da man
+die Notenschrift nicht als fortlaufenden Text eingeben kann, sondern nur
+Kontrollsequenzen verwenden mu\3.
+Dazu wurde ein "Ubersetzungsprogramm angefertigt, das zus"atzlich zu der
+Transformation der Eingabesprache in \TeX\ auch noch einige
+Notensatzregeln umsetzt, zum Beispiel die Bestimmung der
+Notenhalsrichtung bei Akkorden und Balkengruppen.
+Die Eingabesprache wird im ersten Teil
+dieser Arbeit entwickelt --- die Beschreibung des
+dazugeh"origen "Ubersetzungsprogramms ist als Anhang B angef"ugt ---,
+ w"ahrend im zweiten Teil die Verfahren zur
+Ausf"uhrung der Satzregeln hergeleitet werden.
+In der Literatur nicht beschriebene Verfahren werden entwickelt.
+
+
+Ein erstes Ergebnis war der einstimmige Notensatz in
+\disp{einem} System (im Sinne der Musiktheorie, s.a. Kapitel 7),
+der noch am ehesten dem Textsatz "ahnelt. Das Hauptproblem
+bei der Notation und beim Satz
+mehrerer zusammengefa\3ter Systeme ist, da\3 die horizontale Plazierung
+eines Elementes der Notenschrift nicht mehr eindimensional entscheidbar,
+sondern abh"angig vom zweidimensionalen Umfeld ist. Ein Problem dieser
+Art ist im Textsatz unbekannt.
+Es kann jedoch eine mehrstimmige Notation in einem System erreicht
+werden.
+
+Alle in dieser Arbeit aufgef"uhrten Notenbeispiele wurden
+durch das Satzsystem erzeugt und konnten in den laufenden
+Text eingegliedert werden
+(Ausnahme: Das in 11.2.1 angef"uhrte Beispiel wurde aus der Arbeit von
+D. A. Gomberg \lit{\gomb} entnommen.)
+Weitere (l"angere) Notenbeispiele
+finden sich in Anhang A.
+Das "Ubersetzungsprogramm wurde als Anhang B in die Arbeit
+aufgenommen, die Syntax der Eingabesprache als Anhang C und
+die verwendeten Zeichens"atze in Anhang D.
+Das entwickelte Format und die \mf-Programme der Zeichens"atze
+wurden aus Kostengr"unden nicht an
+diese Arbeit angef"ugt, k"onnen jedoch zusammen mit den Fonts auf
+Anfrage auf Diskette zugeschickt werden.
+
+Das entwickelte Notensatzsystem erreicht eine
+publikationsf"ahige Qualit"at und ist f"ur
+satzunkundige Benutzer wie f"ur Benutzer
+mit festen Vorstellungen vom Layout
+geeignet. Es bleibt im Hinblick auf
+zeitgen"ossische Musik erweiterbar und erm"oglicht die Einbettung von
+Musikst"ucken in Text.
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdocinh.tex b/macros/mtex/documentation/mdocinh.tex
new file mode 100644
index 0000000000..f2568f4a1d
--- /dev/null
+++ b/macros/mtex/documentation/mdocinh.tex
@@ -0,0 +1,91 @@
+\heading{Inhaltsverzeichnis}
+%
+\message{Seitennummern muessen per Hand angepasst werden!}
+\message{(in Datei MDOCINH.TEX)}
+%
+{\tabskip 0pt plus 1fil
+\halign to\hsize {\quad\bf#\hfil\quad&\hbox to 14cm{#\dotfill}%
+&\quad\bf\hfil#\cr
+&\bf Einleitung &1\cr
+&\rm Geschichtliche Entwicklung des Handnotensatzes im "Uberblick &1\cr
+&\rm Entwicklung des automatisierten Notensatzes &1\cr
+&\rm Verwendung eines Textsatzsystems f"ur den Notensatz &2\cr
+\cr
+\noalign{{\bf Teil 1: Ein Verfahren zur Notenschrifteingabe\par}}
+\cr
+1&\bf Noteneingabesprachen im Zusammenhang mit dem automatisierten
+&5\cr
+%Notensatz&5\cr
+1.1&\rm Problematik des automatisierten Notensatzes &5\cr
+1.2&\rm Einsatz des Textsatzsystems \TeX\ f"ur den Notensatz &6\cr
+1.3&\rm Grundlegende Anforderungen an ein Verfahren zur Noteneingabe
+&8\cr
+1.4&\rm Er"orterung und Vergleich vorhandener Eingabeverfahren
+&9\cr
+\cr
+2&\bf Formale Darstellung der Noteneingabesprache&17\cr
+2.1&\rm Theoretische Grundlagen &17\cr
+2.2&\rm Die Syntax der Noteneingabesprache in Backus--Naur--Form &22\cr
+\cr
+3&\bf Semantische Struktur der Noteneingabesprache&31\cr
+3.1&\rm Eingabe eines Tons &31\cr
+3.2&\rm Pausen, Atemzeichen und Taktstriche &33\cr
+3.3&\rm Notengruppen &33\cr
+3.4&\rm Anfang und Ende eines Musikst"ucks &35\cr
+3.5&\rm Tonh"ohe, Rhythmus, Vortragsbezeichnungen &35\cr
+3.6&\rm Ein-- oder mehrstimmige St"ucke in einem System &37\cr
+3.7&\rm Mehrstimmige St"ucke in mehreren Systemen &38\cr
+3.8&\rm Allgemeine Anweisungen &39\cr
+\cr
+\noalign{{\bf Teil 2: Verfahren zur Notenschriftausgabe\par}}
+\cr
+4&\bf Anforderungen an das Notensatzsystem &41\cr
+4.1&\rm Arbeitsschritte beim manuellen Notensatz &41\cr
+4.2&\rm Anforderungen f"ur den automatisierten Notensatz &41\cr
+4.3&\rm Vor"uberlegungen &42\cr
+\cr
+5&\bf \TeX \ - Konzepte &45\cr
+5.1&\rm Basiselemente &45\cr
+5.2&\rm Verfahren zum Ausschlu\3 einer Box auf gew"unschte Breite bzw. H"ohe
+&47\cr
+5.3&\rm Der Zeilenumbruchalgorithmus &53\cr
+5.4&\rm Der Seitenumbruch &57\cr
+\cr
+\cr\cr%\noalign{\goodbreak}
+6&\bf R"aumliche Einteilung des Notenblattes &59\cr
+6.1&\rm Satz- und Notationsregeln zur r"aumlichen Einteilung &59\cr
+6.2&\rm Ausf"uhrung des Absteckens &61\cr
+\cr
+7&\bf Punktierung bei einstimmigem Notensatz &67\cr
+7.1&\rm Regeln zur Bestimmung des Ausschlusses &67\cr
+7.2&\rm Ausf"uhrung des Punktierens &69\cr
+\cr
+8&\bf Setzen der Notenschriftelemente &73\cr
+8.1&\rm Regeln zur Notation der Notenschriftelemente &73\cr
+8.2&\rm Das Setzen der Notenschriftelemente &75\cr
+\cr
+9&\bf Der Balken- und Bogensatz &81\cr
+9.1&\rm Entwicklung des Verfahrens zur Verbalkung &81\cr
+9.2&\rm Entwicklung eines Verfahrens zur Phrasierung &87\cr
+9.3&\rm Ausf"uhrung des Balken- und Bogensatzes &91\cr
+\cr
+10&\bf Einf"ugen von Texten und Spielanweisungen &95\cr
+10.1&\rm Regeln f"ur das Einf"ugen von Texten &95\cr
+10.2&\rm Textunterlage &96\cr
+10.3&\rm Positionierung der Artikulationszeichen &97\cr
+\cr
+11&\bf Mehrstimmiger Notensatz &99\cr
+11.1&\rm Regeln f"ur die mehrstimmige Notation &99\cr
+11.2&\rm Vertikale Ausrichtung bei D.A. Gomberg &100\cr
+11.3&\rm Ausf"uhrung des zweistimmigen Setzens &101\cr
+\cr
+12&\bf Zusammenfassung &103\cr
+\cr
+13&\bf Literatur &105\cr
+\cr
+ &\bf Anhang A: Beispiele &107\cr
+ &\bf Anhang B: Das "Ubersetzungsprogramm &115\cr
+ &\bf Anhang C: Darstellung der Syntax in Backus--Naur--Form &137\cr
+ &\bf Anhang D: Zeichens"atze &141\cr}}
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdocpic1.tex b/macros/mtex/documentation/mdocpic1.tex
new file mode 100644
index 0000000000..d8f692ffa8
--- /dev/null
+++ b/macros/mtex/documentation/mdocpic1.tex
@@ -0,0 +1,34 @@
+
+\centerline{
+ \beginpicture
+ \setcoordinatesystem units <1.0cm,1.0cm>
+ \setlinear
+ \setdots % speed up PiCTeX
+%
+ \put {$A$} [b] <0mm,1.5mm> at 3.0 2.5
+ \put {$\bullet$} at 3.0 2.5
+%
+ \put {$v_1$} [t] <0mm,-1.5mm> at 0.0 0.0
+ \put {$\bullet$} at 0.0 0.0
+ \plot 0.0 0.0 3.0 2.5 /
+%
+ \put {$v_2$} [t] <0mm,-1.5mm> at 1.0 0.0
+ \put {$\bullet$} at 1.0 0.0
+ \plot 1.0 0.0 3.0 2.5 /
+%
+ \put {$\bullet$} at 2.5 0.0
+ \plot 2.5 0.0 3.0 2.5 /
+%
+ \put {$\bullet$} at 3.5 0.0
+ \plot 3.5 0.0 3.0 2.5 /
+%
+ \put {$\bullet$} at 4.5 0.0
+ \plot 4.5 0.0 3.0 2.5 /
+%
+ \put {$v_n$} [t] <0mm,-1.5mm> at 6.0 0.0
+ \put {$\bullet$} at 6.0 0.0
+ \plot 6.0 0.0 3.0 2.5 /
+%
+ \endpicture
+}
+
diff --git a/macros/mtex/documentation/mdocpic2.tex b/macros/mtex/documentation/mdocpic2.tex
new file mode 100644
index 0000000000..b7b4130e01
--- /dev/null
+++ b/macros/mtex/documentation/mdocpic2.tex
@@ -0,0 +1,45 @@
+
+\centerline{
+ \beginpicture
+ \setcoordinatesystem units <1mm,1mm>
+ \setlinear
+%
+ \putrule from 0 00 to 40 00
+ \putrule from 0 04 to 40 04
+ \putrule from 0 08 to 40 08
+ \putrule from 0 12 to 40 12
+ \putrule from 0 16 to 40 16
+ \setsolid
+ \put {$\bigcirc$} [rt] at 25 8 %Notenkopf rechts
+ \putrule from 25 6 to 25 20 %Notenhals rechts
+ \putrule from 9 -4 to 16 -4 %kurze Notenlinie
+ \put {$\bigcirc$} [rt] at 15 -4 %Notenkopf links
+ \putrule from 15 -6 to 15 8 %Notenhals links
+ \setdots <1mm>
+ \putrule from 15 8 to 15 14 %Notenhals Verlaengerung links
+ \setsolid
+ \putrule from 15 -12 to 25 -12 % Beschriftung unten
+ \putrule from 15 -11 to 15 -13
+ \putrule from 25 -11 to 25 -13
+ \put {$h$} [t] at 20 -13
+ \putrule from -4 14 to -4 20 % Beschriftung links
+ \putrule from -3 14 to -5 14
+ \putrule from -3 20 to -5 20
+ \put {$\epsilon\cdot h$} [rB] at -5 15
+ \setdashes
+ \putrule from -2 20 to 25 20 %hilfslinien
+ \putrule from -2 14 to 15 14
+ \setdots
+ \plot 10 2 30 26 / % Balken-Gerade gepunktet
+ \setdots <0.5mm>
+ \plot 15 14 25 20 / % Balken
+ \plot 15 13 25 19 /
+ \plot 15 12 25 18 /
+ \circulararc 30 degrees from 17 20 center at 25 20 % Winkel
+ \setsolid
+ \putrule from 19 18 to 19 22
+ \put {$\alpha$} [b] at 19 23
+%
+ \endpicture
+}
+
diff --git a/macros/mtex/documentation/mdocpic3.tex b/macros/mtex/documentation/mdocpic3.tex
new file mode 100644
index 0000000000..b234d0bf0c
--- /dev/null
+++ b/macros/mtex/documentation/mdocpic3.tex
@@ -0,0 +1,46 @@
+
+\centerline{
+ \beginpicture
+ \setcoordinatesystem units <1mm,1mm>
+ \setlinear
+%
+ \putrule from 0 00 to 60 00
+ \putrule from 0 04 to 60 04
+ \putrule from 0 08 to 60 08
+ \putrule from 0 12 to 60 12
+ \putrule from 0 16 to 60 16
+ \setsolid
+ \put {$\bigcirc$} [rt] at 10 2 %Notenkopf 1
+ \putrule from 10 0 to 10 14 %Notenhals 1
+ \setdots <1mm>
+ \putrule from 10 14 to 10 23.5 %Notenhals Verlaengerung 1
+ \setsolid
+ \put {$\bigcirc$} [rt] at 20 12 %Notenkopf 2
+ \putrule from 20 10 to 20 22 %Notenhals 2
+ \setdots <1mm>
+ \putrule from 20 22 to 20 25 %Notenhals Verlaengerung 2
+ \setsolid
+ \put {$\bigcirc$} [rt] at 30 4 %Notenkopf 3
+ \putrule from 30 2 to 30 16 %Notenhals 3
+ \setdots <1mm>
+ \putrule from 30 16 to 30 26.5 %Notenhals Verlaengerung 3
+ \setsolid
+ \put {$\bigcirc$} [rt] at 40 20 %Notenkopf 4
+ \putrule from 40 18 to 40 28 %Notenhals 4
+ % hier keine Verlaengerung
+ \put {$\bigcirc$} [rt] at 50 8 %Notenkopf 5
+ \putrule from 50 6 to 50 20 %Notenhals 5
+ \setdots <1mm>
+ \putrule from 50 20 to 50 29.5 %Notenhals Verlaengerung 5
+ \setsolid
+%
+ \setdots
+ \plot 0 12.5 60 21.5 / % Balken-Gerade gepunktet
+ \setdots <0.5mm>
+ \plot 10 23.5 50 29.5 / % Balken
+ \plot 10 22.5 50 28.5 /
+ \plot 10 21.5 50 27.5 /
+%
+ \endpicture
+}
+
diff --git a/macros/mtex/documentation/mdocpic4.tex b/macros/mtex/documentation/mdocpic4.tex
new file mode 100644
index 0000000000..4a25fb53e3
--- /dev/null
+++ b/macros/mtex/documentation/mdocpic4.tex
@@ -0,0 +1,24 @@
+
+\centerline{
+ \beginpicture
+ \setcoordinatesystem units <1mm,1mm>
+ \setlinear
+%
+ \setdots <1mm>
+ \setlinear
+ \plot 0 0 60 20 /
+ \put {$\bullet$} at 0 0
+ \put {$A_1$} [rt] at -1 0
+ \put {$\bullet$} at 60 20
+ \put {$E_n$} [lt] at 61 20
+ \setquadratic
+ \plot 0 0 30 20 60 20 /
+ \setlinear
+ \plot 30 10 30 16 /
+ \put {$\epsilon$} [rb] at 29 11
+ \setdots
+ \plot 0 6 60 26 /
+%
+ \endpicture
+}
+
diff --git a/macros/mtex/documentation/mdoctit.tex b/macros/mtex/documentation/mdoctit.tex
new file mode 100644
index 0000000000..5df13080fc
--- /dev/null
+++ b/macros/mtex/documentation/mdoctit.tex
@@ -0,0 +1,15 @@
+\hbox{ }
+\vskip3cm
+\centerline{\hugem Automatisierter Notensatz mit \TeX}
+\vskip5cm
+\centerline{von}
+\vskip1cm
+\centerline{Angelika Schofer und Andrea Steinbach}
+\vskip1cm
+\centerline{Rheinische Friedrich--Wilhelms--Universit"at}
+\vskip.5cm
+\centerline{Bonn}
+\vskip1cm
+\centerline{August 1987}
+
+\vfill\eject
diff --git a/macros/mtex/documentation/mdoctrns.tex b/macros/mtex/documentation/mdoctrns.tex
new file mode 100644
index 0000000000..6990fb99ad
--- /dev/null
+++ b/macros/mtex/documentation/mdoctrns.tex
@@ -0,0 +1,1201 @@
+%format plaine
+\input webmac
+\newdimen\pageheight \pageheight=25cm
+\newdimen\pagewidth \pagewidth=16cm
+\advance\topskip by 3mm
+\parindent0pt
+\frenchspacing
+\def\_{\us}
+\def\8{\char25{}}
+\catcode`\"=\active %Umlaute
+\def"{\accent'177}
+\openup -3pt
+
+\N1. Anhang B: Definitionen.
+
+\fi
+
+\M2. One of the extensions to standard \\{pascal} that we shall deal with
+is to use a default \&{case} as in \\{tangle}, \\{weave}, etc.
+
+\Y\P\D \37$\\{othercases}\S\\{otherwise}$\C{default for cases not listed
+explicitly}\par
+\P\D \37$\\{endcases}\S$ \6
+\&{end} \C{follows the default case}\par
+\P\F \37$\\{othercases}\S\\{else}$\par
+\P\F \37$\\{endcases}\S\\{end}$\par
+\fi
+
+\M3. Folgende Definitionen sind Abk"urzungen f"ur den Befehl, eine Meldung
+gleichzeitig auf den Bildschirm und in eine Datei zu schreiben.
+
+\Y\P\D \37$\\{writeln\_error}(\#)\S\\{writeln}(\\{err},\39\#)$;\5
+$\\{writeln}(\\{outterm},\39\#)$\par
+\P\D \37$\\{write\_error}(\#)\S\\{write}(\\{err},\39\#)$;\5
+$\\{write}(\\{outterm},\39\#)$\par
+\fi
+
+\N4. Anhang B: Heading und Funktion getchar.
+
+\fi
+
+\M5. Programmkopf und Variablendeklarationen\par
+Das Programm hat vier Textfiles als Parameter. \\{infile} enth"alt die
+Eingabedaten in der entwickelten Noten\-ein\-ga\-be\-sprache. Nach der
+Bearbeitung durch das vorliegende Programm werden die Daten in eine
+f"ur die Notenausgabe ben"otigte Datei \\{outfile} geschrieben.
+Syntax-Fehler in der Eingabedatei werden mit Hilfe von
+\\{outterm} auf dem Terminal angezeigt und gleichzeitig in die
+Datei \\{err} geschrieben. Mit \\{interm} sind
+Eingaben vom Terminal m"oglich.
+
+\Y\P\4\&{program}\1\ \37$\\{trans}(\\{infile},\39\\{outfile},\39\\{err},\39%
+\\{outterm},\39\\{interm})$; \6
+\4\&{label} \X18:Labels\X \6
+\4\&{type} \X44:New type\X \6
+\4\&{var} \37\X6:Files\X\X7:Globals\X\X8:Function getchar\X\X31:Procedure
+newline music\X\X62:Procedure error\X\X21:Function ausruf\X\X67:Procedure macro%
+\X\X65:Procedure backslash\X\X33:Procedure nonmusic\X\X35:Procedure music\X\par
+\fi
+
+\M6. In diesem Teil sind die ben"otigten Textfiles deklariert.
+
+\Y\P$\4\X6:Files\X\S$\6
+\4\\{infile}: \37\\{text};\6
+\4\\{outfile}: \37\\{text};\6
+\4\\{outterm}: \37\\{text};\6
+\4\\{interm}: \37\\{text};\6
+\4\\{err}: \37\\{text};\par
+\U section~5.\fi
+
+\M7. Es folgt nun die Einleseroutine \\{get\_char}
+und die Deklaration
+der daf"ur ben"otigten Variablen.
+\\{get\_char} ist eine function, die auf die folgenden Weise
+an das Programm das n"achste Zeichen - einen Character -
+zur"uckgibt.
+\par
+Die Eingabedatei \\{infile} wird zeilenweise abgearbeitet. Jede neue
+Zeile wird auf den string \\{in\_line} eingelesen, der wiederum auf
+den array \\{buffer} kopiert wird. Dieses Feld enth"alt gleichzeitig
+drei Zeilen der Eingabedatei: die letzte abgearbeitete Zeile der
+L"ange \\{last\_line\_length}; die Zeile, die gerade bearbeitet wird
+- sie hat die L"ange \\{actual\_line\_length} - und die Zeile, die als
+n"achstes gelesen werden soll mit der L"ange \\{next\_line\_length}.
+Die Variable \\{line\_ptr} gibt dabei immer an, wie weit die
+\\{actual\_line} abgearbeitet ist. \par
+Falls das Ende dieser Zeile
+erreicht ist, werden die Zeilen im \\{buffer} nach links geschoben.
+Die \\{last\_line} wird durch die \\{actual\_line}, die \\{actual\_line} durch
+die \\{next\_line} und die \\{next\_line} durch eine neue \\{in\_line}
+ersetzt.
+Bei einem Zeilenwechsel wird die Variable \\{change} auf true
+gesetzt, ansonsten hat sie den Wert false.
+\par
+Mit Hilfe der character-Variablen \\{sign} wird jeweils das n"achste
+Zeichen einer Zeile an das Programm "ubergeben.
+Die gelesenen Zeilen werden mit \\{line\_num} gez"ahlt.
+Beim ersten Einlesen von der Datei \\{in\_file} kann das
+``Weiterschieben'' im \\{buffer} unterbleiben, deshalb gibt es
+daf"ur eine gesonderte Abfrage.
+Gesondert werden ebenfalls die F"alle $\\{inline\_length}=0$ und
+$\\{actual\_line\_length}=0$ behandelt. Im ersten Fall wird der Teil des
+\\{buffer}, der nicht belegt ist, mit blanks besetzt, um falsche
+Belegung von \\{sign} zu vermeiden, im zweiten Fall erh"alt
+\\{get\_char} den Wert \.{\'\ \'}.
+\par
+\noindent\\{eof\_infile} zeigt an, wenn die Eingabedatei einschlie\8lich
+der letzten Zeile abgearbeitet ist. Diese Variable ist
+notwendig, weil das Ende der Datei mit dem Lesen der letzten Zeile
+auf \\{in\_line} erreicht ist, diese dann aber noch abgearbeitet
+werden mu\8.
+
+
+
+\Y\P$\4\X7:Globals\X\S$\6
+\4\\{buffer}: \37\&{array} $[1\to240]$ \1\&{of}\5
+\\{char};\2\6
+\4\\{in\_line}: \37$\\{string}(80)$;\6
+\4\\{sign}: \37\\{char};\6
+\4\\{last\_line\_length}: \37\\{integer};\6
+\4\\{actual\_line\_length}: \37\\{integer};\6
+\4\\{next\_line\_length}: \37\\{integer};\6
+\4\\{inline\_length}: \37\\{integer};\6
+\4\\{line\_ptr}: \37\\{integer};\6
+\4\\{line\_num}: \37\\{integer};\6
+\4\\{eof\_infile}: \37\\{boolean};\6
+\4\\{change}: \37\\{boolean};\par
+\A sections~17, 20, 36, 39, 41, 45, 50, 57, and~61.
+\U section~5.\fi
+
+\M8.
+
+\Y\P$\4\X8:Function getchar\X\S$\6
+\4\&{function}\1\ \37\\{get\_char}: \37\\{char};\6
+\4\&{var} \37\|j: \37\\{integer};\2\6
+\&{begin} \37\&{if} $\\{line\_num}=0$ \1\&{then}\6
+\&{begin} \37\&{if} $\R\\{eof}(\\{infile})$ \1\&{then}\6
+\&{begin} \37\X9:Lesen der n"achsten Zeile von infile\X;\6
+\X10:Einlesen der neuen Zeile in den buffer\X;\6
+\&{end}\6
+\4\&{else} \&{goto} \3710;\2\6
+\&{end};\2\6
+\&{if} $\\{line\_ptr}>\\{last\_line\_length}+\\{actual\_line\_length}$ \1%
+\&{then}\6
+\&{begin} \37\X11:Neubelegung der \\{actual\_line} durch \\{next\_line},
+Zeilenwechsel\X;\6
+$\\{get}(\\{infile})$;\6
+\&{if} $\R\\{eof}(\\{infile})$ \1\&{then}\6
+\&{begin} \37\X9:Lesen der n"achsten Zeile von infile\X;\6
+\&{if} $\\{inline\_length}=0$ \1\&{then}\6
+\&{begin} \37\X12:\\{in\_line} ist Leerzeile bzw. existiert nicht\X;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\X10:Einlesen der neuen Zeile in den buffer\X;\6
+\&{end};\2\6
+\&{end}\6
+\4\&{else} \&{begin} \37\X12:\\{in\_line} ist Leerzeile bzw. existiert nicht\X;%
+\6
+\&{end};\2\6
+$\\{line\_ptr}\K\\{last\_line\_length}+1$;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\X13:Kein Zeilenwechsel\X;\6
+\&{end};\2\6
+\&{if} $\\{actual\_line\_length}=0$ \1\&{then}\6
+\&{begin} \37\X14:\\{actual\_line} ist Leerzeile\X;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\X15:Zeichen lesen\X;\6
+\&{end};\2\6
+$\\{line\_ptr}\K\\{line\_ptr}+1$;\5
+$\\{eof\_infile}\K(\\{eof}(\\{infile})\W(\\{line\_ptr}>\\{last\_line\_length}+%
+\\{actual\_line\_length}))$;\6
+\&{end};\par
+\U section~5.\fi
+
+\M9. Es wird eine neue Zeile aus der Eingabedatei \\{infile} gelesen.
+"Uberfl"ussigen blanks werden entfernt.
+
+\Y\P$\4\X9:Lesen der n"achsten Zeile von infile\X\S$\6
+$\\{read}(\\{infile},\39\\{in\_line})$;\5
+$\\{in\_line}\K\\{ltrim}(\\{in\_line})$;\5
+$\\{in\_line}\K\\{trim}(\\{in\_line})$;\5
+$\\{in\_line}\K\\{compress}(\\{in\_line})$;\5
+$\\{inline\_length}\K\\{length}(\\{in\_line})$;\par
+\U sections~8 and~8.\fi
+
+\M10. Die neue Zeile wird in den string \\{buffer} gelesen.
+
+\Y\P$\4\X10:Einlesen der neuen Zeile in den buffer\X\S$\6
+\&{for} $\|j\K1\mathrel{\&{to}}\\{inline\_length}$ \1\&{do}\5
+$\\{buffer}[\\{actual\_line\_length}+\\{next\_line\_length}+\|j]\K\\{in\_line}[%
+\|j]$;\2\6
+$\\{last\_line\_length}\K\\{actual\_line\_length}$;\5
+$\\{actual\_line\_length}\K\\{next\_line\_length}$;\5
+$\\{next\_line\_length}\K\\{inline\_length}$;\par
+\U sections~8 and~8.\fi
+
+\M11. Die \\{actual\_line} im \\{buffer} wird mit einer neuen Zeile, n"amlich
+der \\{next\_line} belegt. Auf \\{last\_line} wird die vorherige \\{actual%
+\_line}
+geschrieben. \\{change} wird true, da ein Zeilenwechsel
+stattfindet.
+
+\Y\P$\4\X11:Neubelegung der \\{actual\_line} durch \\{next\_line},
+Zeilenwechsel\X\S$\6
+\&{for} $\|j\K1\mathrel{\&{to}}\\{actual\_line\_length}$ \1\&{do}\5
+$\\{buffer}[\|j]\K\\{buffer}[\\{last\_line\_length}+\|j]$;\2\6
+\&{for} $\|j\K1\mathrel{\&{to}}\\{next\_line\_length}$ \1\&{do}\5
+$\\{buffer}[\\{actual\_line\_length}+\|j]\K\\{buffer}[\\{last\_line\_length}+%
+\\{actual\_line\_length}+\|j]$;\2\6
+$\\{line\_num}\K\\{line\_num}+1$;\5
+$\\{change}\K\\{true}$;\par
+\U section~8.\fi
+
+\M12. \\{in\_line} ist eine Leerzeile.
+
+\Y\P$\4\X12:\\{in\_line} ist Leerzeile bzw. existiert nicht\X\S$\6
+\&{for} $\|j\K\\{actual\_line\_length}+\\{next\_line\_length}+1\mathrel{%
+\&{to}}240$ \1\&{do}\5
+$\\{buffer}[\|j]\K\.{\'\ \'}$;\2\6
+$\\{last\_line\_length}\K\\{actual\_line\_length}$;\5
+$\\{actual\_line\_length}\K\\{next\_line\_length}$;\5
+$\\{next\_line\_length}\K0$;\par
+\U sections~8 and~8.\fi
+
+\M13. Es findet kein Zeilenwechsel statt, da das Ende der \\{actual\_line} noch
+nicht erreicht ist: \\{change} ist false.
+
+\Y\P$\4\X13:Kein Zeilenwechsel\X\S$\6
+$\\{change}\K\\{false}$;\par
+\U section~8.\fi
+
+\M14. Die \\{actual\_line} ist eine Leerzeile. Da ein Wert an das Programm
+zur"uckgegeben werden mu\8, erh"alt \\{get\_char} den Wert \.{\'\ \'}.
+
+\Y\P$\4\X14:\\{actual\_line} ist Leerzeile\X\S$\6
+$\\{get\_char}\K\.{\'\ \'}$;\par
+\U section~8.\fi
+
+\M15. Ist der \\{buffer} richtig belegt, so kann das n"achste Zeichen auf
+\\{get\_char} eingelesen werden.
+
+\Y\P$\4\X15:Zeichen lesen\X\S$\6
+$\\{get\_char}\K\\{buffer}[\\{line\_ptr}]$;\par
+\U section~8.\fi
+
+\N16. Anhang B: Hauptprogramm und Function ausruf.
+
+\fi
+
+\M17. Hauptprogramm\par
+Im Hauptprogramm werden die oben definierten Textfiles zum Lesen bzw.
+Schreiben ge"offnet. Solange das Ende der Eingabedatei nicht
+erreicht ist, wird mit der Variablen \\{music\_num}
+unterschieden, ob gerade eine Noteneingabe ($\\{music\_num}=\\{true}$)
+oder eine
+Texteingabe ($\\{music\_num}=\\{false}$) bearbeitet wird.
+Je nachdem wird entweder die Routine \\{nonmusic} oder \\{music} aufgerufen.
+Texteingaben werden so wie sie in der Eingabedatei stehen in
+die Ausgabedatei \\{outfile} geschrieben, also Zeile f"ur Zeile.
+Noteneingaben werden in eine
+andere Form gebracht.
+
+Falls innerhalb einer Routine das Ende der Eingabedatei erreicht
+wird, soll das Programm beendet werden. An der entsprechenden Stelle
+in der Routine wird dann auf das Label 10 verwiesen.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{music\_num}: \37\\{boolean};\par
+\fi
+
+\M18. Labeldeklaration
+\Y\P$\4\X18:Labels\X\S$\6
+10;\par
+\U section~5.\fi
+
+\M19. Hauptprogramm.
+
+\Y\P\&{begin} \37$\\{termout}(\\{outterm})$;\5
+$\\{termin}(\\{interm})$;\5
+\X59:Setze die default-Werte\X;\6
+$\\{reset}(\\{infile})$;\5
+$\\{rewrite}(\\{outfile})$;\5
+$\\{rewrite}(\\{err})$;\5
+$\\{eof\_infile}\K(\\{eof}(\\{infile})\W(\\{line\_ptr}>\\{last\_line\_length}+%
+\\{actual\_line\_length}))$;\6
+\&{while} $\R(\\{eof\_infile})$ \1\&{do}\6
+\&{begin} \37\&{case} $\\{music\_num}$ \1\&{of}\6
+\4\\{false}: \37\\{nonmusic};\6
+\4\\{true}: \37\\{music};\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\6
+\&{end};\2\6
+\410: \37\&{end}.\par
+\fi
+
+\M20. Routine, die den Wechsel zwischen Noteneingabe und Texteingabe
+anzeigt\par
+Die Funktion berechnet als Wert, ob sich der mode ge"andert hat
+oder nicht.
+Ein Wechsel des Modes wird durch zwei aufeinanderfolgende
+Ausrufezeichen angezeigt. Die Routine wird also aufgerufen,
+sobald ein Ausrufezeichen gelesen wurde. Dann mu\8
+"uberpr"uft werden, ob ein zweites Ausrufezeichen folgt oder nicht.
+\par
+An die Routine wird der Wert von \\{change} "ubergeben, da es
+f"ur das Schreiben in \\{outfile} f"ur allem bei Texteingabe
+notwendig ist, "uber einen Zeilenwechsel Bescheid zu wissen.
+\par
+Falls es "uberhaupt kein n"achstes Zeichen gibt, also das
+Ende der Eingabedatei erreicht wurde, wird bei einer Texteingabe
+($\\{music\_num}=\\{false}$)
+das gelesene Zeichen
+in die Ausgabedatei \\{outfile} geschrieben; bei einer Noteneingabe
+zeigt das Ausrufezeichen das Ende an.\par
+Falls das n"achste Zeichen kein Ausrufezeichen ist, werden im
+Fall $\\{music\_num}=\\{false}$ das Ausrufezeichen und das neu gelesene Zeichen
+in \\{outfile} geschrieben. F"ur $\\{music\_num}=\\{true}$ wird angenommen, da%
+\8
+das zweite Ausrufezeichen vergessen wurde, also ein Wechsel
+in den nonmusic-mode stattfindet. Das neu gelesene Zeichen wird
+dann - als erstes Zeichen der Texteingabe -
+in eine neue Zeile von \\{outfile} geschrieben.
+\par
+Der dritte Fall ist, da\8 es sich bei dem neuen Zeichen um ein
+Ausrufezeichen handelt. Dann findet ein mode-Wechsel statt.
+\par\noindent
+\\{w\_column} ist die Variable, die anzeigt, in welche Spalte von \\{outfile}
+geschrieben wird.
+
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{w\_column}: \37\\{integer};\par
+\fi
+
+\M21.
+
+\Y\P$\4\X21:Function ausruf\X\S$\6
+\4\&{function}\1\ \37$\\{ausruf}(\\{help}:\\{boolean})$: \37\\{boolean};\2\6
+\&{begin} \37\&{if} $\R(\\{eof\_infile})$ \1\&{then}\5
+\X22:Lesen des n"achsten Zeichens\X\6
+\4\&{else} \X30:Ende der Eingabedatei erreicht\X;\2\6
+\&{end};\par
+\U section~5.\fi
+
+\M22. Das n"achste Zeichen wird auf \\{sign} gelesen und "uberpr"uft, ob es
+ein Ausrufezeichen ist oder nicht.
+
+\Y\P$\4\X22:Lesen des n"achsten Zeichens\X\S$\6
+\&{begin} \37$\\{sign}\K\\{get\_char}$;\6
+\&{if} $\\{sign}=\.{\'!\'}$ \1\&{then}\5
+\X23:Wechsel des modes\X\6
+\4\&{else} \X26:Kein Wechsel des modes\X\2\6
+\&{end}\par
+\U section~21.\fi
+
+\M23.
+
+\Y\P$\4\X23:Wechsel des modes\X\S$\6
+\&{begin} \37\&{case} $\\{music\_num}$ \1\&{of}\6
+\4\\{false}: \37\X24:Wechsel in music mode\X;\6
+\4\\{true}: \37\X25:Wechsel in nonmusic mode\X;\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\6
+\&{end}\par
+\U section~22.\fi
+
+\M24. Beim Wechsel in den musicmode bzw. nonmusicmode wird jeweils eine
+neue Zeile angefangen.
+
+\Y\P$\4\X24:Wechsel in music mode\X\S$\6
+\&{begin} \37\&{if} $\\{line\_num}>1$ \1\&{then}\5
+$\\{writeln}(\\{outfile})$;\2\6
+$\\{write}(\\{outfile},\39\.{\'\\beginsong\'})$;\5
+$\\{ausruf}\K\\{true}$;\5
+$\\{w\_column}\K10$;\6
+\&{end};\par
+\U section~23.\fi
+
+\M25.
+
+\Y\P$\4\X25:Wechsel in nonmusic mode\X\S$\6
+\&{begin} \37$\\{newline\_music}(9)$;\5
+$\\{writeln}(\\{outfile},\39\.{\'\\endsong\'})$;\5
+$\\{w\_column}\K0$;\5
+$\\{ausruf}\K\\{false}$;\6
+\&{end};\par
+\U section~23.\fi
+
+\M26.
+
+\Y\P$\4\X26:Kein Wechsel des modes\X\S$\6
+\&{begin} \37\&{case} $\\{music\_num}$ \1\&{of}\6
+\4\\{false}: \37\X27:Gelesene Zeichen schreiben\X;\6
+\4\\{true}: \37\&{begin} \37\X28:Ausrufezeichen fehlt\X;\6
+\X29:Ende musicmode, Zeichen schreiben\X;\6
+\&{end};\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\6
+\&{end};\par
+\U section~22.\fi
+
+\M27. Falls ein Zeilenwechsel beim Lesen des letzten Zeichens stattgefunden
+hat, wird das Ausrufezeichen in die letzte Zeile von \\{outfile}
+geschrieben, f"ur das neue Zeichen wird eine neue Zeile angefangen.
+\par
+Hat der Zeilenwechsel beim Lesen des Ausrufezeichens stattgefunden,
+werden beide Zeichen in eine neue Zeile geschrieben.
+
+\Y\P$\4\X27:Gelesene Zeichen schreiben\X\S$\6
+\&{begin} \37\&{if} $\\{change}=\\{true}$ \1\&{then}\6
+\&{begin} \37$\\{writeln}(\\{outfile},\39\.{\'!\'})$;\5
+$\\{write}(\\{outfile},\39\\{sign})$;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $\\{help}=\\{true}$ \1\&{then}\6
+\&{begin} \37$\\{writeln}(\\{outfile})$;\5
+$\\{write}(\\{outfile},\39\.{\'!\'},\39\\{sign})$;\6
+\&{end}\6
+\4\&{else} $\\{write}(\\{outfile},\39\.{\'!\'},\39\\{sign})$;\2\6
+\&{end};\2\6
+$\\{ausruf}\K\\{false}$;\6
+\&{end};\par
+\U section~26.\fi
+
+\M28.
+
+\Y\P$\4\X28:Ausrufezeichen fehlt\X\S$\6
+\&{if} $\\{change}=\\{true}$ \1\&{then}\5
+$\\{error}(\.{\'Fehlendes\ Ausrufezeichen\ gesetzt\'},\39\\{line\_num}-1)$\6
+\4\&{else} $\\{error}(\.{\'Fehlendes\ Ausrufezeichen\ gesetzt\'},\39\\{line%
+\_num})$;\2\par
+\U section~26.\fi
+
+\M29.
+
+\Y\P$\4\X29:Ende musicmode, Zeichen schreiben\X\S$\6
+$\\{ausruf}\K\\{false}$;\5
+$\\{newline\_music}(9)$;\6
+\&{if} $\\{eof}(\\{infile})$ \1\&{then}\6
+\&{begin} \37\&{if} $\\{actual\_line\_length}=0$ \1\&{then}\5
+$\\{write}(\\{outfile},\39\.{\'\\endsong\'})$\6
+\4\&{else} $\\{writeln}(\\{outfile},\39\.{\'\\endsong\'})$;\2\6
+\&{end}\6
+\4\&{else} $\\{writeln}(\\{outfile},\39\.{\'\\endsong\'})$;\2\6
+$\\{write}(\\{outfile},\39\\{sign})$;\5
+$\\{w\_column}\K1$;\par
+\U section~26.\fi
+
+\M30.
+
+\Y\P$\4\X30:Ende der Eingabedatei erreicht\X\S$\6
+\&{begin} \37\&{if} $\\{music\_num}=\\{true}$ \1\&{then}\6
+\&{begin} \37$\\{newline\_music}(8)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\endsong\'})$;\5
+$\\{error}(\.{\'Fehlendes\ Ausrufezeichen\ am\ Ende\ gesetzt\'},\39\\{line%
+\_num})$;\6
+\&{end}\6
+\4\&{else} $\\{write}(\\{outfile},\39\.{\'!\'})$;\2\6
+$\\{ausruf}\K\\{music\_num}$;\5
+\&{goto} \3710;\6
+\&{end};\par
+\U section~21.\fi
+
+\M31. F"ur das Schreiben in die Ausgabedatei wird f"ur den music-mode
+eine weitere Routine ben"otigt, die berechnet, ob
+eine neue Zeile in der Ausgabedatei begonnen werden mu\8.
+F"ur den nonmusic-mode ist das nicht n"otig, da die Zeilen
+so "ubernommen werden, wie sie in der Eingabedatei stehen.
+"Ubergeben wird zur Berechnung die L"ange des zu schreibenden Worts.
+
+\Y\P$\4\X31:Procedure newline music\X\S$\6
+\4\&{procedure}\1\ \37$\\{newline\_music}(\\{word\_length}:\\{integer})$;\2\6
+\&{begin} \37$\\{w\_column}\K\\{w\_column}+\\{word\_length}$;\6
+\&{if} $\\{w\_column}\G70$ \1\&{then}\6
+\&{begin} \37$\\{write}(\\{outfile},\39\.{\'\%\'})$;\5
+$\\{writeln}(\\{outfile})$;\5
+$\\{w\_column}\K\\{word\_length}$;\6
+\&{end};\2\6
+\&{end};\par
+\U section~5.\fi
+
+\N32. Anhang B: Prozedur nonmusic.
+
+\fi
+
+\M33. Prozedur, die normalen Text ausgibt, solange \\{music\_num} false ist.
+Ein Zeilenwechsel im Ausgabefile findet statt, wenn die
+Zeile in der Eingabedatei ebenfalls gewechselt wird. Falls
+ein Ausrufezeichen eingelesen wird, mu\8 die Funktion \\{ausruf}
+aufgerufen werden.
+
+\Y\P$\4\X33:Procedure nonmusic\X\S$\6
+\4\&{procedure}\1\ \37\\{nonmusic};\2\6
+\&{begin} \37\&{while} $\\{music\_num}=\\{false}$ \1\&{do}\6
+\&{begin} \37\&{if} $\R(\\{eof\_infile})$ \1\&{then}\6
+\&{begin} \37$\\{sign}\K\\{get\_char}$;\6
+\&{if} $\\{sign}=\.{\'!\'}$ \1\&{then}\5
+$\\{music\_num}\K\\{ausruf}(\\{change})$\6
+\4\&{else} \&{begin} \37\&{if} $\\{line\_num}=1$ \1\&{then}\5
+$\\{write}(\\{outfile},\39\\{sign})$\6
+\4\&{else} \&{begin} \37\&{if} $\\{change}=\\{false}$ \1\&{then}\5
+$\\{write}(\\{outfile},\39\\{sign})$\6
+\4\&{else} \&{begin} \37\&{if} $\\{w\_column}=0$ \1\&{then}\5
+$\\{write}(\\{outfile},\39\\{sign})$\6
+\4\&{else} \&{begin} \37$\\{writeln}(\\{outfile})$;\5
+$\\{write}(\\{outfile},\39\\{sign})$\6
+\&{end};\2\6
+\&{end};\2\6
+\&{end};\2\6
+\&{end};\2\6
+$\\{w\_column}\K\\{line\_ptr}-1$;\6
+\&{end}\6
+\4\&{else} \&{goto} \3710;\2\6
+\&{end};\2\6
+\&{end};\par
+\U section~5.\fi
+
+\N34. Anhang B: Prozedur music.
+
+
+\fi
+
+\M35. Prozedur, die Musikeingabe abarbeitet und abfragt,
+um welches Zeichen es sich gerade handelt.
+Dabei wird unterschieden,
+ob es sich um eine Tonh"ohe , um eine Pause oder
+Taktstrich, um erg"anzende Angaben zur
+Tonh"ohe (z. B. Dauer, Vorzeichen, Oktave, Punkte),
+um das Ende der Musikeingabe oder
+um den Beginn
+einer Kontrollsequenz (\\{backslash}) oder eines Kommentars handelt.
+
+
+
+\Y\P$\4\X35:Procedure music\X\S$\6
+\4\&{procedure}\1\ \37\\{music};\2\6
+\&{begin} \37\&{while} $\\{music\_num}=\\{true}$ \1\&{do}\6
+\&{begin} \37\&{if} $\R(\\{eof\_infile})$ \1\&{then}\6
+\&{begin} \37$\\{sign}\K\\{get\_char}$;\6
+\&{case} $\\{sign}$ \1\&{of}\6
+\X37:Zeichen ist Angabe zum Ton\X;\6
+\X38:Zeichen ist Tonh"ohe\X;\6
+\X51:Zeichen ist Pause oder Taktstrich\X;\6
+\X56:Zeichen bedeutet Ende der Musikeingabe\X;\6
+\X54:Zeichen ist Kommentar\X;\6
+\X55:Zeichen ist backslash\X;\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\6
+\&{end}\6
+\4\&{else} \&{goto} \3710;\2\6
+\&{end};\2\6
+\&{end};\par
+\U section~5.\fi
+
+\M36. Es folgen die Variablen, die f"ur die Prozedur \\{music} ben"otigt
+werden. Die einzelnen Programmteile werden an den entsprechenden
+Stellen erl"autert.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{octave\_num}: \37\\{integer};\6
+\4\\{dot\_num}: \37\\{integer};\6
+\4\\{nat\_num}: \37\\{integer};\6
+\4\\{b\_num}: \37\\{integer};\6
+\4\\{x\_num}: \37\\{integer};\6
+\4\\{duration}: \37\\{char};\par
+\fi
+
+\M37. In diesem Teil werden die f"ur die Note notwendigen Variablen
+besetzt.
+\\{octave\_num} z"ahlt die Hochkommata bzw. Kommata,
+die zur Angabe der Oktave
+eingegeben wurden.
+Die Tondauer mu\8 f"ur den Ausgabefile mit einer Zahl angegeben
+werden. Diese Belegung findet mit Hilfe von \\{duration} statt.
+\\{dot\_num} z"ahlt die eingegebenen Punkte.
+Etwaige Vorzeichen werden registriert. Da ein Doppelkreuz bzw. Doppel-be
+durch zwei x bzw. b eingegeben wird, werden diese mit \\{x\_num}
+bzw. \\{b\_num} gez"ahlt.
+
+
+\Y\P$\4\X37:Zeichen ist Angabe zum Ton\X\S$\6
+\4\.{\',\'}: \37$\\{octave\_num}\K\\{octave\_num}-1$;\6
+\4\.{\'\'}\.{\'\'}: \37$\\{octave\_num}\K\\{octave\_num}+1$;\6
+\4\.{\'1\'}: \37$\\{duration}\K\.{\'g\'}$;\6
+\4\.{\'2\'}: \37$\\{duration}\K\.{\'h\'}$;\6
+\4\.{\'4\'}: \37$\\{duration}\K\.{\'v\'}$;\6
+\4\.{\'8\'}: \37$\\{duration}\K\.{\'a\'}$;\6
+\4\.{\'6\'}: \37$\\{duration}\K\.{\'s\'}$;\6
+\4\.{\'5\'}: \37$\\{duration}\K\.{\'z\'}$;\6
+\4\.{\'.\'}: \37$\\{dot\_num}\K\\{dot\_num}+1$;\6
+\4\.{\'b\'}: \37$\\{b\_num}\K\\{b\_num}+1$;\6
+\4\.{\'x\'}: \37$\\{x\_num}\K\\{x\_num}+1$;\6
+\4\.{\'n\'}: \37$\\{nat\_num}\K5$;\par
+\U section~35.\fi
+
+\M38. Die oben
+beschriebene Belegung ist beendet, sobald ein Notenname eingelesen
+wird.
+Dann wird die Oktave endg"ultig berechnet,
+der Tonh"ohe wird
+eine Zahl zugeordnet, die die Stellung der Note im Notenliniensystem
+angibt und die Vorzeichen angegeben. Anschlie\8end wird die
+Note in die Ausgabedatei \\{outfile} geschrieben.
+
+\Y\P$\4\X38:Zeichen ist Tonh"ohe\X\S$\6
+\4$\.{\'c\'},\39\.{\'d\'},\39\.{\'e\'},\39\.{\'f\'},\39\.{\'g\'},\39\.{\'a\'},%
+\39\.{\'h\'}$: \37\&{begin} \37\X42:Berechnung der richtigen Oktave\X;\6
+\X40:Umsetzung der Tonh"ohe in eine Zahl\X;\6
+\X46:Gibt es ein Vorzeichen\X;\6
+\X48:Schreibe die gelesene Note\X;\6
+\X49:Schreibe die Punkte\X;\6
+\&{end};\par
+\U section~35.\fi
+
+\M39.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{pitchnum}: \37\\{integer};\par
+\fi
+
+\M40. Das Liniensystem wird mit einer Numerierung versehen. Jedem Notennamen
+wird dann mit der Variablen \\{pitchnum} die entsprechende Zahl zwischen
+-2 und 4 in Abh"angigkeit von der Lage
+im Notenliniensystem zugeordnet.
+
+\Y\P$\4\X40:Umsetzung der Tonh"ohe in eine Zahl\X\S$\6
+\&{case} $\\{sign}$ \1\&{of}\6
+\4\.{\'c\'}: \37$\\{pitchnum}\K-2$;\6
+\4\.{\'d\'}: \37$\\{pitchnum}\K-1$;\6
+\4\.{\'e\'}: \37$\\{pitchnum}\K0$;\6
+\4\.{\'f\'}: \37$\\{pitchnum}\K1$;\6
+\4\.{\'g\'}: \37$\\{pitchnum}\K2$;\6
+\4\.{\'a\'}: \37$\\{pitchnum}\K3$;\6
+\4\.{\'h\'}: \37$\\{pitchnum}\K4$;\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\par
+\A section~43.
+\U section~38.\fi
+
+\M41.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{octave}: \37\\{integer};\par
+\fi
+
+\M42. Nun wird die Oktave berechnet. Das ist wichtig f"ur
+die n-gestrichene Oktave (n$>$0), da die eingestrichene Oktave
+den Wert \\{octave}=0 erhalten soll, die zweigestrichene den Wert 1 usw.
+Weil aber zun"achst die Hochkommas gez"ahlt wurden, ist eine
+Zur"ucksetzung erforderlich.
+
+\Y\P$\4\X42:Berechnung der richtigen Oktave\X\S$\6
+\&{if} $\\{octave\_num}>0$ \1\&{then}\6
+\&{begin} \37$\\{octave}\K\\{octave\_num}-1$;\5
+$\\{octave\_num}\K0$;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $\\{octave\_num}<0$ \1\&{then}\6
+\&{begin} \37$\\{octave}\K\\{octave\_num}$;\5
+$\\{octave\_num}\K0$;\6
+\&{end}\2\6
+\&{end};\2\par
+\U section~38.\fi
+
+\M43. Nun wird die Tonh"ohe unter Ber"ucksichtigung der
+eben gesetzten Zahl \\{pitchnum} und der Oktave \\{octave}
+endg"ultig berechnet.
+
+\Y\P$\4\X40:Umsetzung der Tonh"ohe in eine Zahl\X\mathrel{+}\S$\6
+\&{if} $(-3\L\\{octave})\W(\\{octave}\L3)$ \1\&{then}\5
+$\\{pitchnum}\K\\{pitchnum}+(\\{octave})\ast7$\6
+\4\&{else} \&{begin} \37$\\{error}(\.{\'Die\ Oktave\ wurde\ falsch\ eingegeben,%
+\ default\ gesetzt\'},\39\\{line\_num})$;\5
+$\\{octave\_num}\K0$;\6
+\&{end};\2\par
+\fi
+
+\M44. Zur Berechnung der Vorzeichen mu\8.
+ein neuer Variablentyp definiert werden.
+\\{accidental} ist ein array, mit dem mit Hilfe der
+eingelesenen Anzahl der x bzw. b das Vorzeichen bestimmt werden kann.
+
+\Y\P$\4\X44:New type\X\S$\6
+$\\{accidental}=$\1\5
+\&{array} $[1\to5]$ \1\&{of}\5
+$\\{string}(2)$;\2\2\par
+\U section~5.\fi
+
+\M45.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{accid}: \37\\{accidental};\6
+\4\\{acc}: \37$\\{string}(2)$;\par
+\fi
+
+\M46. Falls \\{x\_num} bzw. \\{b\_num} von 0 verschieden sind, gibt es ein
+Vorzeichen. Ob es sich um ein Kreuz oder ein b handelt,
+wird anhand der Variablen
+\\{x\_num} bzw. \\{b\_num} deutlich. Diese integer-Zahlen werden als
+Index von \\{accid} benutzt, dieser gibt dann das Vorzeichen an.
+Danach werden \\{x\_num}, \\{b\_num} und \\{nat\_num} auf die defaults
+gesetzt.
+
+\Y\P$\4\X46:Gibt es ein Vorzeichen\X\S$\6
+\&{if} $\\{x\_num}>0$ \1\&{then}\6
+\&{begin} \37$\\{acc}\K\\{accid}[\\{x\_num}]$;\5
+$\\{x\_num}\K0$;\5
+\X47:Schreibe das Vorzeichen\X;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $\\{b\_num}>2$ \1\&{then}\6
+\&{begin} \37$\\{acc}\K\\{accid}[\\{b\_num}]$;\5
+$\\{b\_num}\K2$;\5
+\X47:Schreibe das Vorzeichen\X;\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $\\{nat\_num}=5$ \1\&{then}\6
+\&{begin} \37$\\{acc}\K\\{accid}[\\{nat\_num}]$;\5
+$\\{nat\_num}\K0$;\5
+\X47:Schreibe das Vorzeichen\X;\6
+\&{end};\2\6
+\&{end};\2\6
+\&{end};\2\par
+\U section~38.\fi
+
+\M47. Die Schreibbefehle f"ur Vorzeichen, Noten, Pausen, Punkte folgen.
+\par
+Das Vorzeichen wird geschrieben, falls vorhanden.
+Beim Schreiben m"ussen zwei F"alle unterschieden werden.
+Falls n"amlich \\{pitchnum} kleiner als 0 oder gr"o\8er als 9
+ist, mu\8 die Zahl in
+geschweifte Klammern geschrieben werden, sonst nicht.
+Die Zahl, die zu der Variablen
+\\{w\_column} (z"ahlt die Spalte in \\{outfile})
+addiert wird, ist die gr"o\8tm"ogliche.
+
+\Y\P$\4\X47:Schreibe das Vorzeichen\X\S$\6
+\&{if} $(\\{pitchnum}<0)\V(\\{pitchnum}>9)$ \1\&{then}\6
+\&{begin} \37$\\{newline\_music}(8)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\\{acc},\39\.{\'\{\'},\39%
+\\{pitchnum}:1,\39\.{\'\}\'})$;\6
+\&{end}\6
+\4\&{else} \&{begin} \37$\\{newline\_music}(5)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\\{acc},\39\\{pitchnum}:1)$;\6
+\&{end};\2\par
+\U sections~46, 46, and~46.\fi
+
+\M48. Die Note wird - "ahnlich wie das Vorzeichen - geschrieben.
+
+\Y\P$\4\X48:Schreibe die gelesene Note\X\S$\6
+\&{if} $(\\{pitchnum}<0)\V(\\{pitchnum}>9)$ \1\&{then}\6
+\&{begin} \37$\\{newline\_music}(7)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\\{duration},\39\.{\'\{\'},\39%
+\\{pitchnum}:1,\39\.{\'\}\'})$;\6
+\&{end}\6
+\4\&{else} \&{begin} \37$\\{newline\_music}(4)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\\{duration},\39\\{pitchnum}:1)$;\6
+\&{end};\2\par
+\U section~38.\fi
+
+\M49. Punkte werden geschrieben, falls vorhanden.
+Danach wird \\{dot\_num} auf 0 gesetzt.
+
+\Y\P$\4\X49:Schreibe die Punkte\X\S$\6
+\&{if} $\\{dot\_num}>0$ \1\&{then}\6
+\&{begin} \37$\\{newline\_music}(\\{dot\_num}+1)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\.{\'.\'},\39\\{dot\_num}:1)$;\5
+$\\{dot\_num}\K0$;\6
+\&{end};\2\par
+\U section~38.\fi
+
+\M50.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{bar\_line}: \37\\{char};\6
+\4\\{rest}: \37\\{char};\par
+\fi
+
+\M51. Pause und Taktstrich werden gesondert behandelt und sofort
+ausgedruckt.
+
+\Y\P$\4\X51:Zeichen ist Pause oder Taktstrich\X\S$\6
+\4$\.{\'|\'},\39\.{\'=\'}$: \37\&{begin} \37$\\{bar\_line}\K\\{sign}$;\5
+\X53:Schreibe Taktstrich\X;\6
+\&{end};\6
+\4\.{\'p\'}: \37\&{begin} \37$\\{rest}\K\\{sign}$;\5
+\X52:Schreibe Pause\X;\6
+\&{end};\par
+\U section~35.\fi
+
+\M52. Pause wird geschrieben.
+
+\Y\P$\4\X52:Schreibe Pause\X\S$\6
+$\\{newline\_music}(3)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\\{rest},\39\\{duration})$;\par
+\U section~51.\fi
+
+\M53. Taktstrich wird geschrieben.
+
+\Y\P$\4\X53:Schreibe Taktstrich\X\S$\6
+$\\{newline\_music}(2)$;\5
+$\\{write}(\\{outfile},\39\.{\'\\\'},\39\\{bar\_line})$;\par
+\U section~51.\fi
+
+\M54. Das Zeichen ist ein Kommentarzeichen. Der Rest der Zeile
+soll im Musikmode nicht mit"ubergeben werden. Deshalb setzen wir
+\\{line\_ptr} um eins zu hoch; daraufhin wird die n"achste Zeile
+eingelesen.
+
+\Y\P$\4\X54:Zeichen ist Kommentar\X\S$\6
+\4\.{\'\%\'}: \37$\\{line\_ptr}\K\\{last\_line\_length}+\\{actual\_line%
+\_length}+1$;\par
+\U sections~35 and~65.\fi
+
+\M55. Das Zeichen ist Beginn eines macros.
+
+\Y\P$\4\X55:Zeichen ist backslash\X\S$\6
+\4\.{\'\\\'}: \37\\{backslash};\par
+\U sections~35 and~65.\fi
+
+\M56. Es wird "uberpr"uft, ob man zum Ende der Musikeingabe gelangt ist.
+
+\Y\P$\4\X56:Zeichen bedeutet Ende der Musikeingabe\X\S$\6
+\4\.{\'!\'}: \37$\\{music\_num}\K\\{ausruf}(\\{change})$;\par
+\U section~35.\fi
+
+\M57.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\|i: \37\\{integer};\par
+\fi
+
+\N58. Anhang B: Default-Werte.
+
+
+\fi
+
+\M59. Die am Anfang notwendigen Werte werden gesetzt.
+
+\Y\P$\4\X59:Setze die default-Werte\X\S$\6
+$\\{last\_line\_length}\K0$;\5
+$\\{actual\_line\_length}\K0$;\5
+$\\{next\_line\_length}\K0$;\5
+$\\{inline\_length}\K0$;\5
+$\\{line\_ptr}\K1$;\5
+$\\{line\_num}\K0$;\5
+$\\{music\_num}\K\\{false}$;\5
+$\\{change}\K\\{false}$;\5
+$\\{w\_column}\K0$;\5
+$\\{octave\_num}\K0$;\5
+$\\{duration}\K\.{\'v\'}$;\5
+$\\{dot\_num}\K0$;\5
+$\\{x\_num}\K0$;\5
+$\\{b\_num}\K2$;\5
+$\\{nat\_num}\K0$;\5
+$\\{octave}\K0$;\5
+$\\{accid}[1]\K\.{\'x\'}$;\5
+$\\{accid}[2]\K\.{\'xx\'}$;\5
+$\\{accid}[3]\K\.{\'b\'}$;\5
+$\\{accid}[4]\K\.{\'bb\'}$;\5
+$\\{accid}[5]\K\.{\'n\'}$;\5
+$\|i\K1$;\par
+\U section~19.\fi
+
+\N60. Anhang B: Fehlermeldungen.
+
+\fi
+
+\M61. Prozedur, die f"ur manche
+Syntaxfehler Meldungen auf den Bildschirm und in einen
+Fehler--file (\\{err}) schreibt.
+Dabei wird die Zeile, in der der Fehler vorkommt bis zur falschen
+Stelle ausgedruckt, der Rest der Zeile \\{actual\_line} wird in der
+n"achsten Zeile ausgedruckt. Au\8erdem wird mit der Fehlermeldung
+auch die Zeilennummer in der der Fehler steht, ausgedruckt.
+"Ubergeben wird der Text der Fehlermeldung, ein string
+der L"ange 80, und die Zeilennummer \\{line\_num} der Zeile, in der der
+Fehler auftritt.
+
+\Y\P$\4\X7:Globals\X\mathrel{+}\S$\6
+\4\\{error\_help}: \37$\\{string}(20)$;\6
+\4\\{input\_term}: \37$\\{string}(20)$;\6
+\4\\{input\_char}: \37\\{char};\par
+\fi
+
+\M62.
+
+\Y\P$\4\X62:Procedure error\X\S$\6
+\4\&{procedure}\1\ \37$\\{error}(\\{error\_text}:\\{string}(80);\,\35\\{help}:%
+\\{integer})$;\6
+\4\&{var} \37\|i: \37\\{integer};\2\6
+\&{begin} \37$\\{writeln\_error}(\.{\'\ \'})$;\5
+$\\{writeln\_error}(\.{\'Fehler\ in\ Zeile:\ \'},\39\\{help}:1)$;\6
+\&{if} $\\{line\_ptr}-11>0$ \1\&{then}\6
+\&{begin} \37\&{for} $\|i\K10\mathrel{\&{downto}}0$ \1\&{do}\6
+\&{begin} \37$\\{write\_error}(\\{buffer}[\\{line\_ptr}-1-\|i])$;\6
+\&{end};\2\6
+$\\{writeln\_error}(\.{\'\ \'})$;\5
+$\\{write\_error}(\.{\'\ \ \ \ \ \ \ \ \ \ \ \'})$;\6
+\&{for} $\|i\K1\mathrel{\&{to}}11$ \1\&{do}\6
+\&{begin} \37$\\{write\_error}(\\{buffer}[\\{line\_ptr}-1+\|i])$;\6
+\&{end};\2\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{for} $\|i\K1\mathrel{\&{to}}(\\{line\_ptr}-1)$ \1%
+\&{do}\6
+\&{begin} \37$\\{write\_error}(\\{buffer}[\|i])$;\6
+\&{end};\2\6
+$\\{writeln\_error}(\.{\'\ \'})$;\6
+\&{for} $\|i\K1\mathrel{\&{to}}(\\{line\_ptr}-1)$ \1\&{do}\6
+\&{begin} \37$\\{write\_error}(\.{\'\ \'})$;\6
+\&{end};\2\6
+\&{for} $\|i\K1\mathrel{\&{to}}11$ \1\&{do}\6
+\&{begin} \37$\\{write\_error}(\\{buffer}[\\{line\_ptr}-1+\|i])$;\6
+\&{end};\2\6
+\&{end};\2\6
+$\\{writeln\_error}(\.{\'\ \'})$;\5
+$\\{writeln\_error}(\\{error\_text})$;\5
+\X63:Eingabe vom Terminal\X;\6
+\&{end};\par
+\U section~5.\fi
+
+\M63. Nach der Fehlermeldung kann eine Eingabe vom Terminal erfolgen.
+
+\Y\P$\4\X63:Eingabe vom Terminal\X\S$\6
+$\\{writeln}(\\{err},\39\.{\'?\'})$;\5
+$\\{writeln}(\\{outterm},\39\.{\'?\'})$;\5
+$\\{read}(\\{interm},\39\\{input\_char})$;\6
+\&{case} $\\{input\_char}$ \1\&{of}\6
+\4\.{\'i\'}: \37\&{begin} \37$\\{writeln\_error}(\.{\'input>\'})$;\5
+$\\{read}(\\{interm},\39\\{input\_term})$;\5
+$\\{error\_help}\K\\{input\_term}$;\6
+\&{end};\6
+\4\.{\'x\'}: \37\&{goto} \3710;\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\par
+\U section~62.\fi
+
+\N64. Anhang B: Prozedur backslash.
+
+\fi
+
+\M65. Prozedur, die aufgerufen wird, wenn ein backslash eingelesen
+wurde. Sie erkennt, um welches Kontrollwort es sich handelt und
+ruft die entsprechenden Unterprogramme auf.
+Daf"ur wird zun"achst das macro auf den string \\{control} gelesen.
+Das Kontrollwort ist beendet, falls $\\{macroend}=\\{true}$, d.h.
+das eingelesen Zeichen ist ein \.{\'\ \'}, \.{\'\{\'}, \.{\'\%\'} oder \.{\'%
+\\\'}.
+
+\Y\P$\4\X65:Procedure backslash\X\S$\6
+\4\&{procedure}\1\ \37\\{backslash}; \6
+\4\&{var} \37\\{control}: \37$\\{string}(80)$;\5
+\\{macroend}: \37\\{boolean}; \X67:Procedure macro\X \6
+\&{begin} \37$\\{control}\K\\{str}(\.{\'\ \'})$;\6
+\1\&{repeat} \37\&{begin} \37\X66:Einlesen der Kontrollsequenz auf \\{control}%
+\X\6
+\&{end}\6
+\4\&{until}\5
+$\\{macroend}=\\{true}$;\2\6
+$\\{control}\K\\{trim}(\\{control})$;\5
+$\\{control}\K\\{ltrim}(\\{control})$;\6
+\&{if} $((\\{control}=\.{\'\\beam\'})\V(\\{control}=\.{\'\\slur\'})\V(%
+\\{control}=\.{\'\\cresc\'})\V(\\{control}=\.{\'\\decresc\'})\V(\\{control}=\.{%
+\'\\chord\'}))$ \1\&{then}\6
+\&{begin} \37$\\{macro}(\\{control})$\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $\\{control}=\.{\'\\group\'}$ \1\&{then}\6
+\&{begin} \37$\\{macro}(\\{control})$\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $\\{control}=\.{\'\\signature\'}$ \1\&{then}\6
+\&{begin} \37$\\{macro}(\\{control})$\6
+\&{end}\6
+\4\&{else} \&{begin} \37\&{if} $((\\{control}=\.{\'\\text\'})\V(\\{control}=\.{%
+\'\\vocal\'})\V(\\{control}=\.{\'\\two\'}))$ \1\&{then}\6
+\&{begin} \37$\\{macro}(\\{control})$\6
+\&{end}\6
+\4\&{else} \&{begin} \37$\\{newline\_music}(\\{length}(\\{control}))$;\5
+$\\{write}(\\{outfile},\39\\{control})$;\6
+\&{case} $\\{sign}$ \1\&{of}\6
+\X54:Zeichen ist Kommentar\X;\6
+\X55:Zeichen ist backslash\X;\6
+\4\&{othercases} \37;\2\6
+\&{endcases};\6
+\&{end};\2\6
+\&{end};\2\6
+\&{end};\2\6
+\&{end};\2\6
+\&{end};\par
+\U section~5.\fi
+
+\M66. Dieser Teil wird von der Prozedur \\{backslash} ben"otigt und
+liest auf den String \\{control} die Kontrollsequenz ein, die durch
+backslash angezeigt wird.
+
+\Y\P$\4\X66:Einlesen der Kontrollsequenz auf \\{control}\X\S$\6
+$\\{control}\K\\{control}\\{str}(\\{sign})$;\6
+\&{if} $\R(\\{eof\_infile})$ \1\&{then}\6
+\&{begin} \37$\\{sign}\K\\{get\_char}$;\5
+$\\{macroend}\K((\\{sign}=\.{\'\{\'})\V(\\{sign}=\.{\'\%\'})\V(\\{sign}=\.{\'%
+\\\'})\V(\\{sign}=\.{\'\ \'}))$;\6
+\&{end}\6
+\4\&{else} \&{begin} \37$\\{control}\K\\{trim}(\\{control})$;\5
+$\\{newline\_music}(\\{length}(\\{control}))$;\5
+$\\{write}(\\{outfile},\39\\{control})$;\5
+\&{goto} \3710;\6
+\&{end};\2\par
+\U section~65.\fi
+
+\M67.
+
+\Y\P$\4\X67:Procedure macro\X\S$\6
+\4\&{procedure}\1\ \37$\\{macro}(\\{help}:\\{string}(80))$;\2\6
+\&{begin} \37$\\{help}\K\\{trim}(\\{help})$;\5
+$\\{help}\K\\{ltrim}(\\{help})$;\5
+$\\{help}\K\\{compress}(\\{help})$;\5
+$\\{newline\_music}(\\{length}(\\{help}))$;\5
+$\\{write}(\\{outfile},\39\\{help})$;\5
+$\\{line\_ptr}\K\\{line\_ptr}-1$;\6
+\&{end};\par
+
+\U sections~5 and~65.\fi
+
+\pageheight=23cm\vskip0.5cm \def\rhead{ANHANG B: INDEX}
+\inx
+\:\\{acc}, 45, 46, 47.
+\:\\{accid}, 45, 46, 59.
+\:\\{accidental}, 44, 45.
+\:\\{actual\_line}, 7, 11, 13, 14, 61.
+\:\\{actual\_line\_length}, 7, 8, 10, 11, 12, 19, 29, 54, 59.
+\:\\{ausruf}, \[21], 24, 25, 27, 29, 30, 33, 56.
+\:\\{b\_num}, 36, 37, 46, 59.
+\:\\{backslash}, 35, 55, \[65], 66.
+\:\\{bar\_line}, 50, 51, 53.
+\:\\{boolean}, 7, 17, 21, 65.
+\:\\{buffer}, 7, 10, 11, 12, 15, 62.
+\:\\{change}, 7, 11, 13, 20, 27, 28, 33, 56, 59.
+\:\\{char}, 7, 8, 36, 50, 61.
+\:\\{compress}, 9, 67.
+\:\\{control}, \[65], 66.
+\:\\{dot\_num}, 36, 37, 49, 59.
+\:\\{duration}, 36, 37, 48, 52, 59.
+\:\&{else}, 2.
+\:\&{end}, 2.
+\:\&{endcases}, \[2].
+\:\\{eof}, 8, 19, 29.
+\:\\{eof\_infile}, 7, 8, 19, 21, 33, 35, 66.
+\:\\{err}, 3, 5, 6, 19, 61, 63.
+\:\\{error}, 28, 30, 43, \[62].
+\:\\{error\_help}, 61, 63.
+\:\\{error\_text}, 62.
+\:\\{false}, 13, 17, 19, 20, 23, 25, 26, 27, 29, 33, 59.
+\:\\{get}, 8.
+\:\\{get\_char}, 7, \[8], 14, 15, 22, 33, 35, 66.
+\:\\{help}, 21, 27, 62, 67.
+\:\|{i}, \[62].
+\:\\{in\_file}, 7.
+\:\\{in\_line}, 7, 9, 10, 12.
+\:\\{infile}, 5, 6, 7, 8, 9, 19, 29.
+\:\\{inline\_length}, 7, 8, 9, 10, 59.
+\:\\{input\_char}, 61, 63.
+\:\\{input\_term}, 61, 63.
+\:\\{integer}, 7, 8, 20, 31, 36, 39, 41, 57, 62.
+\:\\{interm}, 5, 6, 19, 63.
+\:\|{j}, \[8].
+\:\\{last\_line}, 7, 11.
+\:\\{last\_line\_length}, 7, 8, 10, 11, 12, 19, 54, 59.
+\:\\{length}, 9, 65, 66, 67.
+\:\\{line\_num}, 7, 8, 11, 24, 28, 30, 33, 43, 59, 61.
+\:\\{line\_ptr}, 7, 8, 15, 19, 33, 54, 59, 62, 67.
+\:\\{ltrim}, 9, 65, 67.
+\:\\{macro}, 65, \[67].
+\:\\{macroend}, 65, 66.
+\:\\{music}, 17, 19, \[35], 36.
+\:\\{music\_num}, 17, 19, 20, 23, 26, 30, 33, 35, 56, 59.
+\:\\{nat\_num}, 36, 37, 46, 59.
+\:\\{newline\_music}, 25, 29, 30, \[31], 47, 48, 49, 52, 53, 65, 66, 67.
+\:\\{next\_line}, 7, 11.
+\:\\{next\_line\_length}, 7, 10, 11, 12, 59.
+\:\\{nonmusic}, 17, 19, \[33].
+\:\\{octave}, 41, 42, 43, 59.
+\:\\{octave\_num}, 36, 37, 42, 43, 59.
+\:\&{othercases}, \[2].
+\:\\{otherwise}, 2.
+\:\\{outfile}, 5, 6, 17, 19, 20, 24, 25, 27, 29, 30, 31, 33, 38, 47, 48, 49,
+52, 53, 65, 66, 67.
+\:\\{outterm}, 3, 5, 6, 19, 63.
+\:\\{pascal}, 2.
+\:\\{pitchnum}, 39, 40, 43, 47, 48.
+\:\\{read}, 9, 63.
+\:\\{reset}, 19.
+\:\\{rest}, 50, 51, 52.
+\:\\{rewrite}, 19.
+\:\\{sign}, 7, 22, 27, 29, 33, 35, 40, 51, 65, 66.
+\:\\{str}, 65, 66.
+\:\\{string}, 7, 44, 45, 61, 62, 65, 67.
+\:\\{tangle}, 2.
+\:\\{termin}, 19.
+\:\\{termout}, 19.
+\:\\{text}, 6.
+\:\\{trans}, \[5].
+\:\\{trim}, 9, 65, 66, 67.
+\:\\{true}, 11, 17, 19, 20, 23, 24, 26, 27, 28, 30, 35, 65.
+\:\\{w\_column}, 20, 24, 25, 29, 31, 33, 47, 59.
+\:\\{weave}, 2.
+\:\\{word\_length}, 31.
+\:\\{write}, 3, 24, 27, 29, 30, 31, 33, 47, 48, 49, 52, 53, 65, 66, 67.
+\:\\{write\_error}, \[3], 62.
+\:\\{writeln}, 3, 24, 25, 27, 29, 31, 33, 63.
+\:\\{writeln\_error}, \[3], 62, 63.
+\:\\{x\_num}, 36, 37, 46, 59.
+\fin
+\def\rhead{ANHANG B: NAMES OF THE SECTIONS}
+\:\X28:Ausrufezeichen fehlt\X
+\U section~26.
+\:\X42:Berechnung der richtigen Oktave\X
+\U section~38.
+\:\X63:Eingabe vom Terminal\X
+\U section~62.
+\:\X66:Einlesen der Kontrollsequenz auf \\{control}\X
+\U section~65.
+\:\X10:Einlesen der neuen Zeile in den buffer\X
+\U sections~8 and~8.
+\:\X30:Ende der Eingabedatei erreicht\X
+\U section~21.
+\:\X29:Ende musicmode, Zeichen schreiben\X
+\U section~26.
+\:\X6:Files\X
+\U section~5.
+\:\X21:Function ausruf\X
+\U section~5.
+\:\X8:Function getchar\X
+\U section~5.
+\:\X27:Gelesene Zeichen schreiben\X
+\U section~26.
+\:\X46:Gibt es ein Vorzeichen\X
+\U section~38.
+\:\X7, 17, 20, 36, 39, 41, 45, 50, 57, 61:Globals\X
+\U section~5.
+\:\X26:Kein Wechsel des modes\X
+\U section~22.
+\:\X13:Kein Zeilenwechsel\X
+\U section~8.
+\:\X18:Labels\X
+\U section~5.
+\:\X9:Lesen der n"achsten Zeile von infile\X
+\U sections~8 and~8.
+\:\X22:Lesen des n"achsten Zeichens\X
+\U section~21.
+\:\X11:Neubelegung der \\{actual\_line} durch \\{next\_line}, Zeilenwechsel\X
+\U section~8.
+\:\X44:New type\X
+\U section~5.
+\:\X65:Procedure backslash\X
+\U section~5.
+\:\X62:Procedure error\X
+\U section~5.
+\:\X67:Procedure macro\X
+\U sections~5 and~65.
+\:\X35:Procedure music\X
+\U section~5.
+\:\X31:Procedure newline music\X
+\U section~5.
+\:\X33:Procedure nonmusic\X
+\U section~5.
+\:\X52:Schreibe Pause\X
+\U section~51.
+\:\X53:Schreibe Taktstrich\X
+\U section~51.
+\:\X47:Schreibe das Vorzeichen\X
+\U sections~46, 46, and~46.
+\:\X49:Schreibe die Punkte\X
+\U section~38.
+\:\X48:Schreibe die gelesene Note\X
+\U section~38.
+\:\X59:Setze die default-Werte\X
+\U section~19.
+\:\X40, 43:Umsetzung der Tonh"ohe in eine Zahl\X
+\U section~38.
+\:\X23:Wechsel des modes\X
+\U section~22.
+\:\X24:Wechsel in music mode\X
+\U section~23.
+\:\X25:Wechsel in nonmusic mode\X
+\U section~23.
+\:\X56:Zeichen bedeutet Ende der Musikeingabe\X
+\U section~35.
+\:\X37:Zeichen ist Angabe zum Ton\X
+\U section~35.
+\:\X54:Zeichen ist Kommentar\X
+\U sections~35 and~65.
+\:\X51:Zeichen ist Pause oder Taktstrich\X
+\U section~35.
+\:\X38:Zeichen ist Tonh"ohe\X
+\U section~35.
+\:\X55:Zeichen ist backslash\X
+\U sections~35 and~65.
+\:\X15:Zeichen lesen\X
+\U section~8.
+\:\X14:\\{actual\_line} ist Leerzeile\X
+\U section~8.
+\:\X12:\\{in\_line} ist Leerzeile bzw. existiert nicht\X
+\U sections~8 and~8.
+
+\vfill\eject % finish the section names
+\rightskip 0pt \hyphenpenalty 50 \tolerance 200
+\setpage
diff --git a/macros/mtex/documentation/mdocverb.tex b/macros/mtex/documentation/mdocverb.tex
new file mode 100644
index 0000000000..8ec5d53d0a
--- /dev/null
+++ b/macros/mtex/documentation/mdocverb.tex
@@ -0,0 +1,40 @@
+% macros for verbatim scanning
+% im wesentlichen dem file MANHDR TEX von DEK entnommen
+\catcode`@=11
+\def\tt{\fam\ttfam\tentt}%
+\newskip\ttglue \ttglue=.5em plus .25em minus .15em
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \catcode`\"=\other
+ \parskip \z@
+ \obeyspaces \obeylines \tt}
+
+\def\begintt{$$\let\par=\endgraf \ttverbatim
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{|vbox{#2}|endgroup$$}}
+
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
+%\def\ttspace{{\tt\hskip\ttglue}}
+
+\def\vrt{\hbox{\tt\char`\|}} % vertical line
+\def\dn{\hbox{\tt\char'14}} % downward arrow
+\def\up{\hbox{\tt\char'13}} % upward arrow
+\def\]{\hbox{\tt\char`\ }} % visible space
+
+\catcode`@=12 % at signs are no longer letters
+\def\verbatimon{\catcode`\|=\active}
+\def\verbatimoff{\catcode`\|=\other}
+\verbatimoff
diff --git a/macros/mtex/documentation/webmac.tex b/macros/mtex/documentation/webmac.tex
new file mode 100644
index 0000000000..769fa8bf9d
--- /dev/null
+++ b/macros/mtex/documentation/webmac.tex
@@ -0,0 +1,201 @@
+% This is WEBMAC.TEX in text format, as of May 5, 1986.
+% standard macros for WEB listings (in addition to PLAIN.TEX)
+\xdef\fmtversion{\fmtversion+WEBMAC1.4}
+\parskip 0pt % no stretch between paragraphs
+\parindent 1em % for paragraphs and for the first line of Pascal text
+
+\font\eightrm=cmr8
+\let\sc=\eightrm \let\mainfont=\tenrm
+\font\titlefont=cmr7 scaled\magstep4 % title on the contents page
+\font\ttitlefont=cmtt10 scaled\magstep2 % typewriter type in title
+\font\tentex=cmtex10 % TeX extended character set (used in strings)
+
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\|#1{\hbox{$#1$}} % one-letter identifiers look a bit better this way
+\def\&#1{\hbox{\bf#1\/}} % boldface type for reserved words
+\def\.#1{\hbox{\tentex % typewriter type for strings
+ \let\\=\BS % backslash in a string
+ \let\'=\RQ % right quote in a string
+ \let\`=\LQ % left quote in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ #1}}
+\def\#{\hbox{\tt\char`\#}} % parameter sign
+\def\${\hbox{\tt\char`\$}} % dollar sign
+\def\%{\hbox{\tt\char`\%}} % percent sign
+\def\^{\ifmmode\mathchar"222 \else\char`^ \fi} % pointer or hat
+% circumflex accents can be obtained from \^^D instead of \^
+\def\AT!{@} % at sign for control text
+
+\chardef\AM=`\& % ampersand character in a string
+\chardef\BS=`\\ % backslash in a string
+\chardef\LB=`\{ % left brace in a string
+\def\LQ{{\tt\char'22}} % left quote in a string
+\chardef\RB=`\} % right brace in a string
+\def\RQ{{\tt\char'23}} % right quote in a string
+\def\SP{{\tt\char`\ }} % (visible) space in a string
+\chardef\TL=`\~ % tilde in a string
+\chardef\UL=`\_ % underline character in a string
+
+\newbox\bak \setbox\bak=\hbox to -1em{} % backspace one em
+\newbox\bakk\setbox\bakk=\hbox to -2em{} % backspace two ems
+
+\newcount\ind % current indentation in ems
+\def\1{\global\advance\ind by1\hangindent\ind em} % indent one more notch
+\def\2{\global\advance\ind by-1} % indent one less notch
+\def\3#1{\hfil\penalty#10\hfilneg} % optional break within a statement
+\def\4{\copy\bak} % backspace one notch
+\def\5{\hfil\penalty-1\hfilneg\kern2.5em\copy\bakk\ignorespaces}% optional break
+\def\6{\ifmmode\else\par % forced break
+ \hangindent\ind em\noindent\kern\ind em\copy\bakk\ignorespaces\fi}
+\def\7{\Y\6} % forced break and a little extra space
+
+\let\yskip=\smallskip
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1 #2.\par}}
+\def\lapstar{\rlap{*}}
+\def\startsection{\Q\noindent{\let\*=\lapstar\bf\modstar.\quad}}
+\def\defin#1{\global\advance\ind by 2 \1\&{#1 }} % begin `define' or `format'
+\def\A{\note{See also}} % cross-reference for multiply defined section names
+\def\B{\mathopen{\.{@\{}}} % begin controlled comment
+\def\C#1{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % Pascal comments
+ \XX\hfil\penalty-1\hfilneg\quad$\{\,$#1$\,\}$\XX}
+\def\D{\defin{define}} % macro definition
+\def\E{\cdot10^} % exponent in floating point constant
+\def\F{\defin{format}} % format definition
+\let\G=\ge % greater than or equal sign
+\def\H#1{\hbox{\rm\char"7D\tt#1}} % hexadecimal constant
+\let\I=\ne % unequal sign
+\def\J{\.{@\&}} % TANGLE's join operation
+\let\K=\gets % left arrow
+\let\L=\le % less than or equal sign
+\outer\def\M#1.{\MN#1.\ifon\vfil\penalty-100\vfilneg % beginning of section
+ \vskip12ptminus3pt\startsection\ignorespaces}
+\outer\def\N#1.#2.{\MN#1.\vfil\eject % beginning of starred section
+ \def\rhead{\uppercase{\ignorespaces#2}} % define running headline
+ \message{*\modno} % progress report
+ \edef\next{\write\cont{\Z{#2}{\modno}{\the\pageno}}}\next % to contents file
+ \ifon\startsection{\bf\ignorespaces#2.\quad}\ignorespaces}
+\def\MN#1.{\par % common code for \M, \N
+ {\xdef\modstar{#1}\let\*=\empty\xdef\modno{#1}}
+ \ifx\modno\modstar \onmaybe \else\ontrue \fi \mark{\modno}}
+\def\O#1{\hbox{\rm\char'23\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\P{\rightskip=0pt plus 100pt minus 10pt % go into Pascal mode
+ \sfcode`;=3000
+ \pretolerance 10000
+ \hyphenpenalty 10000 \exhyphenpenalty 10000
+ \global\ind=2 \1\ \unskip}
+\def\Q{\rightskip=0pt % get out of Pascal mode
+ \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50 }
+\let\R=\lnot % logical not
+\let\S=\equiv % equivalence sign
+\def\T{\mathclose{\.{@\}}}} % terminate controlled comment
+\def\U{\note{This code is used in}} % cross-reference for uses of sections
+\let\V=\lor % logical or
+\let\W=\land % logical and
+\def\X#1:#2\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % section name
+ \XX$\langle\,$#2{\eightrm\kern.5em#1}$\,\rangle$\XX}
+\def\Y{\par\yskip}
+\let\Z=\let % now you can \send the control sequence \Z
+\def\){\hbox{\.{@\$}}} % sign for string pool check sum
+\def\]{\hbox{\.{@\\}}} % sign for forced line break
+\def\=#1{\kern2pt\hbox{\vrule\vtop{\vbox{\hrule
+ \hbox{\strut\kern2pt\.{#1}\kern2pt}}
+ \hrule}\vrule}\kern2pt} % verbatim string
+\let\~=\ignorespaces
+\let\*=*
+
+\def\onmaybe{\let\ifon=\maybe} \let\maybe=\iftrue
+\newif\ifon \newif\iftitle \newif\ifpagesaved
+\def\lheader{\mainfont\the\pageno\eightrm\qquad\rhead\hfill\title\qquad
+ \tensy x\mainfont\topmark} % top line on left-hand pages
+\def\rheader{\tensy x\mainfont\topmark\eightrm\qquad\title\hfill\rhead
+ \qquad\mainfont\the\pageno} % top line on right-hand pages
+\def\page{\box255 }
+\def\normaloutput#1#2#3{\ifodd\pageno\hoffset=\pageshift\fi
+ \shipout\vbox{
+ \vbox to\fullpageheight{
+ \iftitle\global\titlefalse
+ \else\hbox to\pagewidth{\vbox to10pt{}\ifodd\pageno #3\else#2\fi}\fi
+ \vfill#1}} % parameter #1 is the page itself
+ \global\advance\pageno by1}
+
+\def\rhead{\.{WEB} OUTPUT} % this running head is reset by starred sections
+\def\title{} % an optional title can be set by the user
+\def\topofcontents{\centerline{\titlefont\title}
+ \vfill} % this material will start the table of contents page
+\def\botofcontents{\vfill} % this material will end the table of contents page
+\def\contentspagenumber{0} % default page number for table of contents
+\newdimen\pagewidth \pagewidth=6.5in % the width of each page
+\newdimen\pageheight \pageheight=8.7in % the height of each page
+\newdimen\fullpageheight \fullpageheight=9in % page height including headlines
+\newdimen\pageshift \pageshift=0in % shift righthand pages wrt lefthand ones
+\def\magnify#1{\mag=#1\pagewidth=6.5truein\pageheight=8.7truein
+ \fullpageheight=9truein\setpage}
+\def\setpage{\hsize\pagewidth\vsize\pageheight} % use after changing page size
+\def\contentsfile{CONTENTS} % file that gets table of contents info
+\def\readcontents{\input CONTENTS}
+
+\newwrite\cont
+\output{\setbox0=\page % the first page is garbage
+ \openout\cont=\contentsfile
+ \global\output{\normaloutput\page\lheader\rheader}}
+\setpage
+\vbox to \vsize{} % the first \topmark won't be null
+
+\def\ch{\note{The following sections were changed by the change file:}
+ \let\*=\relax}
+\newbox\sbox % saved box preceding the index
+\newbox\lbox % lefthand column in the index
+\def\inx{\par\vskip6pt plus 1fil % we are beginning the index
+ \write\cont{} % ensure that the contents file isn't empty
+ \closeout\cont % the contents information has been fully gathered
+ \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
+ \global\setbox\sbox=\page \global\pagesavedtrue}
+ \pagesavedfalse \eject % eject the page-so-far and predecessors
+ \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
+ \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height
+ \hsize=.5\pagewidth \advance\hsize by -10pt
+ % column width for the index (20pt between cols)
+ \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
+ \def\lr{L} % this tells whether the left or right column is next
+ \output{\if L\lr\global\setbox\lbox=\page \gdef\lr{R}
+ \else\normaloutput{\vbox to\pageheight{\box\sbox\vss
+ \hbox to\pagewidth{\box\lbox\hfil\page}}}\lheader\rheader
+ \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
+ \message{Index:}
+ \parskip 0pt plus .5pt
+ \outer\def\:##1, {\par\hangindent2em\noindent##1:\kern1em} % index entry
+ \let\ttentry=\. \def\.##1{\ttentry{##1\kern.2em}} % give \tt a little room
+ \def\[##1]{$\underline{##1}$} % underlined index item
+ \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar
+ \hyphenpenalty 10000 \parindent0pt}
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\rhead{NAMES OF THE SECTIONS}
+ \message{Section names:}
+ \output{\normaloutput\page\lheader\rheader}
+ \setpage
+ \def\note##1##2.{\hfil\penalty-1\hfilneg\quad{\eightrm##1 ##2.}}
+ \linepenalty=10 % try to conserve lines
+ \def\U{\note{Used in}} % cross-reference for uses of sections
+ \def\:{\par\hangindent 2em}\let\*=*\let\.=\ttentry}
+\def\con{\par\vfill\eject % finish the section names
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage
+ \output{\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber \def\rhead{TABLE OF CONTENTS}
+ \message{Table of contents:}
+ \topofcontents
+ \line{\hfil Section\hbox to3em{\hss Page}}
+ \def\Z##1##2##3{\line{\ignorespaces##1
+ \leaders\hbox to .5em{.\hfil}\hfil\ ##2\hbox to3em{\hss##3}}}
+ \readcontents\relax % read the contents info
+ \botofcontents \end} % print the contents page(s) and terminate
diff --git a/macros/mtex/macros/mtex.tex b/macros/mtex/macros/mtex.tex
new file mode 100644
index 0000000000..57c2acdb2d
--- /dev/null
+++ b/macros/mtex/macros/mtex.tex
@@ -0,0 +1,1976 @@
+% %
+% Copyright (C) 1986,1987 by Andrea Steinbach and Angelika Schofer %
+% %
+% %
+% 10.11.87 \def\hunkglue ge"andert. (welche Auswirkungen hat das, %
+% ausser dass \two... einen Fehler weniger macht???) %
+% 16.11.87 \def\intslurwidth ge"andert (vor division += \seminhw %
+% 16.11.87 \def\gradientslur ge"andert (vor division += .5\seminhh %
+% %
+\def\fmtname{MTeX}\def\fmtversion{0.92}
+\immediate\write10{MTeX Version 0.92 - Release 16 November 1987}
+% %
+% INHALTSVERZEICHNIS %
+% %
+% Allgemeine Vereinbarungen ......................................... 2 %
+% Definitionen der neuen Zeichensaetze .............................. 2 %
+% Definitionen der neuen Character .................................. 2 %
+% Registerdefinitionen: Count,Box,Dimen usw ......................... 3 %
+% Registerinitialisierungen ......................................... 6 %
+% Punktierung ....................................................... 7 %
+% Hilfsfunktionen - Hilfsmacros ..................................... 8 %
+% Macros zur Listenerzeugung und Verarbeitung .......................10 %
+% Notenlinien und Hilfslinien .......................................11 %
+% Taktstriche u. ae. ................................................12 %
+% Das Setzen der Versetzungszeichen .................................13 %
+% Versetzungszeichen - Eingabemacros ................................14 %
+% Noten - Eingabemacros ................................14 %
+% Pausen - Eingabemacros ................................14 %
+% Wertpunkte ........................................................15 %
+% Akkorde - Eingabemacros ................................16 %
+% Konstruktion der Noten und Pausen .................................16 %
+% Berechnung der Notenhalslaengen ...................................17 %
+% Konstruktion der Notenhaelse ......................................18 %
+% Das Setzen der Noten ..............................................18 %
+% Tonarten und Aufloesung, Notenschluessel und Taktangabe ...........19 %
+% Die Verarbeitung der Nachbarschaften ..............................20 %
+% Die Initialisierung der Listen einer Notengruppe ..................20 %
+% Abarbeitung und Setzen einer Notengruppe ..........................21 %
+% Verbalkung - Eingabemacros ........................................21 %
+% Berechnungen der Halslaengen und Steigung .........................22 %
+% Plazierung und Zusammensetzung der Balken .........................24 %
+% Die Bogen .........................................................25 %
+% Akzente fuer Noten und Akkorde ....................................30 %
+% Textunterlage .....................................................31 %
+% Zweistimmige Notation in einem System .............................33 %
+% Beginn und Ende ...................................................33 %
+% Defaults ..........................................................34 %
+% %
+% %
+% (Seitennummern bei Druck des Makropakets mit 60 Zeilen je Seite) %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+% %
+\catcode`@=11
+% ************************************************** %
+% * Allgemeine Vereinbarungen * %
+% ************************************************** %
+\frenchspacing
+%\parindent 0pt
+% Parameter fuer Notensatz
+\def\inisong{\linepenalty10%\linepenalty100
+ \pretolerance=-1
+ \tolerance=200
+ \finalhyphendemerits=-1000
+ \hyphenpenalty=-1000
+ \exhyphenpenalty=-100
+ \doublehyphendemerits=-1000
+ \adjdemerits=1000
+ \adjdemerits=250
+ \interlinepenalty=-10 \inidefaults}%\inidefaults siehe DEFAULTS
+%\parfillskip0pt
+% Dimensionen die in PLAIN TEX eingefuehrt wurden
+%\newdimen\p@ \p@=1pt % this saves macro space and time
+%\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
+%\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+%\newbox\voidb@x % permanently void box register
+% ************************************************** %
+% * Definition der neuen Zeichensaetze * %
+% ************************************************** %
+\font\music=music16 %Noten
+\font\smallmusic=music16 %Noten(im Moment noch mit
+ %\music identisch
+\font\beamfont=beam16 %Balken
+\font\slurfont=slur16 %Bogen
+\font\slurfontuu=sluruu16 %Bogen
+\font\slurfontud=slurud16 %Bogen
+\font\slurfontdu=slurdu16 %Bogen
+\font\slurfontdd=slurdd16 %Bogen
+\font\eightrm =cmr8
+% ************************************************** %
+% * Definition der neuen Character * %
+% ************************************************** %
+\catcode`\"=12
+\def\hex{"} % zum Eingeben von Zahlen in hex
+\def\3{\char"19{}}
+\catcode`\"=\active %Unlaute
+\def"{\accent'177}
+%
+\chardef\quart=\hex21 %Notenkoepfe
+\chardef\half=\hex22
+\chardef\whole=\hex23
+\chardef\eighthup=\hex28 %Faehnchen
+\chardef\eighthdown=\hex2D
+\chardef\sixteenthup=\hex29
+\chardef\sixteenthdown=\hex2E
+\chardef\thirtytwoup=\hex2A
+\chardef\thirtytwodown=\hex2F
+\chardef\sixtyfourup=\hex2B
+\chardef\sixtyfourdown=\hex30
+\chardef\hundredtwentyeightup=\hex2C
+\chardef\hundredtwentyeightdown=\hex31
+\chardef\wholerest=\hex3C %Pausen
+\chardef\halfrest=\hex3D
+\chardef\quartrest=\hex3E
+\chardef\eighthrest=\hex3F
+\chardef\sixteenthrest=\hex40
+\chardef\doublerest=\hex3A %Taktpausen
+\chardef\ddoublerest=\hex3B
+\chardef\fermateup=\hex50 %Fermaten
+\chardef\fermatedown=\hex51
+\chardef\mflat=\hex32 %Versetzungszeichen
+\chardef\mdoubleflat=\hex33
+\chardef\mquartflat=\hex37
+\chardef\mthreequartflat=\hex3A
+\chardef\msharp=\hex34
+\chardef\mdoublesharp=\hex35
+\chardef\mnatural=\hex36
+\chardef\mviolin=\hex47 %Notenschluessel
+\chardef\mviolinoct=\hex47
+\chardef\mviolinOct=\hex47
+\chardef\mbass=\hex49
+\chardef\mbassoct=\hex49
+\chardef\mbassOct=\hex49
+\chardef\mbariton=\hex4D
+\chardef\mtenor=\hex4C
+\chardef\malt=\hex4B
+\chardef\mmezzosopran=\hex4E
+\chardef\msopran=\hex4E
+\chardef\mC=\hex53 %Taktangaben
+\chardef\allabreve=\hex52
+\chardef\mCreverse=\hex54
+% ************************************************** %
+% * Registerdefinitionen * %
+% ************************************************** %
+%1.Hilfsregister
+\newbox\hb@i % Hilfsbox
+\newbox\hb@ii % Hilfsbox
+\newbox\hb@iii % Hilfsbox
+\newbox\hb@iv % Hilfsbox
+\newdimen\hd@i % Hilfsdimension
+\newdimen\hd@ii % Hilfsdimension
+\newdimen\hd@iii % Hilfsdimension
+\newcount\hc@i % Hilfscount
+\newcount\hc@ii % Hilfscount
+\newskip\hs@i % Hilfsskip
+\newskip\hs@ii % Hilfsskip
+\newskip\hs@iii % Hilfsskip
+\newskip\hs@iv % Hilfsskip
+\newskip\hs@v % Hilfsskip
+\newskip\hs@vi % Hilfsskip
+\newskip\hs@vii % Hilfsskip
+\newtoks\ht@i % Hilfstokenregister
+%2. Boxes fuer Notenkonstruktionen
+\newbox\notebox %zum Setzen der Noten
+\newbox\leftbox %Akkordnoten links vom Notenhals
+\newbox\rightbox %Akkordnoten rechts vom Notenhals
+\newbox\dotbox %Wertpunkte fuer Akkorde
+\newbox\akzentbox %Akzente
+\newbox\hunkbox %Hunks
+\newbox\h@nkbox %Hunks im zweidimensionalen Satz
+\newbox\legerbox %Hilfslinien
+\newbox\firstvoice %erste Stimme bei Zweistimmiger Notation
+\newbox\secondvoice %zweite Stimme bei Zweistimmiger Notation
+\newbox\placebox %zum Setzen der Taktangabe
+\newbox\neighborhood %Box zum Speichern der Nachbarschaft
+%3. Tokenregister
+\newtoks\notename %Noten- oder Pausenwertname
+\newtoks\direction %Richtung des Notenhalses up oder down
+\newtoks\d@rection %Richtung des Notenhalses (global)
+\newtoks\cleftoks %aktueller Notenschluessel
+\newtoks\signtoks %aktuelle Vorzeichnung
+\newtoks\canceltoks %aktuelle Aufloesung
+\newtoks\slurtoks %zur Bestimmung des Charactercodes fuer Bogen
+\newtoks\ta %fuer Listenverarbeitung ....
+\newtoks\tb % .... bei \rightappend
+%4.Umgebungen
+\newif\iffirst %erste Zeile Zeilenanfang: Initialisierung von
+ %Notenschluessel, Tonart und Taktart
+\newif\ifbeam %Verbalkung
+\newif\ifchord %Akkord
+\newif\ifleft %Plazieren der Akkordnoten links vom Notenhals
+\newif\ifstemup %Notenhalsrichtung aufwaerts
+\newif\ifgroup %Initialisierung der Nachbarschaftslisten
+\newif\iftwo %zweistimmiger Notensatz
+\groupfalse\chordfalse\leftfalse\beamfalse\groupfalse\twofalse
+%5.Countregister
+\newcount\dur@tion
+% \dur@tion Notenwert
+% 0 1/1
+% 1 1/2
+% 2 1/4
+% 3 1/8
+% 4 1/16
+% 5 1/32
+% 6 1/64
+% 7 1/128
+\newcount\pitch % interne Tonhoehe
+\newcount\pit@ % interne Hilfstonhoehe
+\newcount\oldpitch % interne Tonhoehe
+\global\oldpitch=0 % Anfangsbelegung
+\newcount\maxpitch % maximale interne Tonhoehe bei Akkord
+\newcount\minpitch % minimale interne Tonhoehe bei Akkord
+\newcount\nn % Anzahl der Hilfslinien
+\newcount\clefcount % Parameter Verschieben der Vorzeichnung
+ % abhaengig von Notenschluessel
+\newcount\accpitch % Vozeichnungs Tonhoehe
+ %Nachbarschaften: Balken- und Bogengruppen
+\newcount\tieconst % Konstante fuer Hoehe des Bogenstuecks
+ % fuer Haltebogen
+\newcount\phraseconst % konstantes Bogenstueck bei Phrasierungs-
+ % bogen
+\newcount\n@a % Index 1.Element einer Gruppe
+\newcount\n@i % Laufindex in der Gruppe
+\newcount\n@e % Index letztes Element einer Gruppe
+\newcount\N % Kardinalitaet der Nachbarschaft
+\newcount\m@i % Listenindex
+\newcount\m@ii % Listenindex
+\newcount\L@ % Laenge des Balkens in 0.5pt
+\newcount\l@ % zur Zusammensetzung des Balkens
+\newcount\m@a\newcount\m@e % Anfangs- und Endindex der Elementliste
+ % die durch einen Balken verbunden werden
+ % sollen
+\newcount\P@i %lok. pitch, der in endpoint benutzt wird
+\newcount\P@a %Anfangspitch
+\newcount\P@e %Endpitch
+\newcount\beamrow %Korrektur von vpos bei mehrfachverb.
+\newcount\S % Steigung
+\newcount\S@ % Absolutbetrag der Steigung
+\newcount\slurwidth % Ganzzahlige Breite eines Bogens in
+ % Einheiten von \nhw
+\newcount\V@int % Ganzzahlige Hoehe eines Bogens in
+ % Einheiten von 1/2\nhh
+\newcount\CODE % Charcode Steigung von Balken
+\newcount\flaga % Werte 0,1,2 Bogenanfang
+\newcount\flagb % Werte 0,1,2 Bogenende
+\newcount\flagc % Balkensteigung = 0 ja/nein
+%6.Dimensionsregister
+%Konstanten
+\newdimen\linethickness % Dicke einer Notenlinie
+\newdimen\nhh % Linienabstand, noteheadheight
+\newdimen\nhw % Notenkopfbreite, noteheadwidth
+\newdimen\seminhh % halber Linienabstand = 1/2\nhh
+\newdimen\seminhw % halbe Notenkopfbreite = 1/2\nhw
+\newdimen\twonhh % = 2\nhh
+\newdimen\I@@ % = 100pt
+\newdimen\stemwidth % = 2\linethickness
+\newdimen\beamthickness % = 0.6 \nhh
+\newdimen\staffheight % = 4\nhh + \linehight
+\newdimen\textline % = \staffheigth, Abstand Schriftlinie --
+ % Grundlinie bei Textunterlage
+\newdimen\linekern % \nhh - \linethickness,kern zw.den Zeilen
+\newdimen\Linekern % \nhh -2\linethickness,kern zw.den Zeilen
+ % bei Hilfslinien
+\newdimen\dotwd % Breite eines Verlaengerungspunktes
+\newdimen\smkern % kleiner Kern zur Korrektur vor und
+ % nach Notenkoepfen (Hilfslinien)
+%Parameter
+\newdimen\yshift % dimen!, um die die Vorzeichen verschoben
+ % werden in Y-Richtung!
+\newdimen\nyshift % dimen!, um die die NOTENbox verschoben
+ % wird in Y-Richtung!
+\newdimen\lyshift % dimen!, um die die LEGERbox verschoben
+ % wird in Y-Richtung!
+\newdimen\akzent@pos %vertikale Positionierung eines
+ %Artikulationszeichens
+ %Nachbarschaften: Balken- und Bogengruppen
+\newdimen\s@a %Anfangstemlength
+\newdimen\s@e %Endstemlength
+\newdimen\minsl %untere Grenze f. Stemverkuerzung
+\newdimen\R@i % rel. Hoehe des Notenkopfes pitch*seminhh
+\newdimen\E@a % Endpunkt des Notenhalses Anfangsnote
+% pitch*seminhh +(-)stemlength
+\newdimen\R@a % rel. Hoehe des Notenkopfes pitch*seminhh
+\newdimen\E@e % Endpunkt des Notenhalses Endnote
+% pitch*seminhh +(-)stemlength
+\newdimen\R@e % relative Hoehe des Notenkopfes
+\newdimen\s@i %lok. stemlength, in endpoint
+\newdimen\Abs %Absoluter Abstand zwischen 2 Endpunkten
+\newdimen\corr %Korrekturwert fuer 2. Stem
+\newdimen\sl@c %4.Korrekturwert fuer Stemlaengen
+\newdimen\EP@ %Endpunkt des ersten Stems einer Notengr.
+\newdimen\EP@i %Endpunkt des Stems innerhalb einer Gruppe
+\newdimen\E@l % Unterer Startpunkt fuer Bogenansatz
+\newdimen\E@u % oberer Startpunkt fuer Bogenansatz
+\newdimen\H@e % horizontaler Abstand zwischen zwei Noten
+\newdimen\H@a % Korrekturwert zur Berechnung von H@e
+\newdimen\H@a@cor % Korrekturwert zur Berechnung der Laenge
+ % Balkens oder Bogens (bzgl. H@list)
+\newdimen\H@e@cor % Korrekturwert zur Berechnung der Laenge
+ % Balkens oder Bogens (bzgl. H@list)
+\newdimen\limit %\limit = 0.45\H@e=Grenzwert
+\newdimen\V@ %vertikaler Abstand zwischen zwei Noten
+\newdimen\gradfactor %= 0.005\S\p@
+\newdimen\SHIFT
+\newdimen\slurcor % horizontal Kern fuer Bogenpositionierung
+\newdimen\H@m@a % Horizontaler Abschnitt von m@a
+\newdimen\L@a % Balkenlaenge
+\newdimen\V@a % vertikale Position des Balkens
+\newdimen\stemlength % Laenge des Notenhalses
+\newdimen\linelength % Laenge der Notenlinien
+%Textunterlage
+\newdimen\overtext % fuer Textueberlage
+\newdimen\undertext % fuer Textunterlage
+%6. Skipregister
+% Ausschlussparamter
+\newskip \NOTEskip % Glue nach ganzer Note
+\newskip \Noteskip % Glue nach halber Note
+\newskip \noteskip % Glue nach 1/4 Note
+\newskip \notEskip % Glue nach 1/8 Note
+\newskip \noTEskip % Glue nach 1/16 Note
+\newskip \nOTEskip % Glue nach 1/32 Note
+\newskip \nOteskip % Glue nach 1/64 Note
+\newskip \nOtEskip % Glue nach 1/128 Note
+\newskip \ruleskip % Glue nach Rules
+\newdimen\hunkskip % Glue fuer Hunks
+\newskip\oldskip % aktueller \spaceskip vor Nachbarschaft
+% ************************************************** %
+% * Registerinitialisierungen * %
+% ************************************************** %
+\beamfont \beamthickness = 1ex
+\music \nhh = 1ex \nhw = 1em
+ \seminhh = 0.5\nhh \seminhw = 0.5\nhw
+ \twonhh = 2 \nhh
+\I@@ = 100 pt
+\linethickness = 0.15pt
+\stemwidth = 2\linethickness
+\staffheight = 4 \nhh \advance\staffheight by \linethickness
+\linekern = \nhh \advance\linekern by-\linethickness
+\Linekern = \nhh \advance\Linekern by-2\linethickness
+\overtext =\staffheight \advance\overtext by\nhh
+\def\u@text{\relax}\def\l@text{\relax}
+\textline =\staffheight
+\undertext =\textline
+\tieconst = 4 \phraseconst = 2
+\def\up@{up}\def\down@{down}
+% ************************************************** %
+% * Punktierung * %
+% ************************************************** %
+%1.Ausschluss-schemata
+\let\sk=\spaceskip
+%\ruleskip = \seminhw plus \seminhw minus 0.5\seminhw
+\ruleskip = \nhw plus \seminhw minus \seminhw
+\smkern = 0.2\nhw \relax
+\def\hsmall{%hader
+\Noteskip 3\nhw plus 2\seminhw minus 2\seminhw
+\NOTEskip = \Noteskip
+\noteskip 2\nhw plus 1.5\seminhw minus 1.5\seminhw
+\notEskip 1\nhw plus \seminhw minus \seminhw
+\noTEskip \z@ plus 0.5\seminhw minus \z@
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@\relax}
+\def\small{%
+\Noteskip 3.5\nhw plus 1.8\seminhw minus 1.8\seminhw
+\NOTEskip = \Noteskip
+\noteskip 2.5\nhw plus 1.4\seminhw minus 1.4\seminhw
+\notEskip 1.5\nhw plus \seminhw minus \seminhw
+\noTEskip \seminhw plus 0.6\seminhw minus 0.6\seminhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@ \relax}
+\def\universal{%
+\Noteskip 4\nhw plus 1.6\nhw minus 1.6\nhw
+\NOTEskip = \Noteskip
+\noteskip 3\nhw plus 1.3\nhw minus 1.3\nhw
+\notEskip 2\nhw plus \nhw minus \nhw
+\noTEskip \nhw plus 0.6\nhw minus 0.6\nhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@ \relax}
+\def\wide{%
+\Noteskip 4\nhw plus 1.42\nhw minus 1.42\nhw
+\NOTEskip = \Noteskip
+\noteskip 3.5\nhw plus 1.28\nhw minus 1.28\nhw
+\notEskip 2.5\nhw plus \nhw minus \nhw
+\noTEskip 1.5\nhw plus 0.9\nhw minus 0.9\nhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@ \relax}
+\def\loose{%
+\Noteskip 5\nhw plus 1.5\nhw minus 1.5\nhw
+\NOTEskip = \Noteskip
+\noteskip 4\nhw plus 1.25\nhw minus 1.25\nhw
+\notEskip 3\nhw plus \nhw minus \nhw
+\noTEskip 2\nhw plus 0.75\nhw minus 0.75\nhw
+\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip
+\hunkskip \z@\relax}
+%1.Glue-Makros
+\def\hunkglue{\hunkskip=\sk\relax\advance \hunkskip by -\wd\hunkbox
+ \ifdim\hunkskip>\z@ \hunkskip=\wd\hunkbox\relax
+% \else \hunkskip=\sk \advance\hunkskip-\seminhw\relax \fi}%schm 10.11.87
+ \else \hunkskip=\sk \relax \fi}%schm 10.11.87
+%Glue vor einer Rule (Taktstrich etc.)
+\def\gluebrule{\hunkglue\nobreak\ \hskip-\hunkskip\box\hunkbox%
+ \u@text\l@text\nobreak}
+%Glue vor einer Taktangabe
+\def\gluebmeter{\hunkglue\kern\seminhw\nobreak\box\hunkbox%
+ \u@text\l@text\nobreak}
+%Glue nach einer Rule (Taktstrich etc.)
+\def\gluearule{\-\global\sk\ruleskip}
+\def\set@rulesk{\global\sk\ruleskip}
+%Glue vor einer Note
+\def\sethunkglue{\hunkglue\nobreak\ \hskip-\hunkskip}
+%Umbruchm"oglichkeit im Taktinnern
+\def\+{\ \-\global\sk=\z@skip}
+% ************************************************** %
+% * Hilfsfunktionen * %
+% ************************************************** %
+%entspricht dem von Knuth angegebenen Makro der \loop-Schleife, jedoch
+%wird die Schleife bei \else wiederholt.
+\def\looop#1\leave{\def\boddy{#1}\iiterate}
+\def\iiterate{\boddy \let\nexxt\relax \else\let\nexxt\iiterate\fi \nexxt}
+\let\leave=\fi % this makes \looop...\if...\leave skippable
+% entspricht |#1 - #2|
+\def\distance#1#2{\relax\ifdim#1>#2\relax\Abs=#1\advance\Abs by-#2\relax
+ \else\Abs=#2\advance\Abs by-#1\relax\fi}
+%Notensetzen, z.B. Ineinanderschieben von Hilfslinienbox und Notenbox
+%Breite des Boxinhalts wird ignoriert
+\def\cbox#1{\hbox to \z@{\hss#1\hss}} % zentriert den Inhalt der Box
+\def\hboxnhw#1#2{\hbox to \nhw{\hss\cbox{#1}\cbox{#2}\hss}}
+ %Box der Breite eines Notenkopfes
+\def\ignore#1{\hbox to \z@{\hss#1}} % entspricht \llap in PLAIN
+ %z.B. fuer Oktavierung des Versetzungszeichen
+%Rules fuer Phrasierungen
+\def\r@lef@ill#1{\leaders\hrule height \z@ depth #1 \relax\hfill}
+\def\r@lef@ll#1{\leaders\hrule height #1 depth \z@ \relax\hfill}
+%zum Setzen der Phrasierungsboegen
+\def\vt@@#1{\vtop to\z@{\offinterlineskip\null\hbox{#1}\vss}}
+\def\vb@@#1{\vbox to\z@{\offinterlineskip\vss\hbox{#1}\null}}
+% Korrekturfunktionen fuer Berechnung der Halslaenge
+\def\corra#1{\relax \ifdim\Abs>\seminhh
+ \ifdim#1>\minsl \advance #1 by -\seminhh\fi
+ \fi}
+%1. Verkuerzung, des hoeherliegenden(stemup) bzw. tieferliegenden
+%(stemdown) Notenhalses um \seminhh falls moeglich(Abstand>\seminhh)
+\def\corrb#1{\advance #1 by \corr}
+%2. Verlaengerung des anderen Notenhalses um Hoechstabstand zu
+%erreichen
+\def\corrc#1{\advance #1 by \seminhh}
+%3. p1^=p2 Abstand =0 : Verkuerzung des Notenhalses der tiefer (hoeher)
+%gelegenen Note um \seminhh
+%
+%Funktionen die die vertikalen Abstaende
+%der Bogenendpunkte von der Grundlinie berechnen
+%dabei ist E@u der Ansatz des oberhalb verlaufenden Bogens
+%und E@l der Ansatz des unterhalb verlaufenden Bogens
+%Punkte fuer Akkorde (oberhalb/unterhalb)
+\def\chordupperstartpoints{%
+ \global\E@u\maxpitch\seminhh \global\advance\E@u\nhh
+ \ifdim\E@u<\z@ \global\advance \E@u-\I@@
+ \else \global\advance \E@u \I@@ \fi}
+\def\chordlowerstartpoints{%
+ \global\E@l\minpitch\seminhh \global\advance\E@l-\nhh
+ \ifdim\E@l<\z@ \global\advance \E@l-\I@@
+ \else \global\advance \E@l \I@@ \fi}
+\def\whatisnewstartpoint{%
+ \ifdim\E@a=\z@ \global\E@a = 1sp \fi
+ \ifstemup\relax
+ \expandafter\exchange\the\E@a\in\uslurlist\at \n@a
+ \else \relax
+ \expandafter\exchange\the\E@a\in\lslurlist\at \n@a
+ \fi
+ }
+%neue Ansatzwerte E@l E@u berechnen und an \n@i-te Stelle der
+% \lslurlist bzw. \uslurlist setzen (NACH Balkenberechnung)
+\def\whatarenewstartpoints{%
+ \ifdim\EP@i=\z@ \global\EP@i = 1sp \fi
+ \ifstemup\relax
+ \expandafter\exchange\the\EP@i\in\uslurlist\at \n@i
+ \else \relax
+ \expandafter\exchange\the\EP@i\in\lslurlist\at \n@i
+ \fi
+ }
+% belegt #2 mit dem Endpunkt des Notenhalses des #1-ten Elementes der
+% Notengruppe
+\def\getendpoint#1#2{\relax\hc@i=#1%
+ \lokalassign\hc@i\of\H@list\to\hd@i
+ \lokalassign\hc@i\of\H@corlist\to\hd@ii
+ \select\hc@i\of\dir@list\to\dir@i
+ \ifx\dir@i\down@ \advance\hd@ii\nhw \fi
+ \advance\hd@i by-\hd@ii
+ \advance\hd@i by-\H@a \multiply\hd@i by\S \hd@i=0.01 \hd@i
+ \advance\hd@i by\EP@ %EP@ = Endpunkt @ n@a
+ \global#2=\hd@i}
+%
+% Weist \S die im Balken- / Bogenfont vorhandene Steigung zu
+\def\addC{\global\advance\CODE by }
+\def\assignS{%
+ \ifnum\S<0 \S@=-\S \else \S@=\S \fi
+ \ifnum\S@< 1 \S@=0 \else
+ \ifnum\S@< 8 \S@=5 \else
+ \ifnum\S@<12 \S@=10 \else
+ \ifnum\S@<17 \S@=15 \else
+ \ifnum\S@<22 \S@=20 \else
+ \ifnum\S@<27 \S@=25 \else
+ \ifnum\S@<32 \S@=30 \else
+ \ifnum\S@<40 \S@=35 \else \S@=45\fi\fi\fi\fi\fi\fi\fi\fi
+ \ifnum\S<0\global\S=-\S@ \else\global\S=\S@\fi}
+% Berechnet den Code der Steigung im Bogenfont
+\def\assignCODE{%
+ \ifnum\S< 0 \global\CODE = 64 \S@ = -\S \else \S@ = \S
+ \global\CODE = 0 \fi
+ \ifnum\S@< 6 \addC 0 \else
+ \ifnum\S@<11 \addC 8 \else
+ \ifnum\S@<16 \addC16 \else
+ \ifnum\S@<21 \addC24 \else
+ \ifnum\S@<26 \addC32 \else
+ \ifnum\S@<31 \addC40 \else
+ \ifnum\S@<36 \addC48 \else
+ \ifnum\S@<46 \addC56 \fi\fi\fi\fi\fi\fi\fi\fi}
+%Im Moment benutzte Steigungen
+%5 10 15 20 25 30 35 45
+\def\assignuslurchar{\hc@i=\slurwidth
+ \ifnum\V@int= 0 %\V@=\z@
+ \ifnum\hc@i>1 \advance\hc@i-2 \else \advance\hc@i-1 \fi
+ \edef\slurchar{\the\hc@i}%
+ \else
+ \ifnum\slurwidth<4 \multiply\hc@i\slurwidth
+ \advance\hc@i-\slurwidth\advance\hc@i\V@int\advance\hc@i-1
+ \multiply\hc@i8\edef\slurchar{\the\hc@i}%
+ \else\advance\hc@i-2 \hc@ii=\V@int\advance\hc@ii-1
+ \ifodd\hc@i\divide\hc@i2
+ \edef\slurchar{\noexpand'1\the\hc@ii\the\hc@i}%
+ \else \divide\hc@i 2 \edef\slurchar{\noexpand'\the\hc@ii\the\hc@i}\fi
+ \fi
+ \fi\slurtoks=\expandafter{\slurchar}}
+\def\assignlslurchar{\hc@i=\slurwidth
+ \ifnum\V@int= 0 %\V=\z@
+ \ifnum\hc@i>1\advance\hc@i14 \else\advance\hc@i15 \fi
+ \edef\slurchar{\the\hc@i}%
+ \else
+ \ifnum\slurwidth<4 \multiply\hc@i by \slurwidth
+ \advance\hc@i-\slurwidth\advance\hc@i\V@int\advance\hc@i-1
+ \multiply\hc@i8\edef\slurchar{\noexpand\the\hc@i}%
+ \else\advance\hc@i-2\hc@ii=\V@int\advance\hc@ii-1
+ \ifodd\hc@i\divide\hc@i2
+ \edef\slurchar{\noexpand'1\the\hc@ii\the\hc@i}%
+ \else \divide\hc@i2 \edef\slurchar{\noexpand'\the\hc@ii\the\hc@i}\fi
+ \fi
+ \fi\slurtoks=\expandafter{\slurchar}}
+% ************************************************** %
+% * Macros zur Listenerzeugung und Verarbeitung * %
+% ************************************************** %
+%\newtoks\ta\newtoks\tb
+%Haengt an Liste #2 ein neues Element mit Inhalt #1 an
+\long\def\rightappend#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}%
+ \edef#2{\the\tb\the\ta}}
+%Weist dem Register (Counter oder Dimension oder Skip ) den Wert des
+%#1-ten Elementes der Liste #2 zu (lokal bzw. global)
+\def\assign#1\of#2\to#3{\m@i=#1\relax
+ \long\def\\##1{\advance\m@i-1\relax % globale Zuweisung
+ \ifnum\m@i=0\relax\global#3=##1\fi}#2\relax}
+%
+\def\lokalassign#1\of#2\to#3{\m@i=#1\relax % lokale Zuweisung
+ \long\def\\##1{\advance\m@i-1\relax\ifnum\m@i=0\relax#3=##1\fi}#2\relax}
+%
+%Definiert die Kontrollsequenz #3 als den Inhalt des
+%#1-ten Elementes der Liste #2 zu (lokal).
+\def\select#1\of#2\to#3{\m@i=#1\relax % lokale Zuweisung
+ \long\def\\##1{\advance\m@i-1\relax\ifnum\m@i=0\relax\def#3{##1}\relax
+ \fi}#2\relax}
+%
+%setzt #1=Anzahl der Elemente einer Liste
+\def\cardinality#1\to#2{#2=0\long\def\\##1{\advance#2 by 1 }#1}
+%
+%Tauscht in Liste #2 den Inhalt des #3-ten Elementes gegen #1 aus.
+\def\exchange#1\in#2\at#3{\m@i=#3\long\def\\##1{\advance\m@i-1
+ \ifnum\m@i=0 \rightappend{#1}\to\helplist
+ \else\rightappend##1\to\helplist\fi}#2%
+ \let\hhelplist=\helplist\global\let#2=\hhelplist\let\helplist=\empty
+ }
+%abhaengig von der Notenkonstellation Abfrage auf \S=0
+\def\gradz@\in#1\with#2#3\from#4\to#5{\m@i=#4\m@ii=#5\relax
+ \advance\m@i 1 \advance\m@ii -1
+ \long\def\\##1{\advance\m@i-1\advance\m@ii-1
+ \ifnum\m@i<1 \ifnum\m@ii>-1 \hc@i=##1\relax
+ \ifnum\hc@i#2#3 \relax \else
+ \global\flagc=0 \ifnum\hc@i#2 4 \relax \else \global\minsl=\twonhh\fi
+ \fi\fi\fi}#1}
+%
+%addiert den Wert von \sl@c zum Wert in Liste #1 von Element #2 bis #3
+\def\addslc\in#1\from#2\to#3{\m@i=#2\m@ii=#3\long\def\\##1{\advance\m@i-1
+ \advance\m@ii-1
+ \ifnum\m@i<1 \ifnum\m@ii>-1 \hd@i=##1 \advance\hd@i\sl@c
+ \expandafter\rightappend\the\hd@i\to\helplist\else
+ \rightappend##1\to\helplist\fi\else\rightappend##1\to\helplist\fi}#1%
+ \let\hhelplist=\helplist\global\let#1=\hhelplist\let\helplist=\empty}
+%
+%wechselt die Richtungen der Notenh"alse in der \dir@list vom
+%#2-ten bis zum #3-ten Element gegen #1 aus.
+\def\putdir#1\from#2\to#3{\m@i=#2\m@ii=#3\def\helplist{}%
+\long\def\\##1{\advance\m@i-1
+ \advance\m@ii-1
+ \ifnum\m@i<1 \ifnum\m@ii>-1
+ \expandafter\rightappend#1\to\helplist\else
+ \rightappend##1\to\helplist\fi\else\rightappend##1\to\helplist\fi}%
+ \dir@list%
+ \let\hhelplist=\helplist\global\let\dir@list
+ =\hhelplist\let\helplist=\empty}
+%
+%Ersetzt den Inhalt des #4-ten Elementes der Liste #3 durch
+%#1 Inhalt #2
+\def\additem#1#2\in#3\at#4{\m@i=#4\long\def\\##1{\advance\m@i-1 \relax
+ \ifnum\m@i=0\ht@i{##1}\edef\h@@@{#1\the\ht@i#2}\expandafter
+ \rightappend\h@@@\to\helplist\else\rightappend##1\to\helplist\fi}#3%
+ \let\hhelplist=\helplist\global\let#3=\hhelplist\let\helplist=\empty
+ }
+% ************************************************** %
+% * Notenlinien und Hilfslinien * %
+% ************************************************** %
+\def\nobaselines{\baselineskip=\z@ \lineskip=\z@ \lineskiplimit=\z@}
+%\baselinesa und \baselinesb = zwei Verschiedene M"oglichkeiten f"ur
+% die Interline Glue Wahl.
+\def\baselinesa{%
+ \baselineskip=2\staffheight plus \staffheight minus .5\staffheight
+ \lineskip=0.5\staffheight plus \staffheight minus .5\staffheight
+ \lineskiplimit=0.5\staffheight}
+\def\baselinesb{%
+ \baselineskip=3\staffheight plus \staffheight minus .5\staffheight
+ \lineskip=0.5\staffheight plus \staffheight minus .5\staffheight
+ \lineskiplimit=0.5\staffheight}
+%Notenlinie
+\def\hr{\hrule height\linethickness depth \z@ width \linelength}
+%Notenlinie und Zwischenraum
+\def\hrv{\hr\kern\linekern}
+%Hilfslinie
+\def\HRULE{\hrule height\linethickness depth\linethickness width \twonhh}
+%Hilfslinie und Zwischenraum fuer Hilfslinien unterhalb des Systems
+\def\KHR{\kern\Linekern\HRULE}
+%Hilfslinie und Zwischenraum fuer Hilfslinien oberhalb des Systems
+\def\HRK{\HRULE\kern\Linekern}
+%Liniensystem
+\def\lines{\linelength=\hsize
+ \hbox to \z@{\vbox{\hrv\hrv\hrv\hrv\hr}\hss}}
+%Liniensystem fuer erste Zeile unter Ber"ucksichtigung des \parindent
+\def\firstlines{\hbox to \z@{\linelength=\hsize\advance\linelength by
+ -\parindent \vbox{\hrv\hrv\hrv\hrv\hr}\hss}}
+%
+%macros, die die Hilfslinienbox herstellen zur zugeho"rigen Note
+%\nn = Anzahl der ben"otigten Hilfslinien
+%formel: \pitch<0 \nn=-\pitch/2, \pitch>8 \nn=(\pitch-8)/2, \nn=0 sonst
+\def\legerlines{\leger@cal\ifnum\nn=0 \global\setbox\legerbox\null%
+ \else\relax\ifnum\pitch<0 \global\setbox\legerbox=\vtop{\leger@line}%
+ \else\global\setbox\legerbox=\vbox{\leger@line}\fi\fi}
+\def\leger@line{\begingroup \loop \ifnum \nn>0 \aftergroup \HR
+ \advance\nn-1 \repeat \endgroup}
+\def\leger@cal{\ifnum\pitch<-1 \nn =-\pitch \lyshift =\z@ \let\HR=\KHR
+ \else\relax\ifnum\pitch<10 \nn = 0 \lyshift =\z@
+ \else\nn=\pitch\advance\nn-8 \lyshift=4\nhh%\staffheight-\linethickness
+ \let\HR=\HRK
+ \fi\fi \divide \nn by 2 }
+%Hilfslinien bei Akkorden
+\def\chordlegerlines{%
+ \ifleft
+ \global\setbox\leftbox=
+ \hboxnhw{$\raise\lyshift\box\legerbox$}{\box\leftbox}%
+ \else
+ \global\setbox\rightbox=
+ \hboxnhw{$\raise\lyshift\box\legerbox$}{\box\rightbox}%
+ \fi}
+% ************************************************** %
+% * Taktstriche u. a". * %
+% ************************************************** %
+%Striche
+%Atemzeichen
+\def\caesurasign{\vrule height4.5\nhh depth-3.5\nhh width3\linethickness}
+%schmaler Strich: Taktstrich
+\def\thinvrule{\vrule height\staffheight depth \z@ width2 \linethickness}
+%dicker Strich:
+\def\thickvrule{\vrule height\staffheight depth \z@ width 0.5\nhh}
+%Doppelpunkt fuer Wiederholungszeichen:
+\def\doppelpunkt{%
+ \hbox{\vrule height 2.6\nhh depth-2.4\nhh width 0.2\nhh\kern-0.2\nhh
+ \vrule height 1.6\nhh depth-1.4\nhh width 0.2\nhh}}
+%zu Taktstrichen zusammengesetzte Striche:
+\def\doppelstrich{\thinvrule\kern.25\nhw\thinvrule}
+\def\schlussstrich{\thinvrule\kern\seminhw\thickvrule}
+%wiederholungszeichen mit Doppelpunkt links
+\def\repstrich{\doppelpunkt\kern\seminhw
+ \thinvrule\kern\seminhw\thickvrule}
+%wiederholungszeichen mit Doppelpunkt rechts
+\def\revrepstrich{\thickvrule\kern\seminhw\thinvrule\kern\seminhw
+ \doppelpunkt}
+%
+%taktstriche mit Glue
+\def\|{\gluebrule\thinvrule\gluearule}
+\def\={\gluebrule\schlussstrich\gluearule\null}
+\def\doublebarline{\gluebrule\doppelstrich\gluearule\null}
+\def\rightrepeat{\gluebrule\repstrich\gluearule\null}
+\def\leftrepeat{\gluebrule\thinvrule\-\revrepstrich\nobreak}
+\def\leftrightrepeat{\gluebrule\repstrich\-%
+ \kern-\seminhw\revrepstrich\global\sk\ruleskip}
+%
+% Makro fuer Orientierungszeichen
+\def\boxed#1{\setbox0=\hbox{$\displaystyle{#1}$}\hbox{\lower.4pt\hbox{\lower
+ 3pt\hbox{\lower 1\dp0\hbox{\vbox{\hrule height .4pt \hbox{\vrule width
+ .4pt \hskip 3pt\vbox{\vskip 3pt\box0\vskip3pt}\hskip 3pt \vrule width
+ .4pt}\hrule height .4pt}}}}}}
+%Kaesten
+\def\1#1\2#2\*{\def\f@rsttime{#1*}\def\s@condtime{#2*}%
+ \expandafter\evalfirst\f@rsttime!!!%
+ \ifx\interim\empty \nobreak\box@@@\else
+ \looop\expandafter\evalinterim\interim!!!%
+ \ifx\interim\empty\relax\nobreak\box@@@\leave\fi
+ \expandafter\evalsecond\s@condtime!!!%
+ \ifx\interim\empty \relax\else
+ \looop\expandafter\evalinterim\interim!!!%
+ \ifx\interim\empty\relax\leave\fi
+}
+\def\evalfirst#1*#2!!!{\def\interim{#2}\penalty-1000\box@{#1}}
+\def\evalinterim#1*#2!!!{\def\interim{#2}\penalty-1000\box@@{#1}}
+\def\evalsecond#1*#2!!!{\def\interim{#2}\penalty-1000\box@@@@{#1}}
+\def\box@#1{\let\setlines\relax\gluebrule
+ \vbox{\halign{##\cr\repbox{1.}\r@lef@ll{\linethickness}\cr
+ \noalign{\nointerlineskip}%
+ \repstrut\thinvrule\gluearule#1\cr}}%
+ \let\setlines=\s@tlines}
+\def\box@@#1{\let\setlines\relax
+\vbox{\halign{##\cr\r@lef@ll{\linethickness}\cr
+ \noalign{\nointerlineskip}\repstrut#1\cr}}%
+ \let\setlines=\s@tlines}
+\def\box@@@{\vbox{\halign{##\cr\r@lef@ll{\linethickness}\repbox{}\cr
+ \noalign{\nointerlineskip}%
+ \repstrut\setgluebrule\doppelpunkt\kern\seminhw\thinvrule\cr}}}
+\def\box@@@@#1{\let\setlines\relax\vbox{\tabskip\seminhw
+ \halign{##\tabskip\z@\cr
+ \repbox{2.}\r@lef@ll{\linethickness}\cr
+ \noalign{\nointerlineskip}%
+ \repstrut\thickvrule\setgluearule#1\cr}}%
+ \let\setlines=\s@tlines}
+\def\repbox#1{\vtop to\z@{\null\nointerlineskip
+ \hbox to \z@{\vrule height10pt depth -\nhh width\stemwidth{#1}\hss
+ }\vss}}
+\def\repstrut{\vrule width \z@ height 7\nhh depth\z@}
+\def\overstrut{\vrule width \z@ height 6\nhh depth\z@}
+%\let\overstrut=\repstrut
+%
+% ************************************************** %
+% * SETZEN der VERSETZUNGSZEICHEN * %
+% ************************************************** %
+%Setzen der Versetzungszeichen vor Noten:
+\def\setvorz#1{\relax\setbox \hunkbox=\hbox{\unhbox\hunkbox%
+ \global\advance\oldpitch-7 \yshift=\pitch\seminhh
+ \ifnum\oldpitch=\pitch$\raise\yshift\hbox to \z@{\hss\music#1}$\else
+ $\raise\yshift\hbox{\music#1}$\fi}\global\oldpitch=\pitch}
+%Setzen der Versetzungszeichen in der Vorzeichnung:
+\def\setsign#1#2{\hc@i=#1 \advance\hc@i by \clefcount
+ \ifnum\hc@i<-1 \advance\hc@i7 \else\ifnum\hc@i>9 \advance\hc@i-7 \fi\fi
+ $\raise\hc@i\seminhh\hbox{\music#2}$}
+%Atemzeichen
+\def\caesura{\setbox\hunkbox=\hbox{\unhbox\hunkbox%
+ \kern\p@\caesurasign\kern\nhh}}
+% ************************************************** %
+% * Versetzungszeichen - Eingabemacros * %
+% ************************************************** %
+%\x=\sharp Kreuz
+%\xx= Doppel-Kreuz
+%\n=\natural Aufloesungszeichen
+%\b=\flat
+%\bb=Doppel-Be
+\def\x#1{\global\pitch=#1\relax\setvorz{\msharp}}
+\def\xx#1{\global\pitch=#1\relax\setvorz{\mdoublesharp}}
+\def\n#1{\global\pitch=#1\relax\setvorz{\mnatural}}
+\def\b#1{\global\pitch=#1\relax\setvorz{\mflat}}
+\def\bb#1{\global\pitch=#1\relax\setvorz{\mdoubleflat}}
+%Versetzungszeichen in der Vorzeichnung
+\def\b@#1{\setsign{#1}{\mflat}}
+\def\x@#1{\setsign{#1}{\msharp}}
+\def\n@#1{\setsign{#1}{\mnatural}}
+% ************************************************** %
+% * NOTEN - Eingabemacros * %
+% ************************************************** %
+%ganze
+\def\g#1{\global\pitch=#1\setnotes{NOTE}}
+%halbe
+\def\h#1{\global\pitch=#1\setnotes{Note}}
+%viertel
+\def\v#1{\global\pitch=#1\setnotes{note}}
+%achtel
+\def\a#1{\global\pitch=#1\setnotes{notE}}
+%sechzehntel
+\def\s#1{\global\pitch=#1\setnotes{noTE}}
+%zweiunddreissigstel
+\def\z#1{\global\pitch=#1\setnotes{nOTE}}
+%vierundsechzigstel
+\def\d#1{\global\pitch=#1\setnotes{nOte}}
+%hundertachtundzwanzigstel
+\def\o#1{\global\pitch=#1\setnotes{nOtE}}
+% ************************************************** %
+% * PAUSEN - Eingabemacros * %
+% ************************************************** %
+%Pausen erhalten \pitch = 5 zum Setzen der Wertpunkte im 3. Zwischenraum
+\def\sethunks{\sethunkglue\box\hunkbox\u@text\l@text}
+%ganze
+\def\pg{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks\PAUSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%zwei Pausentakte
+\def\dpd{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks{\music
+ \doublerest}\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%drei Pausentakte
+\def\dpg{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks{\music\doublerest}\hskip\nhh
+ \PAUSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%vier Pausentakte
+\def\dpdd{\ifdim\spaceskip=\ruleskip \global\sk=\NOTEskip\fi
+ \sethunks{\music\ddoublerest}%
+ \global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk=\NOTEskip}
+%halbe
+\def\ph{\sethunks\Pause\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\Noteskip}
+%viertel
+\def\pv{\sethunks\pause\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\noteskip}
+%achtel
+\def\pa{\sethunks\pausE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\notEskip}
+%sechzehntel
+\def\ps{\sethunks\pauSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\noTEskip}
+%zweiunddreissigstel
+\def\pz{\sethunks\paUSE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\nOTEskip}
+%vierundsechzigstel
+\def\pd{\sethunks\pAuse\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\nOteskip}
+%hundertachtundzwanzigstel
+\def\po{\sethunks\pAusE\global\pitch=5\global\nyshift=\pitch\seminhh
+ \nobreak\global\sk\nOtEskip}
+% ************************************************** %
+% * Wertpunkte * %
+% ************************************************** %
+%\dotwd wird in einer Notengruppe benoetigt zur Berechnung der Laenge
+%des Balkens oder Bogens
+\setbox0=\hbox to\seminhw{\rm\kern\p@.\hss}\dotwd=\wd0
+%#1 gibt Anzahl der Punkte an.
+%- Eingabemacro
+\def\.#1{\relax\hc@i=#1\relax
+ \ifchord\chordjoindots\else\relax\joindots%
+ \ifgroup\global\advance\H@a@cor by #1\dotwd \fi
+ \fi}
+\def\dotodd{\hbox to \seminhw{\rm\kern\p@.\hss}}%
+%Verschieben der Wertpunkte von Noten auf einer Notenlinie in
+%......den Zwischenraum oberhalb
+\def\dot@up{\hbox{$\raise0.3\nhh
+ \hbox to \seminhw{\rm\kern\p@.\hss}$}}
+%......den Zwischenraum unterhalb der Notenlinie
+\def\dot@down{\hbox{$\raise-0.5\nhh
+ \hbox to \seminhw{\rm\kern\p@.\hss}$}}
+%Normalfall: Verschiebung in den oberen Zwischenraum
+\def\doteven{\dot@up}
+%setzt #1 Punkte bei einzelnen Noten
+\def\joindots{\ifodd\pitch\let\punkt\dotodd\else\let\punkt\doteven\fi
+ $\raise\nyshift\hbox{%\kern\smkern
+ \begingroup \loop \ifnum \hc@i>0 \aftergroup \punkt
+ \advance\hc@i-1 \repeat \endgroup}$}
+%Wertpukte bei Akkorden
+\def\chordjoindots{\global
+ \setbox\dotbox\hboxnhw{\box\dotbox}{\joindots\unskip}}
+% ************************************************** %
+% * Akkorde - Eingabemacros * %
+% ************************************************** %
+\def\lchord#1\endchord{%Initialisierung
+ \global\maxpitch=-10000\global\minpitch=10000
+ \sethunkglue\begingroup\chordtrue\lefttrue\stemuptrue
+ \global\setbox\rightbox=\null\global\setbox\leftbox=\null%
+ \global\setbox\dotbox\null%
+ #1\endchord}
+%
+\def\rchord#1\endchord{%Initialisierung
+ \global\maxpitch=-10000\global\minpitch=10000
+ \sethunkglue\begingroup\chordtrue\leftfalse\stemupfalse
+ \global\setbox\rightbox=\null%
+ \global\setbox\leftbox=\null\global\setbox\dotbox\null%
+ #1\endchord}
+% ************************************************** %
+% * Konstruktion der Noten und Pausen * %
+% ************************************************** %
+%Bestimmung der zu setzenden Noten und Bestimmung der Halsrichtung
+\def\tunedef{\ifchord \relax
+ \gdef\tune{\csname\the\notename\endcsname}%
+ \else\ifbeam \relax \else\stemdirectiondef\fi
+ \gdef\tune{\csname\the\notename\the\direction\endcsname}%
+ \ifgroup \global\d@rection\expandafter{\the\direction}\fi\fi}
+\def\stemdirectiondef{%
+ \ifnum\pitch<4 \stemuptrue \direction={up}%
+ \else \stemupfalse \direction={down}\fi}
+%
+\def\calstemlup#1{\global\dur@tion=#1\relax\stemupeval of \pitch}
+\def\calstemldown#1{\global\dur@tion=#1\relax\stemdowneval of \pitch}
+%
+%ganze noten \NOTEup=\NOTEdown
+%
+\def\NOTEup{\ifbeam\relax\else\global\stemlength=\z@\fi
+ \global\dur@tion = 0 \hbox{\music\whole}}
+\let\NOTEdown=\NOTEup
+\def\NOTE{\hbox{\music\whole}\global\dur@tion = 0}
+%
+%Halbenoten, Hals aufwaerts , Hals abw"arts gestielt
+%
+\def\Note{\hbox{\music\half}\global\dur@tion = 1}
+\def\Noteup{\ifbeam\relax\else\calstemlup1\fi
+ \hbox{\music\half \stemup}}
+\def\Notedown{\ifbeam\relax\else\calstemldown1\fi
+ \hbox{\music\stemdown \half}}
+%
+%Viertelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\noteup{\ifbeam\relax\else\calstemlup2\fi
+ \hbox{\music\quart\stemup}}
+\def\notedown{\ifbeam\relax\else\calstemldown2\fi
+ \hbox{\music\stemdown\quart}}
+\def\note{\hbox{\music\quart}\global\dur@tion= 2}
+%
+%Achtelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\notE{\hbox{\music\quart}\global\dur@tion= 3}
+\def\notEup{\ifbeam\relax\else\calstemlup3\fi
+ \hbox{\music\quart\flagup{\eighthup}}}
+\def\notEdown{\ifbeam\relax\else\calstemldown3\fi
+ \hbox{\music\flagdown{\eighthdown}\quart}}
+%
+%Sechzehntelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\noTE{\hbox{\music\quart}\global\dur@tion= 4}
+\def\noTEup{\ifbeam\relax\else\calstemlup4\fi
+ \hbox{\music\quart\flagup{\sixteenthup}}}
+\def\noTEdown{\ifbeam\relax\else\calstemldown4\fi
+ \hbox{\music\flagdown{\sixteenthdown}\quart}}
+%
+%Zweiunddreissigstelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\nOTE{\hbox{\music\quart}\global\dur@tion= 5}
+\def\nOTEup{\ifbeam\relax\else\calstemlup5\fi
+ \hbox{\music\quart\flagup{\thirtytwoup}}}
+\def\nOTEdown{\ifbeam\relax\else\calstemldown5\fi
+ \hbox{\music\flagdown{\thirtytwodown}\quart}}
+%
+%Vierundsechzigstelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\nOte{\hbox{\music\quart}\global\dur@tion= 6}
+\def\nOteup{\ifbeam\relax\else\calstemlup6\fi
+ \hbox{\music\quart\flagup{\sixtyfourup}}}
+\def\nOtedown{\ifbeam\relax\else\calstemldown6\fi
+ \hbox{\music\flagdown{\sixtyfourdown}\quart}}
+%
+%Hundertachtundzwanzigstelnoten, Hals aufwaerts , Hals abwaerts gestielt
+%
+\def\nOtE{\hbox{\music\quart}\global\dur@tion= 7}
+\def\nOtEup{\ifbeam\relax\else\calstemlup7\fi
+ \hbox{\music\quart\flagup{\hundredtwentyeightup}}}
+\def\nOtEdown{\ifbeam\relax\else\calstemldown7\fi
+ \hbox{\music\flagdown{\hundredtwentyeightdown}\quart}}
+% P A U S E N
+\def\PAUSE{{\music\wholerest}}
+\def\Pause{{\music\halfrest}}
+\def\pause{{\music\quartrest}}
+\def\pausE{{\music\eighthrest}}
+\def\pauSE{{\music\sixteenthrest}}
+\def\pauSE{{\music\sixteenthrest}} % bis auf weiteres, da diese im
+\def\paUSE{{\music\sixteenthrest}} %Zeichensatz noch nicht
+\def\pAuse{{\music\sixteenthrest}} %vorhanden sind.
+\def\pAusE{{\music\sixteenthrest}} %
+% ************************************************** %
+% * Berechnung der Notenhalslaengen * %
+% ************************************************** %
+\def\min@stemlength{\ifnum\dur@tion>2
+ \hc@i= 3 \advance\hc@i by \dur@tion \hd@i= \hc@i\seminhh
+ \ifdim\hd@i>\stemlength \global\stemlength=\hd@i\fi \fi}
+%Hals nach oben
+\def\stemupeval of #1{\pit@=#1\relax
+ \ifnum\pit@<-3 \advance\pit@ by -4 \global\stemlength=-\pit@\seminhh
+ \else\eval@up\fi\ifgroup\relax\else\min@stemlength\fi}
+\def\eval@up{\ifnum \pit@<6 \global\stemlength=7\seminhh
+ \else
+ \ifnum\pit@<8 \advance\pit@ by-12 \global\stemlength=-\pit@\seminhh
+ \else \global\stemlength=\twonhh
+ \fi\fi}
+%
+\def\stemdowneval of #1{\pit@=#1\relax
+ \ifnum\pit@>11 \advance\pit@ by -4 \global\stemlength=\pit@\seminhh
+ \else \eval@down\fi\ifgroup\relax\else\min@stemlength\fi}
+\def\eval@down{\ifnum \pit@ > 2 \global\stemlength=7\seminhh
+ \else\ifnum\pit@ > 0 \advance\pit@ 4 \global\stemlength=\pit@\seminhh
+ \else \global\stemlength=\twonhh
+ \fi\fi}
+% ************************************************** %
+% * Konstruktion der Notenhaelse * %
+% ************************************************** %
+%Hals nach oben
+\def\stemup{\vrule height \stemlength depth\z@ width\stemwidth}
+%Hals nach unten
+\def\stemdown{\vrule height\z@ depth\stemlength width\stemwidth
+ \hskip-2\stemwidth}
+%Hals nach unten mit Fahne
+\def\flagdown#1{\stemdown\ifbeam\relax\else
+ \vtop to\stemlength{\offinterlineskip\null\vss\hbox{\music#1}\null}\fi}
+%Hals nach oben mit Fahne
+\def\flagup#1{\stemup\ifbeam\relax\else
+ \vbox to\stemlength{\offinterlineskip\hbox{\music#1}\vss\null}\fi}
+%
+%Bestimmung des Notenhalses im Akkord
+%
+\def\stemdef{%
+ \ifstemup\edef\stem{\hbox{\ifcase\dur@tion \noexpand\relax
+ \or\stemup \or\stemup \or\flagup{\eighthup}%
+ \or\flagup{\sixteenthup}\or\flagup{\thirtytwoup}%
+ \or\flagup{\sixtyfourup}\or\flagup{\hundredtwentyeightup}%
+ \else\noexpand\relax\fi}}%
+ \else\edef\stem{\hbox{\ifcase\dur@tion \noexpand\relax
+ \or\stemdown \or\stemdown \or\flagdown{\eighthdown}%
+ \or\flagdown{\thirtytwodown}\or\flagdown{\sixteenthdown}%
+ \or\flagdown{\sixtyfourdown}\or\flagdown{\hundredtwentyeightdown}%
+ \else\noexpand\relax \fi}}%
+ \fi}
+% Setzen des Notenhalses im Akkord
+\def\setstem{\relax
+ \ifstemup $\raise\minpitch\seminhh\stem $%
+ \else $\raise\maxpitch\seminhh\stem $\fi}
+% ************************************************** %
+% * Das Setzen der Noten * %
+% ************************************************** %
+\def\setnotes#1{\relax\notename={#1}\global\nyshift=\pitch\seminhh
+ \legerlines\tunedef
+ \ifchord\setchord\else \sethunkglue \setnote \fi
+ }
+%einzelne Note
+\def\setnote{\global\setbox\notebox=
+ \hboxnhw{$\raise\lyshift\box\legerbox$}{$\raise\nyshift\hbox{\tune}$}%
+ \setakzent
+ \box\hunkbox\kern\smkern\u@text\l@text\box\notebox
+ \global\spaceskip=\csname\the\notename skip\endcsname\nobreak
+% \ifnum\dur@tion=0 \global\H@a@cor =\seminhw\fi
+ \ifgroup \global \H@a@cor = \z@ \fi
+}
+%Akkorde
+%Zusammenfassung der einzelnen Noten in \leftbox bzw. \rightbox
+\def\setchord{%
+ \ifnum\maxpitch<\pitch \global\maxpitch = \pitch\fi
+ \ifnum\minpitch>\pitch \global\minpitch = \pitch\fi
+ \chordlegerlines
+ \ifleft
+ \global\setbox\leftbox=
+ \hboxnhw{\box\leftbox}{$\raise\nyshift\hbox{\tune}$}%
+ \else
+ \global\setbox\rightbox=
+ \hboxnhw{\box\rightbox}{$\raise\nyshift\hbox{\tune}$}\fi
+ }
+%
+\def\endchord{%
+ \nobreak\global\sk=\csname\the\notename skip\endcsname
+ \ifbeam \relax \else\chordnobeam\fi
+ \hc@i=\maxpitch \advance\hc@i-\minpitch
+ \global\advance\stemlength by \hc@i\seminhh
+ \stemdef
+ \ifgroup \global\H@a@cor=\z@
+ \ifstemup
+ \ifdim\wd\rightbox>\z@ \global\advance\H@a@cor by \nhw \fi
+ \fi
+ \global\advance\H@a@cor by \wd\dotbox
+ \global\d@rection\expandafter{\the\direction}%
+ \fi
+ \global\setbox\notebox=
+ \hbox{\box\leftbox\setstem\box\rightbox\box\dotbox}%
+ \setchordakzent
+ \box\hunkbox\kern\smkern\u@text\l@text\box\notebox\chordfalse\endgroup}
+\def\chordnobeam{\relax\ifstemup \stemupeval of \maxpitch
+ \else \stemdowneval of \minpitch\fi
+ \ifgroup\ifstemup\chordlowerstartpoints
+ \else\chordupperstartpoints\fi
+ \fi}
+% *********************************************************** %
+% * Tonarten und Aufloesung, Notenschluessel und Taktangabe * %
+% *********************************************************** %
+%\discretionary{vor}{nach}{kein}
+\def\change{\edef\-{\noexpand\discretionary{}%vor
+ {\noexpand\hbox{\noexpand\lines}%
+ \noexpand\hbox{\the\cleftoks\the\signtoks}%
+ \noexpand\kern\noexpand\seminhw}%nach
+ {}}}%kein
+\def\signchange{\change\gluebrule\discretionary{%
+ \hbox{\doppelstrich\set@rulesk\the\canceltoks\the\signtoks\set@rulesk
+ }}{\hbox{\lines\the\cleftoks\the\signtoks}\kern\seminhw}{%
+ \hbox{\doppelstrich\set@rulesk\the\canceltoks\the\signtoks}}%
+ \set@rulesk}
+\def\clefchange{\change\setbox\hunkbox=\hbox{\unhbox\hunkbox%
+ \kern\p@{{\let\music=\smallmusic\the\cleftoks}}}}
+%Taktangabe
+\def\meter#1/#2{\nobreak\gluebmeter\discretionary{%
+ \hbox{\place4{#1}\kern-\wd\placebox\place0{#2}}\kern\seminhw
+ }{\hbox{\lines\the\cleftoks\the\signtoks\set@rulesk
+ \hbox{\place4{#1}\kern-\wd\placebox\place0{#2}}}\kern0.25\seminhw}%
+ {\hbox{\place4{#1}\kern-\wd\placebox\place0{#2}%
+ \kern0.5\seminhw}}\set@rulesk}
+% \kern\seminhw}}\set@rulesk}
+\def\place#1#2{\setbox\placebox\hbox{\rm#2}$\raise#1.5\seminhh\hbox{\copy
+ \placebox}$}
+%Vorzeichnung
+\def\signature#1#2{\global\signtoks={#1\kern\nhw}%
+ \iffirst\change\box\hunkbox\the\signtoks\set@rulesk
+ \else\signchange\fi\global\canceltoks={#2}}
+%Notenschluessel
+\def\clef#1#2{\global\clefcount=#1
+ \global\cleftoks={\setkey{#2}\kern\seminhw}%
+ \clefchange}
+%Abkuerzungen fuer Vorzeichnungen - gro\3e Buchstaben =Dur-Tonarten
+% kleine Buchstaben =Moll-Tonarten
+\def\F{\signature{\b@4}{\n@4}}
+\def\B{\signature{\b@4\b@7}{\n@4\n@7}}
+\def\Es{\signature{\b@4\b@7\b@3}{\n@4\n@7\n@3}}
+\def\As{\signature{\b@4\b@7\b@3\b@6}{\n@4\n@7\n@3\n@6}}
+\def\Des{\signature{\b@4\b@7\b@3\b@6\b@2}{\n@4\n@7\n@3\n@6\n@2}}
+\def\Ges{\signature{\b@4\b@7\b@3\b@6\b@2\b@5}{\n@4\n@7\n@3\n@5\n@2\n@5}}
+\def\Ces{\signature{\b@4\b@7\b@3\b@6\b@2\b@5\b@1}%
+ {\n@4\n@7\n@3\n@5\n@2\n@5\n@1}}
+\def\C{\signature{}{}}
+\def\G{\signature{\x@8}{\n@8}}
+\def\D{\signature{\x@8\x@5}{\n@8\x@5}}
+\def\A{\signature{\x@8\x@5\x@9}{\n@8\n@5\n@9}}
+\def\E{\signature{\x@8\x@5\x@9\x@6}{\n@8\n@5\n@9\n@6}}
+\def\H{\signature{\x@8\x@5\x@9\x@6\x@3}{\n@8\n@5\n@9\n@6\n@3}}
+\def\Fis{\signature{\x@8\x@5\x@9\x@6\x@3\x@4}{\n@8\n@5\n@9\n@6\n@3\n@4}}
+\let\mdis=\F \let\ma=\C
+\let\mgis=\H \let\md=\F
+\let\mcis=\E \let\mg=\B
+\let\mfis=\A \let\mc=\Es
+\let\mh=\D \let\mf=\As
+\let\me=\G \let\mb=\Des
+ \let\mes=\Ges
+%Notenschluessel
+\def\setkey#1{\hbox{\music#1}}
+\def\vio{\clef{0}{\mviolin}}
+\def\viooct{\clef{0}{\mviolinoct}}% noch nicht im Font
+\def\vioOct{\clef{0}{\mviolinOct}} % noch nicht im Font
+\def\bass{\clef{-2}{\mbass}}
+\def\bassoct{\clef{-2}{\mbassoct}} %noch nicht im Font
+\def\bassOct{\clef{-2}{\mbassOct}} %noch nicht im Font
+\def\bariton{\clef{3}{\mbariton}}
+\def\tenor{\clef{1}{\mtenor}}
+\def\alto{\clef{-1}{\malt}}
+\def\mezzosopran{\clef{-3}{\mmezzosopran}}
+\def\sopran{\clef{-5}{\msopran}}
+% ************************************************** %
+% * Die Verarbeitung der Nachbarschaften * %
+% ************************************************** %
+\mathsurround=\z@
+% ************************************************** %
+% * Initialisierung der Listen einer Notengruppe * %
+% ************************************************** %
+%Gruppe belegt die notwendigen Listen fuer die Notengruppe
+\def\group#1#2{\grouptrue
+ \global\oldskip=\sk
+ \let\u@@text = \u@text
+ \let\l@@text = \l@text
+ \global\setbox\neighborhood=\null
+ \gdef\elementlist{#1}\gdef\pitchlist{#2}%
+ \gdef\H@list{}\gdef\stemlist{}%
+ \gdef\uslurlist{}\gdef\lslurlist{}%
+ \gdef\H@corlist{}%
+ \gdef\dir@list{}%
+ \global\sl@c=\z@
+ \global\S=0
+ \N=0
+ \long\def\\##1{%
+ \global\E@l=\z@\global\E@u=\z@%zuruecksetzen auf 0pt
+ \global\setbox\neighborhood=\hbox{\unhbox\neighborhood##1}%
+ \rightappend0pt\to\stemlist %initialisiert \stemlist
+ \expandafter\rightappend\the\wd\neighborhood\to\H@list%belegt \H@list
+ \expandafter\rightappend\the\E@u\to\uslurlist
+ %belegt obere startpunkte fuer slurs
+ \expandafter\rightappend\the\E@l\to\lslurlist
+ %belegt untere startpunkte fuer slurs
+ \expandafter\rightappend\the\H@a@cor\to\H@corlist
+ %initialisiert \H@corlist
+ \global\H@a@cor=\z@%zuruecksetzen auf 0pt
+ \expandafter\rightappend\the\d@rection\to\dir@list
+ %initialisiert \dir@list
+ \advance\N1 }\elementlist\groupfalse
+ }
+% ************************************************** %
+% * Abarbeitung & Setzen einer Notengruppe * %
+% ************************************************** %
+\def\go{%
+ \let\u@text=\u@@text
+ \let\l@text=\l@@text
+ \m@ii=0 \long\def\\##1{\advance\m@ii 1
+ {\assign\m@ii\of\stemlist\to\stemlength}%
+ \ifdim\stemlength=\z@\beamfalse\else\beamtrue\fi##1}%
+ \global\sk=\oldskip
+ \sethunkglue\hbox{\global\sk=\z@skip\elementlist}\nobreak
+ \beamfalse}
+% ************************************************** %
+% * Verbalkung - Eingabemacros * %
+% ************************************************** %
+% Eingabemacros - Balken oberhalb - Balken unterhalb der Notengruppe
+\def\ubeam#1#2{\stemuptrue \n@a=#1 \n@e=#2 \direction{up}%
+ \putdir{up}\from\n@a\to\n@e\b@@m}
+%
+\def\lbeam#1#2{\stemupfalse \n@a=#1 \n@e=#2 \direction{down}%
+ \putdir{down}\from\n@a\to\n@e\b@@m}
+%
+\def\b@@m{%
+ %Initialisierung
+ \additem{\noexpand\direction{\the\direction}}{}\in\elementlist\at\n@a
+ \ifnum\n@e>\N \n@e=\N\fi
+ \global\minsl=2\nhh
+ \assign\n@a\of\pitchlist\to\P@a
+ \assign\n@e\of\pitchlist\to\P@e
+ \assign\n@e\of\H@list\to\H@e
+ \assign\n@a\of\H@list\to\H@a
+ \select\n@a\of\dir@list\to\dir@i
+ \lokalassign\n@a\of\H@corlist\to\hd@i % vorne verkuerzt
+ \ifx\dir@i\down@\advance\hd@i \nhw \fi
+ \global\advance\H@a by-\hd@i
+ \lokalassign\n@e\of\H@corlist\to\hd@i % und hinten verkuerzt
+ \select\n@e\of\dir@list\to\dir@i
+ \ifx\dir@i\down@\advance\hd@i \nhw \fi
+ \global\advance\H@e by-\hd@i
+ \global\advance\H@e by-\H@a
+ %Berechnung der Steigung
+ \csname gradient\the\direction\endcsname%
+ %Anpassung der Notenhaelse
+ \csname calstems\the\direction\endcsname%
+ %Positionierung des Balkens
+ \beaming
+ %Addieren der berechneten Halsl"angenkorrektur in der \stemlist
+ \addslc\in\stemlist\from\n@a\to\n@e
+ \global\advance\sl@c \seminhh
+ %Korrektur der Bogenangfangspunkte oberhalb bzw. unterhalb der Noten
+ \ifstemup\relax
+ \addslc\in\uslurlist\from\n@a\to\n@e
+ \else \relax\global\sl@c=-\sl@c
+ \addslc\in\lslurlist\from\n@a\to\n@e
+ \global\sl@c=-\sl@c
+ \fi
+ \global\sl@c=\z@
+ }
+% ************************************************** %
+% * Berechnungen der Halslaengen und Steigung * %
+% ************************************************** %
+\def\gradientup{\gradient{<}{+}}
+\def\gradientdown{\gradient{>}{-}}
+\def\gradient#1#2{%
+ \R@a=\P@a\seminhh
+ \R@e=\P@e\seminhh
+%jetzt erst die Stemhoehe berechnen.
+ \ifstemup \stemupeval of \P@a \s@a=\stemlength
+ \stemupeval of \P@e \s@e=\stemlength
+ \else \stemdowneval of \P@a \s@a=\stemlength
+ \stemdowneval of \P@e \s@e=\stemlength
+ \fi
+ \global\E@a=\R@a \global\advance \E@a by#2\s@a
+ \global\E@e=\R@e \global\advance \E@e by#2\s@e
+ \ifnum\P@a=\P@e \global\S=0
+ \else\global\flagc=1
+ \ifnum\P@a#1\P@e \gradz@\in\pitchlist\with#1\the\P@e\from\n@a\to\n@e
+ \else \gradz@\in\pitchlist\with#1\the\P@a\from\n@a\to\n@e\fi
+ \ifnum\flagc=0 \global\S=0\else \global\S=1\fi
+ \fi
+ \relax
+ \ifnum\S = 0 \relax
+ \ifdim\E@a#1\E@e \global\E@a=\E@e \s@a=#2\E@a \advance\s@a-#2\R@a \fi
+ \else
+ \distance\E@a\E@e
+ \ifdim\Abs=\z@\relax
+ \ifnum\P@e#1\P@a \corrc\s@a
+ \global\E@a=\R@a\global\advance\E@a by#2\s@a\relax
+ \else \corrc\s@e
+ \global\E@e=\R@e\global\advance\E@e by#2\s@e\relax\fi
+ \fi
+ \distance\E@a\E@e
+ \limit=0.45 \H@e
+ \ifdim\limit>4\nhh \limit=4\nhh \fi
+ \hd@i=\Abs\advance\hd@i by -\limit \corr=\hd@i
+ \ifdim\corr>\z@\relax
+ \ifnum\P@a#1\P@e \corrb\s@a
+ \global\E@a=\R@a\global\advance\E@a by#2\s@a\relax
+ \else\corrb\s@e\global\E@e=\R@e\global\advance\E@e by#2\s@e\fi
+ \Abs=\corr
+ \fi
+ \ifnum\P@a>\P@e\global\S=-\Abs\else\global\S=\Abs\fi
+ \global\multiply\S by 100 \global\divide\S by \H@e
+ \fi %von P@a=Pb Abfrage
+%\s@a und \s@e zurueckpacken an \n@a-te bzw. \N-te Stelle der \stemlist
+ \expandafter\exchange\the\s@a\in\stemlist\at\n@a
+ \expandafter\exchange\the\s@e\in\stemlist\at\n@e
+ \whatisnewstartpoint
+ \assignS}
+%
+\def\calstemsup{\calstems{+}}
+\def\calstemsdown{\calstems{-}}
+\def\calstems#1{%
+ \n@i=\n@a
+ \global\sl@c=\z@
+ \EP@=\E@a
+ \loop\advance\n@i by 1
+ \assign\n@i\of\pitchlist\to\P@i
+ \R@i=\P@i\seminhh
+ \getendpoint\n@i\EP@i
+ \s@i=\EP@i
+ \advance\s@i by-\R@i %Laenge des stems
+ \s@i=#1\s@i
+ \expandafter\exchange\the\s@i\in\stemlist\at\n@i
+ \whatarenewstartpoints
+ \ifdim\s@i<\minsl\relax
+ \ifdim\s@i<\z@ \s@i=-\s@i\advance\s@i by \minsl
+ \else\s@i=\R@i\advance\s@i by #1\minsl\advance\s@i by-\EP@i\s@i=#1\s@i\fi
+ \ifdim\s@i>\sl@c\relax\global\sl@c=\s@i\fi
+ \fi
+ \ifnum\n@i<\n@e \repeat
+ }
+%
+%Auswertung der \beamlist
+\def\evalbeamlist#1-#2,#3#{\def\aa{#1}\def\bb{#2}%
+ \ifx\aa\empty\m@a=0\else\m@a=#1\fi
+ \ifx\bb\empty\m@e=\m@a\else\m@e=#2\fi\def\nxt{#3}%
+ \ifnum\m@a<0\m@a=0\fi %belegung von m@a und m@e, so dass in
+ \ifnum\m@a>\N\m@a=\N\fi %createbeam keine schwierigkeiten auftauchen
+ \ifnum\m@e<1\m@e=1\fi %koennen, z.B. bei \assign usw.
+ \ifnum\m@e>\N\m@e=\N\fi %0<=\m@a<=\N; 1<=\m@e<=\N
+ \ifnum\m@e<\m@a\hc@i=\m@a\m@a=\m@e\m@e=\hc@i\fi
+}
+%
+\def\beamposition{%
+ \assign\m@a\of\H@list\to\H@m@a
+ \assign\m@a\of\H@corlist\to\H@a@cor
+ \select\m@a\of\dir@list\to\dir@i
+ \relax\ifx\dir@i\down@ \global\advance\H@a@cor \nhw \fi
+ \global\advance\H@m@a by -\H@a@cor
+ \V@a=\H@m@a
+ \advance\V@a-\H@a
+ \multiply\V@a by\S \V@a=0.01\V@a
+ \ifstemup \advance \V@a by \sl@c \relax
+ \else \advance \V@a by-\sl@c
+ \fi
+ \advance\V@a by \EP@
+ \ifstemup\ifnum\S<0 \relax
+ \else \advance \V@a-\beamthickness \fi
+ \else
+ \ifnum\S<0 \advance\V@a \beamthickness\fi
+ \fi
+ \ifstemup
+ \advance\V@a by-\beamrow\nhh%zur Platzierung der Balken
+ \else
+ \advance\V@a by \beamrow\nhh%zur Platzierung der Balken
+ \fi
+ }
+\def\createbeam{%
+ \looop\expandafter\evalbeamlist\nxt{}%
+ \ifnum\m@a>0\beamposition
+ \ifnum\m@e=\m@a\relax
+%% \immediate\write0{rrule \the\S}%
+ \additem{}{\noexpand\beamr{\the\S}%
+ {\the\V@a}{\the\H@a@cor}}\in\elementlist\at\m@a
+ \else \lokalassign\m@e\of\H@list\to\hd@i
+ \lokalassign\m@e\of\H@corlist\to\hd@ii
+ \select\m@e\of\dir@list\to\dir@i
+ \relax\ifx\dir@i\down@ \advance\hd@ii\nhw \fi
+ \advance\hd@i by-\hd@ii
+ \advance\hd@i by-\H@m@a
+%% \immediate\write0{rule \the\hd@i}%
+ \additem{}{\noexpand\beam{\the\S}%
+ {\the\hd@i}{\the\V@a}{\the\H@a@cor}}\in\elementlist\at\m@a
+ \fi
+ \else
+ \m@a=\m@e\beamposition
+%% \immediate\write0{lrule \the\S}%
+ \additem{}{\noexpand\beaml{\the\S}%
+ {\the\V@a}{\the\H@a@cor}}\in\elementlist\at\m@a
+ \fi
+ \ifx\nxt\empty\relax\leave%
+ }
+%
+\def\beaming{\cardinality\beamlist\to\hc@i%
+ \ifnum\hc@i>2 \advance\hc@i-2 \global\advance\sl@c by\hc@i\seminhh\fi
+ \global\beamrow0
+ \def\\##1{{\def\nxt{##1}\relax\createbeam\global\advance\beamrow 1%
+ }}\beamlist}
+% ************************************************** %
+% * Plazierung und Zusammensetzung der Balken * %
+% ************************************************** %
+\def\beam#1#2#3#4{\global\S=#1\global\L@a=#2%
+ $\raise#3\hbox to \z@{\kern-#4\drawbeam\hss}$}
+\def\beamr#1#2#3{\global\S=#1%
+ $\raise#2\hbox to\z@{\kern-#3\drawbe@m\hss}$}
+\def\beaml#1#2#3{\global\S=#1$\raise#2\hbox to\z@{\hss
+ \drawb@@m\ifstemup\else\kern\nhw\fi}$}
+%
+\def\putintovbox#1{%
+ \ifstemup
+ \ifnum\S>0 \vb@@{#1}\else \vt@@{#1}\fi
+ \else
+ \ifnum\S<0 \vt@@{#1}\else \vb@@{#1}\fi
+ \fi}
+\def\putintovb@x#1{%
+ \ifstemup
+ \ifnum\S<0 \vt@@{#1}\else \vb@@{#1}\fi
+ \else
+ \ifnum\S<0 \vb@@{#1}\else\vt@@{#1}\fi
+ \fi}
+%
+\def\makebeam{\loop
+ \ifodd\L@
+ $\raise\SHIFT\hbox{\beamfont\char\the\CODE}$%
+ \advance\SHIFT by \l@\gradfactor
+ \fi
+ \divide\L@ 2 \addC1 \multiply\l@2
+ \ifnum\L@>0\repeat}
+%
+\def\drawbeam{%
+ {\gradfactor=\S\p@ \gradfactor = 0.005 \gradfactor
+ \ifnum\S=0
+ \hbox{\vrule height \beamthickness depth\z@ width\L@a}%
+ \else\l@=1\assignCODE
+ \L@=\L@a
+ \advance \L@ by 32677%um Rundungsfehler zu vermeiden
+ \divide\L@ by 32678%Genauigkeit 0.5pt
+ \SHIFT=\z@
+ \putintovbox{\beamfont \ifnum \L@ >255 \setlongbeams\fi \makebeam}%
+ \fi}}
+\def\setlongbeams{\relax\hc@i=\CODE \advance\hc@i 7%
+ \loop$\raise\SHIFT\hbox{\char\the\hc@i}$%
+ \advance\SHIFT 128 \gradfactor \advance\L@-255
+ \ifnum \L@>255 \repeat}
+%
+\def\drawbe@m{%
+ \ifnum\S=0\hbox{\vrule height \beamthickness depth \z@ width\nhh}%
+ \else\assignCODE\addC3\putintovbox{\beamfont\char\the\CODE}\fi}
+\def\drawb@@m{%
+ \ifnum\S=0\hbox{\vrule height \beamthickness depth \z@ width\nhh}%
+ \else\assignCODE\addC3\putintovb@x{\beamfont\char\the\CODE}\fi}
+% ************************************************** %
+% * Die Bogen * %
+% ************************************************** %
+%-Eingabemacros - Bogen oberhalb - Bogen unterhalb der Notengruppe
+\def\uslur#1#2{\n@a=#1\n@e=#2%
+ %Initialisierung
+ \inislur
+ \assign\n@a\of\uslurlist\to\E@a
+ \assign\n@e\of\uslurlist\to\E@e
+ \assignflags
+ %Berechnung der entgueltigen Bogenbreite
+ %Belegung des Anfangs- und Endpunktes des Bogens
+ %Berechnung des horizontalen Versatzes des Bogens
+ \ifdim\s@a=\z@ \ifdim\s@e=\z@ \u@nobeaming \else \u@rightbeaming \fi
+ \else \ifdim\s@e=\z@ \u@leftbeaming \else\u@leftrightbeaming\fi
+ \fi
+ %Berechnung der Laenge des Bogens
+ \intslurwidth
+ %Berechnung der Sekantensteigung
+ \gradientslur{<}{-}%
+ %Positionierung des Bogens
+ \ifnum\slurwidth > 17 \caluphrase
+ \else
+ \assignuslurchar
+ \ifnum\V@int=0\setslurs{2}{0}\else
+ \ifdim\V@<\z@\setslurs{0}{-1}\else\setslurs{0}{+1}\fi\fi
+ \fi
+}
+\def\lslur#1#2{\n@a=#1\n@e=#2%
+ %Initialisierung
+ \inislur
+ \assign\n@a\of\lslurlist\to\E@a
+ \assign\n@e\of\lslurlist\to\E@e
+ \assignflags
+ %Berechnung der entgueltigen Bogenbreite
+ %Belegung des Anfangs- und Endpunktes des Bogens
+ %Berechnung des horizontalen Versatzes des Bogens
+ \ifdim\s@a=\z@ \ifdim\s@e=\z@ \l@nobeaming \else \l@rightbeaming \fi
+ \else \ifdim\s@e=\z@ \l@leftbeaming \else\l@leftrightbeaming\fi
+ \fi
+ %Berechnung der Laenge des Bogens
+ \intslurwidth
+ %Berechnung der Sekantensteigung
+ \gradientslur{>}{+}%
+ %Positionierung des Bogens
+ \ifnum\slurwidth > 17 \callphrase
+ \else
+ \assignlslurchar
+ \ifnum\V@int=0\setslurs{3}{0}\else
+ \ifdim\V@<\z@\setslurs{1}{-1}\else\setslurs{1}{+1}\fi\fi
+ \fi
+}
+%
+\def\intslurwidth{%
+ %\slurwidth*\nhw <= \H@e < (\slurwidth+1)*\nhw
+ \slurwidth=\H@e
+ \advance\slurwidth \seminhw
+ \divide\slurwidth by \nhw
+ \ifnum\slurwidth< 1 \slurwidth= 1 \fi}
+%Hilfsfunktionen
+\def\newslurwidth#1#2{%
+ \ifcase#1 \global\advance\H@e #2\nhw
+ \or \global\advance\H@e #2\seminhw \fi}
+\def\calslurwidth{\global\advance\H@e-\H@e@cor
+ \global\advance\H@a-\H@a@cor
+ \global\advance\H@e-\H@a\relax}
+\def\calslurcor#1{\slurcor=\H@a@cor \advance\slurcor #1\seminhw
+ \slurcor = -\slurcor}
+\def\newE@a#1{\ifnum\flaga=0 \global\E@a=\P@a\seminhh
+ \global\advance\E@a#1\nhh \fi}
+\def\newE@e#1{\ifnum\flagb=0 \global\E@e=\P@e\seminhh
+ \global\advance\E@e#1\nhh \fi}
+\def\inislur{\relax
+ \ifnum\n@e>\N \n@e=\N\fi
+ \ifnum\n@a<1 \n@a= 1\fi
+ \ifnum\n@a>\n@e\n@e=\hc@i \n@e=\n@a \n@a=\hc@i\fi
+ %
+ \assign\n@e\of\H@list\to\H@e
+ \lokalassign\n@e\of\H@corlist\to\H@e@cor
+ \assign\n@a\of\H@list\to\H@a
+ \assign\n@a\of\H@corlist\to\H@a@cor
+ \select\n@a\of\dir@list\to\dir@a
+ \select\n@e\of\dir@list\to\dir@e
+ \ifx\dir@a\down@ \global\advance\H@a@cor \nhw \fi
+ \ifx\dir@e\down@ \advance\H@e@cor \nhw \fi
+ %
+ \assign\n@e\of\pitchlist\to\P@e
+ \assign\n@a\of\pitchlist\to\P@a
+ \lokalassign\n@e\of\stemlist\to\s@e
+ \lokalassign\n@a\of\stemlist\to\s@a
+}
+\def\assignflags{%
+ \flaga=2 \ifdim \E@a=\z@ \flaga=0 \fi
+ \ifdim\E@a> \I@@ \flaga=1 \global\advance \E@a-\I@@\fi
+ \ifdim\E@a<-\I@@ \flaga=1 \global\advance \E@a-\I@@\fi
+ \flagb=2\ifdim \E@e =\z@ \flagb=0\fi
+ \ifdim\E@e> \I@@ \flagb=1 \global\advance \E@e-\I@@\fi
+ \ifdim\E@e<-\I@@ \flagb=1 \global\advance \E@e \I@@\fi
+ \relax}
+%
+%ohne Verbalkung
+\def\u@nobeaming{\calslurwidth
+ \ifx\dir@e\up@ \relax\newslurwidth{0}{-}\fi %stemup
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+%
+\def\l@nobeaming{\calslurwidth
+ \ifx\dir@a\down@ \newslurwidth{0}{-}\fi%stemdown
+ \ifx\dir@a\up@\calslurcor{+}\else \calslurcor{-}\fi
+ \newE@a{-}\newE@e{-}}
+% Verbalkung nur in \n@e
+\def\u@rightbeaming{\ifnum\flagb<2 \u@rightstemdown \else
+ \u@rightstemup \fi}
+\def\u@rightstemdown{\calslurwidth
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+\def\u@rightstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\newslurwidth{1}{-}\calslurcor{-}\newE@a{+}%\E@e belegt
+ \fi\advance\n@e1}
+%
+\def\l@rightbeaming{\ifnum\flagb<2 \l@rightstemup \else
+ \l@rightstemdown \fi}
+\def\l@rightstemup{\calslurwidth
+ \ifx\dir@a\down@ \newslurwidth{0}{-}\fi
+ \ifx\dir@a\up@\calslurcor{+}\else\calslurcor{-}\fi\newE@a{-}\newE@e{-}}
+\def\l@rightstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \ifx\dir@a\up@\newslurwidth{0}{-}\fi
+ \ifx\dir@a\up@\calslurcor{+}\else\calslurcor{-}\fi\newE@a{-}\newE@e{-}%
+ \else\ifx\dir@a\up@\newslurwidth{1}{+}\else\newslurwidth{1}{-}\fi
+ \ifx\dir@a\up@\calslurcor{+}\else\calslurcor{-}\fi\newE@a{-}%\E@e belegt
+ \fi\advance\n@e 1 }
+%
+% Verbalkung nur in \n@a
+\def\u@leftbeaming{\ifnum\flaga<2 \u@leftstemdown \else
+ \u@leftstemup \fi}
+\def\u@leftstemdown{\calslurwidth
+ \ifx\dir@e\up@\newslurwidth{0}{-}\fi
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+\def\u@leftstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \ifx\dir@e\up@\newslurwidth{0}{-}\fi
+ \calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\ifx\dir@e\up@\newslurwidth{1}{-}\else\newslurwidth{1}{+}\fi
+ \slurcor=-\H@a@cor \newE@e{+}%\E@a belegt
+ \fi\advance\n@e1}
+%
+\def\l@leftbeaming{\ifnum\flaga<2 \l@leftstemup \else
+ \l@leftstemdown \fi}
+\def\l@leftstemup{\calslurwidth
+ \calslurcor{+}\newE@a{-}\newE@e{-}}
+\def\l@leftstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{-}\newE@a{-}\newE@e{-}%
+ \else\newslurwidth{1}{-}\slurcor=-\H@a@cor\newE@e{-}%\E@a belegt
+ \fi\advance\n@e 1 }
+%
+% Verbalkung in beiden Faellen
+\def\u@leftrightbeaming{\ifnum\flagb<2 \u@stemdown \else \u@stemup \fi}
+\def\u@stemdown{%
+ \ifnum\flaga<2 \u@stemdownstemdown \else \u@stemupstemdown \fi}
+\def\u@stemdownstemdown{\calslurwidth
+ \calslurcor{-}\newE@a{+}\newE@e{+}}
+\def\u@stemupstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\newslurwidth{1}{-}\slurcor=-\H@a@cor\newE@e{+}%\E@a belegt
+ \fi\advance\n@e 1 }
+\def\u@stemup{%
+ \ifnum\flaga<2 \u@stemdownstemup \else \u@stemupstemup \fi}
+\def\u@stemdownstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{-}\newE@a{+}\newE@e{+}%
+ \else\newslurwidth{1}{-}\calslurcor{-}\newE@a{+}%\E@e belegt
+ \fi\advance\n@e 1 }
+\def\u@stemupstemup{\calslurwidth
+ \slurcor=-\H@a@cor}%E@a,E@e belegt
+%
+\def\l@leftrightbeaming{\ifnum\flaga<2 \l@stemup \else \l@stemdown \fi}
+\def\l@stemup{%
+ \ifnum\flagb<2 \l@stemupstemup \else \l@stemupstemdown \fi}
+\def\l@stemupstemup{\calslurwidth
+ \calslurcor{+}\newE@a{-}\newE@e{-}}
+\def\l@stemupstemdown{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \calslurcor{+}\newE@a{-}\newE@e{-}%
+ \else\newslurwidth{1}{+}\calslurcor{+}\newE@a{-}%\E@e belegt
+ \fi\advance\n@e 1 }
+\def\l@stemdown{%
+ \ifnum\flagb<2 \l@stemdownstemup \else \l@stemdownstemdown \fi}
+\def\l@stemdownstemup{\calslurwidth
+ \advance\n@e-1
+ \ifnum\n@e=\n@a \newslurwidth{0}{-}\calslurcor{+}\newE@a{-}\newE@e{-}%
+ \else\newslurwidth{1}{-}\slurcor=-\H@a@cor\newE@e{-}%\E@a belegt
+ \fi\advance\n@e 1 }
+\def\l@stemdownstemdown{\calslurwidth\slurcor=-\H@a@cor}%E@a,E@e belegt
+%
+%Sekantensteigung
+\def\gradientslur#1#2{%
+ \ifdim\E@a=\E@e \V@int=0 \V@=\z@%auswaehlen von angemessenen Boegen
+ \else
+ \V@ = \E@e \advance \V@ by -\E@a
+ \ifdim\V@>\z@ \V@int=\V@ \else \V@int=-\V@ \fi
+ \advance\V@int \V@int \advance\V@int \seminhh \divide \V@int by 2
+ \divide \V@int by \seminhh
+ \ifnum\V@int>8 \V@int=8 \else \ifnum\slurwidth<4
+ \hc@i=\slurwidth \multiply \hc@i2
+ \ifnum\hc@i<\V@int \V@int=\hc@i
+ \fi\fi
+ \fi
+ \hd@i=\V@int\seminhh
+ \ifdim\E@a#1\E@e \global\E@a=\E@e\global\advance\E@a#2\hd@i
+ \else \global\E@e=\E@a\global\advance\E@e#2\hd@i\fi
+ \fi
+ }
+%
+%Postitionierung und Bogensatz
+\def\caluphrase{\ifnum\V@int=0
+ \caltie{0}{3}{+}\else \calphrase{<}{+}{0}\fi}
+\def\callphrase{\ifnum\V@int=0
+ \caltie{1}{3}{-}\else \calphrase{>}{-}{1}\fi}
+\def\caltie#1#2#3{\hd@i=\E@a \hd@ii=\tieconst\seminhh
+ \advance\hd@ii\nhh
+ \advance\hd@i #3\hd@ii
+ \additem{}{\noexpand\phrase{#1}{\the\H@e}%
+ {#2}{#2}{\the\hd@i}{\the\slurcor}}\in\elementlist\at\n@a}
+\def\calphrase#1#2#3{%
+ \ifdim\V@#1 \z@
+ \hd@i=\phraseconst\seminhh \advance\hd@i\nhh
+ \global\advance\E@a#2\hd@i
+ \additem{}{\noexpand\phrase{#3}{\the\H@e}%
+ {0}{\the\V@int}{\the\E@a}{\the\slurcor}}\in\elementlist\at\n@a
+% 0 entspr. slur aus der ersten spalte im font Sconst
+ \else
+ \hd@i=\phraseconst\seminhh \advance\hd@i\seminhh
+ \global\advance\E@a by #2\hd@i\relax
+ \hd@i=\V@int\seminhh
+ \global\advance\E@a by #2\hd@i \relax
+ \additem{}{\noexpand\phrase{#3}{\the\H@e}%
+ {\the\V@int}{0}{\the\E@a}{\the\slurcor}}\in\elementlist\at\n@a
+% 0 entspr. slur aus der ersten spalte im font
+ \fi}
+\def\phrase#1#2#3#4#5#6{\hc@i=#3\hc@ii=#4%
+ $\raise#5\hbox to \z@{{\kern#6%
+ \ifcase#1
+ \vt@@{\hbox to #2 {\slurfont
+ \vt@@{\char\hex2\the\hc@i}\r@lef@ill{\p@}\vt@@{\char\hex3\the\hc@ii}}}%
+ \or
+ \vb@@{\hbox to #2 {\slurfont
+ \vb@@{\char\hex4\the\hc@i}\r@lef@ll{\p@}\vb@@{\char\hex5\the\hc@ii}}}%
+ \fi
+ \hss}}$}
+%
+\def\setslurs#1#2{\additem{}{\noexpand\setslur{#2}{#1}%
+ {\the\E@a}{\the\slurcor}{\the\slurtoks}}\in\elementlist\at\n@a}
+\def\setslur#1#2#3#4#5{\S@=#1\hc@i=#2%
+ $\raise#3\hbox to \z@{{\kern#4\relax
+ \ifnum\S@<0 \vt@@{\selectfont\char#5}\else
+ \vb@@{\selectfont\char#5}\fi
+ \hss}}$}
+\def\selectfont{%
+ \ifcase\hc@i\ifnum\S@<0\slurfontdu\else\slurfontuu\fi%0
+ \or \ifnum\S@<0\slurfontdd\else\slurfontud\fi%1
+ \or \slurfont \or \slurfont \fi}
+% ************************************************** %
+% * Akzente fuer Noten und Akkorde * %
+% ************************************************** %
+%Abkuerzungen
+\def\cantusfirmus{{\it c.f.}}
+\def\crescendo{{\it cresc.}}
+\def\dacapo{{\it d.c.}}
+\def\dalsegno{{\it d.s.}}
+\def\decrescendo{{\it decresc.}}
+\def\diminuendo{{\it dim.}}
+\def\fine{{\it fine}}
+\def\forte{{\it f}}
+\def\fortissimo{{\it ff}}
+\def\fortissimoposs{{\it fff}}
+\def\fortepiano{{\it fp}}
+\def\forzato{{\it fz}}
+\def\mezzoforte{{\it mf}}
+\def\mezzopiano{{\it mp}}
+\def\piano{{\it p}}
+\def\pianissimo{{\it pp}}
+\def\pianissimoposs{{\it ppp}}
+\def\rallentando{{\it rall.}}
+\def\rinforzando{{\it rfz.}}
+\def\ritardando{{\it rit.}}
+\def\ritenuto{{\it riten.}}
+\def\sforzato{{\it sfz}}
+\def\sforz{{\it sf}}
+\def\staccato{{\it stacc.}}
+\def\tacet{{\it tacet}}
+\def\unisono{{\it unis.}}
+%Plazierung der Spielanweisungen am Notenkopf
+\def\noaccent{\setbox\akzentbox\null}
+\def\stac{\setbox\akzentbox\hboxnhw{{\rm.}}{\box\akzentbox}}
+\def\dec{{{\slurfont\char'160}}}
+\def\staccatissimo{\setbox\akzentbox%
+ \hboxnhw{$\ssize\prime$}{\box\akzentbox}}
+\def\tr{\setbox\akzentbox\hboxnhw{{\rm{\it tr}}}{\box\akzentbox}}
+\def\trbrack{\setbox\akzentbox\hboxnhw{{\rm({\it tr})}}{\box\akzentbox}}
+\def\tenuto{\setbox\akzentbox\hboxnhw{{\vrule width \nhh height 1pt}}
+{\box\akzentbox}}
+\def\plus{\setbox\akzentbox=
+ \hboxnhw{$\scriptscriptstyle+$}{\box\akzentbox}}
+\def\setchordakzent{%
+ \ifdim\wd\akzentbox=\z@\relax\else
+ \iftwo \akzent@position \else
+ \ifstemup \l@akzent@position \else \u@akzent@position\fi \fi
+ \ifstemup\global\setbox\notebox=\hbox{$
+ \raise \akzent@pos\hbox to \z@{\copy\akzentbox\hss}$\box\notebox}\else
+ \global\setbox\notebox=\hbox{\box\notebox$
+ \raise \akzent@pos\hbox to\z@{\hss\copy\akzentbox}$}\fi\fi}
+\def\setakzent{%
+ \ifdim\wd\akzentbox=\z@\relax\else
+ \iftwo \akzent@position \else
+ \ifstemup \l@akzent@position \else \u@akzent@position\fi \fi
+ \global\setbox\notebox=\hboxnhw{\box\notebox}{$
+ \raise \akzent@pos\hbox{\copy\akzentbox}$}\fi}
+\def\u@akzent@position{\hc@i=\ht\notebox \divide\hc@i by \seminhh
+ \ifnum\hc@i>7 \advance\hc@i 1 \else
+ \ifodd\hc@i \advance \hc@i 2 \else \advance \hc@i 1\fi\fi
+ \akzent@pos = \hc@i\seminhh\relax
+ \ifgroup
+ \global\E@u=\akzent@pos \global\advance\E@u\ht\akzentbox
+ \global\advance\E@u\seminhh
+ \ifdim\E@u<\z@ \global\advance \E@u-\I@@
+ \else \global\advance \E@u \I@@ \fi\fi
+ }
+\def\l@akzent@position{\hc@i=\dp\notebox \divide\hc@i by \seminhh
+ \ifdim\dp\notebox>\z@ \advance\hc@i 1 \akzent@pos= -\hc@i\seminhh
+ \else
+ \ifnum\pitch>2 \akzent@pos=\seminhh \else \akzent@pos=-\seminhh\fi\fi
+ \advance\akzent@pos-\ht\akzentbox
+ \ifgroup
+ \global\E@l=\akzent@pos \global\advance\E@l-\seminhh
+ \ifdim\E@l<\z@ \global\advance \E@l-\I@@
+ \else \global\advance \E@l \I@@ \fi\fi}
+%varable (De-)Crescendo - Zeichen
+\def\cresc#1{\sethunkglue\box\hunkbox\global\sk=0pt
+ \setbox\hb@i\hbox{#1}\hc@i=\wd\hb@i\divide\hc@i\nhw
+ \ifnum\hc@i < 1 \hc@i=1 \fi \ifnum\hc@i>16 \hc@i = 16\fi\advance\hc@i95
+ \setover{\slurfont\char\the\hc@i}{\overstrut\unhbox\hb@i}}
+\def\decresc#1{\sethunkglue\box\hunkbox\global\sk=0pt
+ \setbox\hb@i\hbox{#1}\hc@i=\wd\hb@i\divide\hc@i\nhw
+ \ifnum\hc@i < 1 \hc@i=1 \fi \ifnum\hc@i>16 \hc@i=16 \fi\advance\hc@i111
+ \setover{\slurfont\char\the\hc@i}{\overstrut\unhbox\hb@i}}
+\def\setover#1#2{\vbox{\offinterlineskip\hbox{#1}\hbox{#2}}}
+% ************************************************** %
+% * Textunterlage * %
+% ************************************************** %
+% Text oberhalb und unterhalb der Notenlinien
+%- Eingabemacros
+\def\^#1#{\set@above@parms{#1}\set@above@box}
+\let\us=\_
+\def\_#1#{\set@below@parms{#1}\set@below@box}
+\def\a@tok{\^}\def\b@tok{\_}
+%#1 n : Der Text soll nicht in die Berechnung einbezogen werden,
+%#1 c : Der Text wird unterhalb der Notenbox zentriert und nicht in
+% die weitere Berechnung einbezogen
+%#1 l: (linksbuendig) aber neuer spaceskip festgesetzt, Box ist so breit
+%wie Text.
+%#1 r: (rechtsbuendig) Box ist so breit wie Notenbox + ihr spaceskip
+%der Rest wird links ueberstehen. sk veraendert.
+\def\set@above@parms#1{\def\aresp{#1}\ifx\aresp\empty \def\aresp{x}\fi
+ \overtext=\staffheight\advance\overtext by\nhh}
+\def\set@below@parms#1{\def\bresp{#1}\ifx\bresp\empty \def\bresp{x}\fi
+ \undertext=\textline}
+\def\set@above@box#1{\hs@iv=\sk\setbox\hb@i=\hbox{\global\sk=\z@skip
+ \strut\eightrm#1}\get@below@box}
+\def\get@below@box#1#{\def\@B@{#1}\begingroup\aftergroup\set@below
+ \ifx\@B@\b@tok\relax %\aftergroup#2
+ \else\aftergroup e\aftergroup{\aftergroup}\fi
+ \endgroup}
+\def\set@below#1#{\set@below@parms{#1}\set@boxes}
+\def\set@boxes#1#2{\setbox\hb@ii=\hbox{\global\sk=\z@skip\strut\eightrm#1}%
+ \global\sk=\hs@iv \setbox\hb@iii\hbox{#2}%
+ \hs@v=\sk \relax\hs@vi=\sk
+ \above{\aresp}\below{\bresp}\global\sk=\hs@iv\relax
+ \ifvoid\hb@iii \global\sk=\z@skip \hbox{\u@text\l@text}\else #2\fi
+ \ifdim\hs@vi>\hs@v\global\sk=\hs@vi\else\global\sk=\hs@v\fi
+ \def\l@text{\relax}\def\u@text{\relax}}
+%
+\def\set@below@box#1{\hs@iv=\sk\setbox\hb@ii=\hbox{\global\sk=\z@skip
+ \strut\eightrm#1}\get@above@box}
+\def\get@above@box#1#{\def\@A@{#1}\begingroup\aftergroup\set@above
+ \ifx\@A@\a@tok\relax%\aftergroup#2
+ \else\aftergroup e\aftergroup{\aftergroup}\fi\endgroup}
+\def\set@above#1#{\set@above@parms{#1}\set@@boxes}
+\def\set@@boxes#1#2{\setbox\hb@i=\hbox{\global\sk=\z@skip\strut\eightrm#1}%
+ \global\sk=\hs@iv \setbox\hb@iii\hbox{#2}%
+ \hs@v=\sk \relax\hs@vi=\sk
+ \above{\aresp}\below{\bresp}\global\sk=\hs@iv\relax
+ \ifvoid\hb@iii\global\sk=\z@skip\hbox{\u@text\l@text}\else#2\fi
+ \ifdim\hs@vi>\hs@v\global\sk=\hs@vi\else\global\sk=\hs@v\fi
+ \def\l@text{\relax}\def\u@text{\relax}}
+\def\above#1{\ifdim\ht\hb@iii>\overtext \overtext = \ht\hb@iii
+ \advance \overtext \seminhh \fi
+ \if#1e\def\u@text{\relax}\else
+ \if#1n\anorespect\else
+ \if#1c\acrespect\else
+ \if#1r\arrespect\else
+ \if#1l\alrespect\else\aautoset\fi\fi\fi\fi\fi\nobreak}
+\def\below#1{%
+ \if#1e\def\l@text{\relax}\else
+ \if#1n\bnorespect\else
+ \if#1c\bcrespect\else
+ \if#1r\brrespect\else
+ \if#1l\blrespect\else
+ \if#1v\bvrespect\else\bautoset\fi\fi\fi\fi\fi\fi\nobreak}
+\def\anorespect{%
+ \def\u@text{$\raise\overtext\hbox to\z@{\box\hb@i\hss}$}}
+\def\acrespect{\hd@i=\wd\hb@iii\advance\hd@i-\hs@iv\relax
+ \setbox\hb@i\hbox to\hd@i{\hss\box\hb@i\hss}%
+ \def\u@text{$\raise\overtext\hbox to \z@{\box\hb@i\hss}$}}
+\def\arrespect{\hd@i=\wd\hb@iii
+ \advance\hd@i by \hs@v \advance\hd@i by-\hs@iv
+ \setbox\hb@i\hbox to \hd@i{\hss\box\hb@i}%
+ \def\u@text{$\raise\overtext\hbox to \z@{\box\hb@i\hss}$}%
+ \advance\hs@v by \nhh plus\nhh\relax}
+\def\alrespect{\hd@i=\wd\hb@iii\advance\hd@i-\hs@iv
+ \distance{\hd@i}{\wd\hb@i}\ifdim\hd@i>\wd\hb@i
+ \hs@v=\Abs plus\nhh \fi
+ \def\u@text{$\raise\overtext\hbox to \z@{\box\hb@i\hss}$}}
+\def\bnorespect{%
+ \def\l@text{$\lower\undertext\hbox to\z@{\box\hb@ii\hss}$}}
+\def\bvrespect{\undertext=\ht\hb@ii\relax
+ \ifdim\dp\hb@iii>\z@ \advance\undertext by\dp\hb@iii\fi\bnorespect}
+\def\bcrespect{%
+ \hd@i=\wd\hb@iii\advance\hd@i-\hs@iv\relax
+ \setbox\hb@ii\hbox to\hd@i{\hss\box\hb@ii\hss}%
+ \def\l@text{$\lower\undertext\hbox to \z@{\box\hb@ii\hss}$}}
+\def\brrespect{\hd@i=\wd\hb@iii
+ \advance\hd@i by \hs@vi \advance\hd@i by-\hs@iv
+ \setbox\hb@ii\hbox to \hd@i{\hss\box\hb@ii}%
+ \def\l@text{$\lower\undertext\hbox to \z@{\box\hb@ii\hss}$}%
+ \advance\hs@vi by \nhh plus\nhh\relax}
+\def\blrespect{\hd@i=\wd\hb@iii\advance\hd@i-\hs@iv
+ \distance{\hd@i}{\wd\hb@ii}\ifdim\hd@i>\wd\hb@i
+ \hs@vi=\Abs plus\nhh\relax \fi
+ \def\l@text{$\lower\undertext\hbox to \z@{\box\hb@ii\hss}$}}
+\def\aautoset{\hd@i=\wd\hb@i \advance \hd@i-\wd\hb@iii
+ \advance\hd@i-\hs@iv
+ \ifdim\hd@i>\z@ \relax
+ \ifdim\hd@i>0.75\hs@v \advance\hd@i-\hs@v
+ \ifdim\hd@i<\hs@v \arrespect\else\alrespect\fi
+ \else\acrespect\fi
+ \else\anorespect\fi
+ }
+\def\bautoset{\hd@i=\wd\hb@ii \advance\hd@i-\wd\hb@iii
+ \advance\hd@i-\hs@vi
+ \ifdim\hd@i>\z@ \relax
+ \ifdim\hd@i>\sk \advance\hd@i-\sk
+ \ifdim\hd@i<\sk \brrespect\else\blrespect\fi
+ \else\bcrespect\fi
+ \else\bnorespect\fi
+ }
+% ************************************************** %
+% * Zweistimmige Notation in einem System * %
+% ************************************************** %
+\def\two#1#2{{\def\stemdirectiondef{\relax}\twotrue
+ \setbox\h@nkbox=\hbox{\box\hunkbox}%
+ \hs@i=\sk \global\sk=\z@skip
+ \setbox\firstvoice\hbox{\stemuptrue
+ \let\akzent@position=\u@akzent@position\direction{up}#1}%
+ \hs@ii=\sk \global\sk=\z@skip
+ \setbox\secondvoice\hbox{%
+ \def\doteven{\dot@down}\let\akzent@position=\l@akzent@position
+ \stemupfalse\direction{down}#2}%
+ \hs@iii=\sk
+ \hbox{\global\sk=\hs@i\sethunkglue
+ \box\h@nkbox\ifdim\wd\firstvoice<\wd\secondvoice
+ \hd@i=\wd\firstvoice\global\sk=\z@skip\box\firstvoice\hskip-\hd@i
+ \global\sk=\z@skip\box\secondvoice\global\sk=\hs@iii\else
+ \hd@i=\wd\secondvoice\global\sk=\z@skip\box\secondvoice\hskip-\hd@i
+ \global\sk=\z@skip\box\firstvoice\global\sk=\hs@ii\fi}\twofalse}}
+% ************************************************** %
+% * Beginn und Ende * %
+% ************************************************** %
+%Material fuer die Ueberschrift eines Musikstueckes
+\def\comp@{\hbox{}} %Komponist
+\def\poet@{\hbox{}} % Texter
+\def\title@{\hbox{}}% Titel
+\def\voice@{\hbox{}}%Text zu Beginn der ersten Notenzeile
+\def\composer#1{\def\comp@{\hbox{\eightrm #1}}}
+\def\poet#1{\def\poet@{\hbox{\eightrm#1}}}
+\def\title#1{\def\title@{\hbox{\bf#1}}}
+\def\voice#1{\def\voice@{\hbox to \parindent{\offinterlineskip
+ \hss\vbox to \staffheight{\vfil\hbox{\rm#1}\vfil}\hss}}}
+%Zusammensetzen der Ueberschrift
+\def\headings{\par\hbox to \hsize{\hss\title@\hss}%
+ \hbox to \hsize {\poet@\hss\comp@}%
+ \def\comp@{\hbox{}}\def\poet@{\hbox{}}\def\title@{\hbox{}}}
+%Rahmen \beginsong ...... \endsong
+\outer\def\beginsong#1#2{\headings\par\nointerlineskip
+ \begingroup\inisong
+ \global\signtoks={}\global\cleftoks={}%
+ \noaccent
+ \baselines\parskip\staffheight plus 0.5\staffheight \relax
+ \firsttrue\indent\llap{\voice@}%
+ \firstlines#1#2\firstfalse\music}
+\def\endsong{\break\null\par\endgroup\def\voice@{\hbox{}}\global\sk=0pt}
+\outer\def\ende{\endsong\end}
+% ************************************************** %
+% * Defaults * %
+% ************************************************** %
+%Defaults zu Beginn des Musikstueckes
+\def\inidefaults{\let\dotdown=\dot@down
+ \def\helplist{}%
+ \global\minsl=3 \nhh
+ \let\na=\n@a \let\nee=\n@e
+ \def\beamlist{\\{\the\n@a-\the\n@e,}}%
+% Minimal moegliche Halslaenge bei Verbalkung - Anfangsbelegung
+ \n@a=1}
+%Diese k"onnen nicht in \beginsong .... \endsong eingebettet werden
+%da sonst keine Aenderung moeglich
+ \universal
+ \normalbaselines
+\catcode`@ = 12
+%\let\baselines = \baselinesa %fuer Einbettung einzeiliger Beispiele
+ %in Text
+\let\baselines = \baselinesb %fuer mehrzeilige Beispiele
+\rm
diff --git a/macros/mtex/macros/mtexdemo.tex b/macros/mtex/macros/mtexdemo.tex
new file mode 100644
index 0000000000..e1c8402c6e
--- /dev/null
+++ b/macros/mtex/macros/mtexdemo.tex
@@ -0,0 +1,299 @@
+%format plain
+%---------------------------------------------------
+\input german.sty
+%\input verbatim
+% macros for verbatim scanning
+% im wesentlichen dem file MANHDR TEX von DEK entnommen
+\catcode`@=11
+\def\tt{\fam\ttfam\tentt}%
+\newskip\ttglue \ttglue=.5em plus .25em minus .15em
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \catcode`\"=\other
+ \parskip \z@
+ \obeyspaces \obeylines \tt}
+
+\def\begintt{$$\let\par=\endgraf \ttverbatim
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{|vbox{#2}|endgroup$$}}
+
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
+%\def\ttspace{{\tt\hskip\ttglue}}
+
+\def\vrt{\hbox{\tt\char`\|}} % vertical line
+\def\dn{\hbox{\tt\char'14}} % downward arrow
+\def\up{\hbox{\tt\char'13}} % upward arrow
+\def\]{\hbox{\tt\char`\ }} % visible space
+
+\catcode`@=12 % at signs are no longer letters
+\def\verbatimon{\catcode`\|=\active}
+\def\verbatimoff{\catcode`\|=\other}
+\verbatimoff
+%--------------------------------------------------- end of verbatim.tex
+\nopagenumbers
+\headline{\eightrm \hfill Beispiele f"ur den Notensatz mit \TeX
+\hfill\hbox to 0pt{\hss Schofer/Steinbach 1987}}
+%---------------------------------------------------
+\input mtex
+%---------------------------------------------------
+\let\os=\^
+\let\us=\_
+\def\ks#1{\noindent\hbox{{\tt \char\hex5C}\bf#1}}
+\def\bs{\noindent\hbox{{\tt \char\hex5C}}}%Backslash
+\def\lk{\hbox{{\tt\char\hex7B}}}%linke Klammer auf
+\def\strich{{\hbox{\tt \char\hex7C}}}
+\def\dpkt{{\hbox{\tt \char\hex3A}}}%Doppelpunkt
+\def\gleich{{\hbox{\tt \char\hex3D}}}%
+\def\slash{\noindent{\hbox{\tt \char\hex2F}}}
+\def\blank{{\hbox{\tt \char\hex20}}}
+%
+\let\leftbrace=\{
+\def\{{\ifmmode\leftbrace\else{$\leftbrace$}\fi}
+\let\rightbrace=\}
+\def\}{\ifmmode\rightbrace\else{$\rightbrace$}\fi}
+%
+%
+\verbatimon
+\normalbaselines
+\openup\jot
+%
+%\universal %ist f"ur MTEX etwas zu breit
+\small %so gehts vielleicht besser
+%
+\title{\vbox{\hbox to 0pt{\hss 6 Suiten f"ur Cello Solo\hss}
+ \hbox to 0pt{\hss Suite II Menuet I\hss}}}
+\poet{\vtop{\hbox to 0pt{F"ur Viola "ubertragen \hss}
+ \hbox to 0pt{von Franz Schmidtner\hss}}}
+\composer{Johann Sebastian Bach}
+\parindent 20pt
+\beginsong\alto\F\meter3/4%
+\rchord \h5\h7\h9\endchord\v{10}\|%
+\two{\group{\\{\a{10}}\\{\a9}\\{\a{10}}\\{\a8}}{\\{10}\\{9}\\{10}\\{8}}%
+\ubeam14\uslur12\go}{\rchord \a4\a6\endchord}%
+\v9\|\rchord\v3\v5\endchord\v8%
+\group{\\{\a7}\\{\a6}}{\\{7}\\{6}}\lbeam12\go\|%
+\two{\group{\\{\a7}\\{\a6}\\{\a5}\\{\x4\a4}\\{\n3\a3}\\{\a2}}
+{\\{7}\\{6}\\{5}\\{4}\\{3}\\{2}}\ubeam16\uslur13\go}%
+{\a2}\|\rchord \h5\h7\h9\endchord\v{10}\|%
+\two{\group{\\{\a{10}}\\{\a9}\\{\tenuto\a{10}}\\{\tenuto\a8\noaccent}}
+{\\{10}\\{9}\\{10}\\{8}}\ubeam14\uslur12\go}{\a6}%
+\v{11}\|\rchord\v7\v9\endchord\rchord\v3\v7\v{12}\endchord
+\rchord\v1\v8\v{13}\endchord\|\rchord\h2\.1\h6\.1\x{11}\h{11}\.1\endchord
+\leftrightrepeat
+\rchord\h9\h{13}\endchord
+{\def\beamlist{\\{1-3,}\\{2-3,}}%
+\group{\\{\a{12}}\\{\s{13}}\\{\s{14}}}{\\{12}\\{13}\\{14}}\lbeam13%
+\uslur13\go}\|
+\two{\group{\\{\a{13}}\\{\a{12}}\\{\x{11}\a{11}}\\{\a{13}}\\{\a9}\\{\a8}}
+{\\{13}\\{12}\\{11}\\{13}\\{9}\\{8}}\ubeam16\uslur15\go}{\a8}\|%
+\two{\group{\\{\v9}\\{\v{12}}}{\\{9}\\{12}}\uslur12\go}{\h7}%
+\x{11}\two{\v{11}}{\v6}\|%
+\two{\group{\\{\a{15}}\\{\a{14}}\\{\a{13}}\\{\a{14}}\\{\a{12}}%
+\\{\n{11}\a{11}}}
+{\\{15}\\{14}\\{13}\\{14}\\{12}\\{11}}\ubeam16\uslur15\go}{\a5}\|%
+\two{\h{10}}{\group{\\{\v8}\\{\v7}}{\\{8}\\{7}}\lslur12\go}%
+\two{\v{11}}{\v6}\|%
+\two{\group{\\{\a9}\\{\a8}\\{\a9}\\{\a7}}{\\{9}\\{8}\\{9}\\{7}}\ubeam14%
+\go}{\a7}%
+\rchord\v{12}\v6\v3\endchord\|\rchord\v{11}\v7\v2\endchord
+\group{\\{\a{10}}\\{\a9}\\{\a8}\\{\a9}}{\\{10}\\{9}\\{8}\\{9}}\lbeam14\go
+\|\group{\\{\a7}\\{\a6}\\{\a7}\\{\a9}\\{\a8}\\{\a{10}}}
+{\\{7}\\{6}\\{7}\\{9}\\{8}\\{10}}\lbeam16\go\|%
+\x7\two{\tr\h9\noaccent}{\h7}%
+\two{\v{10}}{\pv}\|\b6%
+\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a6}%
+\x7\tr\v7\noaccent\|\rchord\v{12}\v8\v3\endchord\rchord\v{11}\v8\v4\endchord
+\two{\group{\\{\a{10}}\\{\a9}}{\\{10}\\{9}}\ubeam12\uslur12\go}{\v5}\|%
+\group{\\{\rchord\a{11}\a5\a1\endchord
+}\\{\a{10}}\\{\a9}\\{\a{10}}\\{\a8}\\{\a{10}}}
+{\\{1}\\{10}\\{9}\\{10}\\{8}\\{10}}\lbeam16\go\|%
+\two{\group{\\{\v{12}}\\{\x{11}\v{11}}}
+{\\{12}\\{11}}\uslur12\go}{\v8\pv}\n7%
+\two{\v{12}}{\v7}\|\x4%
+\two{\group{\\{\a8}\\{\a7}\\{\a8}\\{\a6}}
+{\\{8}\\{7}\\{8}\\{6}}\ubeam14\uslur12\go}{\a4}%
+\two{\v7}{\v5}\|%
+\group{\\{\a1}\\{\a8}}{\\{1}\\{8}}\lbeam12\go\two{\tr\v6\.1}{\v2\.1}%
+\two{\a5}{\raise-1.5\nhh\hbox{\pa}}\|\lchord\h5\.1\h2\.1\h{-2}\.1\endchord
+\rightrepeat
+\endsong
+\parindent0pt
+{\eightrm
+Aus: Johann Sebastian Bach, Sechs Suiten, f"ur Viola bearbeitet von
+Franz Schmidtner, Musikverlag Hans Sikorski, Hamburg.
+}
+\vskip0.5cm
+F"ur dieses Musikst"uck lautet die Eingabe:
+\vskip0.5cm
+%%%%%%%%%%%%%%%%%%
+%%%%% bach %%%%%%%
+%%%%%%%%%%%%%%%%%%
+{\bf !!}
+\ks{title}\{6 Suiten f"ur Cello Solo
+\bs{atop} Suite II Menuet I\}\par
+\ks{composer}\{Johann Sebastian Bach\}
+\ks{poet}\{F"ur Viola "ubertragen \bs{atop} von Franz Schmidtner\}\par
+\ks{alto}\ks{F}\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{two}
+\par{\bf \{\ \ \ \ks{chord}\{2`d f a\} 4h\strich
+\ks{chord}\{'8c `e\}\slash\ \slash\ \slash\ 4a\strich
+\par
+\ks{chord}\{4,h `d\} g\ks{beam}\{8f e\}\strich
+,8a \slash\ \slash\ \slash\ \slash\ \slash\ \strich
+\ks{chord}\{`2d f a\} 4h\strich 8e
+\slash\ \slash\ \slash\
+{`}{`}4c \strich\par
+\ks{chord}\{4`f a\}\ks{chord}\{,h `f {`}{`}d\}
+\ks{chord}\{,g `g {`}{`}e\}\strich
+\par\ks{chord}\{2.,a ,`e ,x{`}{`}c\}
+\dpkt\strich\strich\dpkt
+\par\ks{chord}\{2`a {`}{`}e\}\ks{slur}\{\ks{beam}\{8d 6e f\}\}\strich
+8`g\slash\ \slash\ \slash\ \slash\ \slash\ \strich
+2f \slash\ 4e\strich 8d \slash\ \slash\ \slash\ \slash\ \slash\strich
+\ks{slur}\{4g f\}e\strich\par
+ 8f\slash\ \slash\ \slash\
+\ks{chord}\{4,h `e {`}{`}d\}\strich\ks{chord}\{4,a `f {`}{`}c\}
+\ks{beam}\{8`h a g a\}\strich\par \ks{beam}\{8f e f a g h\}\strich
+2xf 4p \strich b8e \slash\ \slash\ \slash\
+4xf \ks{tr}\strich\ks{chord}\{4,h `g {`}{`}d\}
+\ks{chord}\{4`c g {`}{`}c\} `d\slash\ \strich
+\par\ks{beam}\{\ks{chord}\{,8g `d {`}{`}c\} 8`h a h g h\}\strich
+4g p nf\strich 8xc \slash\ \slash\ \slash\ 4d\strich
+\par\ks{beam}\{8,g `g\} 4.,a 8p\strich \ \slash\
+\dpkt\strich\strich\ \ \}\par
+\{\ \ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}h a\} h g\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{'8f e d\}xc ,nh a\}\strich
+\slash\ \slash\ \strich\par\ks{beam}\{\ks{slur}\{8h a\}\ks{tenuto} h
+f \ks{noaccent}\ \slash\ \}\strich
+\slash\ \slash\ \slash\ \strich
+\slash\ \dpkt\strich\strich\dpkt\par
+\slash\ \slash\ \slash\ \slash\ \strich
+\ks{beam}\{\ks{slur}\{8{`}{`}e d xc e `a\}g\}\strich
+\ks{slur}\{`4a {`}{`}d\}xc\strich
+\ks{beam}\{\ks{slur}\{8{`}{`}g f e f d \}nc\}\strich\par
+`2h\slash\ {`}{`}4c\strich \ks{beam}\{8`a g a f\}\slash\ \strich
+\slash\ \slash\ \slash\ \slash\ \slash\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\strich\par
+2`a \ks{tr} 4h\strich
+\ks{beam}\{\ks{slur}\{8g f\} g e\}\slash\strich
+\slash\ \slash\ \ks{beam}\{\ks{slur}\{8h a\}\}\strich
+\slash\ \slash\ \slash\ \slash\ \slash\ \slash\ \strich\par
+\ks{slur}\{{`}{`}4d `a\} {`}{`}d\strich
+\ks{beam}\{\ks{slur}\{8`g f\} g e\} 4f\strich
+\slash\ \slash\ 4.e \ks{tr} 8d\strich
+\ks{chord}\{2.,d .a `.d\}
+ \dpkt\strich\strich
+\ \ \} }{\bf!!}
+
+\vfill\eject
+\vskip2cm
+\title{Lobe den Herren}
+\composer{Hugo Distler}
+\def\@#1#2{{$\hbox{#1\hfill}\atop\hbox{#2\hfill}$}}
+\def\lv{{\leaders\hrule \hskip1cm plus 1fill}}
+\parindent 40pt
+\voice{Sopran}%
+\universal
+\beginsong\vio\G\^r{{\rm Schnell}}{\vrule height 7\nhh width0pt%
+\gluebrule}\meter3/4%
+\^{\mezzoforte}\_{\@{Lo-}{Mei-}}{\v2}%
+\_{\@{be}{ne}}{\v2}%
+\_{\@{den}{ge - }}{\v6}\|%
+\_{\@{Her-}{lie - }}{\v4\.1}\_{\@{ren, }{be - }}{\a3}%
+\_l{\@{den}{te }}{\v2}\|%
+\_l{\@{m"ach - }{See - }}{\v1}\_{\@{ti - }{le, }}{\v0}%
+\_{\@{gen }{das }}{\v{-1}}\|%
+\_{\@{K"o - }{ist }}{\h0}%
+\group{\\{\_n{\@{nig \lv }{mein \lv }}{\v1}}\\{\|\meter2/4}\\{\v1}}
+{\\{1}\\{0}\\{1}}\lslur13\go\_{\@{der }{Be- }}{\v2}\|\meter4/4%
+\_{\@{Eh - }{geh - }}{\h3}\_{\@{ren!}{ren.}}{\h2}\rightrepeat\meter3/4%
+%Ende Wiederholung
+\_{Kom-}\^{\forte}{\v6}\_{met}{\v6}\_{zu}{\v6}\|%
+\_{Hauf!}{\h7\.1}\caesura\|\_l{Psal - }{\v4}\_{ter}{\a5}%
+\_l{und }{\a5}%
+\group{\\{\_n{Har\hskip40pt - \hskip40pt -\hskip 40pt - \hskip40pt
+}{\v6}}\\{\|}\\{\a6}\\{\a7}\\{\a6}\\{\a4}\\{\v6}%
+\\{\|}\\{\a6}\\{\a7}\\{\v6\.1}\\{\a7}\\{\|}\\{\v6\.1}}
+{\\{6}\\{8}\\{6}\\{7}\\{6}\\{4}\\{6}\\{8}\\{6}\\{7}\\{6}\\{7}\\{8}\\{6}}%
+\lbeam36\lbeam9{10}\uslur13\uslur79\uslur1{14}\go
+\_{fe,}{\a5}\_l{wacht}{\v4}\|%
+\^{\piano}\_{auf, }{\h3}\group{\\{\_n{wacht}{\caesura\a4}}\\{\a2}}
+{\\{4}\\{2}}\ubeam12\go\|\^{\dec}\_{auf,}{\h3}%
+\group{\\{\_n{wacht}\^{zart}{\caesura\a4}}\\{\a2}}
+{\\{4}\\{2}}\ubeam12\go\|\^{\dec}\_{auf,}{\h6\.1}\caesura\|%
+\^{\forte}\_{las-}{\v{-1}}\_{set}{\v0\.1}\_{den}{\a1}\|%
+\meter4/4\_{Lob - }{\h2}\_{ge - }{\v3}\_{sang}{\v4}\|\meter7/4%
+\group{\\{\_n{h"o \hskip20pt - \hskip20pt - \hskip20pt
+- }{\h5}}\\{\v4\.1}\\{\a3}\\{\v2}\\{\h3}}
+{\\{5}\\{4}\\{3}\\{2}\\{9}}\uslur15\go
+\|\meter3/4\_{ren!}{\h2\.1}\=\endsong
+\parindent=0pt \eightrm
+Aus: R. Baum,``Geselliges Chorbuch I'' B"arenreiter-Verlag, Kassel und
+Basel.
+\vskip1cm \rm Auch zu diesem St"uck sei die Eingabe aufgef"uhrt:
+\vskip1cm
+%%%%%%%%%%%%%%%%
+%%%%%% distler%
+%%%%%%%%%%%%%%%%
+{\bf !!}\ks{title}\{Lobe den Herren\}
+\ks{composer}\{Hugo Distler\}
+\par
+\ks{voice}\{Sopran\}
+\ks{treble}\ks{signature}\{{`}{`}xf\}
+\ks{text}\{\ks{\os{ }l} Schnell\}
+\ks{meter}\{{\bf3}\slash {\bf4}\}\ks{vocal}
+\par {\bf\{\ \ \
+4g\ks{mezzoforte} g {`}{`}d\strich `h. 8a 4g\strich f e d \strich 2e
+\ks{slur}\{4f\strich\ks{meter}\{2\slash 4\} f\} 4g\strich
+\par\ks{meter}\{4\slash 4\} 2a 2g\dpkt\strich\strich
+\ks{meter}\{3\slash 4\} 4{`}{`}d d d \strich 2.e 0p\strich
+\par `4h 8{`}{`}c c
+\ks{group}\{4d\strich 8d e d `h 4{`}{`}d\strich 8d e 4.d 8e\strich 4.d\}
+\ks{gslur}\{1-3, 1-13\}\par
+\ks{gbeam}\{3-6, 9-10\} 8c 4`h\strich 2a
+\ks{piano} 0p\ks{beam}\{8h g\}\strich\par 2a \ks{decr} 0p
+%ks{beam}\{8h g\}\strich\par 2a \ks{decr} 0p
+\ks{beam}\{8h \ks{text}\{{\rm zart}\}g\}\strich
+ {`}{`}2.d\ks{decr} 0p\strich
+\par `4d\ks{forte} .e 8f\strich \ks{meter}\{4\slash 4\} 2g 4a h\strich
+\par
+\ks{meter}\{7\slash 4\}\ks{slur}\{`{}`2c `4.h 8a 4g 2a\}\strich
+\ks{meter}\{3\slash 4\} 2.g \gleich\ \ \ \} }
+\par
+\{\ \ \ \{Lo-\bs{atop} Mei-\} \{be\bs{atop} ne\} \{den\bs{atop} ge-\}
+\{Her-\bs{atop} lie-\} \{ren,\bs{atop} be-\}\par
+ \{den \bs{atop} te\} \{m"ach-\bs{atop} See-\}
+ \{ti-\bs{atop} le,\} \{gen\bs{atop} das\} \par
+ \{K"o-\bs{atop} ist\}
+ \{nig--\bs{atop} mein--\} \slash\
+ \{der\bs{atop} Be-\} \{Eh-\bs{atop} geh-\}
+ \{ren!\bs{atop} ren.\}
+\par Kom- met zu Hauf! Psal- ter und Har-
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\
+\slash\ \slash\ \slash\ \slash\
+fe, \par
+wacht auf, wacht \slash\ auf, wacht\ \slash\ auf, \par
+las- set
+den Lob- ge- sang h"o-
+\slash\ \slash\ \slash\ \slash\
+ren!\ \ \ \}{\bf!!}
+\vfill\eject
+%
+%
+\bye
diff --git a/macros/mtex/macros/mtexinfo.tex b/macros/mtex/macros/mtexinfo.tex
new file mode 100644
index 0000000000..2236c5b919
--- /dev/null
+++ b/macros/mtex/macros/mtexinfo.tex
@@ -0,0 +1,468 @@
+%format plain
+%\input verbatim
+%--------------------------------------------------------------------
+% macros for verbatim scanning
+% im wesentlichen dem file MANHDR TEX von DEK entnommen
+\catcode`@=11
+\def\tt{\fam\ttfam\tentt}%
+\newskip\ttglue \ttglue=.5em plus .25em minus .15em
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \catcode`\"=\other
+ \parskip \z@
+ \obeyspaces \obeylines \tt}
+
+\def\begintt{$$\let\par=\endgraf \ttverbatim
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{|vbox{#2}|endgroup$$}}
+
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
+%\def\ttspace{{\tt\hskip\ttglue}}
+
+\def\vrt{\hbox{\tt\char`\|}} % vertical line
+\def\dn{\hbox{\tt\char'14}} % downward arrow
+\def\up{\hbox{\tt\char'13}} % upward arrow
+\def\]{\hbox{\tt\char`\ }} % visible space
+
+\catcode`@=12 % at signs are no longer letters
+\def\verbatimon{\catcode`\|=\active}
+\def\verbatimoff{\catcode`\|=\other}
+\verbatimoff
+%---------------------------------------------- end of verbatim.tex
+\catcode`\"=12
+\def\hex{"} % zum Eingeben von Zahlen in hex
+\def\3{\char"19{}}
+\catcode`\"=\active %Umlaute
+\def"{\accent'177}
+\newskip \iindent \iindent=30pt
+\font\bigrm=cmbx12
+\font\ninerm=cmr9
+\font\music=music16
+%\footline={}
+\headline={\hfill Benutzermacros der aktuellen Version MTEX TEX}
+\parindent=0pt
+%
+% einige allgemeine Definitionen (nicht alle hier ben"otigt)
+\def\tex#1{{\it #1\/}}
+\def\disp#1{{\sl #1\/}}
+\def\defi#1{{\bf #1}}
+\def\parh{\par\hang\hangafter0}
+\def\parn{\par\noindent}
+\def\ul#1{$\underline{\text{#1}}$}
+\def\pt{\,{\rm pt}}%nur f"ur mathmode
+\def\<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}} % syntactic quantity
+\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet
+\def\hang{\hangindent\iindent}
+\def\textindent#1{\noindent\hskip\iindent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\noindent\hskip\iindent\hangindent2\iindent\textindent}
+\frenchspacing
+% macros for non-centered displays
+\outer\def\begindisplay{\obeylines\startdisplay}
+{\obeylines\gdef\startdisplay#1
+{\catcode`\^^M=5$$#1\halign\bgroup\hskip\iindent##\hfil&&\qquad##\hfil\cr}}
+\outer\def\enddisplay{\crcr\egroup$$}
+\def\vo{\tt\verbatimon}
+\def\voff{\tt\verbatimoff}
+\def\mf{{\rm METAFONT}}
+%\let\headings\relax
+%
+\openup\jot
+Dies ist eine Auf{}listung der
+benutzbaren Kontrollsequenzen aus MTEX zum Notensatz.
+
+\verbatimon
+Jedes eingegebene Musikst"uck mu\3 in folgender Form aufgebaut sein:
+\begindisplay
+Kopfzeile\cr
+|\beginsong|\<Notenschl"ussel>\<Tonart>\cr
+{}$\vdots$\cr
+|\endsong|\cr
+\enddisplay
+In der Kopfzeile k"onnen die Informationen "uber Titel, Komponist oder
+Textautor in beliebiger Reihenfolge angegeben werden mit:
+\begindisplay
+|\title{...}|\cr
+|\composer{...}|\cr
+|\poet{...}|\cr
+\enddisplay
+Mit |\voice{...}| kann der Name der Stimme angegeben werden. Dieser
+wird in der ersten Zeile vor das Liniensystem geschrieben.
+
+Als Notenschl"ussel sind verf"ugbar:
+\begindisplay
+|\vio| && Violinschl"ussel \cr
+%|\viooct| && oktavierter Violinschl"ussel (nach unten) \cr
+%|\vioOct| && oktavierter Violinschl"ussel (nach oben) \cr
+|\bass| && Ba\3schl"ussel \cr
+%|\bassoct| && oktavierter Ba\3schl"ussel (nach unten) \cr
+%|\bassOct| && oktavierter Ba\3schl"ussel (nach oben) \cr
+C-Schl"ussel:\cr
+|\bariton| && Baritonschl"ussel \cr
+|\tenor| && Tenorschl"ussel \cr
+|\alto| && Altschl"ussel \cr
+|\mezzosopran| && Mezzosopransch"ussel \cr
+|\sopran| && Sopranschl"ussel \cr
+\enddisplay
+%Test:
+%\def\viooct{$\mathop{\hbox{\music\mviolin}}\limits^8_8$}
+%\def\bassoct{$\mathop{\hbox{\music\mbass}}\limits^8_8$}
+%\viooct
+%\bassoct
+F"ur die Tonartangabe wurden folgende Kontrollsequenzen verwendet:
+\begindisplay
+Durtonarten:\cr
+|\F| && |\C| \cr
+|\B| && |\G| \cr
+|\Es| && |\D| \cr
+|\As| && |\A| \cr
+|\Des| && |\E| \cr
+|\Ges| && |\H| \cr
+|\Ces| && |\Fis| \cr
+Molltonarten:\cr
+|\mdis| && |\ma| \cr
+|\mgis| && |\md| \cr
+|\mcis| && |\mg| \cr
+|\mfis| && |\mc| \cr
+|\mh| && |\mf| \cr
+|\me| && |\mb| \cr
+ && |\mes| \cr
+\enddisplay
+Die Taktart wird angegeben durch
+\begindisplay
+|\meter{|\<Anzahl der Grundwerte pro Takt>|}/{|\<Takteinheit>|}|
+\enddisplay
+Die Symbole f"ur Taktangaben k"onnen auch mit |\meter|
+eingegeben werden, indem f"ur den ersten Parameter
+nichts eingegeben wird, z.B.: |\meter/{\mC}| f"ur {\music \char\hex53}.
+
+Die Musikfonts k"onnen "uber folgende Kontrollsequenzen angesprochen
+werden:
+\begindisplay
+|\music| && Musikzeichen \cr
+|\beamfont| && Balkenfont \cr
+|\slurfontuu| && Bogenfont (konkav, steigend) \cr
+|\slurfontud| && Bogenfont (konkav, fallend) \cr
+|\slurfontdu| && Bogenfont (konvex, steigend) \cr
+|\slurfontdd| && Bogenfont (konvex, fallend) \cr
+zus"atzlich noch: \cr
+|\eightrm| && Acht-Punkt Roman Font f"ur die Textunterlage \cr
+\enddisplay
+Die Namen f"ur die \tex{character} im Font |\music| sind:
+\begindisplay
+Notenk"opfe:\cr
+|\quart| (|\hex21|) && ausgef"ullter Notenkopf\cr
+|\half| (|\hex22|) && unausgef"ullter Notenkopf\cr
+|\whole| (|\hex23|) && ganze Note \cr
+F"ahnchen:\cr
+|\eighthup| (|\hex28|) && Achtel aufw"arts \cr
+|\eighthdown| (|\hex2D|) && Achtel abw"arts \cr
+|\sixteenthup| (|\hex29|) && Sechzehntel aufw"arts \cr
+|\sixteenthdown| (|\hex2E|) && Sechzehntel abw"arts \cr
+|\thirtytwoup| (|\hex2A|) && Zweiunddrei\3igstel aufw"arts \cr
+|\thirtytwodown| (|\hex2F|) && Zweiunddrei\3igstel abw"arts\cr
+|\sixtyfourup| (|\hex2B|) && Vierundsechzigstel aufw"arts \cr
+|\sixtyfourdown| (|\hex30|) && Vierundsechzigstel abw"arts\cr
+|\hundredtwentyeightup| (|\hex2C|)&& Hunderteinundzwanzigstel aufw"arts\cr
+|\hundredtwentyeightdown| (|\hex31|)&& Hunderteinundzwanzigstel abw"arts\cr
+Pausen: \cr
+|\wholerest| (|\hex3C|) && Ganze \cr
+|\halfrest| (|\hex3D|) && Halbe \cr
+|\quartrest| (|\hex3E|) && Viertel \cr
+|\eighthrest| (|\hex3F|) && Achtel \cr
+|\sixteenthrest| (|\hex40|) && Sechzehntel \cr
+Taktpausen: \cr
+|\doublerest| (|\hex3A|) && zwei Takte \cr
+|\ddoublerest| (|\hex3B|) && vier Takte \cr
+Fermaten: \cr
+|\fermateup| (|\hex50|) && Fermate oberhalb \cr
+|\fermatedown| (|\hex51|) && Fermate unterhalb \cr
+Versetzungszeichen: \cr
+|\mflat| (|\hex32|) && b \cr
+|\mdoubleflat| (|\hex33|) && Doppel-b \cr
+|\mquartflat| (|\hex37|) && Viertelton-b \cr
+|\mthreequartflat| (|\hex3A|) && Dreiviertelton-b \cr
+|\msharp| (|\hex34|) && Kreuz \cr
+|\mdoublesharp| (|\hex35|) && Doppel-Kreuz \cr
+|\mnatural| (|\hex36|) && Aufl"osungszeichen \cr
+Notenschl"ussel: \cr
+|\mviolin| (|\hex47|) && Violinschl"ussel \cr
+%|\mviolinoct| (|\hex47|) && \cr
+%|\mviolinOct| (|\hex47|) && \cr
+|\mbass| (|\hex49|) && Ba\3schl"ussel \cr
+%|\mbassoct| (|\hex49|) && \cr
+%|\mbassOct| (|\hex49|) && \cr
+|\mbariton| (|\hex4D|) && Baritonschl"ussel \cr
+|\mtenor| (|\hex4C|) && Tenorschl"ussel \cr
+|\malt| (|\hex4B|) && Altschl"ussel \cr
+|\mmezzosopran| (|\hex4E|) && Mezzosopranschl"ussel \cr
+|\msopran| (|\hex4E|) && Sopranschl"ussel \cr
+Taktangaben: \cr
+|\mC| (|\hex53|) \cr
+|\allabreve| (|\hex52|)\cr
+|\mCreverse| (|\hex54|)\cr
+\enddisplay
+"Anderbare Parameter sind:
+\begindisplay
+|\textline| && Abstand der Schriftlinie von der untersten Notenlinie\cr
+|\minsl| && minimale Notenhalsl"ange (bei Verbalkung) \cr
+|\overtext| && Schriftlinie oberhalb des Liniensystems \cr
+|\undertext| && Schriftline unterhalb des Liniensystems \cr
+\enddisplay
+Ausschlu\3parameter nach den Noten:
+\begindisplay
+|\NOTEskip| && Glue nach ganzer Note \cr
+|\Noteskip| && Glue nach halber Note \cr
+|\noteskip| && Glue nach 1/4 Note \cr
+|\notEskip| && Glue nach 1/8 Note \cr
+|\noTEskip| && Glue nach 1/16 Note \cr
+|\nOTEskip| && Glue nach 1/32 Note \cr
+|\nOteskip| && Glue nach 1/64 Note \cr
+|\nOtEskip| && Glue nach 1/128 Note \cr
+|\ruleskip| && Glue nach Rules \cr
+|\hunkskip| && Glue vor Noten und Rules \cr
+\enddisplay
+Nachfolgend sind die z.Zt. verf"ugbaren Ausschlu\3schemata angef"uhrt:
+\begindisplay
+|\ruleskip = \nhw plus \seminhw minus \seminhw| \cr
+\cr
+|\def\hsmall{%hader| \cr
+|\Noteskip 3\nhw plus 2\seminhw minus 2\seminhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 2\nhw plus 1.5\seminhw minus 1.5\seminhw| \cr
+|\notEskip 1\nhw plus \seminhw minus \seminhw| \cr
+|\noTEskip \z@ plus 0.5\seminhw minus \z@| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@\relax}| \cr
+\cr
+|\def\small{%| \cr
+|\Noteskip 3.5\nhw plus 1.8\seminhw minus 1.8\seminhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 2.5\nhw plus 1.4\seminhw minus 1.4\seminhw| \cr
+|\notEskip 1.5\nhw plus \seminhw minus \seminhw| \cr
+|\noTEskip \seminhw plus 0.6\seminhw minus 0.6\seminhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@ \relax}| \cr
+\cr
+|\def\universal{%| \cr
+|\Noteskip 4\nhw plus 1.6\nhw minus 1.6\nhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 3\nhw plus 1.3\nhw minus 1.3\nhw| \cr
+|\notEskip 2\nhw plus \nhw minus \nhw| \cr
+|\noTEskip \nhw plus 0.6\nhw minus 0.6\nhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@ \relax}| \cr
+\cr
+|\def\wide{%| \cr
+|\Noteskip 4\nhw plus 1.42\nhw minus 1.42\nhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 3.5\nhw plus 1.28\nhw minus 1.28\nhw| \cr
+|\notEskip 2.5\nhw plus \nhw minus \nhw| \cr
+|\noTEskip 1.5\nhw plus 0.9\nhw minus 0.9\nhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@ \relax}| \cr
+\cr
+|\def\loose{%| \cr
+|\Noteskip 5\nhw plus 1.5\nhw minus 1.5\nhw| \cr
+|\NOTEskip = \Noteskip| \cr
+|\noteskip 4\nhw plus 1.25\nhw minus 1.25\nhw| \cr
+|\notEskip 3\nhw plus \nhw minus \nhw| \cr
+|\noTEskip 2\nhw plus 0.75\nhw minus 0.75\nhw| \cr
+|\nOTEskip=\noTEskip \nOteskip=\noTEskip \nOtEskip=\noTEskip| \cr
+|\hunkskip \z@\relax}| \cr
+\enddisplay
+Baselineskip-Macros:
+\begindisplay
+|\baselinesa| && f"ur Einzeilige Notenbespiele \cr
+|\baselinesb| && f"ur Musikst"ucke \cr
+\enddisplay
+Default ist: |\let\baselines = \baselinesb|
+
+\bigskip
+\goodbreak
+Makros f"ur die Noteneingabe:
+
+Zun"achst die Noten und Pausen und Versetzungszeichen:
+\begindisplay
+Notennamen:\cr
+|\g{|\<interne Tonh"ohe>|}| && ganze Note \cr
+|\h{|\<interne Tonh"ohe>|}| && halbe Note \cr
+|\v{|\<interne Tonh"ohe>|}| && viertel Note \cr
+|\a{|\<interne Tonh"ohe>|}| && achtel Note \cr
+|\s{|\<interne Tonh"ohe>|}| && sechzehntel Note \cr
+|\z{|\<interne Tonh"ohe>|}| && zweiunddrei\3igstel Note \cr
+|\d{|\<interne Tonh"ohe>|}| && vierundsechzigstel Note \cr
+|\o{|\<interne Tonh"ohe>|}| && hundertachtundzwanzigstel Note \cr
+Versetzungszeichen:\cr
+|\x{|\<interne Tonh"ohe>|}| && Kreuz \cr
+|\xx{|\<interne Tonh"ohe>|}| && Doppelkreuz \cr
+|\n{|\<interne Tonh"ohe>|}| && Aufl"osungszeichen \cr
+|\b{|\<interne Tonh"ohe>|}| && Be \cr
+|\bb{|\<interne Tonh"ohe>|}| && Doppel-Be \cr
+Versetzungszeichen in der Vorzeichnung:\cr
+|\b@{|\<interne Tonh"ohe>|}| && Be \cr
+|\x@{|\<interne Tonh"ohe>|}| && Kreuz \cr
+|\n@{|\<interne Tonh"ohe>|}| && Aufl"osungszeichen \cr
+\enddisplay
+Pausen erhalten als interne Tonh"ohe |\pitch=5|
+zum Setzen der Wertpunkte im 3. Zwischenraum:
+\begindisplay
+|\pg| && ganze Pause \cr
+|\dpd| && Zwei Pausentakte \cr
+|\dpg| && drei Pausentakte \cr
+|\dpdd| && vier Pausentakte \cr
+|\ph| && halbe Pause \cr
+|\pv| && viertel Pause \cr
+|\pa| && achtel Pause \cr
+|\ps| && sechzehntel Pause \cr
+|\pz| && zweiunddrei\3igstel Pause \cr
+|\pd| && vierundsechzigstel Pause \cr
+|\po| && hundertachtundzwanzigstel Pause \cr
+Wertpunkte: \cr
+|\.{|\<Anzahl der Punkte>|}| \cr
+Taktstriche:\cr
+|\|\vrt && normaler Taktstrich \cr
+|\=| && Schlu\3strich \cr
+|\doublebarline| && doppelter Taktstrich \cr
+|\rightrepeat| && Wiederholungszeichen rechts :\vrt\vrt \cr
+|\leftrepeat| && Wiederholungszeichen links \vrt\vrt: \cr
+|\leftrightrepeat| && doppeltes Wiederholungszeichen :\vrt\vrt: \cr
+Makro f"ur Orientierungszeichen:\cr
+|\boxed{|\<Nummer oder Buchstabe>|}| \cr
+K"asten: \cr
+|\1|\<erstes Mal>|\2|\<Wiederholung>|\*|\cr
+Atemzeichen:\cr
+|\caesura|\cr
+Akzentzeichen:\cr
+|\noaccent| && Akzente l"oschen \cr
+|\stac| && Stakkatozeichen \cr
+|\dec| && kleines $>$ am Notenkopf \cr
+|\staccatissimo| && Stakkatissimozeichen \cr
+|\tr| && Triller {\it tr} \cr
+|\trbrack| && Triller in Klammern ({\it tr}) \cr
+|\tenuto| && Tenutozeichen \cr
+|\plus| && Triller $+$ \cr
+|\cresc{|\<Noten>|}| && Crescendozeichen $<$ "uber Noten\cr
+|\decresc{|\<Noten>|}| && Decrescendozeichen $>$ "uber Noten\cr
+Abk"urzungen f"ur Akzente:\cr
+|\cantusfirmus| && {\it c.f.} \cr
+|\crescendo| && {\it cresc.} \cr
+|\dacapo| && {\it d.c.} \cr
+|\dalsegno| && {\it d.s.} \cr
+|\decrescendo| && {\it decresc.} \cr
+|\diminuendo| && {\it dim.} \cr
+|\fine| && {\it fine} \cr
+|\forte| && {\it f} \cr
+|\fortissimo| && {\it ff} \cr
+|\fortissimoposs| && {\it fff} \cr
+|\fortepiano| && {\it fp} \cr
+|\forzato| && {\it fz} \cr
+|\mezzoforte| && {\it mf} \cr
+|\mezzopiano| && {\it mp} \cr
+|\piano| && {\it p} \cr
+|\pianissimo| && {\it pp} \cr
+|\pianissimoposs| && {\it ppp} \cr
+|\rallentando| && {\it rall.} \cr
+|\rinforzando| && {\it rfz.} \cr
+|\ritardando| && {\it rit.} \cr
+|\ritenuto| && {\it riten.} \cr
+|\sforzato| && {\it sfz} \cr
+|\sforz| && {\it sf} \cr
+|\staccato| && {\it stacc.} \cr
+|\tacet| && {\it tacet} \cr
+|\unisono| && {\it unis.} \cr
+\enddisplay
+\goodbreak
+Balkengruppen und Bogen werden wie folgt eingegeben:
+
+Zun"achst mu\3 die Notengruppe eingegeben werden. Und zwar mit
+\begindisplay
+|\group{|\<Elementliste>|}{|\<Tonh"ohenliste>|}|\cr
+\enddisplay
+Dabei mu\3 die Elementliste so aussehen:\begindisplay
+|\\{|\<Note1>|}|$\ldots$|\\{|\<NoteN>|}|
+\enddisplay
+Die Tonh"ohenliste sieht genauso aus. Nur muss anstatt der Note die dem
+$i$-ten Element der Notenliste zugeh"orige interne Tonh"ohe eingetragen
+sein.
+Anschlie\3end kann die Verbalkung und die Angabe der Bogen geschehen:
+\begindisplay
+|\ubeam{|\<Balkenanfangsnr.>|}{|\<Balkenendenr.>|}| && Balken an
+aufw"arts gestielten Noten \cr
+|\lbeam{|\<Balkenanfangsnr.>|}{|\<Balkenendenr.>|}| && Balken an
+abw"arts gestielten Noten \cr
+|\ubeam{|\<Bogenanfangsnr.>|}{|\<Bogenendenr.>|}| && Bogen oberhalb der
+Notengruppe \cr
+|\lbeam{|\<Bogenanfangsnr.>|}{|\<Bogenendenr.>|}| && Bogen unterhalb der
+Notengruppe \cr
+\enddisplay
+Diese Makros k"onnen beliebig oft aufgerufen werden. Es mu\3 jedoch mit
+dem Makro |\go| abgeschlossen werden.
+Die Balken werden nach der jeweils aktuellen |\beamlist| gesetzt. Diese
+enth"alt Informationen "uber die zu setzenden Balken einer
+Teilnotengruppe.
+Der Aufbau der |\beamlist| ist etwas komlizierter, aber
+in der Diplomarbeit genau beschrieben.
+Default ist
+\begindisplay
+ |\def\beamlist{\\{\the\n@a-\the\n@e,}}|
+\enddisplay
+wobei |\n@a| das erste Element der Balkengruppe ist, und |\n@e| das
+letzte. Ein Element der |\beamlist| beschreibt eine Balkenreihe, das
+hei\3t, wird der Default verwendet k"onnen nur Achtel-Balken gesetzt
+werden.
+
+Als weiteres ist noch zu erw"ahnen der zweistimmige Notensatz und die
+Textunterlage.
+Mit |\two{|\<obere Note(n)>|}{|\<untere Noten(n)>|}| k"onnen Noten
+"ubereinander notiert werden.
+Text"uberlage bzw. Textunterlage erh"alt man mit:
+\begindisplay
+|\^|$\lbrack$\<Positionierungskennzeichen>$\rbrack$%
+|{|\<Text>|}{|\<Note>|}|\cr
+|\_|$\lbrack$\<Positionierungskennzeichen>$\rbrack$%
+|{|\<Text>|}{|\<Note>|}|
+\enddisplay
+Als Positionierungskennzeichen kann |n| (Textbreite wird nicht
+ber"ucksichtigt), |c| (Text wird "uber der Note zentriert), |l| (Text
+wird linksb"undig "uber der Note unter Ber"ucksichtigung der Breite
+positioniert) oder |r| (Text wird rechtsb"undig "uber der Note
+positioniert) angegeben werden.
+Im Falle der Textunterlage gibt es ein weiteres
+Positionierungskennzeichen: |v|. In diesem Fall wird der Text variabel
+direkt
+unter der Noten und nicht auf der Schriftlinie positioniert.
+Wird kein Positionierungskennzeichen angegeben, so wird das Zeichen
+automatisch positioniert.
+
+Bei der Eingabe von Akkorden mu\3 zun"achst entschieden werden, ob
+der Notenhals nach oben oder nach unten zeigen soll, d.h. rechts oder
+links der Notenk"opfe erscheinen soll.
+Die Eingabe erfolgt mit:
+\begindisplay
+|\rchord|\<Noten>|\endchord|\cr
+|\lchord|\<Noten>|\endchord|
+\enddisplay
+Die Noten sollten in der Reihenfolge von oben nach unten eingegeben
+werden.
+\bigskip
+Allgemeine abschlie\3ende Bemerkungen:\hfill \break
+\hang Bei der Eingabe des Musikst"uckes ist zu beachten, da\3 keine
+unn"otigen Leerzeichen eingegeben werden (Regeln f"ur Kontrollsequenzen
+beachten!). Daher sollte jede Eingabezeile mit einem Kommentarzeichen
+(\%) enden.
+
+\end
diff --git a/macros/mtex/metafont/acc16.mf b/macros/mtex/metafont/acc16.mf
new file mode 100644
index 0000000000..821f879e8a
--- /dev/null
+++ b/macros/mtex/metafont/acc16.mf
@@ -0,0 +1,142 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% VERSETZUNGSZEICHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%%%%%%%%%%%%
+%% "flat" %
+%%%%%%%%%%%%
+
+beginchar(50, nhw#, 2nhh#, 2nhh#);
+ clear;
+ penpos4(7/24nhh, 30);%/5,20 % 1
+ penpos3(nhh/5,-90);%/5,20 %
+ penpos2(nhh/5, 90);%/5,20 %
+ y1 = h; %4
+ x1 = x2 = x3 = s; x4 = w-s; % 2
+ y4 = s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ penstroke z2e...z4e...z3e{sw};%right ,sw
+ draw z1--z3;
+ draw z1--z3;
+penlabels(1,2,3,4);
+endchar;
+
+%%%%%%%%%%
+%% "bb" %
+%%%%%%%%%%
+
+beginchar(51,2nhw#, 2nhh#, 2nhh#);
+ clear;
+ penpos4(nhh/4, 0);%/5,20
+ penpos3(nhh/4,-90);%/5,20
+ penpos2(nhh/4, 90);%/5,20
+ y1 = h; %4
+ x1 = x2 = x3 = s; x4 = w/2-s; % 2
+ y4 = s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ draw z1--z3;
+ draw z1--z3;
+ penstroke z2e..z4e...z3e{sw};
+ draw (z1--z3) shifted ((w/2 - 1.5s),0);
+ penstroke (z2e..z4e...z3e{sw})shifted ((w/2 -1.5s),0);
+endchar;
+
+%%%%%%%%%%%%%
+%% "sharp" %
+%%%%%%%%%%%%%
+
+beginchar(52, nhw#, 1.5nhh#, 1.5nhh#);
+ clear;
+ penpos3(nhh/2,90);
+ penpos4(nhh/2,90);
+ y1 = h - s; y1 - y2 = 2h - s;
+ x1 = x2 = s; z3 = (0,1/4nhh);
+ y4l = y3r; x4 = w;
+ currentpen:= pencircle scaled 3thinwidth;
+ draw z1--z2;
+ draw (z1--z2) shifted (w-2s,s);
+ penstroke z3e--z4e;
+ penstroke (z3e--z4e) shifted (0, -nhh);
+penlabels(1,2,3,4);
+endchar;
+
+%%%%%%%%%%
+%% "xx" %
+%%%%%%%%%%%
+
+beginchar(53, nhw#, .5nhh#, .5nhh#);
+ clear;
+ z1 = (s, h-s); z2 = (w-s, h-s);
+ z3 = (s,-h+s); z4 = (w-s,-h+s);
+ currentpen:= pencircle scaled .2nhh;
+ draw z1--z4; draw z3--z2;
+ currentpen:= pencircle scaled .3nhh;
+ drawdot z1; drawdot z2; drawdot z3; drawdot z4;
+endchar;
+
+%%%%%%%%%%%%%%%
+%% "natural" %
+%%%%%%%%%%%%%%%
+
+beginchar(54, nhw#, 1.5nhh#, 1.5nhh#);
+ clear;
+ penpos3(nhh/2,90);
+ penpos4(nhh/2,90);
+ y1 = h; y2 = -h + nhh/2;
+ x1 = x2 = s; z3l = (s,0);
+ y4 = y3r; x4 = w-s;
+ currentpen:= pencircle scaled 3thinwidth;
+ draw z1--z2;
+ draw (z1--z2) shifted (w-2s,-h+y4r);
+ penstroke z3e--z4e;
+ penstroke (z3e--z4e) shifted (0, -nhh);
+endchar;
+
+%%%%%%%%%%%%%%%%
+%% "1/4 flat" %
+%%%%%%%%%%%%%%%%
+
+beginchar(55, nhw#, 2nhh#, 2nhh#);
+ clear;
+ penpos4(7/24nhh, 30);%/5,20 % 1
+ penpos3(nhh/5,-90);%/5,20 %
+ penpos2(nhh/5, 90);%/5,20 %
+ y1 = h; % 4
+ x1 = x2 = x3 = w-s; x4 =2w-3s; % 2
+ y4 = s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ penstroke (counterclockwise
+ (z2e...z4e...z3e{sw}) reflectedabout(z1 ,z3));
+ draw z1--z3;
+ draw z1--z3;
+penlabels(1,2,3,4);
+endchar;
+
+%%%%%%%%%%%%%%%%
+%% "3/4 flat" %
+%%%%%%%%%%%%%%%%
+
+beginchar(56, 2nhw#-2S, 2nhh#, 2nhh#);
+ clear;
+ penpos4(7/24nhh, 30);%/5,20 % 1
+ penpos3(nhh/5,-90);%/5,20 %
+ penpos2(nhh/5, 90);%/5,20 %
+ y1 = h; % 4
+ x1 = x2 = x3 = w/2; x4 =w-s; % 2
+ y4 = s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ penstroke z2e...z4e...z3e{sw};
+ penstroke (counterclockwise
+ (z2e...z4e...z3e{sw}) reflectedabout(z1 ,z3));
+ draw z1--z3;
+ draw z1--z3;
+penlabels(1,2,3,4);
+endchar;
diff --git a/macros/mtex/metafont/beam16.mf b/macros/mtex/metafont/beam16.mf
new file mode 100644
index 0000000000..03239d1784
--- /dev/null
+++ b/macros/mtex/metafont/beam16.mf
@@ -0,0 +1,79 @@
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BALKEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+font_x_height beamht#;
+
+def drawbeams (expr st, jj) =
+ save i, length, height;
+ numeric i, length, height;
+ length:= 0.5;
+ for i=0 upto 7:
+ height := length*st + beamht#;
+ beginchar(jj*8+i, length, height, 0);
+ clear;
+ % x2 = w; x1 = 0;
+ z2r = (w,h);
+ z1l = origin;
+ penpos1(beamht,90);
+ penpos2(beamht,90);
+ penstroke z1e---z2e;
+ endchar;
+ length := 2*length;
+ endfor;
+enddef;
+
+def drawbeamsneg (expr st, jj) =
+ save i, length, depth;
+ numeric i, length, depth;
+ length:= 0.5;
+ for i=0 upto 7:
+ depth := length*st - beamht#;
+ beginchar(jj*8+i, length, 0, depth);
+ clear;
+ z2l = (w,d);
+ z1r = origin;
+ penpos1(beamht,90);
+ penpos2(beamht,90);
+ penstroke z1e---z2e;
+ endchar;
+ length := 2*length;
+ endfor;
+enddef;
+
+numeric ss[];
+
+ss[0]:=0.05;
+ss[1]:=0.10;
+ss[2]:=0.15;
+ss[3]:=0.20;
+ss[4]:=0.25;
+ss[5]:=0.30;
+ss[6]:=0.35;
+ss[7]:=0.45;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Balken mit positiver Steigung %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+for j=0 upto 7 :
+drawbeams(ss[j],j);
+endfor;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Balken mit negativer Steigung %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+for j=0 upto 7 :
+drawbeamsneg(-ss[j],j+8);
+endfor;
+
+end;
+
diff --git a/macros/mtex/metafont/music16.mf b/macros/mtex/metafont/music16.mf
new file mode 100644
index 0000000000..9565133273
--- /dev/null
+++ b/macros/mtex/metafont/music16.mf
@@ -0,0 +1,12 @@
+input musicdef
+font_x_height nhh#;
+font_quad nhw#;
+font_normal_space 0pt;
+font_normal_stretch 0pt;
+font_normal_shrink 0pt;
+input noten16
+input acc16
+input pause16
+input vio16
+input sonder16
+end
diff --git a/macros/mtex/metafont/musicdef.mf b/macros/mtex/metafont/musicdef.mf
new file mode 100644
index 0000000000..fbbef58249
--- /dev/null
+++ b/macros/mtex/metafont/musicdef.mf
@@ -0,0 +1,71 @@
+% this is musicdef.mf
+%
+%
+% hier evtl. mode fuer gewuenschten output setzen
+%
+% AGFA P400 mode: for devices that print 406 pixels per inch
+% mode_def agfa =
+% proofing:=0;
+% fontmaking:=1;
+% tracingtitles:=0;
+% pixels_per_inch:=406;
+% blacker:=0.65;
+% fillin:=0;
+% o_correction:=1;
+% enddef;
+% localfont:=agfa;
+% mode:=agfa;
+%
+% low resolution music fonts are not very nice - but you need something...
+ mode_def atari =
+ proofing:=0;
+ fontmaking:=1;
+ tracingtitles:=0;
+ pixels_per_inch:=96;
+ blacker:=1.0;
+ fillin:=0;
+ o_correction:=1;
+ enddef;
+ localfont:=atari;
+ mode:=atari;
+ mode_setup;
+%
+%
+%mode_def ibm = % ibm mode: for the IBM3820
+% proofing:=0; % no, we're not making proofs
+% fontmaking:=1; % yes, we are making a font
+% tracingtitles:=0; % no, don't show titles in the log
+% pixels_per_inch:=240;
+% blacker:=.78; % (this value is conjectural)
+% fillin:=0.25; % (ditto)
+% o_correction:=.5; % (ditto)
+% enddef;
+%
+fontmaking:=1;
+turningcheck:=0;
+displaying:=1;
+designsize:=16;
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+beamht#:=0.6nhh#; %Balkenst"arke
+nhh:=nhh#*pt; %noteheadheight *pt
+nhw:=nhw#*pt; %noteheadwidth *pt
+thinwidth := 0.1pt;
+beamht := beamht#*pt;
+s := 10thinwidth;
+S := 1/16designsize;
+%pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+openit;
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+%
+pickup pencircle scaled (0.1pt);
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
+%
diff --git a/macros/mtex/metafont/noten16.mf b/macros/mtex/metafont/noten16.mf
new file mode 100644
index 0000000000..6aff8ab739
--- /dev/null
+++ b/macros/mtex/metafont/noten16.mf
@@ -0,0 +1,292 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% NOTENKOEPFE UND FAEHNCHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
+%
+%%%%%%%%%%%%%%%
+%%notenkoepfe %
+%%%%%%%%%%%%%%%
+%
+%
+%
+%
+def drawnoteb(expr noteheadwidth, theta_a, theta_b, theta_c,
+width_a, width_b) =
+ % .l
+ penpos1(width_a, theta_a); % .2
+ % .r
+ penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l
+ % .r
+ penpos2(width_b, 180+theta_b); % .4
+ % .l
+ penpos4(width_b, theta_b); %
+ y1 = y3 = 0;
+ x2 = x4 = 1/2noteheadwidth;
+ x1l= 0; x3l = w; y2l = h; y4l = -h;
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ rotatedaround((origin +1/2w*right),theta_c);
+ enddef;
+%
+%
+%%%%%%%%%%%%%%%
+%% flags %
+%%%%%%%%%%%%%%%
+%
+%
+%
+pickup pencircle scaled (0.1pt);
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
+def flagshape (suffix i) (expr width, height, thicka, thin, shift) =
+ pair intersectionp; %
+ thick := 1/3 height;
+ sh[-3] = origin;
+ sh[i] = shift; % .1
+ penpos[i](thick,90); %
+ penpos[i+1]( 3thin ,90); % .2
+ penpos[i+2](thin,0); %
+ penpos[i+3](thin,0); % .3
+ x[i] = -1/16mm; %
+ y[i]r = height; % .4
+ x[i+1] = 3/8width; %
+ y[i+1] = height - thick; %
+ y[i+3] = 0;
+ x[i+2]r = x[i+3]+2s= width;
+ y[i+2]r = height - 2thick;
+ if i>1: intersectionp = z[i-2];
+ else : intersectionp = z[i+3];
+ fi;
+ penstrike (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+ ..z[i+1]e{z[i+1]e-z[i]e}
+ ..z[i+2]e{down}..intersectionp shifted (sh[i-4]-sh[i]))
+ shifted sh[i];
+ for n=0 upto 3:
+ k:=i+n;
+ penlabels(k);endfor;
+ enddef;
+
+%def flagshaper (suffix i) (expr width, height, thicka, thin, shift) =
+% pair intersectionp; %
+% thick := 1/3 height;
+% sh[-3] := origin+shift;
+% sh[i] = shift; % .1
+% penpos[i](thick,90); %
+% penpos[i+1]( 3thin ,90); % .2
+% penpos[i+2](thin,0); %
+% penpos[i+3](thin,0); % .3
+% x[i] = 0; %
+% y[i]r = height; % .4
+% x[i+1] = 3/8width; %
+% y[i+1] = height - thick; %
+% y[i+3] = 0;
+% x[i+2]r = x[i+3]+2s= width;
+% y[i+2]r = height - 2thick;
+% if i>1: intersectionp = z[i-2];
+% else : intersectionp = z[i+3];
+% fi;
+% penstroke (counterclockwise
+% (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+% ..z[i+1]e{z[i+1]e-z[i]e}
+% ..z[i+2]e{down}..intersectionp shifted (-sh[i-4]+sh[i]))
+% reflectedabout (z1r scaled 0.5,
+% z1r scaled 0.5+right) )
+% shifted sh[i];
+% for n=0 upto 3:
+% k:=i+n;
+% penlabels(k);endfor;
+% enddef;
+
+def flagshaper (suffix i) (expr width, height, thicka, thin, shift) =
+ pair intersectionp; %
+ thick := 1/3 height;
+ sh[-3] := origin+shift;
+ sh[i] = shift; % .1
+ penpos[i](thick,90); %
+ penpos[i+1]( 3thin ,90); % .2
+ penpos[i+2](thin,0); %
+ penpos[i+3](thin,0); % .3
+ x[i] = 0; %
+ y[i]r = height; % .4
+ x[i+1] = 3/8width; %
+ y[i+1] = height - thick; %
+ y[i+3] = 0;
+ x[i+2]r = x[i+3]+2s= width;
+ y[i+2]r = height - 2thick;
+ if i>1: intersectionp = z[i-2];
+ else : intersectionp = z[i+3];
+ fi;
+ penstrike (counterclockwise
+ (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+ ..z[i+1]e{z[i+1]e-z[i]e}
+ ..z[i+2]e{down}..intersectionp shifted (-sh[i-4]+sh[i]))
+ reflectedabout (z1r scaled 0.5,
+ z1r scaled 0.5+right) )
+ shifted sh[i];
+ enddef;
+
+
+%%%%%%%%%%%%%%%
+%% volle Note %
+%%%%%%%%%%%%%%%
+
+beginchar(33, nhw#, .5nhh#, .5nhh#);
+ w:=w+2thinwidth;
+ drawnoteb(w, 0, 90, 20, w/2, nhh/2);
+endchar;
+
+%%%%%%%%%%%%%%%
+%% halbe Note %
+%%%%%%%%%%%%%%%
+
+beginchar(34, nhw#, .5nhh#, .5nhh#);
+ w:=w+2thinwidth;
+ drawnoteb(w, 0, 90, 20, 3*thinwidth, nhh/4);
+endchar;
+
+%%%%%%%%%%%%%%%
+%% ganze Note %
+%%%%%%%%%%%%%%%
+
+beginchar (35,1.5nhh#, .5nhh#, .5nhh#);
+ drawnoteb(w, 0, 85, 0, nhh/3, 3*thinwidth);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(40, 0, 3nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshape (1,w, h, nhh, 5thinwidth, origin);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(41, 0, 3.25nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin);
+ flagshape (5,.95 w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,nhh));
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(42, 0, 3.75 nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin);
+ flagshape (5, .95w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,nhh));
+ flagshape (9, .9w, 2 nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(43, 0, 4.25nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin);
+ flagshape (5,.95 w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,nhh));
+ flagshape (9,.9w, 2 nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ flagshape(13,0.85w, 2nhh, 2/3nhh, 5thinwidth, (0,2.25nhh));
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(44, 0, 4.5nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin);
+ flagshape (5, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,nhh));
+ flagshape (9, w, 2 nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ flagshape(13,0.9 w, 2nhh, 2/3nhh, 5thinwidth, (0,2.25nhh));
+ flagshape(17,0.9 w, 1.5nhh, 1/3nhh, 5thinwidth, (0,3nhh));
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(45, 0, 3nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshaper(1,w, h, nhh, 5thinwidth, origin);
+ penlabels(1,2,3,4);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(46, 0, 3.25nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,0.75nhh));
+ flagshaper(5, w, 2.25 nhh, 2/3nhh, 5thinwidth,(0,-0.25nhh));
+ penlabels(1,2,3,4,5,6,7,8);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(47, 0, 3.75 nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,1.5nhh));
+ flagshaper(5, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,0.75nhh));
+ flagshaper(9, .95w, 2.25 nhh, 2/3nhh, 5thinwidth, origin);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+ w := 0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(48, 0, 4.25nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ flagshaper(5, w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,1nhh));
+ flagshaper(9,w, 2 nhh, 2/3nhh, 5thinwidth, (0,0.34nhh));
+ flagshaper(13,0.9w, 2nhh, 2/3nhh, 5thinwidth, (0,-0.32nhh));
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+ w := 0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(49, 0, 4.5nhh#, 0);
+ clear;
+ w:=nhw;
+ flagshaper (1, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,2.5nhh));
+ flagshaper (5, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ flagshaper (9, w, 2 nhh, 2/3nhh, 5thinwidth, (0,1nhh));
+ flagshaper(13,0.9 w, 2nhh, 2/3nhh, 5thinwidth, (0,0.5nhh));
+ flagshaper(17,0.9 w, 2nhh, 1/3nhh, 5thinwidth, (0,0nhh));
+ w := 0;
+endchar;
diff --git a/macros/mtex/metafont/pause16.mf b/macros/mtex/metafont/pause16.mf
new file mode 100644
index 0000000000..7ebbf449f9
--- /dev/null
+++ b/macros/mtex/metafont/pause16.mf
@@ -0,0 +1,184 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% PAUSEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+%%%%%%%%%
+%% "dp" %
+%%%%%%%%%
+
+beginchar(58,1/2nhw#, 3nhh#, 0);
+ clear;
+ penpos1(nhh,90);
+ penpos2(nhh,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+labels(1,2);
+endchar;
+
+%%%%%%%%%%
+%% "ddp" %
+%%%%%%%%%%
+
+beginchar(59,1/2nhw#, 3nhh#, 0);
+ clear;
+ penpos1(2nhh,90);
+ penpos2(2nhh,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+labels(1,2);
+endchar;
+
+%%%%%%%%%%%%%%%%%%
+%% "ganze Pause" %
+%%%%%%%%%%%%%%%%%%
+
+beginchar(60, nhw#, 3nhh#, 0);
+ clear;
+ penpos1(nhh/2,90);
+ penpos2(nhh/2,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+endchar;
+%charwd:=4.5; chardx:=charwd*pt; chardp:=0; charht:=4;
+
+%%%%%%%%%%%%%%%%%%
+%% "halbe Pause" %
+%%%%%%%%%%%%%%%%%%
+
+beginchar(61, nhw#, 2.5nhh#, 0);
+ clear;
+ penpos1(nhh/2,90);
+ penpos2(nhh/2,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%
+%% "viertel Pause" %
+%%%%%%%%%%%%%%%%%%%%
+
+beginchar(62, nhw#, 4nhh#, 0); % .1
+ clear; % .2
+ thin := 5 thinwidth; thick := 1/2 nhh; % 8..3
+ alpha_a = -50; alpha_b = -50; % .4
+ penpos1 ( thin, (alpha_a+90)); % .5
+ penpos5 ( thin, (alpha_b)); % .6
+ penpos2 ( thick, alpha_a ); %
+ penpos4 ( thick, alpha_b ); % .7
+ penpos3 ( thick, 1/2(alpha_a+alpha_b));
+ x3r:=9/10[x3,x3r];
+ penpos8 ( thick, 1/2(alpha_a+alpha_b));
+ x8l:=9/10[x8,x8l];
+ penpos6 ( 1/2thick, (alpha_b+10));
+ penpos7 ( 1/4thick,-20);
+ y1l = h - 2s;
+ x1l = 2s;
+ z2r = z1 +(nhh* right) rotated alpha_a;
+ z5 = z4l+(nhh* right) rotated alpha_b;
+ z3 = 1/3[z2,z4];
+ z8 = 2/3[z2,z4];
+% z3 = 1/2[z2r,z4];
+ z4 = (w,h) scaled .5;
+ y6r = 1.5nhh;
+ x6l = x4l;
+ x7 = w/2; y7r= nhh;
+ currentpen:= pencircle scaled thin;
+ draw z1--z2r; draw z5--z4l;
+ penstroke z2e..z3e..z8e..z4e;
+ penstroke z5e{nw}..z6e{z7-z6}..z7e;
+endchar;
+%%title "viertelpause"; %
+%beginchar(62, nhw#, 4nhh#, 0); % .1
+% clear; % .2
+% thin := 5 thinwidth; thick := 1/2 nhh; % 8..3
+% alpha_a = -50; alpha_b = -50; % .4
+%% penpos4(thick,-45);
+% z1 = (s,h-s);
+% z3 = (w,nhh);
+% z2-z3=(h/2-s)*up;
+% z1-z6=(h/2-2s)*up;
+% z4r = 1/3z1;
+% z4l = (w/2,nhh);% z2 = (w-s,h-nhh-s);
+% % 1[z2,z4r]=1/3(w,h);
+% z5 = 1/2(w,nhh);
+% currentpen:= pencircle scaled thin;%4
+% draw z1--z2; draw z6--z3;
+% filldraw z1--z2..control1/3[-z2,z4r]
+% %-(w/2,h/2))}
+% ..z3--z6..control1/4[-z6,z2]
+% %(w/2,h-nhh))}
+% ..z1--cycle;
+% filldraw z3...z4r...z5--z5..z4l..z3..cycle;
+%penlabels(1,2,3,4,5,6);
+%endchar;
+%end;
+
+%%%%%%%%%%%%%%%%%%%
+%% "achtel Pause" %
+%%%%%%%%%%%%%%%%%%%
+
+beginchar(63, 2nhh#, 3nhh#, 0)
+clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=x6=7/4nhh; y2=11/4nhh;
+ x3=x4=x5=1/2nhh; y3=10/4nhh;
+ y4=3nhh; y5=0; y6=15/4nhh;
+ currentpen := pencircle scaled 2thinwidth;
+ draw z1..z2;
+ currentpen := pensquare rotated45 scaled(sqrt2*thinwidth);
+ draw z2..z3{up+left};
+ fill z3..z4..z3..cycle;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "sechzehntel Pause" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(64,2nhh#, 3nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=x6=7/4nhh; y2=11/4nhh;
+ x3=x4=x5=1/2nhh; y3=10/4nhh;
+ y4=3nhh; y5=0; y6=15/4nhh;
+ currentpen := pencircle scaled 2thinwidth;
+ draw z5..z2;
+ currentpen := pensquare rotated45 scaled(sqrt2*thinwidth);
+ draw z2..z3{up+left};
+ draw z2..z3{up+left} shifted(-1/2nhh,-nhh);
+ fill z3..z4..z3..cycle;
+ fill z3..z4..z3..cycle shifted (-1/2nhh,-nhh);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "zweiunddreissigstel Pause" %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(65,2nhh#, 4nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=x6=7/4nhh;
+ y2=11/4nhh; x3=x4=x5=1/2nhh; y3=10/4nhh;
+ y4=3nhh; y5=0; y6=15/4nhh;
+ currentpen := pencircle scaled 2thinwidth;
+ draw z5..z6;
+ currentpen := pensquare rotated45 scaled(sqrt2*thinwidth);
+ draw z2..z3{up+left} shifted( 0,nhh);
+ draw z2..z3{up+left} shifted(-1/4nhh, 0);
+ draw z2..z3{up+left} shifted(-2/3nhh,-nhh);
+ fill z3..z4..z3..cycle shifted ( 0, nhh);
+ fill z3..z4..z3..cycle shifted (-1/4nhh, 0);
+ fill z3..z4..z3..cycle shifted (-2/3nhh,-nhh);
+endchar;
diff --git a/macros/mtex/metafont/slur16.mf b/macros/mtex/metafont/slur16.mf
new file mode 100644
index 0000000000..1ce0c194ae
--- /dev/null
+++ b/macros/mtex/metafont/slur16.mf
@@ -0,0 +1,229 @@
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN UND (DE)CRESCENDO %
+% %
+% (Phrasierungsbogen und Bogen der Steigung 0) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def drawslurs (expr st) =
+ save i, factor, length, height;
+ numeric i, absp, length, height, factor;
+ factor:= 1/6;
+ for i= 0 upto 15:
+ length := (i+2)*nhw#;
+ height := 0 ;
+
+ beginchar(i, length, height, 0);
+ clear;
+ z2r = (w,h);
+ z1l = origin;
+ absp := abs((-h,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2l+factor*(-h,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ % currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e..z3e..z2e; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawslursneg (expr st) =
+ save i, factor, length, depth;
+ numeric i, absp, length, depth, factor;
+ factor:= 1/6;
+ for i=0 upto 15:
+ length := (i+2)*nhw#;
+ depth := length*st ;
+
+ beginchar(16+i, length, 0, depth);
+ clear;
+ z2l = (w,-d);
+ z1r = origin;
+ absp := abs((d,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2l+factor*(d,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke (z1e..z3e..z2e) rotatedaround(1/2z2r, 180);
+ endchar;
+ endfor;
+enddef;
+
+def drawleftslur =
+ save i, length, height;
+ numeric i, length, height;
+ length := 9*nhw#;
+ for i = 1 upto 9:
+ height := (i+2)*1/2nhh# ;
+ beginchar(i-1+32, length, height, 0);
+ clear;
+ z2r = (w+4thinwidth,h);
+ z1l = origin;
+ penpos1(thinwidth,90);
+ penpos2(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e..z2e{(2w,0)}; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawrightslur =
+ save i, length, height;
+ numeric i, length, height;
+ length := 9*nhw#;
+ for i= 1 upto 9:
+ height := (i+2)*1/2nhh#;
+ beginchar(i-1+48, length, height, 0);
+ clear;
+ z1r = (0-4\thinwidth,h);
+ z2l = (w,0);
+ penpos2(thinwidth,90);
+ penpos1(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e{right}..z2e; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawleftslurneg =
+ save i, length, depth;
+ numeric i, length, depth;
+ length := 9*nhw#;
+ for i= 1 upto 9:
+ depth := (i+2)*1/2nhh# ;
+ beginchar(i-1+64, length, 0, depth);
+ clear;
+ z2l = (w+4thinwidth,-d);
+ z1r = origin;
+ penpos1(thinwidth,90);
+ penpos2(5/12beamht,90);
+ pickup pencircle scaled (1/16mm + blacker);
+ % currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke z1e..z2e{(2w,0)}; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawrightslurneg =
+ save i, length, depth;
+ numeric i, length, depth;
+ length := 9*nhw#;
+ for i= 1 upto 9:
+ depth := (i+2)*1/2nhh#;
+
+ beginchar(i-1+80, length, 0, depth);
+ clear;
+ z1l = (0-4\thinwidth,-d);
+ z2r = (w,0);
+ penpos2(thinwidth,90);
+ penpos1(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e{right}..z2e; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+%decrescendo und cresc.
+def drawcrescendo =
+ save i, height, length, depth;
+ numeric i, length, height, depth;
+ for i= 0 upto 15:
+ length := (i+1)*nhw#;
+ depth := 1/2nhh# ;
+ height := depth ;
+
+ beginchar(i+96, length, height, depth);
+ clear;
+ z1 = origin;
+ z2l = (w,h);
+ z3r = (w,-d);
+ penpos2(1/16mm,90);
+ penpos1(1/16mm,90);
+ penpos3(1/16mm,90);
+ pickup pencircle scaled (blacker);
+ penstrike z1e--z2e;
+ penstrike z1e--z3e;
+ endchar;
+ endfor;
+enddef;
+
+def drawdecrescendo =
+ save i, height, length, depth;
+ numeric i, length, height, depth;
+ for i= 0 upto 15:
+ length := (i+1)*nhw#;
+ depth := 1/2nhh# ;
+ height := depth ;
+
+ beginchar(i+112, length, height, depth);
+ clear;
+ z1l = (0,h);
+ z2 = (w,0);
+ z3r = (0,-d);
+ penpos2(1/16mm,90);
+ penpos1(1/16mm,90);
+ penpos3(1/16mm,90);
+ pickup pencircle scaled (blacker);
+ penstrike z3e---z2e;
+ penstrike z1e---z2e;
+%label(1,2,3);
+ endchar;
+ endfor;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%
+% Bogen nach oben %
+%%%%%%%%%%%%%%%%%%%
+
+drawslurs(0);
+
+%%%%%%%%%%%%%%%%%%%%
+% Bogen nach unten %
+%%%%%%%%%%%%%%%%%%%%
+
+drawslursneg(0);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% linge Halbboegen nach oben %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawleftslur;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% rechte Halbboegen nach oben %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawrightslur;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% linke Halbboegen nach unten %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawleftslurneg;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% rechte Halbboegen nach unten %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawrightslurneg;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Crescendo und Decrescendo %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawcrescendo;
+drawdecrescendo;
+
+
+end;
diff --git a/macros/mtex/metafont/slurdd16.mf b/macros/mtex/metafont/slurdd16.mf
new file mode 100644
index 0000000000..fd5712c57c
--- /dev/null
+++ b/macros/mtex/metafont/slurdd16.mf
@@ -0,0 +1,41 @@
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONKAV) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawslursneg (expr i, j) =
+ save jj, factor, length, depth;
+ numeric jj, absp, length, depth, factor;
+ factor:= 1/6;
+ length := j*nhw#;
+ depth := i*1/2nhh#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, length, 0, depth);
+ clear;
+ z2r = (w,-d);
+ z1l = origin;
+ absp := abs((d,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2r+factor*(d,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke (z1e..z3e..z2e) rotatedaround (1/2z2r,180);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% negative Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslursneg(i,j);
+endfor;endfor;
+end;
+
diff --git a/macros/mtex/metafont/slurdu16.mf b/macros/mtex/metafont/slurdu16.mf
new file mode 100644
index 0000000000..20282e2ca7
--- /dev/null
+++ b/macros/mtex/metafont/slurdu16.mf
@@ -0,0 +1,42 @@
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONVEX) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawslursneg (expr i,j) =
+ save jj, factor, length, depth;
+ numeric jj, absp, length, depth, factor;
+ factor:= 1/6;
+ length := j*nhw#;
+ depth := i*1/2nhh#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, length, 0, depth);
+ clear;
+ % x2 = w; x1 = 0;
+ z2r = (w,-d);
+ z1l = origin;
+ absp := abs((d,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2r+factor*(d,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke (z1e..z3e..z2e);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% negative Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslursneg(i,j);
+endfor;endfor;
+end;
+
diff --git a/macros/mtex/metafont/slurud16.mf b/macros/mtex/metafont/slurud16.mf
new file mode 100644
index 0000000000..f4028a8e96
--- /dev/null
+++ b/macros/mtex/metafont/slurud16.mf
@@ -0,0 +1,40 @@
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONKAV) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawslurs (expr i,j) =
+ save jj, factor, length, height;
+ numeric jj, absp, length, height, factor;
+ factor:= 1/6;
+ height := i*1/2nhh#;
+ length := j*nhw#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, length, height, 0);
+ clear;
+ z2r = (w,h);
+ z1l = origin;
+ absp := abs((-h,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2r+factor*(-h,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke (z1e..z3e..z2e) rotatedaround (1/2z2r,180);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% positive Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslurs(i,j);
+endfor;endfor;
+end;
diff --git a/macros/mtex/metafont/sluruu16.mf b/macros/mtex/metafont/sluruu16.mf
new file mode 100644
index 0000000000..59fa5b22de
--- /dev/null
+++ b/macros/mtex/metafont/sluruu16.mf
@@ -0,0 +1,39 @@
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONVEX) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def drawslurs(expr i,j) =
+ save jj,factor, length, height;
+ numeric jj, absp, length, height, factor;
+ factor:= 1/6;
+ height = i*1/2nhh#;
+ length = j*nhw#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, length, height, 0);
+ clear;
+ z2r = (w,h);
+ z1l = origin;
+ absp := abs((-h,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2l+factor*(-h,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke z1e..z3e..z2e; %statt dir 30
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% positive Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslurs(i,j);
+endfor;endfor;
+end;
diff --git a/macros/mtex/metafont/sonder16.mf b/macros/mtex/metafont/sonder16.mf
new file mode 100644
index 0000000000..8421dee032
--- /dev/null
+++ b/macros/mtex/metafont/sonder16.mf
@@ -0,0 +1,112 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SONDERZEICHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+def alla_breve (expr trans) =
+ thin := 5thinwidth; thick := 1/2 nhh;
+ penpos1(thin, 0);
+ penpos2(thin, -90);
+ penpos3(thick,180);
+ penpos4(2/3thin, 90);
+ penpos5(thin, 45);
+ penpos6(3/4thick,45);
+ 2x2r = 2x4r = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h;
+ x5 = w -2s;
+ y5 = h -2s;
+ z6r = z5r;
+ penstroke (z1e..z2e..z3e..z4e..z5e) transformed trans;
+ currentpen := pencircle scaled (2/3thick);
+ drawdot z6;
+enddef;
+
+
+%%%%%%%%%%%%%%%%
+% "allabreve" %%
+%%%%%%%%%%%%%%%%
+
+beginchar(82, 2nhh#, 3nhh#, 0);
+ clear;
+ alla_breve(identity);
+ z7 = z4 + 2/16 h *up;
+ z8 = z2 + 2/16 h *down;
+ currentpen := pencircle scaled (thin);
+ draw z7--z8;
+
+endchar;
+
+%%%%%%%%
+% "C" %%
+%%%%%%%%
+
+beginchar(83, 2nhh#, 3nhh#, 0);
+ clear;
+ alla_breve(identity);
+
+endchar;
+
+%%%%%%%%%%%%%%%
+% "reverseC" %%
+%%%%%%%%%%%%%%%
+
+beginchar(84, 2nhh#, 3nhh#, 0);
+ clear;
+ transform T;
+ xxpart T = -yypart T; xypart T = yxpart T; % T is a reflection
+ (w/2,0) transformed T = (w/2,0); (w/2,1) transformed T = (w/2,1);
+ thin := 5thinwidth; thick := 1/2 nhh;
+ penpos1(thin, 0);
+ penpos2(thin, -90);
+ penpos3(thick,180);
+ penpos4(2/3thin, 90);
+ penpos5(thin, 45);
+ penpos6(3/4thick,45);
+ 2x2r = 2x4r = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h;
+ x5 = w -2s;
+ y5 = h -2s;
+ z6r = z5r;
+ penstroke (counterclockwise
+ (z1e..z2e..z3e..z4e..z5e) transformed T);
+ currentpen := pencircle scaled (2/3thick);
+ drawdot (z6 transformed T);
+
+endchar;
+
+%%%%%%%%%%%%%%%
+% "fermate1" %%
+%%%%%%%%%%%%%%%
+
+beginchar(80, 2nhw#, 1.25nhh#, 0);
+ clear;
+ penpos2(nhh/4,90);
+ penpos4(nhh/4,90);
+ y2r = h;
+ z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0;
+ penstroke z1..z2e..z3;
+ currentpen:= pencircle scaled (nhh/4);
+ drawdot z4;
+endchar;
+
+%%%%%%%%%%%%%%%
+% "fermate2" %%
+%%%%%%%%%%%%%%%
+
+beginchar(81, 2nhw#, 0, 1.25nhh#);
+ clear;
+ penpos2(nhh/4,90);
+ penpos4(nhh/4,90);
+ y2l = -d;
+ z1 = origin; 2x2l = 2x4 = x3 = w;
+ y4r = y3 = 0;
+ penstroke (z1..z2e..z3);
+ currentpen := pencircle scaled (nhh/4);
+ drawdot z4;
+endchar;
diff --git a/macros/mtex/metafont/vio16.mf b/macros/mtex/metafont/vio16.mf
new file mode 100644
index 0000000000..8626d6c180
--- /dev/null
+++ b/macros/mtex/metafont/vio16.mf
@@ -0,0 +1,195 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% NOTENSCHLUESSEL %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%
+% VIOLINSCHLUESSEL %
+%%%%%%%%%%%%%%%%%%%%
+
+def violin(expr width, beginleft, begindown, thick, penthick) =
+x10=x3=x2=x8;
+y6l=56/15width+y12r;
+x11-x4=width;
+x5=x4+13/15width;
+x2=x4+31/45 width;
+x1=x4+7/15width;
+x4=beginleft;
+x2-x12=4/15 width;
+x9+2/5width=x6;
+x6-4/15width=x7;
+x9=x4+1/5width;
+y12r=begindown;
+y2r=y4=2y11;
+y8=y12r+4/15width;
+y2r=y12r+28/15width;
+y1=y12r+width;
+y3r=y12r+13/15width;
+y7=y12r+116/45width;
+y5=y12r+16/5width;
+y5-y10=y11;
+y9=y12r+2/15width;
+penpos1(0,180);
+penpos2(thick,90);
+penpos3(penthick+1/16thick,-90);
+penpos4(5/4thick,120);
+penpos5(5/6thick,-120);
+penpos6(5/3thick,-85);
+penpos7(1/2thick,0);
+penpos8(penthick,0);
+penpos9(5/4thick,170);
+penpos10(5/6thick,180);
+penpos11(thick,0);
+penpos12(penthick,-90);
+pickup pencircle scaled 1s;
+penstroke z1e{2left}..z2e..z11e..z3e
+..z4e{right+up}..z10e..{up}z5e..z6e;
+penstroke z6e{down+left}..{down}z7e--z8e;
+fill z8l{2down+right}..z12l..z9l
+--z9r..z12r..{up}z8r..cycle;
+pickup pencircle scaled 1s;
+fill z9l{3/2right+up}..{right+2down}z9r..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+enddef;
+
+beginchar(71,3.25nhw#, 6nhh#, 2nhh#);
+clear;
+violin(15/8nhh,7/4nhh,-3/2nhh,2/5nhh,1/9nhh);
+endchar;
+
+%%%%%%%%violin-schluessel verkleinert%%%%%%%%
+beginchar(72,3.25nhw#, 6nhh#, 2nhh#);
+clear;
+violin(12/8nhh,7/4nhh,-2/2nhh,3/10nhh,1/10nhh);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%
+% BASS--SCHLUESSEL %%
+%%%%%%%%%%%%%%%%%%%%%
+
+def bass(expr width, beginleft, begindown, thick, dotthick)=
+
+y1=begindown;
+x1l=beginleft;
+x4=x5;
+x4-x3=width;
+x1l-x3=1/10width;
+y2=3/6(y4+y5);
+y4-y5=3/9width;
+y5-y3=9/9width;
+y3=y1-17/12width;
+x4-x2=3/9width;
+x7-x3=1/5width;
+y7=1/4(3y5+y4);
+penpos1(1/2thick,10);
+penpos2(thick,180);
+penpos3(0,180);
+penpos7(1/3thick,90);
+
+pickup pencircle scaled dotthick;
+drawdot z4; drawdot z5;
+pickup pencircle scaled 1s;
+penstroke z3e{up+right}..z2e{up}..{down+left}z1e;
+fill z1l{down+left}..{right}z7l{right}..{left+up}z1r..cycle;
+penlabels(1,2,3,4,5,7);
+enddef;
+
+beginchar(73,3nhw#, 4nhh#, 0nhh#);
+clear;
+bass(9/4nhh, 49/40nhh, 58/16nhh, 1/2nhh, 2s);
+endchar;
+
+%%%%%%verkleinerter bass-schluessel%%%%%%%%%
+beginchar(74,3nhw#, 4nhh#, 0nhh#);
+clear;
+bass(7/4nhh, 60/40nhh, 56/16nhh, 1/2nhh, 1.5s);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%
+% ALT--SCHLUESSEL %
+%%%%%%%%%%%%%%%%%%%
+
+def alt(expr height, beginleft, begindown, thick) =
+x1=x7;
+x2=x8;
+y1-y7=height;
+y2-y8=height;
+y7=begindown;
+x7=beginleft;
+x2=x1+1/4height;
+x6l=x8l;
+y5=y7+1/2height;
+x5=x3;
+y4=y5+1/3(y3-y5);
+x4-x7=height;
+x4-x5=1/2height;
+y3-y5=2/5height;
+y8=y7;
+y6=y7;
+x9=x3;
+y9=y7-1/2height-2/5height;
+penpos8(1/4thick,180);
+penpos2(1/4thick,180);
+penpos1(thick,180);
+penpos7(thick,180);
+penpos6(thick,0);
+penpos5(1/10thick,0);
+penpos3(1/2thick,0);
+penpos4(2/3thick,180);
+
+pickup pencircle scaled 1s;
+fill z7l--z1l--z1r--z7r--cycle;
+fill z8l--z2l--z2r--z8r--cycle;
+penstroke z5e..{left+2down}z6e;
+penstroke z5e{right+4down}..{up}z4e{up}..{left+down}z3e;
+pickup pencircle scaled 1.8s;
+drawdot z3;
+
+
+pickup pencircle scaled 1s;
+penstroke
+ (counterclockwise(z7e--z1e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise(z8e--z2e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise(z5e..{left+2down}z6e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise (z5e{right+4down}..{up}z4e{up}..{left+down}z3e)
+reflectedabout(z7,z8));
+
+pickup pencircle scaled 1.75s;
+drawdot z9;
+penlabels(1,2,3,4,5,6,7,8);
+enddef;
+
+%%%%%%%%%%%Altschl"usseL%%%%%%%%%%%
+beginchar(75,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,2nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Tenorschluessel%%%%%%%%%
+beginchar(76,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,3nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Baritonschluessel%%%%%%%%%
+beginchar(77,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,4nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Mezzosopranschluessel%%%%%%%%%
+beginchar(78,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,1nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Sopranschluessel%%%%%%%%%
+beginchar(79,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,0nhh,2/5nhh);
+endchar;
+