在 beamer 中的 for 循环内部可见产生错误

在 beamer 中的 for 循环内部可见产生错误

我正在尝试创建一个图,其中的点将按顺序添加到多张幻灯片中。但添加的代码会产生一堆Undefined control sequence.错误。

有趣的是,当我在 for 循环中分别使用\x\xi作为变量和索引变量时,代码开始运行,我得到了一个超过 250 页的 PDF!除了最后一页包含所有点的绘图外,它充满了空白的绘图。

梅威瑟:

\documentclass{beamer}

\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}

\usepackage{pgfplots}
\pgfplotsset{compat = 1.18}

\begin{document}
    \begin{frame}{Frame name}
        \begin{figure}
            \centering
            \begin{tikzpicture}
                \begin{axis}
                    \foreach \point [count = \pointindex] in {-2, 5, -1}
                    {
                        \addplot [
                            only marks,
                            mark = *,
                            samples at = {\point},
                            visible on = <\pointindex->,
                        ]
                        {x^2};
                    }
                \end{axis}
            \end{tikzpicture}
        \end{figure}
    \end{frame}
\end{document}

答案1

问题是,这\pointindex是在循环中本地定义的\foreach。但对于覆盖,您需要全局值。您可以使用类似以下内容:

\documentclass{beamer}

\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}

\usepackage{pgfplots}
\pgfplotsset{compat = 1.18}

\begin{document}
    \begin{frame}{Frame name}
        \begin{figure}
            \centering
            \begin{tikzpicture}
                \begin{axis}
                    \foreach \point [count = \pointindex] in {-2, 5, -1}
                    {
                      \xdef\ADDPLOT{%
                        \noexpand\addplot[visible on = {<\pointindex->},
                          only marks,
                          mark = *,
                          samples at = {\point}
                        ]
                      } 
                      \ADDPLOT {x^2};
                    }
                \end{axis}
            \end{tikzpicture}
        \end{figure}
    \end{frame}
\end{document}

三幅画框

相关内容