我对 Beamer 和 tikz 都很陌生,在看了很多例子之后,我能够在普通的 latex 文章中创建我想要的 tikz 图片。我想在 Beamer 中重复使用同一张图片,但这样做时出现了未定义的控制序列错误。
我发现原因是&
我用来绘制矩阵的,如果我用它转义它,那么\
latex 就会停止抱怨,但是,这不会给出所需的图片。下面是我期望的 tikz 图片。有问题的 MWE 如下,它不会尝试重新创建整个图像。我认为现在不需要图像的所有代码,因为这可能会使 MWE 混乱。但是,如果有必要,我很乐意提供它。谢谢。
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{trees, matrix}
\usetikzlibrary{arrows.meta}
\tikzset{
every matrix/.style={
inner sep=-\pgflinewidth,
matrix of math nodes,
column sep=-\pgflinewidth,
nodes={
draw=black,
font=\color{black},
minimum size=.75cm,
anchor=center
}
}
}
\begin{document}
\begin{frame}
\begin{tikzpicture}
\tikzstyle{root} = [circle,draw=black, thick]
\node[root] (r0) at (0,2){root};
\matrix (l0) at (0,0) {a & ... & z\\};
\end{tikzpicture}
\end{frame}
\end{document}
答案1
您需要添加frame
选项fragile
:
\documentclass{beamer}
%\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{
every matrix/.style={
inner sep=-\pgflinewidth,
matrix of math nodes,
column sep=-\pgflinewidth,
nodes={draw,
minimum size=.75cm,
anchor=center}
}
}
\begin{document}
\begin{frame}[fragile] % <----
\begin{tikzpicture}
\tikzstyle{root} = [circle,draw=black, thick]
\node[root] (r0) at (0,2){root};
\matrix (l0) at (0,0) {a & ... & z\\};
\end{tikzpicture}
\end{frame}
\end{document}
(您的 MWE 无法重现所显示的图像)