以下是 MWE 显示我的问题:
\documentclass[11pt]{article}
\usepackage[absolute,overlay]{textpos}
\TPGrid{1}{1}
\begin{document}
Line 1
\begin{textblock}{1}(0,0)
My overlay
\end{textblock}
Line 2
\end{document}
构建该文档后,您可以看到“第 2 行”部分打印在“第 1 行”上。
我的问题是:如何避免这种垂直转变?
请不要提出添加\vspace{...}
,因为对于我的目的来说,我需要精确定位(动画beamer
)。
答案1
文本块实际上应该在垂直模式下使用,如果文本块以水平模式开始,它将强制生成一个新段落,因此这在某种程度上是不受支持的领域。TeXnical 的原因(简要考虑一下)是,这会导致textblock
段落中的“第 2 行”与其上方的“第 1 行”分离,因此 TeX 会“忘记”它位于段落中间,因此必须添加段落间间距(即,这里没有向上的垂直移动,而是缺少 TeX 本来会添加的向下的段落间空间)。
但是在这种情况下,textpos 改为调整间距和惩罚,使水平模式下的文本块最终表现得更像\par
(那就是我在编辑它),这并非不合理,也不一定特别困难。不过,这不会立即发生。
但是,在这种情况下,以及使用当前版本的 textpos,最可靠的解决方案是将文本块以某种方式/某处移动,以便它最终位于段落之间。这样会更快乐!在 beamer 环境中(虽然我对 beamer 不太有经验),将文本块(或文本块?)全部放在框架的开头可能值得一看。
我已经添加仓库中的一个问题。感谢您报告此事。
编辑:澄清‘不会不合理’的言论。
答案2
把 放在一边textblock
。
\documentclass[11pt]{article}
\usepackage[absolute,overlay]{textpos}
\TPGrid{1}{1}
\begin{document}
Line 1
Line 2
\begin{textblock}{1}(0,0)
My overlay
\end{textblock}
\end{document}