TikZ 和 Beamer 叠加规范参考

TikZ 和 Beamer 叠加规范参考

我读到过:TikZ 命令也接受 Beamer 叠加规范,例如 \draw<2-> (A) to (B);但我在 TikZ/PGF 3.0 手册中找不到任何相关参考。当我在超过 1000 页的手册中搜索叠加层时,我得到了一些其他不相关的主题。Google 和 Bing 也没有帮助。请问有人能指出在哪里可以找到有关 TikZ 命令中的覆盖规范的更多详细信息?如果手册中没有,那么也许有其他参考资料?

答案1

PGF/TikZ不幸的是,无论是在还是在手册中都没有提及这个事实beamer(至少我找不到任何参考)。

所有神奇的事情发生的地方是文件tikz.code.tex(位于.../tex/generic/pgf/frontendlayer/tikz/),其中包含前端层的定义;在那里你会找到(第 1833-1836 行):

\def\tikz@path@overlay#1{%
  \let\tikz@signal@path=\tikz@signal@path% for detection at begin of matrix cell
  \pgfutil@ifnextchar<{\tikz@path@overlayed{#1}}{\path #1}}
\def\tikz@path@overlayed#1<#2>{\path<#2> #1}

另外,下面还有一些行(1938-1950),用于填充/绘图:

\def\tikz@swap@args[#1]<#2>{\tikz@command@path<#2>[#1]}

\def\tikz@doopt{%
  \let\tikz@next=\tikz@eargnormalsemicolon%
  \ifnum\the\catcode`\;=\active\relax%
    \let\tikz@next=\tikz@eargactivesemicolon%
  \fi%
  \tikz@next}
\long\def\tikz@eargnormalsemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}
{
  \catcode`\;=\active
  \long\global\def\tikz@eargactivesemicolon<#1>#2;{\alt<#1>{\tikz@@command@path#2;}{\tikz@path@do@at@end}}
}

虽然代码没有记录,但是您可以看到(特别是第一个代码片段的最后一行),那里\path是覆盖感知的(在某种意义上beamer),所以基本上任何路径(,,,\node等等)都是覆盖感知的。\draw\fill

作为肖恩·奥尔雷德提及his comment,还值得一提的是aobs-tikz包定义了用于在 中叠加图片元素的辅助 TikZ 样式beamer

一个简单的例子:

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

\begin{document}

\begin{frame}
\tikz\draw[thick, alt=<2-4>{blue}{red}] (0,0) -- (1,1);
\end{frame}

\end{document}

关于这个库的另一个有趣的使用例子可以在my answer如何使用 TikZ 节点属性制作 Beamer 覆盖?

相关内容