以下问题与这个。
我希望能够将 TikZ 节点放置在幻灯片“主区域”内的任意位置beamer
,即下面示例中的白色矩形内。
\documentclass{beamer}
\usetheme{Warsaw}
\begin{document}
\section{A section}
\begin{frame}{Title}
\end{frame}
\end{document}
为了做到这一点,我需要访问以下几个信息集合之一:
幻灯片顶部和底部的各个文章的高度:
- 部分横幅
- 标题横幅
- 导航标尺
- 横幅沿幻灯片底部边缘
主区域四个角与最靠近它们的页面边缘之间的距离。
主区域四个角之一与最靠近它的页面边缘的距离,以及主区域的高度。
类似于 TikZ 的对象
current page
,代表主要区域,因此可以编写类似的内容\draw[fill=red] (main area.north west) circle (1pt);
以在主要区域的左上角获得一个填充的红色圆圈。
无论哪种情况,我还想知道标题横幅下阴影的高度。
注意上面第一点提到的各个文章的高度是动态的,并且每个文章都可以单独隐藏。
- 如何才能获得足够的信息,以便将 TikZ 图片放置在幻灯片主区域的任意位置?
- 上一个问题是否有一个不考虑主题的通用答案?这比依赖主题的答案更可取
Warsaw
。
答案1
文本区域的高度未知,或者至少不等于\textheight
。文本区域要么与幻灯片底部重叠,要么不重叠。无法知道先验。我认为 beamer 甚至没有计算可用空间。它只是\vfill
在上面和下面应用并希望如此。
使用\tikzmark
您可以定位西北角和东南角,甚至可以计算相对于(current page)
锚点的偏移量。
\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}
\begin{document}
\section{A section}
\begin{frame}{Title}
\rule{\textwidth}{16\baselineskip}
\end{frame}
\begin{frame}{Title}
\parbox[c][16\baselineskip][s]{\textwidth}{%
\tikzmark{topleft}\par
\vfill
\hfill\tikzmark{bottomright}}%
\tikz[remember picture, overlay]{\fill[black]
(pic cs:topleft) rectangle (pic cs:bottomright);}
\end{frame}
\end{document}