LaTeX Beamer技术问询:如何在各幻灯片页脚高亮对应主讲作者
解决Beamer页脚中高亮当前主讲作者的问题
实现思路
自定义命令标记当前幻灯片的主讲作者,修改页脚模板时遍历作者列表,匹配到标记的作者就用粗体显示,其余保持原样。
步骤1:定义全局变量与控制命令
在导言区添加以下代码,用于存储完整作者列表、标记当前主讲:
% 存储完整作者列表(与原\author内容一致) \def\fullauthors{Author 1 \\ Author 2 \\ Author 3 \\ Author 4} \author{\fullauthors} % 全局变量:存储当前需要高亮的主讲作者,默认空 \newcommand{\currenthighlightauthor}{} % 自定义命令:在幻灯片开头调用,指定当前主讲 \newcommand{\highlightauthor}[1]{\renewcommand{\currenthighlightauthor}{#1}}
步骤2:修改页脚模板
替换原页脚模板代码为以下内容,新增作者高亮的逻辑:
\setbeamertemplate{footline} {% \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot} \leavevmode{\usebeamerfont{author in head/foot}% % 递归遍历作者列表,高亮匹配的主讲 \expandafter\highlightauthors\fullauthors\\\relax } \hfill \insertdate \hfill% {\insertframenumber/\inserttotalframenumber}% \end{beamercolorbox}% } % 递归处理作者的辅助命令 \def\highlightauthors#1\\#2\relax{% \ifx\\#2\\% 判断是否为最后一个作者 \ifx#1\currenthighlightauthor \textbf{#1}% 高亮显示 \else #1% 正常显示 \fi \else \ifx#1\currenthighlightauthor \textbf{#1} \\% 高亮后换行 \else #1 \\% 正常显示后换行 \fi \highlightauthors#2\relax% 继续处理下一个作者 \fi }
使用方法
在需要高亮主讲的幻灯片开头,添加命令指定作者即可:
% 高亮Author 2的幻灯片 \begin{frame} \highlightauthor{Author 2} % 幻灯片内容 \end{frame} % 不需要高亮的幻灯片,直接正常写 \begin{frame} % 幻灯片内容 \end{frame}
注意事项
- 作者名称需完全匹配(包括空格、大小写),否则无法触发高亮;
- 若作者名称包含特殊字符,需确保在\fullauthors中正确转义。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

