Babel, tikz und Beamer arbeiten nicht zusammen

Babel, tikz und Beamer arbeiten nicht zusammen

Der folgende Code kann nicht erstellt werden und es erscheint die Meldung

! Argument of \language@active@arg" has an extra }.

\documentclass[dvipsnames,unknownkeysallowed,12pt]{beamer}
\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{tikz}
\usetikzlibrary{arrows,babel,calc,angles,quotes}
\usepackage{tikzsymbols}
\begin{document}
\section{Figura}
\begin{frame}
         TiKz   \pgfversion
\begin{tikzpicture}
\draw [thick]
(3,-1) coordinate (a) node[right] {a} -- (0,0) coordinate (b) node[left] {b} 
-- (2,2) coordinate (c) node[above right] {c} pic["$\alpha$", thick,draw=orange, <->, angle eccentricity=1.2, angle radius=1cm] {angle=a--b--c};
\end{tikzpicture}
\end{frame}
\end{document}

Es funktioniert jedoch, wenn die Zeile „Brazil Babel“ kommentiert ist oder wenn das Tikz-Bild aus einem Rahmen erstellt wird. \pgfversionZeigt 3.0.0.

Antwort1

Der von der TikZ-Bibliothek bereitgestellte Mechanismus babelbesteht darin, den Kategoriecode von "beim Starten eines zu ändern tikzpicture. Im Wesentlichen entspricht dies dem Hinzufügen \shorthandoff{"}nach \begin{tikzpicture}.

Dies funktioniert in einem Beamer leider nicht frame, da der Inhalt des Frames vor der Verarbeitung absorbiert wird und die Zeichen-Token somit ihren Kategoriecode erhalten, den kein \shorthandoff{"}Befehl mehr ändern kann.

Problemumgehung (etwas hässlich, ich weiß): Verwenden Sie \begin{frame}[fragile], wodurch Beamer den Inhalt des Frames zum späteren erneuten Lesen ausschreibt.

Beachten Sie \end{frame}, dass in diesem FallmussBeginnen Sie ohne vorangestelltes Leerzeichen in der äußersten linken Spalte.

verwandte Informationen