Update: I have written a package to handle the issue: abspos.
There are many similar questions to this here already (e.g., How can I make textpos respect beamer overlays? and beamer: how to use \pause with textblock* environment, and lots of questions on absolute positioning more generally), so let me try to clarify what I'm looking for, more specifically:
I'd like to to place content at an absolute position, and this content may contain
tikzpicture
s, etc., so I would rather not place it in a TikZ node (to avoid having nested TikZ pictures – and, for that matter, to avoid an extra compilation round). I may use coffins, etc., to do much of the placement, but I need some absolute starting-point (which I guess coffins don't supply?)I would like to be able to use
beamer
overlay commands like\pause
, etc., without restrictions. In particular, I would like to avoid the need for wrapping their arguments in braces (which does solve the problem in some scenarios) – partly because I'll be usingpseudo.sty
, which has rather straightforward support for inserting\pause
commands between lines. (Similar things hold foritemize
andenumerate
, with<+->
.)I would rather not require transparent frame backgrounds.
I don't think any of the previous answers address these two requirements (though if there is a solution here already, that would be great – if so, sorry for the noise).
The obvious solution is to use textpos
, but as has been pointed out previously (e.g., in the two questions referenced above), it doesn't play nice with \pause
and the like.
A simple MWE illustrates the problem:
\documentclass{beamer}
\usepackage[absolute,overlay]{textpos}
\begin{document}
\begin{frame}
\begin{textblock*}{0pt}(0pt,0pt)
A\pause B\pause C
\end{textblock*}
\end{frame}
\end{document}
This will give you three slides; the first says "BC", the second says "C" and the last says "ABC".
The problem is with the overlay
option. If this is removed, and we use a transparent background, things work, so this is technically a solution, but as mentioned, I would rather not require this in my solution.
\documentclass{beamer}
\usepackage[absolute]{textpos}
\setbeamercolor{background canvas}{bg=}
\begin{document}
\begin{frame}
\begin{textblock*}{0pt}(0pt,0pt)
A\pause B\pause C
\onslide<1->
\end{textblock*}
\end{frame}
\end{document}
(Here I've also added \onslide<1->
so the rest of whatever is on the page, such as page numbers or whatever, isn't paused.)
This is almost what I want, except I would like the option of having (or letting others have) colored backgrounds. (I could of course draw those myself, from within the absolutely positioned box, but…)
So … any ideas of emulating or fixing the overlay
option, or some other way of handling the issue of transparent backgrounds – or perhaps even some entirely different mechanism for absolute positioning, for that matter? (I tried leaving a bug report in the textpos
repo, but that repo has since been deleted…)
textpos
'soverlay
option work with\pause
and friends. It's OK that the contents are typeset after everything else – the main point is that the segments should be typeset in the correct order. (I guess I could look into the implementation of theoverlay
option.)textpos
, by typesetting a coffin inbeamer
'sheadline
. This requires eliminating spacing above/to the left of that, and then reinserting that spacing when typesetting any actual textual content in the headline.