Tikz:在后续 Beamer 帧上使用“of”时出现问题

Tikz:在后续 Beamer 帧上使用“of”时出现问题

编译这个 MWE 得到所需的结果:一个具有两个相对于彼此定位的节点的投影仪框架。

\documentclass[mathserif]{beamer}
\usepackage{pgfplots}
\begin{document}

\begin{frame}
\begin{figure}[t]
\begin{tikzpicture}[node distance=5mm and 5mm]
\usetikzlibrary{positioning}
\node (inc) [label=above:Incumbent] {};
\node (ent)   [below left=25mm of inc,label=left:Entrant] {};
\end{tikzpicture}
\end{figure}
\end{frame}

\end{document}

下面的代码包含了完全相同的帧然而,导致 PDFLaTeX 抛出错误! Package PGF Math Error: Unknown operatoro' 或of' (in '25mm of inc').

\documentclass[mathserif]{beamer}
\usepackage{pgfplots}
\begin{document}

\begin{frame}
\begin{figure}[t]
\begin{tikzpicture}[node distance=5mm and 5mm]
\usetikzlibrary{positioning}
\node (inc) [label=above:Incumbent] {};
\node (ent)   [below left=25mm of inc,label=left:Entrant] {};
\end{tikzpicture}
\end{figure}
\end{frame}

\begin{frame}
\begin{figure}[t]
\begin{tikzpicture}[node distance=5mm and 5mm]
\usetikzlibrary{positioning}
\node (inc) [label=above:Incumbent] {};
\node (ent)   [below left=25mm of inc,label=left:Entrant] {};
\end{tikzpicture}
\end{figure}
\end{frame}

\end{document}

有人知道为什么会发生这种情况吗?以及如何of在演示文稿中使用定位命令来制作多张幻灯片?

答案1

仅在序言中加载包和库!

该问题是由环境\usetikzlibrary{positioning}内部引起的frame

通常,LaTeX 中的包仅应在文档的前言部分加载。其中许多包引入了全局元素、添加到特定于文档的钩子或使用其他功能,如果在范围内或后面加载,则可能导致不必要的副作用\begin{document}。这适用于\usepackage,也适用于大多数特定于包的扩展机制,例如\usetikzlibrary

下面的编译没有任何问题:

\documentclass[mathserif]{beamer}
\usepackage{pgfplots}
\usetikzlibrary{positioning}  % Always load TikZ libraries in the preamble!
\begin{document}

\begin{frame}
  \begin{figure}[t]
  \begin{tikzpicture}[node distance=5mm and 5mm]
  \node (inc) [label=above:Incumbent] {};
  \node (ent)   [below left=25mm of inc,label=left:Entrant] {};
  \end{tikzpicture}
  \end{figure}
\end{frame}

\begin{frame}
  \begin{figure}[t]
  \begin{tikzpicture}[node distance=5mm and 5mm]
  \node (inc) [label=above:Incumbent] {};
  \node (ent)   [below left=25mm of inc,label=left:Entrant] {};
  \end{tikzpicture}
  \end{figure}
\end{frame}

\end{document}

相关内容