如何生成一系列 \paused 独立的 TikZ 图像?

如何生成一系列 \paused 独立的 TikZ 图像?

我制作了一个 beamer 演示文稿,其中按顺序使用 构建了一个 TikZ 图\pause。示例:

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
        \begin{frame}
                \begin{tikzpicture}[ scale=5 ]
                        \draw (0,0) -- (1,0) node[below] {$f_1$};
                        \pause
                        \draw (0,0) -- (0,1) node[left] {$f_2$};
                        \pause
                        \draw (0,0) -- (0.87,0.5) node[right] {$f_3$};
                \end{tikzpicture}
        \end{frame}
\end{document}

这会产生三张幻灯片。我希望将它们作为三张单独的图像,其中每张 TikZ 图片覆盖整个“页面”或“幻灯片”。也就是说,我想要输出 slide1.pdf、slide2.pdf 和 slide3.pdf,并且每张幻灯片中的 TikZ 图片都应覆盖整个幻灯片。

我可以通过创建三个包含大量重复 TikZ 代码的独立 .tex 文件来实现这一点,但我想还有更好的方法。

有什么好的解决办法?

答案1

我不确定这个问题,但我认为你正在寻找standalone

\documentclass[beamer]{standalone}
\usepackage{tikz}
\begin{document}
        \begin{standaloneframe}
                \begin{tikzpicture}[ scale=5 ]
                        \draw (0,0) -- (1,0) node[below] {$f_1$};
                        \pause
                        \draw (0,0) -- (0,1) node[left] {$f_2$};
                        \pause
                        \draw (0,0) -- (0.87,0.5) node[right] {$f_3$};
                \end{tikzpicture}
        \end{standaloneframe}
\end{document}

生成一个包含三页/框架的 pdf 文档。

在此处输入图片描述

您可以使用where将它们作为背景包含在任何beamer演示文稿中。\includegraphics[page=x]{your-standalone-file.pdf}x=1,2,3

standaloneframe不必担心不同的图形尺寸,因为它们都是相同的。

\documentclass{beamer}

\begin{document}
\setbeamertemplate{background}{\includegraphics[page=1]{168685}}
        \begin{frame}{First frame}
        \end{frame}
\setbeamertemplate{background}{\includegraphics[page=2]{168685}}
        \begin{frame}{Second frame}
        \end{frame}
\setbeamertemplate{background}{\includegraphics[page=3]{168685}}
        \begin{frame}{Third frame}
        \end{frame}
\end{document}

在此处输入图片描述

答案2

如果使用\documentclass[tikz]{standalone},则tikzpicture文档中的每个环境都将创建不同的页面。

然后,您可以将每个页面单独包含在文档中。我使用循环\foreach来生成多个tikzpicture环境,并根据幻灯片编号设置各种切换和值。

这是独立文档的一个示例。

% Using the 'tikz' option causes each tikz diagram to be displayed on a different page.
\documentclass[tikz]{standalone}
\usepackage{etoolbox}% Provides \newtoggle

\newtoggle{showLines}
\newtoggle{showRegions}

\begin{document}
\foreach \slideNumber in {
    0, % Slide that is never shown. Used to adjust the timing of overlays in Beamer slideshow. 
    0,  % Circle only
    10, % Lines
    20, % Regions (blue)
    30  % Regions (red)
    }{%
    
  \ifnum \slideNumber > 9
      \toggletrue{showLines}
  \fi

  \ifnum \slideNumber > 19
      \toggletrue{showRegions}
  \fi

  \ifnum \slideNumber > 29
      \def\fillColor{blue}
  \else
      \def\fillColor{red}
  \fi

  \tikzset{regions/.style={fill=\fillColor}}

  \begin{tikzpicture}[scale=1.2]

      \iftoggle{showRegions}{
          % Draw shaded regions
          \fill[regions] (0, 1) -- (1, 1) -- (1, 0) -- cycle;
          \fill[regions] (0, 1) -- (-1, 1) -- (-1, 0) -- cycle;
          \fill[regions] (0, -1) -- (1, -1) -- (1, 0) -- cycle;
          \fill[regions] (0, -1) -- (-1, -1) -- (-1, 0) -- cycle;
      }{}% END 'showRegions'

      \iftoggle{showLines}{%
          \draw (0.0, 0.0) -- (1, 1);
          \draw (0.0, 0.0) -- (-1, 1);
          \draw (0.0, 0.0) -- (1, -1);
          \draw (0.0, 0.0) -- (-1, -1);
      }{}% End 'showLines'

      \draw (0,0) circle[radius=1cm];
  \end{tikzpicture}
}

\end{document}

输出 在此处输入图片描述 请注意,此 PDF 有五页(水平排列)。

以下是使用生成的 TikZ 图像的 Beamer 幻灯片示例:

\documentclass{beamer}

% Access the current Beamer overlay value,
% per https://tex.stackexchange.com/a/55066/153678
\makeatletter
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother

\begin{document}

\begin{frame}

  \begin{columns}
    \begin{column}[T]{0.48\textwidth}
      Here is my first thing to say. There is nothing to see here yet.
      \pause
      \begin{itemize}[<+->]
        \item Now there is a circle.
        \item Crossed by lines.
        \item Add some red corners.
        \item Make them blue.
      \end{itemize}
    \end{column}
    \hfill
    \begin{column}[T]{0.48\textwidth}
      % Start showing the images on the second slide.
      % Set the page of the PDF displayed equal to 
      \includegraphics<2->[page=\overlaynumber]{path/to/tikzoutput.pdf}
    \end{column}
  \end{columns}

\end{frame}

\end{document}

输出 在此处输入图片描述

相关内容