这是一张幻灯片。之前的幻灯片就是我们现在在背景中看到的那张。然后它变成了蓝色和透明的,出现了问题线。
是否可以使用tikZ
来得出相似的结果如何?如果是,您能否提供一个最小示例,以便我在此基础上继续构建?
答案1
以下解决方案基于 TikZ。它提供了一个命令\superimpose<overlay spec>[TikZ option for node]{node text}
,在整个幻灯片上绘制一个不透明度为 50% 的蓝色矩形,然后在其顶部使用给定的文本排版一个 TikZ 节点。
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{beramono}
\usepackage{listings}
\lstset{
basicstyle=\scriptsize\ttfamily
}
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\tikzset{onslide/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{#2}} % \pgfkeysalso doesn't change the path
}}
\newcommand<>{\superimpose}[2][]{%
\tikz[overlay, remember picture]{%
\filldraw#3[blue!30,opacity=0.5](current page.north west) rectangle (current page.south east);
\node#3[at=(current page),#1]{#2};
}%
}
\begin{document}
\begin{frame}[fragile]{A Listing}
\lstset{language=C, gobble=4}
\begin{lstlisting}
#include <stdio.h>
int main(void) {
printf("Hello World!");
return 0;
}
\end{lstlisting}
\superimpose<2>[draw=red, fill=white]{Problem: ugly syntax}%
\end{frame}
\end{document}