我是 Latex 的新手,但我必须在大学用它做演讲(或者更确切地说,我想用 LaTeX 做演讲)。但我对这个软件包感到很困惑tikz
。
所以我的第一个问题是关于 on 语句,它无法处理类似的事情
<1-3, 5-6>
,而这在 only 语句中是可能的。有解决办法吗?第二个问题是关于突出显示样式,是否可以在不同的幻灯片上设置不同的样式,例如突出显示文本 on=
<1-3>
和其他内容,文本 on=<5-6>
?
这是我的 MWE:
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles, matrix}
\begin{document}
\begin{frame}
\begin{tikzpicture}[
background default text=black,
highlight/.style={
background text=blue,
},
]
\matrix [matrix of nodes, ampersand replacement=\&]{
|[highlight, text on=<1->]| . \& |[highlight, text on=<2->]| X \\
. \& X\\
};
\end{tikzpicture}
\end{frame}
\end{document}
答案1
我不知道是否可以使用该库的内置功能overlay-beamer-styles
,但我可以使用接受的答案从如何使用 Tikz 节点制作投影仪覆盖:
\tikzset{onslide/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{#2}}
}}
创造了使用的可能性,例如
onslide=<1-2>highlight
应用highlight
覆盖层 1 和 2 的样式。这些onslide=
构造是可堆叠的,如下例所示。
的定义\overlaynumber
来自访问 beamer 中的当前覆盖编号并且仅用于此示例以显示当前覆盖编号以供说明目的。
正如此处的评论和 Matthew 的回答中所提到的,如果覆盖规范包含逗号,则整个构造必须封装在花括号中。 (onslide={<4,6-8>cyan}
此处有说明。)
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles, matrix}
\makeatletter % https://tex.stackexchange.com/a/55066/21344
\newcommand*{\overlaynumber}{\number\beamer@slideinframe}
\makeatother
\tikzset{onslide/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{#2}}
}} % https://tex.stackexchange.com/a/6155/21344
\begin{document}
\begin{frame}
\begin{tikzpicture}[
background default text=black,
highlight/.style={
background text=blue,
},
laterhilite/.style={
background text=red,
},
]
\matrix [matrix of nodes, ampersand replacement=\&]{
|[highlight, text on=<{1-}>]| . \&
|[onslide=<1-2>highlight,
onslide=<3->laterhilite,
onslide={<4,6-8>cyan},
]| X\\
. \& X\\
\overlaynumber \& \\
};
\end{tikzpicture}
\end{frame}
\end{document}