Undefinierte Steuersequenz für die Einrückung \beamer@leftmargin

Undefinierte Steuersequenz für die Einrückung \beamer@leftmargin

Nach Beispiel aushttp://texdoc.net/texmf-dist/doc/latex/beamer/beameruserguide.pdf#subsubsection.8.2.2Ich denke, der folgende Code sollte funktionieren:

\documentclass{beamer}
\usepackage{lipsum}

\begin{document}

\begin{frame}{E}
\hskip-\beamer@leftmargin
\lipsum[2]
\end{frame}

\end{document}

Die Kompilierung schlägt jedoch pdflatex -synctex=1 -interaction=nonstopmode test.texmit dem Betrefffehler in Zeile 180 des Protokolls fehlhttps://pastebin.com/HmRdN0Vc.

Kann jemand erklären, was hier schief läuft?

Antwort1

@kann normalerweise nicht Teil eines Befehlsnamens sein, da es den Catcode 12 (anderes) hat, während Befehlsnamenzeichen den Catcode 11 (Buchstabe) haben müssen. Die Lösung besteht darin, Ihren Rahmen einzuschließen, \makeatletter ... \makeatotherum den Catcode von @richtig zu ändern (siehe auchdiese Frage):

\makeatletter
\begin{frame}{E}
\hskip-\beamer@leftmargin
\lipsum[2]
\end{frame}
\makeatother

Was die Verwendung dieser Makros innerhalb des Rahmens betrifft, beamerscheint es den Inhalt des Rahmens nicht im normalen Absatzerstellungsmodus zu verarbeiten, sondern liest seinen Inhalt in Form des Arguments eines Makroaufrufs. In diesem Moment sind alle Catcodes innerhalb des Rahmens festgelegt und können nicht mehr geändert werden. \makeatletterDaher hat dies keine Auswirkungen. Es gibt fragilejedoch eine Option, um Inhalte mit Catcode-Änderungen zuzulassen:

\begin{frame}[fragile]{E}
\makeatletter
\hskip-\beamer@leftmargin
\makeatother
\lipsum[2]
\end{frame}

verwandte Informationen