我无法让笔记矩阵的基本示例显示在我的 Beamer 演示文稿中。我使用的是从 pgf 手册中复制的代码。这是一个完整的工作示例。我在编译时收到的错误是:“Package pgfbasematrix 错误:单个 & 符号与错误的 catcode 一起使用。”
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,fit,petri,positioning,matrix}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes]
{
8 & 1 & 6 \\
3 & 5 & 7 \\
4 & 9 & 2 \\
};
\draw[thick,red,->] (magic-1-1) |- (magic-2-3);
\end{tikzpicture}
\end{frame}
\end{document}
答案1
Beamer 经常使用 catcode。摘自 TkiZ 手册:
TikZ 创建
&
一个活动字符,然后将该字符定义为等于\pgfmatrixnextcell
。在大多数情况下,这会很好地工作,但有时&
无法激活;例如因为矩阵用于某些宏的参数或矩阵包含包含正常环境的节点。在这种情况下,您可以使用以下选项来避免每次都{tabular}
输入 :\pgfmatrixnextcell
/tikz/ampersand replacement=〈macro name〉
如果提供了宏名,则该宏将被定义为等于
\pgfmatrixnextcell
矩阵内部,并且&
不会被激活。例如,您可以说ampersand replacement=\&
,然后使用\&
来分隔列。
对于你的例子,这意味着:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\matrix (magic) [matrix of nodes,ampersand replacement=\&]
{
8 \& 1 \& 6 \\
3 \& 5 \& 7 \\
4 \& 9 \& 2 \\
};
\draw[thick,red,->] (magic-1-1) |- (magic-2-3);
\end{tikzpicture}
\end{frame}
\end{document}
答案2
只需将fragile
选项添加到框架即可:
\begin{frame}[fragile]
...
\end{frame}