Tikz 图片适用于“报告”类,但不适用于“投影仪”类

Tikz 图片适用于“报告”类,但不适用于“投影仪”类

我必须在周三用 Beamer 演示我的学士论文。现在我遇到了一个我无法理解的问题。我所做的就是从我的论文中复制代码,它确实运行得很好。我甚至用 MWE 对报告和 Beamer 都进行了测试,但它只对报告有效。当我查找问题时,大多数解决方案都与数据应该所在的文件的路径有关,但是没有路径,数据直接在代码中。

它看起来应该是这样的: 当它起作用时

这是一个确实有效的 MWE:

\documentclass{report}
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\MakeOuterQuote{"}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage{qtree}
\usepackage{mathtools}
\usepackage{caption}
\usepackage[labelformat=empty]{subcaption}
\usepackage{amssymb}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17} 

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            ymin=0,
            ymax=5,
            xmin=0, xmax=2,
            xtick={0,0.2,...,2},
            width=0.8\textwidth,
            xlabel=LB/LX,
            ylabel={$H_1/H_2$}
            ] 
            \addplot[scatter,only marks,scatter src=explicit symbolic]table[meta=x] {
                x y
                0.860 1.156
                1.068 1.806
                1.248 1.197
                1.093 2.377
                1.833 1.143
                0.609 2.332
                0.936 1.017
                1.277 1.099
                0.804 1.279
                0.862 3.040
                0.778 1.888
                0.797 3.099
                1.546 1.004
                0.841 3.729
                0.989 1.736
                1.889 1.000
                0.794 1.277
                0.885 1.158
                0.966 1.256
                0.778 1.888
                0.936 1.0172
                0.863 3.953
                };
        \end{axis}
    \end{tikzpicture}
    \label{Test}
\end{document}

这不起作用:

\documentclass{beamer}
\title[MWE]{MWE}

\usepackage[ngerman]{babel}
\usepackage{csquotes}
\MakeOuterQuote{"}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage{qtree}
\usepackage{mathtools}
\usepackage{caption}
\usepackage[labelformat=empty]{subcaption}
\usetheme{Madrid}
\usepackage{amssymb}
\usepackage{pgfplots}

\pgfplotsset{compat=1.17}
\begin{document}
\frame{\titlepage}
\begin{frame}{3.3. Interpretation}
    \begin{tikzpicture}
        \begin{axis}[
            ymin=0,
            ymax=5,
            xmin=0, xmax=2,
            xtick={0,0.2,...,2},
            width=0.8\textwidth,
            xlabel=LB/LX,
            ylabel={$H_1/H_2$}
            ] 
            \addplot[scatter,only marks,scatter src=explicit symbolic]table[meta=x] {
                x y
                0.860 1.156
                1.068 1.806
                1.248 1.197
                1.093 2.377
                1.833 1.143
                0.609 2.332
                0.936 1.017
                1.277 1.099
                0.804 1.279
                0.862 3.040
                0.778 1.888
                0.797 3.099
                1.546 1.004
                0.841 3.729
                0.989 1.736
                1.889 1.000
                0.794 1.277
                0.885 1.158
                0.966 1.256
                0.778 1.888
                0.936 1.0172
                0.863 3.953};
        \end{axis}
    \end{tikzpicture}
    \label{Test}
\end{frame}
\end{document}

我猜是 beamer 类无法读取或找到数据。但我不明白为什么。非常感谢您的帮助。

答案1

如果你将[fragile]选项添加到框架中,在表格中添加行尾,意思是

            0.863 3.953};

应该

               0.863 3.953
            };

那么它将起作用:

\documentclass{beamer}
\title[MWE]{MWE}

\usepackage[ngerman]{babel}
\usepackage{csquotes}
\MakeOuterQuote{"}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage{qtree}
\usepackage{mathtools}
\usepackage{caption}
\usepackage[labelformat=empty]{subcaption}
\usetheme{Madrid}
\usepackage{amssymb}
\usepackage{pgfplots}

\pgfplotsset{compat=1.17}
\begin{document}
\frame{\titlepage}
\begin{frame}[fragile]{3.3. Interpretation}
    \begin{tikzpicture}
        \begin{axis}[
            ymin=0,
            ymax=5,
            xmin=0, xmax=2,
            xtick={0,0.2,...,2},
            width=0.8\textwidth,
            xlabel=LB/LX,
            ylabel={$H_1/H_2$}
            ] 
            \addplot[scatter,only marks,scatter src=explicit symbolic]table[meta=x] {
                x y
                0.860 1.156
                1.068 1.806
                1.248 1.197
                1.093 2.377
                1.833 1.143
                0.609 2.332
                0.936 1.017
                1.277 1.099
                0.804 1.279
                0.862 3.040
                0.778 1.888
                0.797 3.099
                1.546 1.004
                0.841 3.729
                0.989 1.736
                1.889 1.000
                0.794 1.277
                0.885 1.158
                0.966 1.256
                0.778 1.888
                0.936 1.0172
                0.863 3.953
            };
        \end{axis}
    \end{tikzpicture}
    \label{Test}
\end{frame}
\end{document}

在此处输入图片描述

否则,您可以预加载您的表格,然后它就可以工作了:

\documentclass{beamer}
\title[MWE]{MWE}

\usepackage[ngerman]{babel}
\usepackage{csquotes}
\MakeOuterQuote{"}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows}
\usepackage{qtree}
\usepackage{mathtools}
\usepackage{caption}
\usepackage[labelformat=empty]{subcaption}
\usetheme{Madrid}
\usepackage{amssymb}
\usepackage{pgfplots}
\pgfplotstableread{
                x y
                0.860 1.156
                1.068 1.806
                1.248 1.197
                1.093 2.377
                1.833 1.143
                0.609 2.332
                0.936 1.017
                1.277 1.099
                0.804 1.279
                0.862 3.040
                0.778 1.888
                0.797 3.099
                1.546 1.004
                0.841 3.729
                0.989 1.736
                1.889 1.000
                0.794 1.277
                0.885 1.158
                0.966 1.256
                0.778 1.888
                0.936 1.0172
                0.863 3.953
}\mytable


\pgfplotsset{compat=1.17}
\begin{document}
\frame{\titlepage}
\begin{frame}
    \frametitle{3.3. Interpretation}
    \begin{tikzpicture}
        \begin{axis}[
            ymin=0,
            ymax=5,
            xmin=0, xmax=2,
            xtick={0,0.2,...,2},
            width=0.8\textwidth,
            xlabel=LB/LX,
            ylabel={$H_1/H_2$}
            ]
            \addplot[scatter,only marks,scatter src=explicit symbolic]table[meta=x] \mytable;
        \end{axis}
    \end{tikzpicture}
    \label{Test}
\end{frame}
\end{document}

相关内容