我正在尝试将 tikz 覆盖图片(一个漂亮的粗红色“X”位于单词上方)放在 Beamer 框架的框架标题上。但是,框架中的覆盖 tikz 图片无法识别标题中给出的节点。
例如,我尝试:
\newcommand{\crd}[1]{\tikz[overlay, remember picture, baseline=.5ex]\coordinate (#1);}
\begin{frame}
\frametitle{Some \crd{p}Crossthis\crd{q} Title}
\begin{tikzpicture}[overlay, remember picture]
\draw[red, thick] (p) -- (q);
\end{tikzpicture}
\end{frame}
我得到:
ERROR: Package pgf Error: No shape named q is known.
我怎样才能在标题上添加覆盖?
答案1
Beamer 以非标准方式评估框架的内容。先评估框架主体,然后再评估框架标题。
以下是您的 MWE 的改编,将效果放在标题中并演示了评估顺序:
\documentclass{beamer}
\usepackage{tikz}
\usepackage{lipsum}
\begin{document}
\newcounter{n}
\newcommand{\crd}[1]{\tikz[overlay, remember picture, baseline=.5ex]\coordinate (#1);}
\begin{frame}{%
\stepcounter{n}($n=\then$)%
Some \crd{p}Crossthis\crd{q} Title%
\begin{tikzpicture}[overlay, remember picture]
\draw[red, thick] (p) -- (q);
\end{tikzpicture}%
}
\stepcounter{n}($n=\then$)%
\lipsum[1]
\end{frame}
\end{document}
您必须运行两次才能获得下划线效果。