长图标题中的脚注重复

长图标题中的脚注重复

我有一张图,其标题相对较长,超过一行,并且在该标题内我有一个脚注。出于某种原因,脚注在底部重复出现。我注意到这种情况只发生在图标题超过一行时,如果我将标题缩短为一行,则不会出现重复的脚注。

\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}

在此处输入图片描述

相关内容