我想让 beamer 以较小的字体显示日期,但错误地\date{December 15, 2017}
用标签包裹了字段\small
。令人惊讶的是,pdflatex 并没有发出错误或更改字体大小,而是产生了“December11,2017”。这种行为有什么解释吗?
更新型多巴胺:有人指出,这\small
是一个开关,不接受参数。然而,{\small \date{December 15, 2017}}
产生了十二月12,2017年。
答案1
\small
与问题无关。
事实\date
是不是打印日期,而是将内部变量设置为作为参数给出的日期。工作原理基本上是
\newcommand{\date}[1]{\renewcommand{\internaldate}{#1}}
(不同的名称和更复杂的动作,但这就是想法)并且的代码\maketitle
将使用\internaldate
。
当你这样做
\small{\date{July 38, 1973}}
或者
{\small\date{July 38, 1973}}
该\date
指令是按组执行的,因此\internaldate
一旦组结束,重新定义就会被遗忘,最终您会得到今天的日期,默认情况下会使用该日期。这解释了为什么您得到11当你提出这个问题时12当你修改它时。在第一种情况下,该组是因为\small
不接受任何参数。
答案2
不要输入\small
。\date{...}
这将产生无法预料的副作用。最好使用 更改日期的打印方式\setbeamerfont
。
\documentclass{beamer}
\setbeamerfont{date}{size=\small}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\end{document}