(Tikz)图形:投影仪风格框架和覆盖层之外的一系列图片?

(Tikz)图形:投影仪风格框架和覆盖层之外的一系列图片?

我想创建一系列相关图表,例如突出显示图表中的遍历。使用 beamer 框架中的覆盖效果很好。

我可以在普通文档中做类似的事情吗?当然不是“覆盖”,而是并排的图片,其中第一张仅显示演示文稿中显示的图形的<1>部分,第二张仅显示<2>部分,依此类推。

马丁

答案1

大概是这样?

代码

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usepackage{xifthen}

\newcommand{\layerpic}[2]% layers, commands
{   \foreach \x in {1,...,#1}
    {   \begin{tikzpicture}
            \pgfmathtruncatemacro{\i}{\x+1}
            #2
        \end{tikzpicture}\\[1cm]
    }
}

\newcommand{\mylayer}[2]% layer, layer commands
{   \ifthenelse{\i>#1}
        {#2}
        {}
}

\begin{document}

\layerpic{4}
{   \mylayer{1}
    {   \fill[green!50!gray] (0,0) rectangle (12,4);    
    }
    \mylayer{2}
    {   \fill[red!50!gray] (6,2) ellipse (5.5 and 1.5);
    }   
    \mylayer{3}
    {   \fill[blue!50!gray] (1,1) circle (0.5);
        \fill[blue!50!gray] (11,1) circle (0.5);
        \fill[blue!50!gray] (1,3) circle (0.5);
        \fill[blue!50!gray] (11,3) circle (0.5);
    }
    \mylayer{4}
    {   \fill[yellow!50!gray] (3,0.1) --  (6,3.9) -- (9,0.1) -- cycle;
    }
}

\end{document}

结果

在此处输入图片描述


编辑1:以下是一个在投影机非投影机文件:

代码

\makeatletter
\@ifclassloaded{beamer}
  {\xdef\isbeamer{1}}
  {\xdef\isbeamer{0}}%
\makeatother

\newcommand{\layerpic}[2]% layers, commands
{ \ifthenelse{\isbeamer=1}
    {   \begin{tikzpicture}[scale=0.5]
            #2
        \end{tikzpicture}
    }
    {   \foreach \x in {1,...,#1}
    {   \begin{tikzpicture}
        \pgfmathtruncatemacro{\i}{\x+1}
        #2
        \end{tikzpicture}\\[1cm]
    }
  }  
}

\newcommand{\mylayer}[2]% layer, layer commands
{ \ifthenelse{\isbeamer=1} 
    {   \only<#1->{#2}
    }
    {   \ifthenelse{\i>#1}
    {#2}
    {}
  }    
}

输出

在一个非投影机文件(例如scrartcl),输出与之前完全相同。投影机但是(在投影机模式下tikzpicture缩放到0.5,因为幻灯片只有 128 毫米宽):

在此处输入图片描述

相关内容