diff options
author | Norbert Preining <norbert@preining.info> | 2024-01-31 03:01:01 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-01-31 03:01:01 +0000 |
commit | 79e1bbc1ad6b308aa2074540b2afd43b6a72ce03 (patch) | |
tree | 32074e03eec88cf72e5973ddff176a0534c77dff /macros/mtex | |
parent | 084f5d8435744b7ea7ef487ec111a7bfd100ed62 (diff) |
CTAN sync 202401310301
Diffstat (limited to 'macros/mtex')
49 files changed, 0 insertions, 15734 deletions
diff --git a/macros/mtex/README b/macros/mtex/README deleted file mode 100644 index 391d1f0832..0000000000 --- a/macros/mtex/README +++ /dev/null @@ -1,65 +0,0 @@ -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 deleted file mode 100644 index 9c466500f5..0000000000 --- a/macros/mtex/documentation/mdoc.tex +++ /dev/null @@ -1,75 +0,0 @@ -%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 deleted file mode 100644 index bc080b00cb..0000000000 --- a/macros/mtex/documentation/mdoc1.tex +++ /dev/null @@ -1,897 +0,0 @@ -\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 deleted file mode 100644 index 65b0256017..0000000000 --- a/macros/mtex/documentation/mdoc10.tex +++ /dev/null @@ -1,205 +0,0 @@ -\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 deleted file mode 100644 index f9ef11754d..0000000000 --- a/macros/mtex/documentation/mdoc11.tex +++ /dev/null @@ -1,283 +0,0 @@ -\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 deleted file mode 100644 index 8456673948..0000000000 --- a/macros/mtex/documentation/mdoc12.tex +++ /dev/null @@ -1,89 +0,0 @@ -\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 deleted file mode 100644 index 15b64dfc8f..0000000000 --- a/macros/mtex/documentation/mdoc13.tex +++ /dev/null @@ -1,95 +0,0 @@ - - -\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 deleted file mode 100644 index 5cbcf78290..0000000000 --- a/macros/mtex/documentation/mdoc2.tex +++ /dev/null @@ -1,1206 +0,0 @@ -\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 deleted file mode 100644 index 9d5b2bf47c..0000000000 --- a/macros/mtex/documentation/mdoc3.tex +++ /dev/null @@ -1,811 +0,0 @@ -\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 deleted file mode 100644 index e8613ab111..0000000000 --- a/macros/mtex/documentation/mdoc4.tex +++ /dev/null @@ -1,288 +0,0 @@ -\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 deleted file mode 100644 index 2b64cd0ecd..0000000000 --- a/macros/mtex/documentation/mdoc5.tex +++ /dev/null @@ -1,1123 +0,0 @@ -\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 deleted file mode 100644 index 0296fcdc73..0000000000 --- a/macros/mtex/documentation/mdoc6.tex +++ /dev/null @@ -1,527 +0,0 @@ -\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 deleted file mode 100644 index 574eda9eb4..0000000000 --- a/macros/mtex/documentation/mdoc7.tex +++ /dev/null @@ -1,398 +0,0 @@ -\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 deleted file mode 100644 index d766fa8211..0000000000 --- a/macros/mtex/documentation/mdoc8.tex +++ /dev/null @@ -1,617 +0,0 @@ -\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 deleted file mode 100644 index d0ed715c54..0000000000 --- a/macros/mtex/documentation/mdoc9.tex +++ /dev/null @@ -1,1135 +0,0 @@ -\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 deleted file mode 100644 index 9b351afc34..0000000000 --- a/macros/mtex/documentation/mdocabst.tex +++ /dev/null @@ -1,73 +0,0 @@ -\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 deleted file mode 100644 index 572937adb4..0000000000 --- a/macros/mtex/documentation/mdocams.tex +++ /dev/null @@ -1,261 +0,0 @@ -%------------------------------------------------------------------ -% 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 deleted file mode 100644 index 4a238aa13e..0000000000 --- a/macros/mtex/documentation/mdocanha.tex +++ /dev/null @@ -1,670 +0,0 @@ -\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 deleted file mode 100644 index d615bdb6da..0000000000 --- a/macros/mtex/documentation/mdocanhb.tex +++ /dev/null @@ -1,49 +0,0 @@ -\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 deleted file mode 100644 index fc7a7278e8..0000000000 --- a/macros/mtex/documentation/mdocanhc.tex +++ /dev/null @@ -1,204 +0,0 @@ -\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 deleted file mode 100644 index 982b15e07b..0000000000 --- a/macros/mtex/documentation/mdocanhd.tex +++ /dev/null @@ -1,220 +0,0 @@ -\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 deleted file mode 100644 index f8d82101e0..0000000000 --- a/macros/mtex/documentation/mdocdef.tex +++ /dev/null @@ -1,258 +0,0 @@ -% 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 deleted file mode 100644 index 1652bc6e8f..0000000000 --- a/macros/mtex/documentation/mdocdef2.tex +++ /dev/null @@ -1,60 +0,0 @@ -% -% 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 deleted file mode 100644 index f36cd336e1..0000000000 --- a/macros/mtex/documentation/mdoceinl.tex +++ /dev/null @@ -1,207 +0,0 @@ -\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 deleted file mode 100644 index f2568f4a1d..0000000000 --- a/macros/mtex/documentation/mdocinh.tex +++ /dev/null @@ -1,91 +0,0 @@ -\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 deleted file mode 100644 index d8f692ffa8..0000000000 --- a/macros/mtex/documentation/mdocpic1.tex +++ /dev/null @@ -1,34 +0,0 @@ - -\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 deleted file mode 100644 index b7b4130e01..0000000000 --- a/macros/mtex/documentation/mdocpic2.tex +++ /dev/null @@ -1,45 +0,0 @@ - -\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 deleted file mode 100644 index b234d0bf0c..0000000000 --- a/macros/mtex/documentation/mdocpic3.tex +++ /dev/null @@ -1,46 +0,0 @@ - -\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 deleted file mode 100644 index 4a25fb53e3..0000000000 --- a/macros/mtex/documentation/mdocpic4.tex +++ /dev/null @@ -1,24 +0,0 @@ - -\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 deleted file mode 100644 index 5df13080fc..0000000000 --- a/macros/mtex/documentation/mdoctit.tex +++ /dev/null @@ -1,15 +0,0 @@ -\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 deleted file mode 100644 index 6990fb99ad..0000000000 --- a/macros/mtex/documentation/mdoctrns.tex +++ /dev/null @@ -1,1201 +0,0 @@ -%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 deleted file mode 100644 index 8ec5d53d0a..0000000000 --- a/macros/mtex/documentation/mdocverb.tex +++ /dev/null @@ -1,40 +0,0 @@ -% 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 deleted file mode 100644 index 769fa8bf9d..0000000000 --- a/macros/mtex/documentation/webmac.tex +++ /dev/null @@ -1,201 +0,0 @@ -% 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\{\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 deleted file mode 100644 index 57c2acdb2d..0000000000 --- a/macros/mtex/macros/mtex.tex +++ /dev/null @@ -1,1976 +0,0 @@ -% % -% 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 deleted file mode 100644 index e1c8402c6e..0000000000 --- a/macros/mtex/macros/mtexdemo.tex +++ /dev/null @@ -1,299 +0,0 @@ -%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 deleted file mode 100644 index 2236c5b919..0000000000 --- a/macros/mtex/macros/mtexinfo.tex +++ /dev/null @@ -1,468 +0,0 @@ -%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 deleted file mode 100644 index 821f879e8a..0000000000 --- a/macros/mtex/metafont/acc16.mf +++ /dev/null @@ -1,142 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% 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 deleted file mode 100644 index 03239d1784..0000000000 --- a/macros/mtex/metafont/beam16.mf +++ /dev/null @@ -1,79 +0,0 @@ -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 deleted file mode 100644 index 9565133273..0000000000 --- a/macros/mtex/metafont/music16.mf +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index fbbef58249..0000000000 --- a/macros/mtex/metafont/musicdef.mf +++ /dev/null @@ -1,71 +0,0 @@ -% 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 deleted file mode 100644 index 6aff8ab739..0000000000 --- a/macros/mtex/metafont/noten16.mf +++ /dev/null @@ -1,292 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% 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 deleted file mode 100644 index 7ebbf449f9..0000000000 --- a/macros/mtex/metafont/pause16.mf +++ /dev/null @@ -1,184 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% 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 deleted file mode 100644 index 1ce0c194ae..0000000000 --- a/macros/mtex/metafont/slur16.mf +++ /dev/null @@ -1,229 +0,0 @@ -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 deleted file mode 100644 index fd5712c57c..0000000000 --- a/macros/mtex/metafont/slurdd16.mf +++ /dev/null @@ -1,41 +0,0 @@ -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 deleted file mode 100644 index 20282e2ca7..0000000000 --- a/macros/mtex/metafont/slurdu16.mf +++ /dev/null @@ -1,42 +0,0 @@ -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 deleted file mode 100644 index f4028a8e96..0000000000 --- a/macros/mtex/metafont/slurud16.mf +++ /dev/null @@ -1,40 +0,0 @@ -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 deleted file mode 100644 index 59fa5b22de..0000000000 --- a/macros/mtex/metafont/sluruu16.mf +++ /dev/null @@ -1,39 +0,0 @@ -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 deleted file mode 100644 index 8421dee032..0000000000 --- a/macros/mtex/metafont/sonder16.mf +++ /dev/null @@ -1,112 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% 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 deleted file mode 100644 index 8626d6c180..0000000000 --- a/macros/mtex/metafont/vio16.mf +++ /dev/null @@ -1,195 +0,0 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% 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; - |