如何修复 Beamer 中 tikzpicture 中的“缺少 \endcsname 插入。”错误

如何修复 Beamer 中 tikzpicture 中的“缺少 \endcsname 插入。”错误

我收到此错误消息

! Missing \endcsname inserted.
<to be read again> 
                   \theta 
l.18 \end{frame}

编译我的 .tex 文件时:

\documentclass{beamer}
\usepackage[english,russian]{babel}
\usepackage{tikz}
\usetikzlibrary{angles,calc,quotes}
\begin{document}
\begin{frame}{Title}
\begin{tikzpicture}
\coordinate (A) at (2,0);
\coordinate (B) at (0,0);
\coordinate (C) at (1,2);
\draw (A) -- (B) -- (C);
\pic["$\theta_1$"{above=3, right=2}, draw=black, double, angle radius=8pt] {angle = A--B--C};
\end{tikzpicture}
\end{frame}
\end{document}

如果我在加载 babel 时关闭所有简写,即,\usepackage[english,russian,shorthands=off]{babel},错误就会消失。然而,这不是一个解决方案,因为它禁用了整个文档中的简写。

所以,我想,我的问题可以归结为以下几点:如何仅在 tikzpicture 环境内禁用简写?

我尝试过请按下列方式回答:

\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{
  \shorthandoff{"}
}

但它也会失败。

答案1

您可以使用babeltikz 库并将其与fragile框架结合起来:

\documentclass{beamer}
\usepackage[english,russian]{babel}
\usepackage{tikz}
\usetikzlibrary{angles,calc,quotes,babel}
\begin{document}
\begin{frame}[fragile]{Title}
\begin{tikzpicture}
\coordinate (A) at (2,0);
\coordinate (B) at (0,0);
\coordinate (C) at (1,2);
\draw (A) -- (B) -- (C);
\pic["$\theta_1$"{above=3, right=2}, draw=black, double, angle radius=8pt] {angle = A--B--C};
\end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

相关内容