编译这个 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 operator
o' 或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}