好吧 --- 我对此感到很抓狂(我可以解决这个问题,但我真的想知道发生了什么)。考虑一下这个 MWE 几乎直接从这个答案:
\documentclass{beamer}
\usetheme{Boadilla}
\makeatletter
\setbeamertemplate{footline}{%
%%\ifnum\thepage>1\relax %%% HERE
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortauthor\expandafter\ifblank\expandafter{\beamer@shortinstitute}{}{~~(\insertshortinstitute)}
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
\usebeamerfont{title in head/foot}\insertshorttitle
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
\usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
\end{beamercolorbox}}%
\begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
\usebeamerfont{author in head/foot} text
\end{beamercolorbox}%
\vskip0pt%
%%\fi %%% HERE
}
\makeatother
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{Frame Title}
\end{frame}
\end{document}
渲染成功:
但我不想在标题页上有页脚(在我的主题中它有一个背景图像),所以我用 取消\ifnum...\fi
注释上面的注释%%%HERE
。页脚在第一帧中正确消失,但随后所有其他帧的页脚都移位了:
...我在这里做错了什么?
答案1
如果你的页脚没有文字,那么它就相当于
\leavevmode\hbox{}%
\vskip0pt
它开始一个段落,添加一行白线“文本”来结束段落,然后添加 0pt 的垂直跳过(这可能会移动对齐点)。
你\ifnum
用什么都不替换它,这意味着行为可能会有所不同,将测试移到你的水平盒子里面。
请注意,一般来说,测试文档中间的页码计数器或将其作为数字进行测试是不安全的,但由于您在没有自动分页符的投影仪中,并且您知道页面样式是数字,所以没问题(尽管为了安全起见我不会\thepage
使用)。\value{page}
\thepage