在 beamer 中插入 tikzpicture 时未定义控制序列

在 beamer 中插入 tikzpicture 时未定义控制序列

我对 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 无法重现所显示的图像)

在此处输入图片描述

相关内容