鉴于以下情况:
\lecture{Shortname}{Longname}{Label}
\begin(frame}
\titlepage
\end{frame}
beamer 如何推断插入的第一个参数\lecture
是中使用的标题\titlepage
?
我搜索了我的 texlive 安装(texlive-beamer-svn36461.3.36-24.fc24.1.noarch),但找不到在哪里或如何\beamer@shortlecturename
变成\inserttitle
?
我想要实现的是Longname
使用\titlpage
而不是Shortname
。
更新:
事实证明,\lecture
这不是罪魁祸首。我实际执行的操作的 MWE 如下所示:
\documentclass{beamer}
\newcommand{\titlestring}{Title}
\title{\titlestring}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\renewcommand{\titlestring}{Topic}
\lecture[\titlestring]{\titlestring, YYYY-MM-DD}{Label}
\begin{frame}
\titlepage
\end{frame}
\end{document}
我还是不明白为什么\titlpage
选择改变的\titlestring
。
答案1
\titlepage
拾取更改,\titlestring
因为您更改了\titlestring
;就这么简单。如果您希望\titlepage
使用\titlestring, YYYY-MM-DD
,则可以\inserttitle
使用以下方式手动更新
\renewcommand{\inserttitle}{\titlestring, YYYY-MM-DD}
这是一个完整的最小示例,展示了的重新定义\title
。
\documentclass{beamer}
\let\Tiny\tiny% http://tex.stackexchange.com/a/94159/5764
\newcommand{\titlestring}{Title}
\title{\strut\titlestring}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\renewcommand{\titlestring}{Topic}
\lecture[\titlestring]{\titlestring, YYYY-MM-DD}{Label}
\title{\strut\titlestring, YYYY-MM-DD}
\begin{frame}
\titlepage
\end{frame}
\end{document}
s\strut
添加以\title
确保基线一致并避免在框架/页面之间跳转(可能特定于您的示例,因为如果 s 是连续的,则不会引人注意\titlepage
。