在下面的代码中
\documentclass{beamer}
\makeatletter
\setbeamertemplate{footline}{
\leavevmode
\begin{beamercolorbox}[wd=\paperwidth, ht=4ex, left]{author in head/foot}%
\usebeamerfont{author in head/foot}
\begin{tabular}{|p{0.5\paperwidth}|p{0.5\paperwidth}|}
entry00 & entry01
\end{tabular}
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\begin{frame}
frame contents
\end{frame}
\end{document}
我尝试在投影仪脚注中创建一个表格,以跨越投影仪框架的宽度。结果并不令人满意,因为我看不到表格的最右边距:
如何修复解决方案?
答案1
您的代码只有两处错误:
- 后面有一个额外的隐式空格。我通过在其后
\hbox{
添加一个来修复它。%
- 是
0.5\paperwidth
文本的宽度。它不包括将\tabcolsep
文本与垂直规则分开的。我已将其设置为零,以使列正好为0.5\paperwidth
。
此外,正如您自己指出的那样,显然没有必要\hbox
,因此我将其删除了
代码:
\documentclass{beamer}
\makeatletter
\setbeamertemplate{footline}{
\leavevmode
\begin{beamercolorbox}[wd=\paperwidth, ht=4ex, left]{author in head/foot}
\usebeamerfont{author in head/foot}
\setlength{\tabcolsep}{0pt}
\begin{tabular}{|p{0.5\paperwidth}|p{0.5\paperwidth}|}
entry00 & entry01
\end{tabular}
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\begin{frame}
frame contents
\end{frame}
\end{document}
第二个问题的另一种选择是减少列的宽度以2\tabcolsep
使其适合,如下所示:
\documentclass{beamer}
\makeatletter
\setbeamertemplate{footline}{
\leavevmode
\begin{beamercolorbox}[wd=\paperwidth, ht=4ex, left]{author in head/foot}
\usebeamerfont{author in head/foot}
\begin{tabular}{|p{\dimexpr0.5\paperwidth-2\tabcolsep}|p{\dimexpr0.5\paperwidth-2\tabcolsep}|}
entry00 & entry01
\end{tabular}
\end{beamercolorbox}%
}
\makeatother
\begin{document}
\begin{frame}
frame contents
\end{frame}
\end{document}
第二种选择看起来更好,因为文本不会超出垂直线。但如果你必须让文本运行,0.5\paperwidth
那么第一个就是你想要的。
答案2
我不会使用表格将不同的字段并排放置在页脚中。在普通的 Beamer 主题中,只需将几个beamercolorbox
字段并排放置即可实现此效果:
\documentclass{beamer}
\makeatletter
\setbeamertemplate{footline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.5\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=.5\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
\usebeamerfont{title in head/foot}\insertshorttitle
\end{beamercolorbox}%
}%
\vskip0pt%
}
\makeatother
\author{names}
\title{title}
\begin{document}
\begin{frame}
frame contents
\end{frame}
\end{document}
根据您实际要添加到脚注的内容,hackthefootline
可能是一个简单的替代方法:
\documentclass{beamer}
\usepackage[twocols]{hackthefootline}
\author{names}
\title{title}
\begin{document}
\begin{frame}
frame contents
\end{frame}
\end{document}