调用 \usepackage{caption} 会覆盖 beamer 中的表名

调用 \usepackage{caption} 会覆盖 beamer 中的表名

我在使用 beamer 和 caption 包时遇到了一个奇怪的问题。也就是说,当我使用 caption 包和 beamer 进行某些设置时,表格名称会以某种方式被图形名称覆盖:

\documentclass[11pt]{beamer}

\setbeamertemplate{caption}[numbered]
\usepackage[justification=centering]{caption}


\begin{document}
    \begin{frame}
        \begin{figure}
            FIGURE
            \caption{My figure}
        \end{figure}
        \begin{table}
            TABLE
            \caption{My table}
        \end{table}
    \end{frame}
\end{document}

在此处输入图片描述

注释掉标题包(最后一条序言行)会使事情恢复正常,但当然理由不再起作用...有人可以指出我这里发生了什么吗?

答案1

在这里,正如其他人在评论中指出的那样,您的文档产生了正确的结果(使用 TeXLive 2018、TeXLive 2019 和 TeXLive 2020)。

但您怀疑该caption软件包是导致错误的原因,因此,作为解决方法,以下文档在不使用此软件包的情况下产生了正确的结果。它定义并使用了一个caption名为 的新 Beamer 模板centered and numbered caption w/o caption package,并包含非常长的标题。

\documentclass[11pt]{beamer}
\setbeamertemplate{caption}[numbered]
%\usepackage[justification=centering]{caption}
\defbeamertemplate{caption}{centered and numbered caption w/o caption package}{%
  \parbox{\linewidth}{%
    \centering%
    {%
      \usebeamerfont{caption name}%
      \usebeamercolor[fg]{caption name}%
      \insertcaptionname\space\insertcaptionnumber%
    }%
    \usebeamertemplate{caption label separator}%
    \insertcaption%
  }%
}
\setbeamertemplate{caption}[centered and numbered caption w/o caption package]

\begin{document}
\begin{frame}
  \begin{figure}
    \fbox{My figure}
    \caption{My figure with a very... very... very... very... very... very very very
      very very long caption}
  \end{figure}
  \begin{table}
    \caption{My table with a very very very very very very very very
             very very long caption}
    \fbox{My table}
  \end{table}
\end{frame}
\end{document}

在此处输入图片描述

相关内容