
El siguiente código no se puede compilar con el mensaje
! 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}
Sin embargo, funciona si se comenta la línea de Babel de Brasil o si la imagen tikz está construida a partir de un marco. \pgfversion
muestra 3.0.0.
Respuesta1
El mecanismo que proporciona la babel
biblioteca TikZ consiste en cambiar el código de categoría "
al iniciar un archivo tikzpicture
. Básicamente, equivale a agregar \shorthandoff{"}
después \begin{tikzpicture}
.
Desafortunadamente, esto no puede funcionar en un Beamer frame
, porque el contenido del marco se absorbe antes del procesamiento, por lo que los tokens de caracteres obtienen su código de categoría, que ningún \shorthandoff{"}
comando puede cambiar más.
Solución alternativa (un poco fea, lo sé): use \begin{frame}[fragile]
, lo que hace que Beamer escriba el contenido del marco para volver a leerlo más tarde.
Ojo que \end{frame}
, en este caso,debecomience sin ningún espacio anterior en la columna más a la izquierda.