我有一张图,其标题相对较长,超过一行,并且在该标题内我有一个脚注。出于某种原因,脚注在底部重复出现。我注意到这种情况只发生在图标题超过一行时,如果我将标题缩短为一行,则不会出现重复的脚注。
\documentclass[11pt]{beamer}
\usepackage[gen]{eurosym}
\setbeamerfont{caption}{size=\scriptsize}
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\renewcommand*\footnoterule{}
\setbeamerfont{footnote}{size=\tiny}
\setbeamersize{text margin left=7mm,text margin right=7mm}
\begin{document}
\begin{frame}{Slide Title}
\addtobeamertemplate{footnote}{}{\vspace{1.5ex}}
\begin{figure}
\centering
\includegraphics[width=0.7\textwidth,keepaspectratio]{example-image-a}
\vspace*{-3mm}
\caption{My looooooooooooooooooooooooooonooooooooooooooog figure caption\footnote{Some footnote}\tiny(source: source)}
\end{figure}
\end{frame}
\end{document}
我该如何纠正这个行为?
答案1
来自 TeX-FAQ (https://texfaq.org/FAQ-ftncapt):
但是,除了上述所有问题之外,还必须处理命令
\caption
产生两次脚注文本的倾向。对于最后一个问题,作者还不知道有完美的解决方案。
\caption
如果您遇到了这个问题,在浮动环境中构造良好的命令minipage
(如上例所示)可以生成脚注主体“某物”的两个副本。(事实上,这种效果只发生在标题足够长以至于需要排版两行的情况下,因此不会出现在上例中如此短的标题中。)
一种使用许多手动操作的解决方法:
\documentclass[11pt]{beamer}
\usepackage[gen]{eurosym}
\setbeamerfont{caption}{size=\scriptsize}
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\renewcommand*\footnoterule{}
\setbeamerfont{footnote}{size=\tiny}
\setbeamersize{text margin left=7mm,text margin right=7mm}
\makeatletter
\let\fnsymbolNum\@fnsymbol
\makeatother
\begin{document}
\begin{frame}{Slide Title}
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{example-image-a}
\caption{My looooooooooooooooooooooooooonooooooooooooooog figure\textsuperscript{\fnsymbolNum{1}} caption\textsuperscript{\fnsymbolNum{2}}}
\end{figure}
\footnotetext[1]{first footnote}
\footnotetext[2]{second footnote}
\end{frame}
\end{document}
答案2
仅展示显示图像来源的另一种可能性...无需使用\footnote
:
\documentclass[11pt]{beamer}
\usepackage[gen]{eurosym}
\usepackage{copyrightbox}
\begin{document}
\begin{frame}
\frametitle{Slide Title}
\begin{figure}
\copyrightbox[b]{\includegraphics[width=0.7\linewidth]{example-image-duck}}
{(source: source)}
\caption{My looooooooooooooooooooooooooonooooooooooooooog figure caption}
\end{figure}
\end{frame}
\end{document}
答案3
最好的解决方案是不要在标题中使用脚注,但是……
标题通常会尝试确定内容是否适合一行(如果适合,则标题居中)。这种测量是脚注排版两次的原因:一次是在测量期间,一次是在标题实际排版时。
由于您已经知道标题不适合一行,因此您可以放心地使用caption
包和关闭该标题的测量\captionsetup{singlelinecheck=false}
。
\documentclass[11pt]{beamer}
\usepackage{caption}
\usepackage[gen]{eurosym}
\setbeamerfont{caption}{size=\scriptsize}
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\renewcommand*\footnoterule{}
\setbeamerfont{footnote}{size=\tiny}
\setbeamersize{text margin left=7mm,text margin right=7mm}
\begin{document}
\begin{frame}{Slide Title}
\addtobeamertemplate{footnote}{}{\vspace{1.5ex}}
\begin{figure}
\centering
\captionsetup{singlelinecheck=false}
\includegraphics[width=0.7\textwidth,keepaspectratio]{example-image-a}
\caption{My looooooooooooooooooooooooooonooooooooooooooog figure
caption\footnote{Some footnote}\tiny(source: source)}
\end{figure}
\end{frame}
\end{document}