\bgroup

Aus goLaTeX
Version vom 7. Juli 2020, 09:32 Uhr von KOMAScript (Diskussion | Beiträge) (neue Seite)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

\bgroup und \egroup sind LaTeX-Kern-Anweisungen mit der Bedeutung der {- und }-Token für Gruppen- und Argumentklammern.

Verwendung

Syntax

\bgroup lokal auszuführender Code \egroup

Beschreibung

Die beiden Anweisungen sind mit den {- und }-Klammern mit Kategorie-Code 1 und 2 (nahezu) identisch. Sie ähneln damit auch stark den TeX-Primitiven \begingroup und \endgroup, die jedoch immer eine Gruppe bilden und niemals zu Argumentklammern expandieren können.

Unterschiede gibt es außerdem im Mathemodus bezüglich des Einfügens von Ord-Atomen. Dieses Detail ist für Anwender in der Regel unwichtig, kann aber für Paketautoren in seltenen Fällen von Bedeutung sein.

Im LaTeX-Kern werden diese Anweisungen häufiger verwendet, um eine Gruppe im Mathemodus zu bilden. In einigen Fällen wird \bgroup auch verwendet, um mit einer Anweisung eine Box zu beginnen, deren Inhalt mit einer anderen Anweisung, die dann \egroup enthält, endet. Außerdem sind Vergleiche des nächstes Tokens damit leicht möglich.

Beispiele

% Unsinniges Beispiel, nicht zur Nachahmung empfohlen.
\documentclass{article}
\usepackage[ngerman]{babel}

\newcommand*{\startefett}{\mbox\bgroup\bfseries}% Nicht wirklich empfehlenswert!
\newcommand*{\beendefett}{\egroup}

\begin{document}
Das \startefett fetter \beendefett Text.
\end{document}

Dieses Beispiel zeigt, wie man manchmal das Lesen eines Arguments auf zwei Anweisungen verteilen kann. Das gezeigte Beispiel ist allerdings nicht verallgemeinerbar, wie man schnell sieht, wenn man im Beispiel \mbox durch \fbox ersetzt.

\documentclass{article}
\usepackage[ngerman]{babel}

\makeatletter
\newcommand*{\fettesArgumentoderUmschalter}{%
  \@ifnextchar\bgroup\textbf\bfseries
}
\makeatother

\begin{document}
Ein \fettesArgumentoderUmschalter{fettes Argument} im Vergleich zu einem
{\fettesArgumentoderUmschalter Umschalter für fette Passagen} bis Gruppenende.
\end{document}

Hier wird eine Anweisung \fettesArgumentoderUmschalter definiert, die sich genau in dem Fall, dass auf die Anweisung eine {-Klammer – genauer: ein {-Token der Kategorie 1 – folgt, wie \textbf und ansonsten wie \bfseries verhält. Hier wird für den Vergleich mit \@ifnextchar \bgroup verwendet, da { an dieser Stelle zu einem Hierarchie-Klammerfehler führen würde. Obwohl die Anweisung \fettesArgumentoderUmschalter wenig sinnvoll ist, zeigt das Beispiel also eine sinnvolle Verwendung von \bgroup.

Alternative Beispiele finden sich bei der Erklärung zu \begingroup…\endgroup, wenn man dort \begingroup durch \bgroup und \endgroup durch \egroup ersetzt.

Verwandte Befehle

\begingroup, \endgroup

Verweise

Die Anweisungen \bgroup und \egroup sind in den LaTeX-Quellen in Datei ltplain.dtx definiert und in source2e.pdf dokumentiert.