Gruppierungen

Einfache Gruppierungen

Mitunter ist es sinnvoll und notwendig, Teile eines Textes als Einheit aufzufassen und zu behandeln. Dazu muss TeX gesagt werden, wo eine derartige Einheit beginnt und wo sie endet. In die normalerweise eingelesenen Einstellungen sehen dafür die Zeichen '{' für den Beginn einer Einheit und '}' für ihr Ende. Alles, was zwischen diesen beiden Zeichen steht, stellt eine sogenannte Gruppe da.

Im letzten Kapitel wurde schon vorgestellt, dass ein Wechsel des Zeichensatzes, der innerhalb einer Gruppe erfolgt, hinter dieser Gruppe wieder 'vergessen' ist. Das ist allerdings nicht nur mit Zeichensätzen so. Nahezu alles, was innerhalb einer Gruppe geändert wird, wird hinter der Gruppe wieder verworfen und der Zustand wieder hergestellt, der vor der Gruppe herrschte. Damit ist es möglich innerhalb einer Gruppe auch un&uum;;bliche Dinge zu tun, ohne dass man sich Gedanken machen müsste, hinter der Gruppe wieder aufräumen zu müssen.

Im Bereich der Computersprachen ist dieser Effekt bekannt. Man spricht hier von Blockstrukturen, Innerhalb einer Blockstruktur können lokale Definitionen vorgenommen werden, die am Ende der Blockstruktur wieder ihre Wirksamkeit verlieren.

Unabhängig von diesen Blockstrukturen können sie Gruppierungen in TeX verwenden, auch wenn sie sich mit Programmiersprachen nicht auskennen. Überdenken wir noch mal ein Beispiel, das auch schon früher behandelt wurde. Der Kontrollbefehl '\TeX' erzeugt das Logo von TeX. Es wurde schon darauf hingewiesen, wie schwierig es sein kann hinter dem Logo ein Leerzeichen zu erzeugen. Dieses Problem kann man umgehen, indem man '{\TeX}' schreibt. Dies ist immer gültig und TeX merkt am Ende der Gruppe auch, dass der Kontrollbefehl beendet ist. Ein folgendes Leerzeichen wird dann nicht verworfen, sondern so ausgegeben, wie es ausgegeben werden soll.

Alternativ kann man auch '\TeX{}' eingeben. Hier wird hinter dem Kontrollbefehl einfach eine leere Gruppe angehängt. Diese beendet wieder den Kontrollbefehl und liest alle folgenden Zeichen so ein, wie sie gedacht sind.

Argumente

TeX verwendet das Konzept der Gruppierung auch noch in einem anderen Sinne, nämlich um anzugeben, welche Argumente einem Kontrollbefehl übergeben werden sollen. Wenn z.B. ein bestimmter Text zentriert ausgegeben werden soll, dann geht dass mit dem Befehl '\centerline' Diesem Befehl muss angegeben werden, welcher Text zentriert werden soll. Dazu wird dieser Text in einer Gruppe an den Befehl angehängt, also z.B.:

\centerline{Zu zentrierender Text}

Geschachtelte Gruppen

Normalerweise ist es nicht nötig Gruppierungen allzu komplex zu verwenden. Dennoch ist es selbstverständlich möglich Gruppierungen zu verschachteln. Die Anweisung

\centerline{Dieser Text wird {\it zentriert}}

Arbeitet genau so, wie sie es erwarten. Der gesamte Text 'Dieser Text wird zentriert' wird komplett in einer Zeile zentriert dargestellt, außerdem wird das Wort 'zentriert' noch in der Schriftart Italic ausgegeben.

Aber schauen wir noch mal genauer auf dieses Beispiel. Die geschweiften Klammern haben nämlich eine unterschiedliche Bedeutung. Beim Befehl '\centerline' sorgen sie dafür, dass wirklich der gesamte Text zentriert wird. Der Befehl '\centerline' zentriert nämlich nur das, was unmittelbar hinter dem Befehl steht. Wenn man nur ein einzelnes Zeichen oder ein Symbol zentriert ausgeben will, dann sind die geschweiften Klammern überflüssig. Die Angabe von

\centerline\TeX

Gibt das Logo von TeX zentriert aus, weil der Kontrollbefehl '\TeX' als Einheit gesehen und als solche auch zentriert wird. Der Befehl '\it' funktioniert anders. Er wirkt nicht nur auf das unmittelbar folgende Argument, sondern schaltet einfach auf eine andere Schriftart, die ab Auftreten des Befehls gültig bleibt. Hier dienen die geschweiften Klammern also dazu, den Winrkungsbereich des Befehls zu begrenzen.

Man muss bei der Verschachtelung von Gruppen nur darauf achten, dass man die geschweiften Klammern paarweise richtig setzt, dass also zu jeder öffnenden Klammer auch eine entsprechende schließende existiert.

Besonderheiten

Ich habe oben ausgeführt, dass alle Änderungen, die innerhalb einer Gruppe vorgenommen werden, am Ende der Gruppe aufgehoben, also rückgängig gemacht sind. Mitunter ist es allerdings notwendig, dass eine Änderung auch noch wirkt, wenn die Gruppe verlassen wurde. Dies kann bewirkt werden durch den Kontrollbefehl '\global'. Wird er einer Definition oder Zuweisung vorangestellt, dann bleibt deren Wirksamkeit auch außerhalb der Gruppe, innerhalb derer die Definition oder Zuweisung stand, erhalten.

Es gibt noch ein weitere Möglichkeit eine Gruppe zu beginnen und zu beenden. Dies kann auch durch die Befehle '\begingroup' und '\endgroup' erfolgen. Diese beiden Befehl machen es möglich eine Gruppe mit einem Kontrollbefehl zu beginnen und sie mit einem anderen wieder zu beenden. Es muss dann allerdings darauf geachtet werden, dass die Verschachtelungen richtig erfolgen. Die Anweisung:

\begingroup ... { ... \endgroup ... }

Ist nicht gültig!