Babel, tikz 및 Beamer는 함께 작동하지 않습니다.

Babel, tikz 및 Beamer는 함께 작동하지 않습니다.

다음 코드는 메시지와 함께 빌드되지 않습니다.

! 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}

그러나 brazil babel 라인이 주석 처리되거나 tikzpicture가 프레임에서 만들어진 경우에는 작동합니다. \pgfversion3.0.0을 보여줍니다.

답변1

babelTikZ 라이브러리 에서 제공하는 메커니즘 "tikzpicture. 본질적으로 \shorthandoff{"}뒤에 추가하는 것과 같습니다 \begin{tikzpicture}.

불행하게도 이것은 Beamer에서는 작동하지 않습니다 frame. 왜냐하면 프레임의 내용이 처리되기 전에 흡수되어 캐릭터 토큰이 \shorthandoff{"}더 이상 어떤 명령으로도 변경할 수 없는 카테고리 코드를 얻게 되기 때문입니다.

해결 방법(약간 추악한 것으로 알고 있음): use 를 사용하면 \begin{frame}[fragile]Beamer가 나중에 다시 읽을 수 있도록 프레임의 내용을 기록하게 됩니다.

주의하세요 \end{frame}. 이 경우에는~ 해야 하다가장 왼쪽 열에서 선행 공백 없이 시작합니다.

관련 정보