我想在投影仪框架中显示一个情节。我尝试这样做
\documentclass[]{beamer}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{frame}{Comparison to template fitting}
\begin{tikzpicture}
\begin{axis}[]
\addplot table [] {
0.22 0.56
0.43 0.54
0.65 0.53
0.86 0.55
1.08 0.48
1.3 0.34
1.52 0.17
1.73 0.23
1.95 0.16
2.17 0.17
2.38 0.23
2.6 0.26
};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}
但这引发了错误
! Package pgfplots Error: Could not read table file '" 0.22 0.56 0.43 0.54 0.65
如果我将文档类更改为文章并删除框架,则不会出现任何问题
\documentclass[]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
%\begin{frame}{Comparison to template fitting}
\begin{tikzpicture}
\begin{axis}[]
\addplot table [] {
0.22 0.56
0.43 0.54
0.65 0.53
0.86 0.55
1.08 0.48
1.3 0.34
1.52 0.17
1.73 0.23
1.95 0.16
2.17 0.17
2.38 0.23
2.6 0.26
};
\end{axis}
\end{tikzpicture}
%\end{frame}
\end{document}
所以剧情本身还是不错的。
如何在 beamer 框架中使用我的 pgfplot?
答案1
问题在于,当轴被包裹在框架中时,它就是宏的一部分。实现这一点的一种方法是让框架fragile
。参见例如这里进行讨论。
\documentclass[]{beamer}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{frame}[fragile]
\frametitle{Comparison to template fitting}
\begin{tikzpicture}
\begin{axis}[]
\addplot table [] {
0.22 0.56
0.43 0.54
0.65 0.53
0.86 0.55
1.08 0.48
1.3 0.34
1.52 0.17
1.73 0.23
1.95 0.16
2.17 0.17
2.38 0.23
2.6 0.26
};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}
或者,您可以添加显式的行分隔符。pgfplots 手册 v1.17 在第 49 页写道
将情节放在投影仪框架中正是其中一种情况,因此我们可以\\
在这里使用。
\documentclass[]{beamer}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{frame}
\frametitle{Comparison to template fitting}
\begin{tikzpicture}
\begin{axis}[]
\addplot table [row sep=\\] {
0.22 0.56\\
0.43 0.54\\
0.65 0.53\\
0.86 0.55\\
1.08 0.48\\
1.3 0.34\\
1.52 0.17\\
1.73 0.23\\
1.95 0.16\\
2.17 0.17\\
2.38 0.23\\
2.6 0.26\\
};
\end{axis}
\end{tikzpicture}
\end{frame}
\end{document}
题外话:我建议使用\frametitle
命令作为框架的标题。