diff options
Diffstat (limited to 'macros/mtex/documentation/mdocanhd.tex')
-rw-r--r-- | macros/mtex/documentation/mdocanhd.tex | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/macros/mtex/documentation/mdocanhd.tex b/macros/mtex/documentation/mdocanhd.tex new file mode 100644 index 0000000000..982b15e07b --- /dev/null +++ b/macros/mtex/documentation/mdocanhd.tex @@ -0,0 +1,220 @@ +\font\bigrm=cmbx12 +\def\akkzent#1{{\accent'175 #1}} +\def\Oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant +\def\Hex#1{\hbox{\rm\akkzent{}\tt#1}} % hexadecimal constant +\def\mf{METAFONT} +\def\absatz{\par\penalty-50\vskip7.5pt plus4.5pt minus6pt\noindent} +\def\abs{\parsep} +\verbatimon +\heading {Anhang D:\quad Zeichens"atze} +\bigskip +Eine zus"atzliche +Aufgabe, die sich bei der Automatisierung des Notensatzes +ergibt, ist die Erstellung von besonderen +Zeichens"atzen, denn in der Regel enthalten +die vorhandenen Zeichens"atze keine Notenschriftzeichen. +Obwohl sie nicht f"ur +die Noteneingabe, sondern f"ur die Ausgabe von Musik von Bedeutung +ist, soll hier kurz auf die erstellten Zeichens"atze eingegangen +werden. Diese werden dann in der Arbeit von A. Steinbach +\lit{\Steinb} benutzt. +\abs +Wie in der Einleitung schon gesagt wurde, wird zur Erstellung der +Zeichen das zu \TeX\ geh"orende Programm \mf\ verwandt. +Dieses soll im folgenden kurz erl"autert werden. +\absatz +\subheading{Methode zur Erstellung von Zeichens"atzen} +Die f"ur den Notensatz notwendigen Zeichens"atze werden mit dem +von D. E. Knuth entwickelten Programm \mf\ erzeugt \lit{\Knuthmf}. +Dieses Programm bietet sich an, weil zur Darstellung eines Zeichens +im Gegensatz zu anderen Methoden relativ wenig Daten erforderlich sind. +Au\3erdem ist es an das f"ur die Automatisierung des Notensatzes +benutzte Textsatzsystem \TeX\ angepa\3t. +\abs +\mf\ erh"alt als Eingabe eine mathematische Beschreibung der Zeichen. +Diese besteht im wesentlichen aus der Angabe von Kontrollpunkten +und Anweisungen, wie diese zu verbinden sind. +Die Punkte werden durch ihre +Koordinaten, die Verbindungsvorschriften durch Winkel und Steigungen +beschrieben. \mf\ zieht daraufhin mit verschiedenen Stiften, +deren Form ebenfalls gew"ahlt werden kann, laut Anweisung +Kurven durch die Kontrollpunkte. Dazu werden Splines verwendet. +Ein Vorteil, der bei der Erstellung der Zeichen f"ur den +Notensatz oft ausgenutzt wird, ist, da\3 mehrmals auftretende Kurven +einmal +definiert und mit Hilfe einer Kontrollsequenz +an den entsprechenden Stellen +eingesetzt werden k"onnen. +\abs +\mf\ erzeugt die Zeichen in der vom Benutzer gew"unschten +ger"atespezifischen Aufl"osung. +Eine ausf"uhrliche Beschreibung von \mf\ +steht in dem Buch ``The \mf--book'' von D. E. Knuth \lit{\Knuthmf}. +\absatz +Nach dieser kurzen Erkl"arung der Arbeitsweise des Programms +\mf\ sollen nun die f"ur den automatisierten Notensatz notwendigen +Zeichens"atze vorgestellt werden. +\absatz +\subheading{Zeichens"atze f"ur den Notensatz} +In den folgenden Tabellen 1 bis 7 werden die erzeugten Zeichens"atze +(Fonts) gezeigt. Jedes Zeichen (Character) eines Fonts kann "uber +seinen zugeordneten Charactercode angesprochen werden. +Die Tabellen sind so aufgebaut, da\3 die +Codes k"onnen am Tabellenrand sowohl in oktaler +(\Oct{000} -- \Oct{177}) als auch in hexadezimaler +(\Hex{00} -- \Hex{7F}) Notation abgelesen werden. +So hat zum Beispiel das Aufl"osungszeichen +(\font\music= music16 {\music \char'066\ }) den Oktalcode +\Oct{066} und den Hexadezimalcode \Hex{36}, der kleine +Violinschl"ussel dagegen den Code \Oct{118} bzw. \Hex{48}. +Die bisher erstellten und verwendeten Zeichens"atze haben ein +Schriftgr"o\3e von 16pt, dies entspricht der H"ohe eines +Notenliniensystems (Rastralh"ohe). Sie sind also f"ur +Noten, die eine Notenkopfh"ohe |\nhh| = 4pt besitzen, ausgelegt. +Der Name +oben +links in der Tabelle bezeichnet den jeweiligen Zeichensatz. +\abs +Die erste Tabelle enth"alt die Notenschriftelemente wie Notenk"opfe, +F"ahnchen, Versetzungszeichen, Pausen, Notenschl"ussel und Sonderzeichen, +zum Beispiel f"ur Taktangaben. +Dieser Zeichensatz ist noch durch Hinzunahme weiterer Sonderzeichen +erweiterbar. +\abs +Tabelle 2 zeigt den Zeichensatz, der f"ur den Satz der Balken +notwendig ist. Die Balken unterscheiden +sich in der L"ange und der Steigung +voneinander. Allerdings k"onnen nicht alle Balken beliebiger L"ange +in den Zeichens"atzen aufgef"uhrt werden, da diese sonst zu +umfangreich werden w"urden. Aus diesem Grund werden die +Balken +aus Teilst"ucken zusammengesetzt. F"ur die Steigungen sind +charakteristische Balkensteigungen ausgew"ahlt worden (\lit{\Steinb}, +Kap.11). Eine Zeile der Tabelle enth"alt die zu einer festen +Balkensteigung geh"orenden Teilst"ucke. Die L"ange +dieser Teilst"ucke wird dabei von einer Spalte zur andern verdoppelt. +In einer Spalte stehen die Teilst"ucke, deren Anfangs-- und +Endpunkte jeweils die gleichen Abzissenwerte haben. Der Code eines +Balkenst"ucks kann demnach mit einer einfachen Gleichung +aus seiner L"ange und Steigung +berechnet werden. +\abs +Der dritte Zeichensatz (Tabelle 3) enth"alt die ungeteilten Haltebogen, +die Crescendo-- und Decrescendozeichen und Bogenst"ucke, aus +denen Bogen zusammengesetzt werden k"onnen. Die Bogenst"ucke +sind zeilenweise mit wachsender Steigung angeordnet, w"ahrend die +anderen Zeichen dieses Zeichensatzes der L"ange nach geordnet sind. +Der Auswahl der L"angen und Steigungen liegen die Berechnungen +aus \lit{\Steinb}, Kap.11 zugrunde. Dies gilt auch f"ur die +n"achsten Zeichens"atze. +\abs +Die restlichen vier Tabellen zeigen die Zeichens"atze f"ur +Bogen. Tabelle 4 und 5 enthalten die konvexen Bogen, Tabelle 6 und +7 die konkaven Bogen. Die konvexen Bogen werden oberhalb +einer Notenzeile gezogen, w"ahrend die konkaven Bogen +unterhalb einer Notenzeile gezeichnet werden. +Die beiden Zeichens"atze, die zu einer Bogenart geh"oren, unterscheiden +sich in der Sekantensteigung. In Tabelle 4 und 6 sind die Bogen +mit positiver, in Tabelle 5 und 7 mit negativer Sekantensteigung +aufgelistet. +Die Bogen innerhalb eines Zeichensatzes sind wiederum so angelegt, da\3 +der Charactercode eines Bogens wieder +aus der +L"ange und Steigung berechnet werden kann. +Dabei wurden jedoch die Bogen spaltenweise mit wachsender Steigung +angeordnet, wobei jede Spalte Bogen von zwei verschiedenen L"angen +enth"alt. Eine Ausnahme bildet die erste Spalte. Dort wurden +alle zum Satz erforderlichen Bogen der L"angen 1 |\nhw|, 2 |\nhw| +und 3 |\nhw| angeordnet. +\absatz +Im Anschlu\3 an diese Beschreibung folgen die einzelnen +Zeichens"atze (Tabellen 1 bis 7). Das \mf-Programm, mit dem +die Zeichens"atze generiert werden k"onnen, +ist in der vorliegenden Arbeit +weggelassen worden und kann gesondert angefordert werden. +\vfill\eject +\verbatimoff + + +% macros for font tables +% aus dem \tex book von Donald E. Knuth +\verbatimon +\countdef\counter=255 +\def\oddline#1{\cr + \noalign{\nointerlineskip} + \multispan{19}\hrulefill& + \setbox0=\hbox{\lower 2.3pt\hbox{\Hex{#1x}}}\smash{\box0}\cr + \noalign{\nointerlineskip}} +\def\evenline{\cr\noalign{\hrule}} +\def\chartstrut{\lower4.5pt\vbox to14pt{}} +\def\beginchart#1{$$\global\counter=0 #1 + \halign to\hsize\bgroup + \chartstrut##\tabskip0pt plus10pt& + &\hfil##\hfil&\vrule##\cr + \lower6.5pt\null + &{\it\fontname\ } +&&\Oct0&&\Oct1&&\Oct2&&\Oct3&&\Oct4&&\Oct5&&\Oct6&&\Oct7&\evenline} +\def\endchart{\raise11.5pt\null&&&\Hex 8&&\Hex 9&&\Hex A&&\Hex B& + &\Hex C&&\Hex D&&\Hex E&&\Hex F&\cr\egroup$$} +\def\:{\setbox0=\hbox{\char\counter}% + \ifdim\ht0>7.5pt \dimen1=\ht0 \advance \dimen1 by 2pt \ht0=\dimen1 \fi + \ifdim\dp0>2.5pt \dimen1=\dp0 \advance \dimen1 by 2pt \dp0=\dimen1 \fi + \setbox0=\hbox{% + \vrule depth \dp0 width 0pt \box0}\box0\global\advance\counter by1 } +\def\normalchart{% + &\Oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline0 + &\Oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline1 + &\Oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline2 + &\Oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline3 + &\Oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline4 + &\Oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline5 + &\Oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline6 + &\Oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline + &\Oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline7 + &\Oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline} +\def\table #1 {{\offinterlineskip +\font\sfont=#1 +\edef\fontname{#1} +\beginchart\sfont +\normalchart +\endchart +\bigskip +}} + +\table{music16} +\centerline{\bf Tabelle 1} +\vfill\eject + +\table{beam16} +\centerline{\bf Tabelle 2} +\vfill\eject +% +{ +\advance\hsize by 4cm\advance \hoffset by -2cm +\table{slur16} +\centerline{\bf Tabelle 3} +\vfill\eject +} + +\table{sluruu16} +\centerline{\bf Tabelle 4} +\vfill\eject + +\table{slurdu16} +\centerline{\bf Tabelle 5} +\vfill\eject + +\table{slurud16} +\centerline{\bf Tabelle 6} +\vfill\eject + +\table{slurdd16} +\centerline{\bf Tabelle 7} +\vfill\eject + |