\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{\}\{\text {\}\}$\par \indent\hbox{\vo|\hbox to |\voff}\$\{$\<% Material f"ur eine horizontale Liste>$\}$\par \verbatimon\rm \indent\hbox{|\hrule |}$\lbrack$ |width | \$\rbrack$% $\lbrack$|height |\$\rbrack$% $\lbrack$|depth |\$\rbrack$% \par \indent\hbox{|\vrule |}$\lbrack$% |width |\$\rbrack$% $\lbrack$|height |\$\rbrack$% $\lbrack$|depth |\$\rbrack$% \par \subsubsubheading{Glue-Kontrollsequenzen} \indent\hbox{|\vskip |}\% $\lbrack$|plus |\$\rbrack$% $\lbrack$|minus |\$\rbrack$% \par\indent \hbox{|\hskip |}\% $\lbrack$|plus |\$\rbrack$% $\lbrack$|minus |\$\rbrack$ \par\indent \hbox{|\kern |}\\par\indent \hbox{|\leaders |}\\\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 |\|\hskip0pt minus1fil}|\cr \hskip2\iindent |\hbox to0pt{\hskip0pt minus1fil |\|\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{|\\\\\\\\% \|}| \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|\|{\hbox{}|\% |\vskip0pt plus 1fil}|\cr |\vtop to|\|{\hbox{}\vskip0pt plus1fil|\% |\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}\|}|% |{|\|}{|\|}|\;,\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|}| 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